diff options
author | Edward Hervey <bilboed@bilboed.com> | 2009-11-09 19:19:25 +0100 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2009-11-09 19:21:35 +0100 |
commit | a1384f990b3c58e933bd0e8c8ec779180f1925bc (patch) | |
tree | 6372db266ddc83d17ba6f4ed894da3e9216714dc | |
parent | 72cd8f1843d2a3b3118b489d727d64bf6d91ad69 (diff) |
ffmpegdec: Only restore default in AVCodecContext when needed.
Resetting default values is currently very complex in libavcodec, so
we only call it when needed (i.e. when a context was previously used).
Shaves off 10% of the setup of a decoder.
-rw-r--r-- | ext/ffmpeg/gstffmpegdec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index a294e18..b23c6c2 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -714,11 +714,11 @@ gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps) GST_OBJECT_UNLOCK (ffmpegdec); gst_ffmpegdec_drain (ffmpegdec); GST_OBJECT_LOCK (ffmpegdec); - } - gst_ffmpegdec_close (ffmpegdec); + gst_ffmpegdec_close (ffmpegdec); - /* set defaults */ - avcodec_get_context_defaults (ffmpegdec->context); + /* and reset the defaults that were set when a context is created */ + avcodec_get_context_defaults (ffmpegdec->context); + } /* set buffer functions */ ffmpegdec->context->get_buffer = gst_ffmpegdec_get_buffer; |