Commit graph

318 commits

Author SHA1 Message Date
Thomas Vander Stichele
231adecd88 ext/ffmpeg/: respect pixel-aspect-ratio when encoding.
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.
2006-02-12 19:54:16 +00:00
Edward Hervey
76083c9e99 ext/ffmpeg/gstffmpegdemux.c: Add Tag support and keyframe seeking (for those formats where ffmpeg actually fills in t...
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.
2006-02-12 16:47:50 +00:00
Thomas Vander Stichele
25a4d049dd ext/ffmpeg/gstffmpeg.c: set correct version on the plug-in - the GStreamer
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.
2006-02-11 22:16:43 +00:00
Thomas Vander Stichele
929a05fa83 ext/ffmpeg/gstffmpegenc.c: debug and magic number fixes
Original commit message from CVS:

* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_class_init),
(gst_ffmpegenc_init), (gst_ffmpegenc_setcaps):
debug and magic number fixes
2006-02-11 12:04:31 +00:00
Edward Hervey
bcea38b0d8 ext/ffmpeg/: Welcome the demuxers to 0.10 :)
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.
2006-02-10 19:42:19 +00:00
Edward Hervey
5081f02178 ext/ffmpeg/gstffmpegcodecmap.c: added CODEC_ID_FLV1 <==> 'video/x-flash-video,flvversion=1' conversion.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
added CODEC_ID_FLV1 <==> 'video/x-flash-video,flvversion=1' conversion.
2006-02-10 10:56:05 +00:00
Thomas Vander Stichele
823bc0ce7f ext/ffmpeg/: debug recurring events at LOG level do some timestamp setting heuristics on the pcache, with the net res...
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.
2006-02-06 17:51:41 +00:00
Tim-Philipp Müller
a479380146 ext/ffmpeg/gstffmpegcodecmap.c: Buffers aren't boxed types any longer.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_get_palette):
Buffers aren't boxed types any longer.
2006-02-04 13:08:10 +00:00
Edgard Lima
c161d30d87 Just make it compile with --disable-gst-debug.
Original commit message from CVS:
Just make it compile with --disable-gst-debug.
2006-02-03 18:39:38 +00:00
Andy Wingo
e8911c0b5f ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_register): Reorder case statements to make control flow more clear.
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.
2006-02-02 12:25:43 +00:00
Christian Schaller
fe739ceba7 set rank None for mp3 and mpeg2 element, fixes 162833
Original commit message from CVS:
set rank None for mp3 and mpeg2 element, fixes 162833
2006-02-02 10:41:52 +00:00
Tim-Philipp Müller
1df8496ffa ext/ffmpeg/gstffmpegcodecmap.c: Pad codec data buffer to a size that is a multiple of 16, which ffmpeg apparently nee...
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.
2006-01-26 17:18:37 +00:00
Edward Hervey
e72a376411 ext/ffmpeg/gstffmpegcodecmap.c: Added CODEC_ID_SMC <==> video/x-smc caps
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 :(
2006-01-23 15:13:29 +00:00
Edward Hervey
4ec81ff7fa ext/ffmpeg/: ffdeinterlace port to 0.10.
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...
2006-01-20 14:17:16 +00:00
Edward Hervey
86c5ad28d2 ext/ffmpeg/gstffmpegenc.c: Caps weren't set on outgoing audio buffers.
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
2006-01-20 13:56:55 +00:00
Edward Hervey
3c1bbb0a60 ext/ffmpeg/gstffmpegdec.c: Memleak fix.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
Memleak fix.
Closes #326704
2006-01-17 09:24:40 +00:00
Edward Hervey
d5063dcd21 ext/ffmpeg/gstffmpegdec.c: Add exception for Indeo3 keyframe detection until upstream ffmpeg behaves properly.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Add exception for Indeo3 keyframe detection until upstream ffmpeg
behaves properly.
2006-01-11 15:31:24 +00:00
Edward Hervey
b4e1a56104 ext/ffmpeg/gstffmpegcodecmap.c: Update ffmpeg_codec_id <=> mimetype conversions
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
Update ffmpeg_codec_id <=> mimetype conversions
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Finer grained keyframe detection
2005-12-19 15:47:13 +00:00
Sebastien Cote
38dc71e266 ext/ffmpeg/: Do proper locking around avcodec_open() and avcodec_close()
Original commit message from CVS:
* ext/ffmpeg/gstffmpeg.c: (gst_ffmpeg_avcodec_open),
(gst_ffmpeg_avcodec_close):
* ext/ffmpeg/gstffmpeg.h:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_close),
(gst_ffmpegdec_open):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_dispose),
(gst_ffmpegenc_getcaps), (gst_ffmpegenc_setcaps),
(gst_ffmpegenc_change_state):
Do proper locking around avcodec_open() and avcodec_close()
(fixes #322254, patch by: Sebastien Cote and Luca Ognibene).
2005-12-16 16:23:05 +00:00
Edward Hervey
3fe565fc1d ext/ffmpeg/gstffmpegdec.c: So, stupid ffmpeg.... Not all [en|de]coders set AVFrame->type.
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.
2005-12-07 12:14:34 +00:00
Thomas Vander Stichele
9783a9207a expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:57:08 +00:00
Andy Wingo
f5ce13df63 ext/ffmpeg/: Update for alloc_buffer changes.
Original commit message from CVS:
2005-12-05  Andy Wingo  <wingo@pobox.com>

* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_get_buffer),
(gst_ffmpegdec_frame):
* ext/ffmpeg/gstffmpegdeinterlace.c: (gst_ffmpegdeinterlace_chain):
* ext/ffmpeg/gstffmpegscale.c: (gst_ffmpegscale_chain): Update for
alloc_buffer changes.
2005-12-05 13:04:39 +00:00
Julien Moutte
fbf165cc62 ext/ffmpeg/gstffmpegenc.c: Add rtp-payload-size property.
Original commit message from CVS:
2005-11-28  Julien MOUTTE  <julien@moutte.net>

* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_class_init),
(gst_ffmpegenc_init), (gst_ffmpegenc_getcaps),
(gst_ffmpegenc_setcaps), (gst_ffmpegenc_set_property),
(gst_ffmpegenc_get_property): Add rtp-payload-size property.
2005-11-28 17:12:13 +00:00
Tim-Philipp Müller
85a322a461 ext/ffmpeg/gstffmpegdec.c: Improve pixel aspect ratio handling when both the demuxer and the decoder provide a pixel ...
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.
2005-11-28 11:25:56 +00:00
Jan Schmidt
b6a91dafbc ext/ffmpeg/gstffmpegdec.c: Updated API
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame):
Updated API
2005-11-23 14:53:06 +00:00
Jan Schmidt
1d43798752 ext/ffmpeg/gstffmpegcodecmap.c: Whoops - handle input video caps that don't have a framerate
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
2005-11-22 23:33:41 +00:00
Jan Schmidt
602e47bf4a Remove mentions of ffmpegcolorspace now that it's in gst-plugins-base
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
2005-11-22 23:12:51 +00:00
Andy Wingo
93242ea4c3 ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_sink_event): Run update-funcnames.
Original commit message from CVS:
2005-11-22  Andy Wingo  <wingo@pobox.com>

* ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_sink_event): Run
update-funcnames.
2005-11-22 12:01:00 +00:00
Tim-Philipp Müller
888d95d8bd ext/ffmpeg/gstffmpegdec.c: Remove GST_STREAM_LOCK here, it is not needed any longer.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event):
Remove GST_STREAM_LOCK here, it is not needed any longer.
2005-11-21 18:26:23 +00:00
Luca Ognibene
8bf6ddc9d0 ext/ffmpeg/gstffmpegdec.c: My previous commit was not completly correct.. I've disabled our _get_buffer function unti...
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.
2005-11-16 22:53:26 +00:00
Luca Ognibene
e6ada24827 ext/ffmpeg/gstffmpegdec.c: Fix some segfaults while seeking. When i have unreffed the buffer in _release_buffer i sho...
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.
2005-11-16 21:48:06 +00:00
Tim-Philipp Müller
b094df3973 ext/ffmpeg/gstffmpegdec.c: Don't crash in debug message by dereferencing the NULL buffer gst_ffmpegdec_frame() gets p...
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.
2005-11-14 16:00:38 +00:00
Edward Hervey
7460a44fab ext/ffmpeg/gstffmpegdec.c: Properly unref a buffer if we drop it.
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.
2005-11-11 16:49:41 +00:00
Edward Hervey
b95b6837d1 ext/ffmpeg/gstffmpegdec.c: Properly unref a buffer if we drop it.
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.
2005-11-11 14:43:01 +00:00
Tim-Philipp Müller
13a44d4f6a ext/ffmpeg/gstffmpegdec.c: Backported some fixes from 0.8. Most importantly, use demuxer's timestamping information i...
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.
2005-10-26 17:41:58 +00:00
Julien Moutte
eb2e4a055a ext/ffmpeg/Makefile.am: Fix build.
Original commit message from CVS:
2005-10-23  Julien MOUTTE  <julien@moutte.net>

