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_caps_to_pixfmt):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_getcaps):
respect pixel-aspect-ratio when encoding.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_init),
(gst_ffmpegdemux_close), (gst_ffmpegdemux_handle_seek),
(gst_ffmpegdemux_add), (my_safe_copy), (gst_ffmpegdemux_read_tags),
(gst_ffmpegdemux_open), (gst_ffmpegdemux_loop):
Add Tag support and keyframe seeking (for those formats where ffmpeg
actually fills in the index).
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_peek),
(gst_ffmpegdata_read), (gst_ffmpegdata_seek):
Add support for size querying.
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c:
set correct version on the plug-in - the GStreamer
FFMpeg version. I could swear I had already done this
before.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_class_init),
(gst_ffmpegenc_init), (gst_ffmpegenc_setcaps):
debug and magic number fixes
Original commit message from CVS:
* ext/ffmpeg/Makefile.am:
* ext/ffmpeg/gstffmpeg.c: (plugin_init):
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_base_init),
(gst_ffmpegdemux_init), (gst_ffmpegdemux_stream_from_pad),
(gst_ffmpegdemux_handle_seek), (gst_ffmpegdemux_src_event),
(gst_ffmpegdemux_src_query_list), (gst_ffmpegdemux_src_query),
(gst_ffmpegdemux_add), (gst_ffmpegdemux_open),
(gst_ffmpegdemux_loop), (gst_ffmpegdemux_sink_activate),
(gst_ffmpegdemux_sink_activate_pull),
(gst_ffmpegdemux_change_state), (gst_ffmpegdemux_register):
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open),
(gst_ffmpegdata_peek), (gst_ffmpegdata_read),
(gst_ffmpegdata_write), (gst_ffmpegdata_seek),
(gst_ffmpegdata_close):
Welcome the demuxers to 0.10 :)
For the time being the demuxers work only pull-based.
Seeking, querying works.
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_caps_with_codecid):
Pad codec data buffer to a size that is a multiple of 16, which
ffmpeg apparently needs for optimized/unchecked access to the
data. Fixes crashes with HD h264 video.
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:
reviewed by: Edward Hervey <edward@fluendo.com>
* ext/ffmpeg/Makefile.am:
* ext/ffmpeg/gstffmpeg.c: (plugin_init):
* ext/ffmpeg/gstffmpegdeinterlace.c:
(gst_ffmpegdeinterlace_base_init),
(gst_ffmpegdeinterlace_class_init),
(gst_ffmpegdeinterlace_sink_setcaps), (gst_ffmpegdeinterlace_init),
(gst_ffmpegdeinterlace_chain), (gst_ffmpegdeinterlace_register):
ffdeinterlace port to 0.10.
Could be made a subclass of GstBaseTransform later on...
Original commit message from CVS:
Reviewed by : Edward Hervey <edward@fluendo.com>
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_audio):
Caps weren't set on outgoing audio buffers.
Closes#327861
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:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_pixfmt):
Whoops - handle input video caps that don't have a framerate
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/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
we have better ways of debugging caps
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps):
ye gods. get_template_caps doesn't return a ref, so when the
pad was not linked, crashes would ensue. Serves me right.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps):
Do not limit quantizer values so we can get realy low
bitrates.
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c: (gst_ffmpeg_log_callback), (plugin_init):
* ext/ffmpeg/gstffmpeg.h:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_getcaps):
shut up the logging while it's probing for formats
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps),
(gst_ffmpegenc_chain_video), (gst_ffmpegenc_change_state):
Fix return values from the setcaps function.
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:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegcodecmap.h:
Actually initialize value (#311802).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_codecid):
Add x264 to muxer (it was added to template, but I forgot to add
h264 caps recognition for some reason).
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:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open):
Strip off private flags from context value (#310054).
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:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpeg.h:
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open),
(gst_ffmpegdata_write):
Add a stream-header flag to set stream-header caps on some streams,
such as (in this case) flv (fixes#309051).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
timestamp is a GstClockTime, not a double..
fix#309149 and maybe others bug
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:
Reviewed by: Luca Ognibene <luogni@tin.it>
* ext/ffmpeg/gstffmpegenc.c (gst_ffmpegenc_chain_video):
set the GST_BUFFER_DELTA_UNIT while encoding
fix#308804
Original commit message from CVS:
* NEWS:
* RELEASE:
* TODO:
* configure.ac:
Release 0.8.5 "For the better of the world".
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_with_codecid):
Stay backwards compatible a short while longer (SVQ3).
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/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid):
Remove weird flags from SVQ3 flags and just give full atom,
like other files; fixes frame order problems (#306530).
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:
* configure.ac:
scale requires -libs (video.h).
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_getcaps):
Don't crash if open failed.
Original commit message from CVS:
* ext/ffmpeg/Makefile.am:
* ext/ffmpeg/gstffmpegdeinterlace.c:
* ext/ffmpeg/gstffmpeg.c (plugin_init):
Add ffdeinterlace element
* TODO:
yo, another thing removed from the TODO
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c (plugin_init):
* ext/ffmpeg/Makefile.am:
* ext/ffmpeg/gstffmpegscale.c:
Add ffvideoscale element (#303727)
* TODO:
update TODO
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:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_pixfmt_to_caps):
Add JPEG-formatted YUV enums.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_class_init),
(gst_ffmpegmux_finalize), (gst_ffmpegmux_loop),
(gst_ffmpegmux_change_state):
Fix possible segfaults (#302017).
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:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_getcaps):
Don't crash if avcodec_open failed (#301717).
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.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_handle_event):
Safety bet to not completely crush the system on EOS. Fixes the
bad behaviour of #300200 (doesn't fix the actual issue).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open),
(gst_ffmpegdec_handle_event):
Fix breakage of testsuite by adding keyframe syncing; changed
to sync only for some streamtypes (MPEG-2/-4, for now).
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_add):
Add tags.
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c: (plugin_init):
Enable muxers (only mp4 muxer for now).
* ext/ffmpeg/gstffmpegcodecmap.c:
(gst_ffmpeg_formatid_get_codecids), (gst_ffmpeg_caps_to_codecid):
* ext/ffmpeg/gstffmpegcodecmap.h:
Fix a bunch of typos in codec-id lookup (false/true return value
mixup), add a codec-id list retrieval function (because ffmpeg
does not provide one). With that, we can make valid pad templates.
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_init),
(gst_ffmpegmux_connect), (gst_ffmpegmux_loop),
(gst_ffmpegmux_change_state), (gst_ffmpegmux_get_id_caps),
(gst_ffmpegmux_register):
Fix for whatever changed since I last tried this. Works for MP4
muxing.
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open),
(gst_ffmpegdata_peek), (gst_ffmpegdata_write),
(gst_ffmpegdata_seek), (gst_ffmpegdata_close):
Update obviously-untested write code...
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
(gst_ffmpegdec_chain), (gst_ffmpegdec_register):
Reduce the rank of the mpeg2 decoder back below mpeg2dec
Use the parser to reorder pts times. Fixes mpeg playback
without changing any other files I tested.
Use the repeat_pict flag to correctly set durations
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid):
Change caps of MJPEGB to not interfere with MJPEG/JPEG.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
Remove rank for SP5X, no clue what that is...