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...
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid):
Add AMR mimetypes (since those are recognized in ffmpeg).
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
(gst_ffmpegdec_register):
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_register):
Register law codecs too, add time debug. Use ANY for template caps
since we don't necessarily have available decoders for recognized
formats.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt):
Add extradata to huffyuv, sync RGBA32 up with gst-plugins.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_query),
(gst_ffmpegdec_event):
Make somewhat clearer.
Original commit message from CVS:
* TODO:
Update since some tasks are done.
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_formatid_to_caps):
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_type_find):
Add correct mimetype for FLI video, restore correct typefind
priority.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect),
(gst_ffmpegdec_frame), (gst_ffmpegdec_handle_event),
(gst_ffmpegdec_chain):
More debug, re-fix MPEG-2 (yes, I broke it already!).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open),
(gst_ffmpegdec_connect), (gst_ffmpegdec_negotiate),
(gst_ffmpegdec_frame), (gst_ffmpegdec_handle_event):
Add some more debug, fix for B-frame containing XviD movies.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid), (gst_ffmpeg_get_codecid_longname):
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
Re-add H263I as intel-h263 (which is not h263-compliant...).
Increase rank of mpeg2video since it plays more videos than
its gst-plugins counterpart, with no regressions.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
(gst_ffmpegdec_chain):
Separate buffer handling from actual decoding, handle pending
frames (for B-frames and so on) so we catch the last frames
before EOS, prepare for some timestamp changes to make playback
of movies with B-frames smoother (not done yet).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_query), (gst_ffmpegdec_event), (gst_ffmpegdec_open),
(gst_ffmpegdec_negotiate), (gst_ffmpegdec_chain):
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_init),
(gst_ffmpegdemux_close), (gst_ffmpegdemux_src_query),
(gst_ffmpegdemux_loop):
Add simple query functions. Seeking is only cosmetic, it's not
actually filled in yet (in ffmpegdec).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_init),
(gst_ffmpegenc_link), (gst_ffmpegenc_chain_video):
Remove EMU_EDGE, since that really fixes#162905. Revert
previous hacks.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_link),
(gst_ffmpegenc_chain_video):
Workaround memory issues (#162905).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_type_find):
Decrease certainty a bit so we use flxdec for .flx videos.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Disable parsing for MJPEG input since that's already cut at
frame-boundaries. Fixes#163340.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid):
Set property incompatible with DV demuxer so that it won't
infinitely plug demuxers to each other. Fixes playback of .dv
streams in Totem.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_register):
Don't cripple rank as a hack to not register typefind functions.
Instead, just use a boolean for that. This makes ID3-tagged MP3
files play even if mad is not installed.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
Remove rank from ffdec_h263i until I know how it's different
from ffdec_h263. Fixes#155163.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open),
(gst_ffmpegdata_peek), (gst_ffmpegdata_read),
(gst_ffmpegdata_write), (gst_ffmpegdata_seek),
(gst_ffmpegdata_close):
Add debug. Don't EOS unless all data was read.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_peek),
(gst_ffmpegdata_read), (gst_ffmpegdata_seek):
Some "seeking" hacks, and separate peek from read (read = peek +
flush) so seek can use peek as well to workaround typefind. With
this, I'm able to play several of the gaming format movies in
Totem.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_formatid_to_caps):
Add ID3 mime. Should partially fix#155274 (although raw mp3
sounds awful, it doesn't parse correctly in the decoder-only
case).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_close), (gst_ffmpegdec_open), (gst_ffmpegdec_chain):
Include optional parser if supported (currently only MPEG-1/-2
video). This fixes playback of MPEG-1/-2 videos using
ffdec_mpeg2video.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_base_init),
(gst_ffmpegenc_init), (gst_ffmpegenc_getcaps),
(gst_ffmpegenc_link):
Move setup of sink caps (accepted formats) to a separate function
rather than doing it on initialization.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid), (gst_ffmpeg_get_codecid_longname),
(gst_ffmpeg_avpicture_fill):
Add new codecIDs from new snapshot (Thu Dec 16 11:27:18 2004).
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_src_event),
(gst_ffmpegdemux_type_find), (gst_ffmpegdemux_loop):
* ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop):
API updates.
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_read),
(gst_ffmpegdata_seek):
A slightly smarter approach, but it still needs lost of work to
be reliable in any way...
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
(gst_ffmpegdec_close), (gst_ffmpegdec_connect),
(gst_ffmpegdec_negotiate), (gst_ffmpegdec_chain):
Move negotiation outside the _chain function, and use the
codec PAR if available and prefer it over demuxer PAR (since
this is usually the right thing to do). Fixes#159755.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_pad_link):
Fix memleak (#154815).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_pad_link),
(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
(gst_ffmpegcsp_change_state):
Some sync with ffmpegcolorspace (flatten AVFrame).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Prevent division by zero (#155212).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_pad_link):
Backport changes from ffmpegcolorspace (gst-plugins) so we can
then move the whole of this plugin back and deprecate this (no,
I'm not insane).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_init),
(gst_ffmpegenc_chain_video):
Set chain function before adding pad, fix memleak on error, error
out on encode errors because none of subsequent frames will work
any better (this is not input dependent).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid):
Negotiation fixes for real video codecs.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
Fix timestamps. Quite some of the gaming formats work now. :).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_caps_to_codecid):
Generalized palette functions, add actual mimetypes for wing
commander formats.
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain):
Ffmpeg has internal palette functions, so I noticed.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Actually remove all palette code.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_pixfmt_to_caps),
(gst_ffmpeg_caps_to_pixfmt):
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_pad_link),
(gst_ffmpegcsp_init), (gst_ffmpegcsp_chain),
(gst_ffmpegcsp_change_state), (gst_ffmpegcsp_register):
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Move palette handling over from the decoder to the colorspace
conversion plugin (where you would expect it).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_caps_to_codecid):
Simplify codec_data handling.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Update timestamp for every new buffer that we output. Improves
audio playback for several files that have multiple audio chunks
per buffer.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register):
msmpeg4v3 should be priority as well, else it will choose divxdec
first (which we don't want).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid):
WMV extradata (make #152798 work). J-frames are only available
in the bitstream if the J-frame bit has been set in the extradata.
If not (or if extradata is not provided), the movie won't play.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_close),
(gst_ffmpegdec_connect), (gst_ffmpegdec_chain):
Only close ffmpeg if privdata was allocated (else it segfaults).
Autodetect encoding bugs and workaround it. Don't copy data if
decoding failed.
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
Use read_frame() instead of read_packet() which is obsolete.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_to_codecid):
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_read):
Do some more random property setting. Fix for if there's less than
ffmpeg-default-buffersize (32kB) data in a file _and_ there's an
event pending. Partially fixes#142320.
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c: (plugin_init):
Remove redundant calls which are called internally already.
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_with_codecid):
Indenting...
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop),
(gst_ffmpegdemux_register):
Remove typefind functions and rank for demuxers for any demuxer
that we already have in GStreamer.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_with_codecid):
don't operate on undefined variables (fixes#135145)
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_src_event),
(gst_ffmpegdemux_src_query), (gst_ffmpegdemux_src_convert),
(gst_ffmpegdemux_open), (gst_ffmpegdemux_loop):
* ext/ffmpeg/gstffmpegprotocol.c: (gst_ffmpegdata_open),
(gst_ffmpegdata_read), (gst_ffmpegdata_write),
(gst_ffmpegdata_seek):
Fix up demuxer. Works now for all my files that I tried, even
quicktime. I basically hack around the super-oversimplistic file
I/O handling in ffmpeg in several ways together, and I also hack
around the fairly annoying EOS-will-pause-the-source-element in
GStreamer itself.
This code is not pretty.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid):
block_align and bitrate caps property were lost for wma
use codec_data instead of flag1 and flag2
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c
* ext/ffmpeg/gstffmpegenc.c
change plugins category to meet our new naming standard :
Codec/Encoder|Decoder/Audio|Video
suggested by bilboed, approved by Company
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_caps_to_codecid):
WAV/IMA-ADPCM -> DVI ADPCM.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_type_find):
reduce maximum probability in typefinding to POSSIBLE. prevents
misidentification of my mp3s as video/mpeg
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_get_palette),
(gst_ffmpeg_set_palette), (gst_ffmpeg_codecid_to_caps),
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_smpfmt),
(gst_ffmpeg_caps_to_pixfmt), (gst_ffmpeg_caps_with_codectype),
(gst_ffmpeg_caps_with_codecid), (gst_ffmpeg_caps_to_codecid):
* ext/ffmpeg/gstffmpegcodecmap.h:
Change some function names to reflect that they don't really
_return_ something, but rather _use_ something to fill a
AVCodecContext. s/to/with/. Restructure the extradata handling,
it's now not picking up the type from the caps but rather
using the type as provided in the function. This is a lot
cleaner. Implement MS RLE palette pickup.
* ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_pad_link):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect):
Sync with the above function name changes.
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_close),
(gst_ffmpegdec_open), (gst_ffmpegdec_connect),
(gst_ffmpegdec_chain), (gst_ffmpegdec_change_state):
Add some hacks to convert palette-based raw image formats to
RGBA32. Ugly, but I don't know how else to handle palette-based
RGB, since img_convert() (and thus ffcolorspace) doesn't accept
a palette as argument.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
Add MS Video v1 (video/x-msvideocodec, CODEC_ID_MSVIDEO1).
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_base_init):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_base_init):
Fix category.
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_class_init),
(gst_ffmpegdemux_init), (gst_ffmpegdemux_close):
Slightly rewrite the init function, old one was ugly. Also remove
dispose function since it's obsolete, the change_state function
cleans up already. Also fixes segfault in test-app
gstreamer/tests/instantiate/create