Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_close),
(gst_ffmpegdec_setcaps), (gst_ffmpegdec_change_state):
make _open and _close as functions that should be
called with the object lock instead of them taking a
lock themselves. This fixes a deadlock when
_open fails.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Don't use gst_pad_alloc_buffer() for frames with palette,
as we'll artificially shorten the size of buffers in that
case and GstBaseTransform will complain about unit size
issues if we use _alloc_buffer() with the full size.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
... can't adjust buffer size of NULL buffers though
(as happens when seeking in video from #327075).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_get_palette),
(gst_ffmpeg_set_palette):
Use AVPALETTE_SIZE macro instead of magic value for clarity.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
In GStreamer, the size of the palette is not part of
GST_BUFFER_SIZE, so adjust buffer size of outgoing buffers
accordingly if there's a palette (fixes#327028, based on
patch by: Fabrizio Gennari).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_release_buffer),
(gst_ffmpegdec_frame):
More fixes for keyframe detection in ffmpeg decoders...
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_smpfmt_to_caps):
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_setcaps),
(gst_ffmpegdec_negotiate), (gst_ffmpegdec_frame),
(gst_ffmpegdec_chain):
debug recurring events at LOG level
do some timestamp setting heuristics on the pcache, with the
net result of having more buffers have approximately correct
timestamps.
This allows playback of h263/3gp files taking fps from the demuxer,
which before always set GST_CLOCK_TIME_NONE as timestamp.
Original commit message from CVS:
2006-02-02 Andy Wingo <wingo@pobox.com>
* ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_register): Reorder case
statements to make control flow more clear.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
Added CODEC_ID_SMC <==> video/x-smc caps
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
I hate ffmpeg... no keyframe information at all for VP3, so we have
to assume they're all keyframes :(
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Add exception for Indeo3 keyframe detection until upstream ffmpeg
behaves properly.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
So, stupid ffmpeg.... Not all [en|de]coders set AVFrame->type.
This should handle the case where AVFrame->reference is set to 1 (which
is the equivalent of a keyframe).
Also fixes#323286.
I tried a truckload of other files with this modification and it didn't seem
to break playback.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_close),
(gst_ffmpegdec_setcaps), (gst_ffmpegdec_add_pixel_aspect_ratio),
(gst_ffmpegdec_negotiate):
Improve pixel aspect ratio handling when both the demuxer and the
decoder provide a pixel aspect ratio: if one of the two ratios is
1:1, use the other one; if both are non-1:1, use the one provided
by the decoder (fixes matroska starwars test files); also add some
locking here and there.
Original commit message from CVS:
* HACKING:
* ext/ffmpeg/gstffmpegcolorspace.c:
Remove mentions of ffmpegcolorspace now that it's in
gst-plugins-base
* ext/ffmpeg/Makefile.am:
Link to gstreamer libraries
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_pixfmt):
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_close), (gst_ffmpegdec_setcaps),
(gst_ffmpegdec_negotiate), (gst_ffmpegdec_frame):
Convert to fractional framerate
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
* ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_sink_event): Run
update-funcnames.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_get_buffer):
My previous commit was not completly correct.. I've disabled
our _get_buffer function until we make it work 100%. I've opened a bug
(#321662) for this issue.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_release_buffer),
(gst_ffmpegdec_frame):
Fix some segfaults while seeking. When i have unreffed
the buffer in _release_buffer i should also set picture->opaque to
NULL otherwise sometimes it can be unreffed another time in
_frame causing an invalid read/write.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
(gst_ffmpegdec_sink_event):
Don't crash in debug message by dereferencing the NULL buffer
gst_ffmpegdec_frame() gets passed on EOS. Take STREAM_LOCK for
EOS, TAG, NEWSEGMENT and FLUSH_STOP events.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_get_buffer),
(gst_ffmpegdec_release_buffer), (gst_ffmpegdec_frame),
(gst_ffmpegdec_sink_event):
Properly unref a buffer if we drop it.
Esthetic fixes.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_get_buffer),
(gst_ffmpegdec_release_buffer), (gst_ffmpegdec_frame),
(gst_ffmpegdec_sink_event):
Properly unref a buffer if we drop it.
Esthetic fixes.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_close), (gst_ffmpegdec_open),
(gst_ffmpegdec_setcaps), (gst_ffmpegdec_negotiate),
(gst_ffmpegdec_frame), (gst_ffmpegdec_sink_event),
(gst_ffmpegdec_chain):
Backported some fixes from 0.8. Most importantly, use
demuxer's timestamping information if we use its framerate
value. Makes divx play properly again among other things
(#319616, #313970, #317596). Did not backport memory leak
fix.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
(gst_ffmpegdec_sink_event), (gst_ffmpegdec_chain):
Handle return values of gst_pad_push().
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event):
Flush buffers in flush-stop, not flush-start, since the task is not
stopped yet in flush-stop, which may lead to odd crashes in random
places inside libavcodec.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c:
Make type explicit.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_release_buffer),
(gst_ffmpegdec_frame), (gst_ffmpegdec_chain),
(gst_ffmpegdec_change_state):
When we provide a buffer and get a valid return value (data was
read), but no output (have-data==0), then we need to reuse this
same output buffer, because it may be used for caching output
data. Fixes#307353.
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
Timestamp fix.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c (struct _GstFFMpegDec)
(gst_ffmpegdec_open, gst_ffmpegdec_negotiate):
Cache the pixel format value and renegotiate the pipeline
if this value changes. Fixes segfault when decoding a
stream with different colorspaces like a sequence of jpeg.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_formatid_to_caps),
(gst_ffmpeg_formatid_get_codecids), (gst_ffmpeg_caps_to_codecid):
add flv encoder, fix#309050
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
set both DELTA_UNIT and KEY_UNIT
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
use DELTA_UNIT and not the deprecated KEY_UNIT
fix#309049
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Only do timestamp interpolation for delayed streams (containing
B-frames). Fixes stuttering playback of ASF files (#306770).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_change_state):
First close the ffmpeg context than try to free last_buffer.
fix#306893
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open),
(gst_ffmpegdec_handle_event), (gst_ffmpegdec_register):
Disable parsing on h264 for now, seems to break avc decoding.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c (gst_ffmpegenc_chain_video):
* ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_chain):
Makes ffmpegdec and ffmpegenc use these functions
and remove a comment from a previuos patch
* ext/ffmpeg/gstffmpegcodecmap.h:
Add two utility functions to convert the pts from/to
the ffmpeg format
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_open), (gst_ffmpegdec_connect),
(gst_ffmpegdec_get_buffer), (gst_ffmpegdec_release_buffer),
(gst_ffmpegdec_frame), (gst_ffmpegdec_change_state):
Re-re-enable get_/release_buffer functions, removes a few more
percent of our CPU usage (#301783).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_handle_event):
Use CODEC_CAP_DELAY and remove max-10-delayed-frames hack.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_caps_to_codecid),
(gst_ffmpeg_get_codecid_longname):
Add ALAC, shorten and some more in new FFMPEG snapshot of
21/4, somewhere this afternoon.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_register):
Add warnings to decoder registration to easier add new ones
during snapshot updates.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Next try at using pad_alloc_buffer (#300923).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Revert previous, we cannot call pad_alloc_buffer() before being
negotiated.