Commit graph

711 commits

Author SHA1 Message Date
Wim Taymans
957c728b3d dec: use input timestamp diff for duration estimation
Use the diff between input timestamps to estimate the duration when no duration
is set on input buffers. Only do this when there are no reordered input
timestamps. Improves interpolation in DTS mode when no input duration is set.
2010-12-12 11:20:22 +01:00
Mark Nauwelaerts
e837ec505d ffmpegenc: ensure proper clean state prior to (re-)negotiation
Fixes #632691.
2010-10-25 12:16:44 +02:00
Wim Taymans
d82633c4e3 ffdec: don't destroy the parser state
When we flush the parser cache, we only need to clear the bytes of the cache,
not the complete state of the cache. In the case of H264 this doesn't require
the parser to receive a new SPS/PPS after a DISCONT buffer.
2010-10-22 13:05:16 +02:00
Wim Taymans
cc2a6e493b ffdec: be more careful with DTS timestamp interpolation
Don't use -1 and 0 duration buffers to calculate next output timestamp as they
are very likely wrong.

Fixes #632877
2010-10-22 13:05:16 +02:00
Stefan Kost
07ce1d1906 various: add missing G_PARAM_STATIC_STRINGS flags 2010-10-19 17:26:08 +03:00
Sebastian Dröge
51fe1a04e6 ffmpeg: Add mapping for YUVA420P <-> A420
This is used by VP6a, which is used by Flash.

See bug #613901.
2010-10-15 11:23:26 +02:00
Edward Hervey
51a0e1270f ffmpegdec: Fix debug statements 2010-10-12 16:17:51 +02:00
Wim Taymans
3f213c1b73 ffdec: use a better algorithm to detect DTS timestamps
Add function to reset the timestamp tracking.
Check for reordered timestamps on the input buffers and assume PTS input
timestamps when we see reordered timestamps.
Recover from an occasionally wrong input timestamp by also tracking the output
timestamps. When we detect a reordered output timestamp, assume DTS input
timestamps again.

Fixes #611500
2010-10-07 17:46:22 +02:00
Wim Taymans
a0bc6f6e9d ffdec: add debug line 2010-10-06 18:51:24 +02:00
Wim Taymans
48e612afda ffdec: add fixmes 2010-10-06 18:23:57 +02:00
Wim Taymans
b41aab3690 ffdec: add some comments 2010-10-06 18:15:03 +02:00
Wim Taymans
76d9685202 ffdec: Add timestamp tracking
Use ffmpeg reordered_opaque to track an id that combines all timing info we have
for a frame. The ids are kept in a 255 item cache.

Fixes #631075
2010-10-06 17:42:30 +02:00
Wim Taymans
edb79396f2 ffdec: remove broken TSHandler
Remove the TShandler code, it is broken when QoS is enabled and ffmpeg provides
much easier methods for tracking timestamps.
Simplify pcache joining.
2010-10-06 17:42:30 +02:00
Wim Taymans
4aa9b97d3f ffcodecmap: avoid setting large framerates
When the framerate is bigger than 1000/1, set it to 0/1 instead. This avoids
letting the videosink do QoS on these very small frame durations.
2010-10-06 16:58:52 +02:00
Wim Taymans
c330cdcc5d ffdec: rename time variable
Rename the time variable to avoid confusion with the time function.
Add some debug to the QoS update function.
2010-10-06 16:58:40 +02:00
Wim Taymans
7d531c06bb ffenc: pass the input size to the encoder
Pass the input buffer size to the encoder instead of the expected output size.
This is needed to make fixed input/output encoder work.
2010-10-06 16:58:34 +02:00
Sebastian Dröge
37357063bf ffmpegdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-08-27 18:29:15 +02:00
Tim-Philipp Müller
e0984904c3 ffdeinterlace: some minor clean-ups
Don't use studlyCaps; gboolean != GstFlowReturn; use gst_caps_set_simple()
instead of creating a GValue just to set a boolean field on a caps structure.

See #622736.
2010-07-18 20:15:32 +01:00
Edward Hervey
f9c8fac537 ffmpegmux: Use "Formatter/Metadata" klass when needed
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
25db74ec41 ffmpegmux: Add more replacements
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
6191dbb7dd codecmap: Fix the caps of various mov/amr formats
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
38c2b3788e gstffmpegmux: Set rank of blacklisted muxers to GST_RANK_NONE
https://bugzilla.gnome.org/show_bug.cgi?id=623671
2010-07-06 14:02:09 +02:00
Edward Hervey
00e177458c ext: Fix CFLAGS order
We'd pick up system-wide ffmpeg headers otherwise
2010-07-05 15:48:41 +02:00
Mark Nauwelaerts
1d0b29414a ffmpegenc: fix timestamp resyncing some more
Convert bytes to samples in remaining occurrence.

See #623388.
2010-07-05 11:10:09 +02:00
Thiago Santos
b8f556a566 ffmpegenc: Fix timestamp resyncing
Properly convert bytes into time using sample size, sample rate
and channels number, instead of sample rate only.

