Commit graph

399 commits

Author SHA1 Message Date
Wim Taymans e438f20c93 ffdec: handle DTS/PTS
Now that we can know about PTS and DTS on incomming buffers, track them and set
the correct output timestamps.
We can remove the code to estimate if input buffers have pts or dts.
2012-04-03 11:52:05 +02:00
Wim Taymans 2c881eb752 update for buffer changes 2012-03-28 12:50:19 +02:00
Wim Taymans b0cc0cf55d Merge branch 'master' into 0.11
Conflicts:
	gst-libs/ext/libav
2012-03-22 15:31:40 +01:00
Wim Taymans c9538928b6 ffdec: ensure padding is big enough 2012-03-19 11:06:40 +01:00
Wim Taymans b7b587bce0 ffdec: check if input is already 0-padded
When the input buffer is already 0-padded we don't need to copy. This can happen
because in the ALLOCATION query we suggest this.
Only do temporary padding when we are using a parser.
2012-03-19 10:29:34 +01:00
Wim Taymans 3d2527c0a2 update for bufferpool changes 2012-03-15 22:11:54 +01:00
Wim Taymans 427ad305c5 update for allocation query changes 2012-03-15 20:39:10 +01:00
Wim Taymans d9e16a498c ffdec: propose some padding in the allocation query
Hopefully upstream can add some padding and then we don't have to memcpy.
2012-03-14 20:04:53 +01:00
Wim Taymans d606efc141 take padding into account 2012-03-14 19:53:06 +01:00
Wim Taymans 78e0187282 ffdec: remove unused crop property 2012-03-14 17:35:28 +01:00
Wim Taymans dab06c0e5d ffdec: remove padding property
Users should not mess with this
2012-03-14 17:33:40 +01:00
Wim Taymans 75ba435552 ffdec: make bufferpool setup recalculate direct rendering
We need to recalculate if we can use direct rendering after we have setup the
bufferpool.
2012-03-14 12:58:38 +01:00
Wim Taymans 1ba905c031 ffdec: add some PERFORMANCE logging 2012-03-14 11:53:42 +01:00
Wim Taymans 575cb87091 ffdec: implement accept-caps
Implement a potentially faster accept-caps function
2012-03-12 13:50:46 +01:00
Wim Taymans ecbbbe7fd2 ffmpegdec: enable alignment if videometa is allowed
Use the videobufferpool when downstream didn't suggest one.
Only enable video alignment in the bufferpool when downstream supports video
metadata.
2012-03-08 13:04:57 +01:00
Edward Hervey 57c7f59268 ffmpegdec: Use auto-threads if available, and only slice-threading
Slice threading causes less latency (and corruption)
2012-03-02 17:27:30 +01:00
Alessandro Decina d48fc18065 Fix compiler warnings 2012-02-27 06:26:02 +01:00
Wim Taymans 05a44b7ac6 ffdec: disable multithreading
It causes refcounting problems.
2012-02-21 18:02:56 +01:00
Matej Knopp a079886388 only reopen decoder when new caps are different 2012-02-20 16:23:57 +01:00
Wim Taymans cf3d3fe00d ffmpeg: port to new memory API 2012-01-25 11:59:04 +01:00
Sebastian Dröge 3393095cd0 Merge branch 'master' into 0.11 2012-01-18 10:21:36 +01:00
Sebastian Dröge 99d4792014 ffdec: Only set get_buffer() function for video
Fixes bug #666435.
2012-01-18 10:11:49 +01:00
Sebastian Dröge 44a1dc0138 ffmpeg: Fix merge mistakes 2012-01-10 11:39:27 +01:00
Sebastian Dröge bde3117e72 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegcodecmap.c
	ext/ffmpeg/gstffmpegdec.c
	ext/ffmpeg/gstffmpegdeinterlace.c
	ext/ffmpeg/gstffmpegmux.c
	ext/libswscale/gstffmpegscale.c
