Tim-Philipp Müller
c84802ffef
ffmpegdemux: demote swf demuxer to GST_RANK_NONE
...
SWF doesn't really make sense in our context, don't pretend
to support it. People should use a dedicated swf player for that.
2012-01-12 18:03:10 +00:00
Vincent Penquerc'h
49e3bc6e35
ffmpegdemux: fix caps leak
2012-01-12 14:57:48 +00:00
Mark Nauwelaerts
0edb9f22f0
ffmpeg: fix and extend LIBS in Makefile.am
...
... to account for -base video helper functions.
2012-01-10 13:41:55 +01:00
Sebastian Dröge
27b5013c9c
ffmux: gst_element_class_add_pad_template() takes ownership of the pad template
2012-01-10 11:49:57 +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
b9ff7da938
ffmpeg: Channel layouts are now set for DTS and (E)AC3 by libav
2012-01-10 11:30:00 +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
09efbe103f
ffmpeg: Channel layouts are now set for DTS and (E)AC3 by libav
2012-01-10 10:08:05 +01:00
Sebastian Dröge
42bc8f5ad7
ffmpeg: Use stack-allocated channel positions array
2012-01-10 10:01:26 +01:00
Sebastian Dröge
d2702a091e
ffmpeg: Put the new layout field in raw audio caps
2012-01-09 13:40:05 +01:00
Sebastian Dröge
2a4fcf842e
ffdec: Add mappings for the top channel positions
2012-01-09 13:24:55 +01:00
Sebastian Dröge
a861ea34dd
ffdec: Correctly set the channel-mask and also set it for stereo
2012-01-09 13:23:29 +01:00
Wim Taymans
fc0d9bd243
ffmpeg: port to new channel mapping
2012-01-05 14:06:33 +01:00
Wim Taymans
00d22402a2
GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
2012-01-03 15:27:54 +01:00
Wim Taymans
93be243b3a
update for videofilter changes
2011-12-21 23:52:00 +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
Vincent Penquerc'h
f66834c11f
ffmpeg: port to GstCollectPads2
2011-12-15 14:28:00 +00: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
Vincent Penquerc'h
dcd387b313
ffmpeg: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:23:42 +00:00
Matej Knopp
28142d9549
Fix cpu cores detection on OS X
...
https://bugzilla.gnome.org/show_bug.cgi?id=664687
2011-11-23 23:57:01 +00:00
Matej Knopp
7dd07ed7fb
Fix cpu cores detection on OS X
...
https://bugzilla.gnome.org/show_bug.cgi?id=664687
2011-11-23 23:54:54 +00:00
Wim Taymans
1e147bf88e
update for activation changes
2011-11-21 13:36:34 +01:00
Wim Taymans
944a76904d
update for new scheduling query
2011-11-18 18:00:59 +01:00
Wim Taymans
c1b511f5db
add parent to activate functions
2011-11-18 13:59:59 +01:00
Wim Taymans
152e090891
add parent to pad functions
2011-11-17 12:49:33 +01:00
Stefan Sauer
319de2e96a
collectpads: port API changes
2011-11-17 09:00:47 +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
71540b5fc1
_peer_get_caps() -> _peer_query_caps()
2011-11-15 17:23:21 +01:00
Wim Taymans
175a092331
ffmpeg: change getcaps to query
2011-11-15 16:35:17 +01:00
Wim Taymans
54fdd9faf7
update for adapter api change
2011-11-10 18:25:21 +01:00
Wim Taymans
9d1a924013
remove query types
2011-11-09 11:58:15 +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
Wim Taymans
a70ce56cf8
ffmpeg: fix template to %u
2011-11-04 12:43:17 +01:00
Wim Taymans
fa576d7384
tags: update for tag API removal
2011-11-02 12:10:25 +01:00
Wim Taymans
e8910763b4
demux: update for new task api
2011-11-02 09:10:03 +01:00
Wim Taymans
431bbdcbf5
structure: fix for api upate
2011-11-02 09:10:03 +01:00
Tim-Philipp Müller
02250601cf
Merge remote-tracking branch 'origin/master' into 0.11
2011-10-31 14:53:01 +00:00
Martin Storsjo
77fa4072ee
Allow building a LGPL only gst-ffmpeg plugin
...
This removes --enable-gpl and --enable-postproc from the
ffmpeg configure line, and disables building the postproc
gstreamer plugin.
https://bugzilla.gnome.org/show_bug.cgi?id=654037
2011-10-31 10:59:27 +01:00
Tim-Philipp Müller
6501cdbf92
ffmpegdemux: update for taglist API changes
2011-10-30 12:03:36 +00:00
Wim Taymans
dcc9703273
fix compilation with new caps api
2011-10-28 16:35:54 +02:00
Wim Taymans
7cbfd34e13
ffenc: fix compilation
2011-10-27 16:47:18 +02:00
Wim Taymans
1fffbe9876
Merge branch 'master' into 0.11
...
Conflicts:
ext/ffmpeg/gstffmpegcodecmap.c
2011-10-27 16:31:30 +02:00
Sjoerd Simons
eb2e9f48e3
ffmpegenc: Pass the size of the output buffer to avcodec_encode_audio
...
avcodec_encode_audio is documented as taking the size of the output
buffer not the size of the input buffer. This fixes the use of the G722
encoder and makes the code more consistent with avconv from the libav
source tree.
2011-10-19 13:18:35 +01:00
Sjoerd Simons
b05352beee
ffmpegcodecmap: Further specify allowed rates for G722 and G726
2011-10-19 13:18:35 +01:00
Sjoerd Simons
93b333cfea
ffmpegcodecmap: Always restrict audio codec in the unfixed cases
...
If the context isn't fixed yet or if it doesn't exist then always
restrict the caps.
Also restrict the maximum channels for G726 and G722 to 1 channel
2011-10-19 13:18:35 +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
Edward Hervey
fc0a8893d8
gstffmpegutils: Fix include
2011-10-17 16:26:52 +02:00
Edward Hervey
b4ca4b5cfd
gstffmpegcodecmap: Avoid string operations on NULL
2011-10-11 14:02:53 +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
Tim-Philipp Müller
902ee8a905
ffmpegcodecmap: don't create dummy codec data for FLAC decoder
...
Since then it just errors out because it's too small, as it
wants the flac headers as codec data if there is codec data.
https://bugzilla.gnome.org/show_bug.cgi?id=589361
2011-09-26 19:54:52 +01:00
Tvrtko Ursulin
42cb5bd386
ffdeinterlace: add "mode" property including automatic mode
...
Just like deinterlace.
https://bugzilla.gnome.org/show_bug.cgi?id=656328
2011-09-26 19:17:41 +01:00
Wim Taymans
09a66b0923
ffmpeg: fix for audio caps change
2011-09-06 15:29:26 +02: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
4361442827
ffmpeg: convert to new caps
2011-08-22 13:33:31 +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
Wim Taymans
5151ec83e2
ffdec: enable direct rendering for all formats
...
Since we now support padding, we can enable direct rendering for all formats.
2011-08-01 18:10:53 +02:00
Wim Taymans
2e02fbba58
ffdec: add alignment support
...
Always diable EMU_EDGE. Use the bufferpool options to enable extra padding on
allocated frames. If the downstream bufferpool does not support the padding,
disable direct rendering and do the final copy/cropping into the non-padded
output frame.
2011-08-01 17:57:38 +02:00
Wim Taymans
1dc718b195
ffdec: refactor picture fill code
...
Make a method to hold the code to convert a GstVideoFrame to an AVFrame so that
we can reuse it in the non-direct rendering case.
2011-07-29 13:40:30 +02:00
Wim Taymans
3a8445fc80
ffdec: cleanups
...
Make things a little more readable.
2011-07-29 13:08:53 +02:00
Wim Taymans
3efd2bcbf7
ffdec: use video frame helpers
...
Use the video frame helper functions to map and set up the strides in the
picture for ffmpeg.
2011-07-29 12:36:12 +02:00
Wim Taymans
afb69cf1d2
ffmpegdec: fix for query API change
2011-07-29 12:34:04 +02:00
Wim Taymans
8a3014f2fa
ffmpeg: fix for query API changes
2011-07-29 12:32:45 +02:00
Wim Taymans
b507d2e013
ffdec: remove unused variable
2011-07-29 10:57:20 +02:00
Wim Taymans
1565260765
ffmpeg: First set of cleanups
...
Store incomming info from the caps, current context and output formats into
separate variables so that we can more easily handle them.
Refactor the negotiation code.
Rework the bufferpool setup code. Take into account that we might want to
negotiate extra borders around the image in direct rendering.
Remove some of the cropping code for now.
2011-07-29 10:31:03 +02:00
Wim Taymans
62bb960f3a
ffmpeg: add GstVideoFormat helper function
...
Add a function to convert an ffmpeg pixfmt to a GStreamer GstVideoFormat.
2011-07-29 10:25:03 +02:00
Wim Taymans
408b54f5e4
ffdec: cleanups
...
Remove useless switch
Remove old EXTRA_REF define
Move errors out of the main code path
2011-07-28 12:08:34 +02:00
Wim Taymans
3dd45343d3
ffdec: small cleanups
...
USe gst_pad_peer_query() to forward the query to the peer.
2011-07-28 12:08:30 +02:00
Wim Taymans
05a5c7f513
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/ffmpeg/gstffmpegcodecmap.c
2011-07-22 17:54:32 +02:00
Raimo Järvi
95fe6ca01e
codecmap: Don't create dummy extradata for AAC LATM
...
If extradata is created for LATM, libav will use it for initialising AAC
decoder and decoding will fail.
Fixes bug #652812 .
2011-07-18 12:04:29 +02:00
Edward Hervey
b41422f1f3
Merge branch 'master' into 0.11
2011-07-15 12:34:19 +02:00
Edward Hervey
2f63830924
ffmpegdec: Set default number of threads to 1
...
Too many suspicious errors/warnings pop up when more than 1 thread
is used.
Fixes #653649
2011-07-11 10:47:26 +02:00
Wim Taymans
fc6b32330a
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/ffmpeg/gstffmpegdec.c
2011-07-07 13:50:18 +02:00
Tim-Philipp Müller
508d4918b0
ffmpegscale: add cast to fix compiler warning
2011-07-05 10:43:14 +01:00
Tim-Philipp Müller
7b2e3137a5
ffmpegscale: update for GstVideoInfo API changes
2011-07-05 10:39:52 +01:00
Edward Hervey
37f5d70332
ffmpegdec: Setting AC3/EAC3/DTS decoders to rank NONE for release
...
This still causes issues with bad (missing?) downmixing.
They can be handled by existing a52dec/dtsdec
See Bug #608892
2011-06-30 21:38:57 +02:00
Mark Nauwelaerts
6d517b3b76
ffmpegcodecmap: really include all supported sample formats in audio caps
...
Fixes #653717 .
2011-06-30 11:50:21 +02:00
Mark Nauwelaerts
856dbe6f21
ffmpegdec: avoid allocating and leaking local avpacket helpers
...
... by _init'ing them as locals rather than _new'ing them.
Fixes #653648 .
2011-06-30 11:49:39 +02:00
Mark Nauwelaerts
156b26492d
ffmpegenc: handle filter caps in _getcaps
2011-06-30 09:21:31 +02:00
Mark Nauwelaerts
e937db0f92
ffmpegenc: properly handle caps event
...
... which comes down to unconditionally eating incoming caps event,
since that one could never correctly describe the setup for downstream
elements.
2011-06-30 09:20:11 +02:00
Mark Nauwelaerts
bd5e3a51dd
ffmpegenc: ensure properly negotiated prior to processing
...
Doing so is even more pertinent in 0.11, since core assists much less
in setting up negotiation and feedback on handling caps event is more likely
to get lost.
2011-06-30 09:18:42 +02:00
Mark Nauwelaerts
1583b89942
ffmpegdec: unref eaten caps event
2011-06-29 11:44:27 +02:00
Mark Nauwelaerts
36fe313fbd
ffmpegdec: unref allocation query
2011-06-29 11:44:11 +02:00
Jan Schmidt
3a12092ae6
Enable threading in ffmpeg decoders that support it.
...
Add a max-threads property, which defaults to '0 = auto'
Add a utility function taken from libschroedinger which sets
the ffmpeg worker thread count to match the computer processor
count by default.
2011-06-21 14:33:29 +10:00
Wim Taymans
0c026bde71
ffmpeg: port to new caps
2011-06-20 11:57:29 +02:00
Wim Taymans
916d323a53
swscale: port to new video API
2011-06-20 11:29:10 +02:00
Wim Taymans
afaeebc1b1
ffmpeg: fix some caps
2011-06-20 10:42:30 +02:00
Wim Taymans
4b5cfd1e31
utils: update for buffer API change
2011-06-13 16:34:18 +02:00
Wim Taymans
7f4df8f536
ffdec: update for bufferpool API change
2011-06-11 18:55:05 +02:00
Wim Taymans
fcf5e53055
ffdec: small cleanups
...
We can use or to calculate the max alignment
2011-06-10 18:07:28 +02:00
Wim Taymans
e31b9c8295
dec: fix for new alignment values
2011-06-10 17:56:27 +02:00
Wim Taymans
888a1c0e5e
ffdemux: fix for API change of flush_start
2011-06-10 17:56:01 +02:00
Edward Hervey
aaa07b3b4c
Merge branch 'master' into 0.11
2011-06-08 18:04:49 +02:00
Edward Hervey
4a130c6a6c
ext: caps are now set via GstEvent and not setcaps
2011-06-08 18:04:07 +02:00
Raimo Järvi
8e2404b8df
ffdec: Fix calculating frame duration from last timestamp and frame count.
...
Fixes bug #651714 .
2011-06-06 14:45:56 +02:00
Wim Taymans
97430ccbbc
ffdec: use caps event instead of setcaps
2011-06-02 18:39:07 +02:00
Wim Taymans
c312409c83
Merge branch 'master' into 0.11
2011-06-02 17:03:21 +02:00
Wim Taymans
dad7da7ca6
ffmpeg: port to new API
2011-06-02 16:23:19 +02:00
Raimo Järvi
4a66ecdf25
ffdec: Check for AV_NOPTS_VALUE in PTS value.
...
https://bugzilla.gnome.org/show_bug.cgi?id=651625
2011-06-01 16:11:05 +02:00
Raimo Järvi
82463fe8bc
ffdec: Add mpegversion 2 to AAC decoder caps
...
Fixes bug #651447 .
2011-05-30 12:31:31 +02:00
Edward Hervey
9db205f9f7
ffmpegdec: Don't discard timestamps if output AND input are in order
...
Avoids bogus timestamps for AVCHD-lite streams
2011-05-29 20:09:47 +02:00
Sebastian Dröge
d1fac3e779
ffenc_aac: Add profile and level to the caps
...
Fixes bug #650596 .
2011-05-27 10:54:12 +02:00
Sebastian Dröge
b8f7aab1ba
ffdec: Always use parser for AAC LATM/LOAS
2011-05-26 15:09:18 +02:00
Rafael Diniz
df40381a83
ffmpeg: Add codec mapping for AAC LATM/LOAS
...
Also add the stream-format fields to the CODEC_ID_AAC caps.
Fixes bug #650695 .
2011-05-25 10:10:48 +02:00
Thadeu Lima de Souza Cascardo
a3c56f60cd
ffdec: Do not use invalid input timestamp as next timestamp.
...
When input buffer timestamps are invalid, next timestamp are used for
audio. Then, the next out timestamp is updated with the used timestamp
and the calculated duration. However, if the used timestamp is invalid,
it should not be used. Otherwise, the next buffer will use a wrong
timestamp that is not in the clipped segment, making the buffer to be
dropped.
This fixes playback with SBTVD MPEG TS streams, using AAC LATM.
2011-05-09 11:02:50 +02:00
Vincent Penquerc'h
920bfb0da2
ffdec: do not try to resync to the next keyframe when late
...
A keyframe may be quite a while in the future, and the decoder
has no way of knowing this. A poor decision could mean quite some
time with no video output.
This decision should be left to the upstream element: a demuxer
might know about incoming keyframes, or some other element might
be able to request a keyframe.
Fixes bug #649372 .
2011-05-06 13:23:45 +02:00
Wim Taymans
8860e5c6c9
ffdec: fix for ALLOCATION query API changes
2011-05-02 11:12:10 +02:00
Wim Taymans
c71a2ec502
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/ffmpeg/gstffmpegdec.c
2011-04-29 18:40:36 +02:00
Wim Taymans
195f2afea6
ffmpeg: use bufferpool instead of pad_alloc
2011-04-29 18:35:55 +02:00
Edward Hervey
775a3a0640
postproc: pp_*_t => pp_*
2011-04-21 20:56:45 +02:00
Edward Hervey
2ce58ad764
audioresample: Use new av_audio_resample API
...
We might want to expose the various properties in the future
2011-04-21 20:56:45 +02:00
Edward Hervey
a30b434b53
ffmpegdec: Set caps on outgoing audio buffers
2011-04-21 20:56:45 +02:00
Edward Hervey
fe1a971b31
ffmpegdec: Use new AVPacket-based API
...
Right now it doesn't use any of the extra fields AVPacket provides.
It might be wise to investigate the pts/dts ones to see if we can finally
get rid of the timing-related cruft we have.
2011-04-21 20:56:45 +02:00
Edward Hervey
436a211aff
gstffmpegdec: Use non-deprecated av_parser_parse2
2011-04-21 20:56:45 +02:00
Edward Hervey
7c85e2d743
ffmpegdec: Use skip_frame instead of deprecated hurry_up
2011-04-21 20:56:45 +02:00
Edward Hervey
71f48a1d84
ffmpegcfg: mb_qmin/mb_qmax are deprecated/removed
...
We just use qmin/qmax instead
2011-04-21 20:56:45 +02:00
Edward Hervey
a004f0bc34
ffmpegdemux: Define our own MAX_STREAMS
2011-04-21 20:56:45 +02:00
Edward Hervey
f16291a6cc
ffmpeg: Disable code using old metadata API
...
It is now gone and we need to switch to the new API
See #566605
2011-04-21 20:56:45 +02:00
Edward Hervey
5aa722965c
ffmpegdemux: The index_built AVFormatContext hasn't been used in over 2 years
2011-04-21 20:56:45 +02:00
Edward Hervey
fd80f177c9
codecmap: _XVID is gone
...
It was always a bogus one, since it used the external libxvid for encoding.
2011-04-21 20:56:45 +02:00
Edward Hervey
78ae6a34cb
ffmpeg: PKT_FLAG_KEY => AV_PKT_FLAG_KEY
2011-04-21 20:56:44 +02:00
Edward Hervey
dfd26c36f3
ffmpeg: AVERROR_* => AVERROR(*)
2011-04-21 20:56:44 +02:00
Edward Hervey
2f81d0d63b
ffmpeg: CodecType => AVMediaType
2011-04-21 20:56:44 +02:00
Edward Hervey
446c50e052
gstffmpeg: register_protocol => av_register_protocol2
2011-04-21 20:56:44 +02:00
Wim Taymans
6d4cdb2877
ffmpeg_use G_DEFINE_TYPE
2011-04-19 19:04:36 +02:00
Wim Taymans
198fa2571b
Merge branch 'master' into 0.11
2011-04-19 19:03:06 +02:00
Marc Plano-Lesay
9c42b7cae9
Fix unused-but-set-variable warnings with gcc 4.6
2011-04-19 16:21:20 +01:00
Edward Hervey
c35c1d1446
gstffmpeg(de)mux: Disable known broken (de)muxers
...
Idea provided by David Schleef
Support provided by Michael Smith and Tim Mueller
Food and Drinks provided by Toronado
2011-04-09 01:17:24 +02:00
Stefan Kost
dd7b219c42
ffmpeg: don't divide by 0 when checking the framerates
...
Check for denom==0 first and set it to on in that case.
2011-04-08 11:42:33 +03:00
Wim Taymans
6444bd2557
dec: avoid making the buffer writable
...
Set the caps right after allocation of the buffer because we know the buffer is
writable then and we are correctly negotiated. Since ffmpeg keeps around
references to frames, making the buffer metadata writable where it was done
before pushing will always end up with a copy and that makes the sink do a slow
memcpy all the time.
2011-04-07 12:34:51 +02:00
Wim Taymans
8faa991476
Merge branch 'master' into 0.11
...
Conflicts:
ext/ffmpeg/gstffmpegdec.c
2011-04-07 12:11:37 +02:00
Wim Taymans
450a4fdb51
dec: Fixes
...
Set caps on buffers right after we allocate them to avoid refcounting problems
and having to make the buffer metadata writable for no good reason.
Don't unmap the memory with a 0 size or we would modify the memory size when
it's not needed.
2011-04-07 12:02:57 +02:00
Miguel Angel Cabrera Moya
f63d36ade8
ffmpegdec: do buffer padding before parsing and before decoding
...
FFMpeg parsing and decoding calls require to additionally allocate bytes
at the end of the input bitstream and this padding must be initialized
to zero.
https://bugzilla.gnome.org/show_bug.cgi?id=595590
2011-04-05 14:14:38 +02:00
Wim Taymans
8095b31f9c
ffmpeg: port to new memory API
2011-04-04 13:18:13 +02:00
Wim Taymans
4345d10577
WIP: porting to 0.11
2011-04-04 12:23:05 +02:00
Wim Taymans
88271530e4
ffmpeg: disable resample
2011-02-28 12:13:17 +01:00
Wim Taymans
7a225ab604
codecmap: use new g_value getters
2011-02-28 12:13:17 +01:00
Julien Isorce
32ca9c111b
ffvideoscale: add support for UYVY
...
Fixes #642015
2011-02-14 16:58:49 +01:00
Tim-Philipp Müller
8d40c6357d
ffmpegdec: improve error message when set_caps is called but we have no mapping
...
This may happen e.g. if gst-ffmpeg is compiled against an external
libavcodec and the external lib is upgraded.
See e.g.
https://bugzilla.gnome.org/show_bug.cgi?id=640825
2011-01-31 23:28:33 +00:00
Edward Hervey
a2a4ee93c4
codecmap: Add mapping for g722
2011-01-25 16:34:04 +01:00
Edward Hervey
5429138b89
codecmap: Add proper caps name for Camstudio
2011-01-24 18:29:24 +01:00
Edward Hervey
7879105579
gstffmpegdemux: Ignore more pseudo demuxers
2011-01-24 18:29:00 +01:00
Edward Hervey
9a1d1fef32
gstffmpegmux: Blacklist some muxer formats
2011-01-24 17:43:44 +01:00
Edward Hervey
cc4a11831d
gstffmpegcodecmap: Add some new codec mappings
...
VP8
LAGARITH
GSM
GSM_MS
2011-01-24 17:26:20 +01:00
Edward Hervey
ed1b1eefaf
ffmpegprotocol: Slight API change
2011-01-24 17:26:20 +01:00
Edward Hervey
2de5aaf22d
ffmpegdec: Set the mp3 decoder to a rank of NONE
...
It's just causing too many headaches. This will force people to use
a working mp3 decoder, like mad.
2011-01-07 18:08:15 +01:00
Edward Hervey
051e2de3d3
ffmpegdec: Fix unitialized variables on macosx
2011-01-05 16:59:55 +01:00
Edward Hervey
a90df26e15
ffmpegenc: Disable non-audio/video encoders
...
Fixes #629648
2011-01-03 11:45:04 +01:00
Wim Taymans
22d44c87b1
ffmpgdec: work around parser timestamp bug
...
Sometimes the parser loses track of timestamps and starts to reuse old
timestamp. Feed it some dummy data and clear some context variables to work
around the problem.
2010-12-21 12:14:22 +01:00
Sebastian Dröge
dde194dc1a
ffvideoscale: Change classification to Filter/Converter/Video/Scaler
2010-12-16 10:12:02 +01:00
Sebastian Dröge
a5910b4ec4
ffdeinterlace: Change classification to Filter/Effect/Video/Deinterlace
2010-12-16 10:05:03 +01:00
Wim Taymans
ec48b24291
dec: scale the estimated duration by number of frames
...
When estimating the frame duration, the diff between two incomming timestamps
should be scaled by the amount of frames in the interval. Improves duration
estimation and DTS interpolation.
2010-12-12 12:38:55 +01:00
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
Thijs Vermeir
330d78f4ff
Fix build if ORC is not installed
2010-06-15 09:40:18 +02:00
Sebastian Dröge
3d91d93f32
ffmpeg: Call orc_init() before trying to get target flags
2010-06-14 15:31:34 +02:00
Sebastian Dröge
899d2f0cec
Use orc instead of liboil for CPU feature detection
2010-06-14 14:38:44 +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
c023b6a47a
postproc: Mark postproc filters table as const
2010-03-24 16:37:37 +01:00
Sebastian Dröge
af3de9ac9f
ffmpeg: Fix some remaining compiler warnings
2010-03-24 12:36:27 +01: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
Mark Nauwelaerts
6cf7cadf9b
ffmpegdec: do not store timestamp for buffer that will be skipped
...
Fixes #610481 .
2010-02-19 20:33:06 +01:00
Edward Hervey
cc4d502d30
gstffmpegdec: Don't enable xvmc decoders, we can't support the output
2010-02-18 13:29:35 +01:00
Edward Hervey
5678ff1ac0
gstffmpegcodecmap: Add mapping for Indeo 5
2010-02-18 13:29:35 +01:00
Edward Hervey
9c497b6010
gstffmpegcodecmap: Add mapping for Windows Media Speech
2010-02-18 13:29:35 +01:00
Wim Taymans
430b8eb74d
ffdec: fixup QCELP to always be mono
...
Make QCELP always mono, even if the caps tell us a different layout.
2010-02-04 17:08:41 +01:00
Wim Taymans
14e8ce8816
ffmpegdec: only clip to a smaller region
...
When we have an input width/height that should be used for clipping, only
perform the clipping if the rectangle is smaller than the actual picture size.
Fixes #330681
2010-02-04 13:28:11 +01:00
Wim Taymans
8312a8f89d
ffdec: free audio buffer when not decoded
...
When we don't decode an audio frame (for audio codecs that need a previous audio
frame) free the buffer we allocated.
See #608564
2010-02-01 15:26:43 +01:00
Wim Taymans
d3f9ee4309
ffmpegcodecmap: don't escape codec_data
...
Don't escape the codec_data, it breaks some streams (but likely also fixes
others). It's better to leave it as is, like most other players do.
See #608332
2010-01-29 14:00:28 +01:00
Edward Hervey
4f9de70744
ffmpegmux/demux: Blacklist ASS/SSA 'demuxers'.
...
They're not a container format, but a subtitle format, and we already
have plugins to handle those subtitle formats.
2010-01-25 16:40:58 +01:00
Edward Hervey
25073856e4
ffmpegcodecmap: Add proper mapping for Zip Block Motion Video
2010-01-23 15:34:28 +01:00
Edward Hervey
0c938fa10d
ffmpegcodecmap: Add proper mapping for LOCO Lossless codec
2010-01-23 14:41:49 +01:00
Edward Hervey
399bb4667b
gstffmpegcodecmap: Make a proper mapping for Autodesk Animator Codec
2010-01-23 13:51:24 +01:00
Alessandro Decina
c5f16de56f
Revert a change I accidentally introduced in 7c91fb.
...
I removed the plugin name from an error message for no good reason.
2010-01-22 13:48:24 +01:00
Alessandro Decina
7c91fb4cf4
Fix compiler warnings under OS X.
2010-01-22 11:43:59 +01:00
Julien Moutte
0b40ac6331
ffvideoscale: Fix build warning.
...
FFMpeg swscale function wants some const pointers.
2010-01-15 22:21:42 +01:00
Edward Hervey
56172c60af
gstffmpegcodecmap: Add mappings for new codecs
...
WMAPro
Dolby TrueHD
Atrac1
TwinVQ
2010-01-13 19:50:10 +01:00
Mark Nauwelaerts
8236e74ca4
ffmpegenc: more consideration for upstream (audio) timestamps
2010-01-12 18:17:40 +01:00
Tim-Philipp Müller
a657f789d3
ffmpegdec: ignore all vdpau decoders
...
Make check for vdpau decoders more generic. There might be vdpau
decoders we don't expect when using an external ffmpeg version,
and we want those blacklisted as well (e.g. ffdec_mpeg4_vdpau).
2009-12-09 15:27:14 +00:00
Jan Schmidt
faa417cf34
caps: Use default audio channel layouts for some codecs
...
For a few white-listed codecs, use default fallback channel
layouts when ffmpeg doesn't inform us.
2009-11-22 12:28:12 +01:00
Olivier Crête
b69fcc471e
ffenc: Make keyframe forcing thread-safe
...
Make the keyframe forcing thread-safe, also emit a downstream event
to allow muxers or payloaders to react appropriately.
https://bugzilla.gnome.org/show_bug.cgi?id=602556
2009-11-20 22:14:51 -05:00
Edward Hervey
a00fb254aa
Move encoders and muxers to GST_RANK_SECONDARY.
2009-11-18 17:36:48 +01:00
Wim Taymans
59bc425174
ffdec: remove clipping hack
...
Remove a hack that seems to produce wrong clipping values.
2009-11-16 13:55:01 +01:00
Jan Schmidt
62d54db07d
ffmpeg: VC-1/WMV3 fixes.
...
Use format field in the pad caps to differentiate VC-1 from WMV3.
Fix a typo in the caps creation and parsing - the field is called
'format' - not 'fourcc'
Add a dodgy hack to populate the extradata size field
(first byte) when it is 0 - as it seems to be for some (Matroska)
test files.
2009-11-11 18:53:36 +00:00
Sjoerd Simons
19e81024a3
Always give the most video restricted caps possible
...
When the video caps aren't fixed yet, make sure we return the most
precise set of caps. It seems a regression was introduced in cc082f,
causing restricted caps to never be used if the context == NULL
None of the restricted caps generation uses the context, so no need to
check whether the context.
Fixes bug #578160 .
2009-11-10 12:30:50 +01:00
Edward Hervey
a1384f990b
ffmpegdec: Only restore default in AVCodecContext when needed.
...
Resetting default values is currently very complex in libavcodec, so
we only call it when needed (i.e. when a context was previously used).
Shaves off 10% of the setup of a decoder.
2009-11-09 19:21:35 +01:00
Tim-Philipp Müller
72cd8f1843
ffmpegdec: printf format fixes
2009-11-05 23:54:47 +00:00
Edward Hervey
019a6020e4
ffdec: Don't use an allocated 1-entry structure for private data.
...
If there's only one entry, just use that entry.
2009-11-02 09:06:46 +01:00
Edward Hervey
bd1b315c43
ffmux: avoid generating caps when registering
...
Don't generate caps when we register the class but delay that till when
we actually create an instance of the class.
2009-11-02 09:06:40 +01:00
Edward Hervey
e8c689fe94
ffdemux: avoid generating caps when registering
...
Don't generate caps when we register the class but delay that till when
we actually create an instance of the class.
2009-11-02 09:06:05 +01:00