---- ssr-0.3.6/src/Global.h~ 2015-11-02 22:13:49.000000000 +0100
-+++ ssr-0.3.6/src/Global.h 2018-04-29 19:51:10.866406546 +0200
-@@ -326,9 +326,6 @@
- inline double ToDouble(const AVRational& r) {
- return (double) r.num / (double) r.den;
- }
--inline double ToDouble(const AVFrac& f) {
-- return (double) f.val + (double) f.num / (double) f.den;
--}
-
- inline void GroupEnabled(std::initializer_list<QAction*> actions, bool enabled) {
- for(QAction *a : actions) {
---- ssr-0.3.6/src/AV/Output/AudioEncoder.cpp~ 2015-11-02 22:13:49.000000000 +0100
-+++ ssr-0.3.6/src/AV/Output/AudioEncoder.cpp 2018-04-29 19:52:26.060460580 +0200
-@@ -59,7 +59,7 @@
-
- unsigned int AudioEncoder::GetFrameSize() {
- #if SSR_USE_AVCODEC_ENCODE_AUDIO2
-- return (GetStream()->codec->codec->capabilities & CODEC_CAP_VARIABLE_FRAME_SIZE)? DEFAULT_FRAME_SAMPLES : GetStream()->codec->frame_size;
-+ return (GetStream()->codec->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)? DEFAULT_FRAME_SAMPLES : GetStream()->codec->frame_size;
- #else
- return (GetStream()->codec->frame_size <= 1)? DEFAULT_FRAME_SAMPLES : GetStream()->codec->frame_size;
- #endif
-@@ -121,7 +121,7 @@
- if(key == "threads") {
- stream->codec->thread_count = ParseCodecOptionInt(key, value, 1, 100);
- } else if(key == "qscale") {
-- stream->codec->flags |= CODEC_FLAG_QSCALE;
-+ stream->codec->flags |= AV_CODEC_FLAG_QSCALE;
- stream->codec->global_quality = lrint(ParseCodecOptionDouble(key, value, -1.0e6, 1.0e6, FF_QP2LAMBDA));
- } else if(key == "sampleformat") {
- sample_format_name = value;
---- ssr-0.3.6/src/AV/Output/BaseEncoder.cpp~ 2015-11-02 22:13:49.000000000 +0100
-+++ ssr-0.3.6/src/AV/Output/BaseEncoder.cpp 2018-04-29 19:52:56.784084323 +0200
-@@ -207,7 +207,7 @@
- }
-
- // flush the encoder
-- if(!m_should_stop && (m_stream->codec->codec->capabilities & CODEC_CAP_DELAY)) {
-+ if(!m_should_stop && (m_stream->codec->codec->capabilities & AV_CODEC_CAP_DELAY)) {
- Logger::LogInfo("[BaseEncoder::EncoderThread] " + Logger::tr("Flushing encoder ..."));
- while(!m_should_stop) {
- if(EncodeFrame(NULL)) {
---- ssr-0.3.6/src/AV/Output/Muxer.cpp~ 2015-11-02 22:13:49.000000000 +0100
-+++ ssr-0.3.6/src/AV/Output/Muxer.cpp 2018-04-29 19:54:03.428041137 +0200
-@@ -289,10 +289,10 @@
-
- // not sure why this is needed, but it's in the example code and it doesn't work without this
- if(m_format_context->oformat->flags & AVFMT_GLOBALHEADER)
-- stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
-+ stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
-
- // if the codec is experimental, allow it
-- if(codec->capabilities & CODEC_CAP_EXPERIMENTAL) {
-+ if(codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) {
- Logger::LogWarning("[Muxer::AddStream] " + Logger::tr("Warning: This codec is considered experimental by libav/ffmpeg."));
- stream->codec->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
- }
---- ssr-0.3.6/src/AV/Output/VideoEncoder.cpp~ 2015-11-02 22:13:49.000000000 +0100
-+++ ssr-0.3.6/src/AV/Output/VideoEncoder.cpp 2018-04-29 19:54:53.401837201 +0200
-@@ -147,7 +147,7 @@
- if(key == "threads") {
- stream->codec->thread_count = ParseCodecOptionInt(key, value, 1, 100);
- } else if(key == "qscale") {
-- stream->codec->flags |= CODEC_FLAG_QSCALE;
-+ stream->codec->flags |= AV_CODEC_FLAG_QSCALE;
- stream->codec->global_quality = lrint(ParseCodecOptionDouble(key, value, -1.0e6, 1.0e6, FF_QP2LAMBDA));
- } else if(key == "minrate") {
- stream->codec->rc_min_rate = ParseCodecOptionInt(key, value, 1, 1000000, 1024); // kbps