2012-01-10 11:35:55 +01:00
Sebastian Dröge 3d43013d4f ffdec: Give the (E)AC3/DTS decoders a rank of marginal
Even if they don't downmix to stereo, they're still working
correctly. The only advantage of dtsdec/a52dec is that they
downmix to stereo (using the special downmixing matrices) if
downstream prefers stereo but in every other case they should
be equivalent.
2012-01-10 11:06:53 +01:00
Sebastian Dröge ad53e32665 ffdec: Revert accidentially committed rank change of the (E)AC3/DTS decoders 2012-01-10 10:59:57 +01:00
Sebastian Dröge 6931afe0ba ffmpegdec: Reorder audio channels after clipping the audio buffer 2012-01-10 10:45:42 +01:00
Sebastian Dröge 3d6c803917 ffmpegdec: Correctly reorder audio channels to the GStreamer order if necessary 2012-01-10 10:37:50 +01:00
Sebastian Dröge 42bc8f5ad7 ffmpeg: Use stack-allocated channel positions array 2012-01-10 10:01:26 +01:00
Wim Taymans 290d3120fb ffdec: fill in the stride alignment
Copy the stride alignment we got from ffmpeg to the alignment structure.
2011-12-21 18:06:32 +01:00
Wim Taymans 9ea5b22de6 ffmpegdec: update for new interlace fields 2011-12-19 18:14:27 +01:00
Edward Hervey 15ae52392e ffmpegdec: Report latency if B-frames are present
... and cleanup the query handler while we're at it

https://bugzilla.gnome.org/show_bug.cgi?id=663616
2011-12-01 19:29:24 +01:00
Wim Taymans 152e090891 add parent to pad functions 2011-11-17 12:49:33 +01:00
Wim Taymans 63a890a746 add parent to query function 2011-11-16 17:29:22 +01:00
Wim Taymans f65f9938d0 _query_peer_*() -> _peer_query_*() 2011-11-15 17:55:29 +01:00
Wim Taymans 175a092331 ffmpeg: change getcaps to query 2011-11-15 16:35:17 +01:00
Wim Taymans cbb41c36ff ffdec: get the pixfmt correctly
Use the pixfmt from the passed context, which can be different from our other
context and which might not have the pixfmt set correctly.
2011-11-04 16:23:32 +01:00
Edward Hervey 5264fd3c97 Merge remote-tracking branch 'origin/master' into 0.11 2011-10-17 16:29:10 +02:00
Edward Hervey 99e61c5f3b gstffmpegdec: Re-enable MT-decoding by default 2011-10-17 16:27:36 +02:00
Wim Taymans 3b230ce9b6 dec: remove interlaced update code 2011-10-03 11:34:34 +02:00
Wim Taymans d4b2751c39 Merge branch 'master' into 0.11 2011-10-03 11:32:24 +02:00
Vincent Penquerc'h d4d5e350d0 ffdec: ensure buffers have correct interlacedness in caps
Whether a frame is interlaced or not is unknown at the time of
buffer allocation, so caps on the buffer in opaque will have
a previous frame's interlaced flag set. So if interlacedness
changes, we update the buffer (if any) caps with the correct
interlaced flag once we know.

https://bugzilla.gnome.org/show_bug.cgi?id=656155
2011-10-03 11:18:06 +02:00
Wim Taymans afb740b897 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/ffmpeg/gstffmpegcodecmap.c
	ext/ffmpeg/gstffmpegdeinterlace.c
2011-09-28 13:29:08 +02:00
Vincent Penquerc'h 8bf3d5a2b7 ffmpegdec: post QoS messages when dropping a frame
There seems to be a little bit of non obvious logic where
the QoS logic can decide to not drop decoding a frame and
pass it to ffmpeg, telling it to drop.
In this case, the QoS logic does not drop the frame itself,
but since the frame will end up being dropped, we still
mark it as dropped and post a QoS message.

https://bugzilla.gnome.org/show_bug.cgi?id=657950
2011-09-26 20:13:58 +01:00
Tim-Philipp Müller 8a34abff64 ffmpegdec: disable parser for already-parsed FLAC input
Not needed to make anything work, just seems to make sense.

https://bugzilla.gnome.org/show_bug.cgi?id=589361
2011-09-26 19:55:54 +01:00
Nicolas Dufresne eacf516f7f ffdec: Blacklist non-working subtitle decoders
This include decoder for ASS, SRT, PGS, DVD and DVB. Those are generated
with bad capabilities and are not usable in GStreamer. Other elements exist
to handle those subtitle formats.

https://bugzilla.gnome.org/show_bug.cgi?id=658019
2011-09-03 12:32:55 +01:00
Wim Taymans 85fa801d42 ffdec: port to new flags 2011-08-25 16:41:36 +02:00
Wim Taymans dd56c2c7ea ffmpeg: port to new audio caps 2011-08-19 18:33:11 +02:00
Wim Taymans 7ae8b453ca ffmpegdec: react to the reconfigure event
Also renegotiate the caps and bufferpool when we have a rereconfigure event
pending.
2011-08-05 12:04:13 +02:00
Wim Taymans dc12f1c9c9 ffdec: ensure bufferpool size
Make sure the bufferpool size is at least what we expect.
Add some more debug.
2011-08-04 11:10:26 +02:00