* ext/ffmpeg/Makefile.am: Fix build.
* 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):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_register): Add QDM2
and TrueMotion 2.
2005-10-23 16:07:46 +00:00
Wim Taymans
8cb186a6d5 ext/ffmpeg/gstffmpegdec.c: newsegment API update.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event):
newsegment API update.
2005-10-11 16:38:08 +00:00
Thomas Vander Stichele
a2f57c7b3f ext/ffmpeg/gstffmpegcodecmap.c: we have better ways of debugging caps
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.
2005-10-05 17:53:00 +00:00
Thomas Vander Stichele
4906947d18 replace do { } while (0); with { }
Original commit message from CVS:
replace do { } while (0); with { }
2005-09-30 09:29:22 +00:00
Wim Taymans
a5a31c9851 ext/ffmpeg/gstffmpegenc.c: Do not limit quantizer values so we can get realy low bitrates.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps):
Do not limit quantizer values so we can get realy low
bitrates.
2005-09-22 12:55:30 +00:00
Wim Taymans
00aa9d5fba ext/ffmpeg/gstffmpegcodecmap.h: Avoid division by 0 errors.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.h:
Avoid division by 0 errors.
2005-09-20 10:50:22 +00:00
Wim Taymans
f9a174c86e ext/ffmpeg/gstffmpegdec.c: Don't blindly assume there is a codec.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_setcaps),
(gst_ffmpegdec_frame):
Don't blindly assume there is a codec.
2005-09-19 13:45:38 +00:00
Wim Taymans
10dea5bfbb ext/ffmpeg/gstffmpegcodecmap.c: Better framerate setting.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_pixfmt):
Better framerate setting.
2005-09-19 12:01:27 +00:00
Thomas Vander Stichele
fa992c26d6 fix up newsegment
Original commit message from CVS:
fix up newsegment
2005-09-16 14:44:42 +00:00
Thomas Vander Stichele
2e02b4f6f5 ext/ffmpeg/: shut up the logging while it's probing for formats
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
2005-09-13 12:16:32 +00:00
Andy Wingo
a02a444d68 Update for state change type and macro changes.
Original commit message from CVS:
2005-09-05  Andy Wingo  <wingo@pobox.com>

* Update for state change type and macro changes.
2005-09-05 14:06:29 +00:00
Wim Taymans
0c53925656 ext/ffmpeg/gstffmpegenc.c: Fix return values from the setcaps function.
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.
2005-08-19 15:23:39 +00:00
Ronald S. Bultje
3a81f04d60 ext/ffmpeg/gstffmpegdec.c: Handle return values of gst_pad_push().
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().
2005-08-16 09:50:03 +00:00
Ronald S. Bultje
e175b7ab78 ext/ffmpeg/gstffmpegcodecmap.c: Forwardport from 0.8 to implement QT-RLE.
Original commit message from CVS:
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
Forwardport from 0.8 to implement QT-RLE.
2005-08-15 13:46:16 +00:00
Ronald S. Bultje
415fc3df0e ext/ffmpeg/gstffmpegdec.c: Flush buffers in flush-stop, not flush-start, since the task is not stopped yet in flush-s...
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.
2005-08-15 13:27:03 +00:00