This can cause huge timestamp discontinuities (even though the
durations remain correct) and might cause problems to muxers.

Fixes #623388
2010-07-03 11:57:09 -03:00
Edward Hervey
2f6086e495 ffmpegmux: Add rtp to the blacklisted muxers 2010-07-02 17:21:27 +02:00
Edward Hervey
edeb185374 codecmap: Specify the quicktime variant for mov and mp4 formats 2010-07-02 12:40:03 +02:00
David Schleef
00d87bcd83 ffmpegmux: Add alternate element in description
For muxers where there is a better GStreamer alternative, add
"(not recommended, use alternate_element_name instead)" to
the description.

https://bugzilla.gnome.org/show_bug.cgi?id=622773
2010-06-27 10:38:25 +02:00
David Schleef
52e8d62513 ffmpegmux: Disable raw muxers
They are effectively identity elements.  Many are already
disabled via blacklist.

https://bugzilla.gnome.org/show_bug.cgi?id=622773
2010-06-27 10:38:24 +02:00
Andoni Morales Alastruey
7f12d83a39 ffdeinterlace: Set "interlaced=false" in the source pad's caps
https://bugzilla.gnome.org/show_bug.cgi?id=622736
2010-06-25 17:26:56 +02:00
Albert Lee
f310322e90 gstffmpegcodecmap: Fix ATRAC1/3 caps 2010-06-11 08:23:34 +02:00
Zaheer Abbas Merali
22a343207c ffmpegdec: fix typo in comment 2010-06-04 18:30:59 +01:00
Edward Hervey
c28097b6c4 codecmap: First round of type mapping wrapping : image formats 2010-05-31 18:53:12 +02:00
Edward Hervey
2fccd4640f ffmpegdec/enc: Blacklist more raw formats 2010-05-31 18:44:02 +02:00
Tim-Philipp Müller
dc2efe2d24 ffmpegdec: sipro decoder should have higher rank than realaudiodec 2010-05-25 12:55:14 +01:00
Edward Hervey
f9c2467241 ffmpegdec: Don't leak the GstDataPassThrough items 2010-05-17 19:43:24 +02:00
Olivier Crête
83820511a8 gstffmpegenc: Make getcaps proxy the downstream height/width/framerate requirements
See #577784.
2010-05-10 15:41:57 +02:00
Olivier Crête
2b891aff61 codecmap: Respect the various h263 options
See #577784.
2010-05-10 15:41:45 +02:00
Olivier Crête
21e855d167 gstffmpegcfg: Expose loop-filter flag
See #577784.
2010-05-10 15:41:07 +02:00
Edward Hervey
0fb014fdbe ffmpegcodecmap: Add mapping for SIPR 2010-05-08 13:47:56 +02:00
Sebastian Dröge
a450bd027f build: Add all kinds of compiler warning flags and fix the resulting warnings 2010-03-24 12:07:28 +01:00
Sebastian Dröge
2e079b742a ffmpeg: Use gst_element_set_details_simple() 2010-03-24 11:51:53 +01:00
Edward Hervey
3230d4da09 gstffmpegcodecmap: Give a proper mapping for NSV format 2010-03-23 18:53:24 +01:00
Raimo Järvi
9637ff5ab1 ffdec: Update caps if the aspect ratio changes
Fixes bug #613231.
2010-03-18 14:08:51 +01:00
Thiago Santos
b234d0b308 ffdec: Make metadata writable before setting caps
In case we haven't created the output buffer, we should make
metadata writable before setting caps on it.
Fixes check unit tests.
2010-03-11 10:13:46 -03:00
Thiago Santos
c300a0a9f2 ffdec_aac: Do not parse raw format
If the stream is 'raw' format, do not use parsers.
Re-enables the aac decoder by putting it back to default
ffdec rank.

Fixes #566250
2010-03-11 09:55:49 -03:00
Edward Hervey
7162290afe ffmpegdemux: Use av_free_packet.
Fixes #611782
2010-03-04 08:59:19 +01:00
Edward Hervey
d4e63b2727 gstffmpegdec: Disable direct-rendering for svq1/vp56 decoders.
They use a non-standard stride which we can't support.

Fixes #610613
2010-03-03 19:03:19 +01:00
Edward Hervey
38b71e40e6 gstffmpegcodecmap: Remove 'format' specified for wmv3 decoder.
Allows WMVA (Advanced Profile) videos to be properly auto-linked.
Doesn't introduce a regression for VC1 files.

Fixes #611722
2010-03-03 18:35:40 +01:00
Edward Hervey
bb2acca229 gstffmpegdec: Handle durations in reordered frames
The buffer durations were not being reordered along with the timestamp
and offset of the buffers, resulting in buffers using the duration of the
latest incoming frame instead of their original frame.

Fixes #611398
2010-03-01 12:52:19 +01:00