Mostly-merge master.
[dcpomatic.git] / src / lib / ffmpeg.cc
index 53d12419a6872f88a8bdb8b5f58658867620d236..a98aa98289e6839dedf04ccc557c33b68d1e9c71 100644 (file)
@@ -21,11 +21,11 @@ extern "C" {
 #include <libavcodec/avcodec.h>
 #include <libavformat/avformat.h>
 #include <libswscale/swscale.h>
-#include <libpostproc/postprocess.h>
 }
 #include "ffmpeg.h"
 #include "ffmpeg_content.h"
 #include "exceptions.h"
+#include "util.h"
 
 #include "i18n.h"
 
@@ -62,7 +62,7 @@ FFmpeg::~FFmpeg ()
                }
        }
 
-       avcodec_free_frame (&_frame);
+       av_frame_free (&_frame);
        
        avformat_close_input (&_format_context);
 }
@@ -85,7 +85,7 @@ FFmpeg::setup_general ()
        av_register_all ();
 
        _file_group.set_paths (_ffmpeg_content->paths ());
-       _avio_buffer = static_cast<uint8_t*> (av_malloc (_avio_buffer_size));
+       _avio_buffer = static_cast<uint8_t*> (wrapped_av_malloc (_avio_buffer_size));
        _avio_context = avio_alloc_context (_avio_buffer, _avio_buffer_size, 0, this, avio_read_wrapper, 0, avio_seek_wrapper);
        _format_context = avformat_alloc_context ();
        _format_context->pb = _avio_context;
@@ -136,7 +136,7 @@ FFmpeg::setup_general ()
                }
        }
 
-       _frame = avcodec_alloc_frame ();
+       _frame = av_frame_alloc ();
        if (_frame == 0) {
                throw DecodeError (N_("could not allocate frame"));
        }
@@ -146,7 +146,8 @@ void
 FFmpeg::setup_video ()
 {
        boost::mutex::scoped_lock lm (_mutex);
-       
+
+       assert (_video_stream >= 0);
        AVCodecContext* context = _format_context->streams[_video_stream]->codec;
        AVCodec* codec = avcodec_find_decoder (context->codec_id);