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
Edward Hervey
a7dd30d8eb
ffenc: 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
Wim Taymans
343c82b18c
ffdec: 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-10-22 16:27:28 -04:00
Sebastian Dröge
2ed8b6728d
ffmpegenc: Add a note to the buffer-size property description
...
Setting it has no effect anymore and is deprecated.
2009-10-08 13:54:45 +02:00
Sebastian Dröge
087582d7cd
Revert "ffenc: Make the buffer-size property read-only"
...
This reverts commit 98439aacc7
.
Instead of printing a warning when trying to set the property
it should do nothing as before and the property description
should contain a note that setting it has no effect.
2009-10-08 13:52:22 +02:00
Sebastian Dröge
98439aacc7
ffenc: Make the buffer-size property read-only
...
...instead of just doing nothing when setting it. This makes sure
that people notice that they shouldn't set the property because
it creates a warning now.
2009-10-08 12:29:30 +02:00
Sebastian Dröge
c914f08b40
ffenc: Make sure to always provide large enough buffers
...
For audio always add the minimum ffmpeg buffer size, for video
use the same weird buffer size as they use in ffmpeg.c:
width*height*6 + 200
Also make setting of the buffer-size property a no-op.
Fixes bug #593651 .
2009-10-07 09:15:40 +02:00
Sebastian Dröge
3a96bed6e6
ffmpegenc: Use dash instead of underscore in property names
...
GLib internally converts them to dashs anyway.
2009-10-07 09:13:56 +02:00
Sebastian Dröge
ee31435d49
Revert "ffmpegenc: Use dash instead of underscore in property names"
...
This reverts commit b814d25cc9
.
2009-10-01 17:03:49 +02:00
Sebastian Dröge
25003e4307
Revert "ffenc: Make sure to always provide large enough buffers"
...
This reverts commit d9f6febe70
.
2009-10-01 17:03:42 +02:00
Sebastian Dröge
799b19c2f2
Revert "ffmpegenc: Also add FF_MIN_BUFFER_SIZE to video buffers too"
...
This reverts commit 577525af3d
.
2009-10-01 17:03:33 +02:00
Sebastian Dröge
577525af3d
ffmpegenc: Also add FF_MIN_BUFFER_SIZE to video buffers too
...
Just to make sure we never get below it in case of very small videos.
2009-10-01 16:46:34 +02:00
Sebastian Dröge
d9f6febe70
ffenc: Make sure to always provide large enough buffers
...
For audio always add the minimum ffmpeg buffer size, for video
use the same weird buffer size as they use in ffmpeg.c:
width*height*6 + 200
Also make setting of the buffer-size property a no-op.
Fixes bug #593651 .
2009-10-01 16:44:22 +02:00
Sebastian Dröge
b814d25cc9
ffmpegenc: Use dash instead of underscore in property names
...
GLib internally converts them to dashs anyway.
2009-10-01 16:20:13 +02:00
Wim Taymans
b85d889582
ffdec: correctly check for NONE timestamp
2009-09-10 14:11:18 +02:00
Wim Taymans
669a0e359a
ffmpeg: add support for G721
...
Add support for g721, which is like G726 but with 1 channel, 8KHz and a bitrate
of 32000.
Fixes #594454
2009-09-09 13:35:20 +02:00
Jonathan Matthew
595de04316
codecmap: don't set channel-positions for common mono and stereo cases
2009-09-08 15:29:24 +02:00
Wim Taymans
46bf3b92d0
ffdec: disable interpolation when dropping frames
...
When we are dropping frames because of QoS disable the DTS interpolation because
we won't be able to update the timestamps and end up setting the wrong
timestamps. Instead, simply use the timestamps from ffmpeg.
2009-09-01 21:42:26 +02:00
Tim-Philipp Müller
0044128487
typefinders: skip ffmpeg typefinders if there isn't enough data
...
ffmpeg typefinders don't do bounds checking for small chunks of
data, so just skip them if we don't have a lot of data, to avoid
invalid memory access and/or crashes.
2009-08-21 02:58:58 +01:00
Wim Taymans
2b967b4122
ffdec: reset timestamp queue after flush
2009-08-18 13:20:55 +02:00
Tim-Philipp Müller
37875a95eb
Lower minimum sample rate in generic template caps from 8000 to 4000
...
Fixes playback of ADPCM clip (#591809 ).
2009-08-14 16:09:05 +01:00
Sebastian Dröge
5497a8d140
ffmpegdec: Fix strict aliasing warnings
2009-08-13 17:38:32 +02:00
Sebastian Dröge
6923de9378
ffmpegdec: Don't use guintptr as it's new in GLib 2.18
...
Fixes bug #591469 .
2009-08-12 10:57:18 +02:00
Edward Hervey
305e80e7d6
gstffmpeg: Lower debugging levels from WARNING to DEBUG
...
These statements aren't critical per se... and just clutter debug logs.
2009-08-10 12:04:39 +02:00
Sebastian Dröge
0111edbf5d
ffmpegenc: Return all supported caps instead of only the first
2009-08-09 09:47:26 +02:00
Sebastian Dröge
d181dbd7a0
ffmpegenc: If an encoder lists the supported pixfmts use them to create the caps
...
...instead of creating standard caps with all pixfmts.
Fixes bug #591038 .
2009-08-08 22:43:06 +02:00
Sjoerd Simons
ea6a66b5b3
ffmpegdec: Fix duration calculation when ticks_per_frame isn't 1
...
Fixes bug #591163 .
2009-08-08 22:20:03 +02:00
Sebastian Dröge
1c283b8c22
ffmpegdec: Fix compiler warning and indention
2009-08-06 06:57:18 +02:00
Руслан Ижбулатов
54428c186b
ffmpegdec: Assign offsets to outgoing buffers more accurate
...
This now uses ffmpeg functionality to keep random metadata next to
the buffers and to get the correct offset for a frame, similar to how
timestamps are handled.
Fixes bug #578278 .
2009-08-06 06:57:09 +02:00
Edward Hervey
56887682d0
gstffmpegenc: Try getting the caps for the declared pixfmt without a context.
...
PixFmt that are declared in AVCodec.pix_fmts are ones which are 'officially'
declared as being supported. We should therefore not have to create a
AVCodecContext and open an encoder to know if it's supported or not.
Also, doing it this way allows us to better pickup configuration overrides
we have in gstffmpegcodecmap for some codecs (like restrictions on width,
height, framerate like it's the case for dnxhd).
Fixes #575545
2009-07-31 13:27:28 +02:00
Olivier Crête
597f32e895
ffmpegdec: Disable theora decoder
...
The wrapper does not give the decoder the extradata correctly.
Just use theoradec.
Fixes bug #590172
2009-07-29 14:49:56 -04:00
Руслан Ижбулатов
a5f9485917
Codec frame delay fix and trailing zero-length frame fix
...
Takes codec frame delay into account (roughly the same way it does for timestamps for reordered frames) to produce frames with correct offsets.
A special hack to allow trailing frame with timestamp=segment.stop to be displayed.
Fixes bug #578278 .
2009-07-29 14:19:20 +02:00
Tim-Philipp Müller
508ab716b0
ffmpegdemux: use gst_element_found_tags() for global tags
...
So we get a message on the bus *and* tag events pushed downstream.
2009-07-28 23:58:02 +01:00
Tim-Philipp Müller
d917f59a84
ffmpegdemux: cache events from upstream and re-send them later
...
Cache any events we get from upstream before we're open, especially
tag events we may be getting from apedemux/id3demux or the like, and
push them downstream later when we've added our pads instead of just
dropping them silently. Fixes transcoding tags for Monkey's Audio
Files with preceding APE or ID3v2 tags (#586957 ). Add minimal unit
test for this.
Also push stream tags later after the global tags and the newsegment
event rather than right after creating the pad.
2009-07-28 23:58:02 +01:00
Jordi Mas
c27b4babf1
ffmpegmux: Add proper audio mapping for DVD muxer. Fixes #588546
2009-07-20 11:48:45 +02:00
Tim-Philipp Müller
2f8f014d9b
ffmpegmux: don't leak caps if type already exists
...
We don't know if gst_element_register() will replace the known type
or reject it, so we really need to free the caps before.
2009-07-01 10:45:32 +01:00
Tim-Philipp Müller
048b0145a8
ffmpegdemux: post tags after the initial newsegment event
2009-07-01 10:45:32 +01:00
Wim Taymans
fe10ecd097
ffdec: don't wait for keyframe after discont
...
After a DISCONT, mark the next frame with DISCONT but don't wait for a new
keyframe. This greatly improves performance on lossy networks or currupted
frames as the decoder can usually continue and conceil errors up to the next
keyframe.
2009-07-01 11:23:59 +02:00
Wim Taymans
31a9d9330b
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-ffmpeg
2009-07-01 11:21:46 +02:00
Edward Hervey
fe2291e9e1
gstffmpegdec: Fix debug arguments. Fixes #587297
2009-06-29 13:53:50 +02:00
Arnout Vandecappelle
0192717045
ffmpegdec: don't drop buffers when caps change.
...
Fixes #585257
2009-06-25 16:05:56 +02:00
Jan Schmidt
473d7391a9
ffmpeg: Don't enter infinite loops in the timestamp tracking
...
Avoid an infinite loop consuming buffer timestamp info when
the video frames contain only GST_CLOCK_TIME_NONE timestamps.
Add some debug logging in the timestamp tracking paths.
Fixes : #585845
2009-06-24 15:20:12 +01:00
Stefan Kost
8e798e0082
debug: fix unused variable when building with debug disabled
2009-06-17 09:22:14 +03:00
Wim Taymans
608a920771
ffmpegdec: don't do QoS on invalid timestamps
...
When we convert the timestamp to running_time, don't try to do QoS on invalid
times.
Fixes #580810
2009-06-05 13:47:15 +02:00
Jordi Mas
cfbb046f1e
ffmpeg: make elements reusable after registry rescan
...
If the same instance of the plugin is asked to be initialised more that once,
instances after the first one do not register the elements properly and the
elements become not usable.
For example, if you call gst_update_registry (), is not possible to create
elements after the call since the plugin is asked to be initialised again and
does not register the elements.
Fixes #584291
2009-06-05 13:19:03 +02:00
Wim Taymans
686aadaf01
ffmpeg: properly integrate timestamp handling
...
The patch from Bug #580796 hacked around existing infrastructure to handle
timestamps as DTS (as in all AVI files) causing the logic to be disabled.
Properly hook the timestamp handling into the existing infrastructure to handle
these cases too, partially reverting a26b94d92c
and moving some stuff around.
Refixes #580796 .
2009-06-05 12:32:25 +02:00
Wim Taymans
54273a5771
enc: use standard multipass-cache-file
...
Deprecate the old statsfile property and add a the new standard
mulitpass-cache-file property to match other encoders.
Fixes #583627
2009-05-25 12:36:06 +02:00
Jan Schmidt
81e91e54c1
ffmpeg: Don't add sink pad template to the muxers when not needed.
...
If the set of caps for either audio or video is completely empty, skip
adding that pad template to the class. Some muxers only support audio-only
or video-only and otherwise end up with EMPTY caps in the pad template.
2009-05-20 10:59:47 +01:00
Wim Taymans
ff2f62ac8a
ffenc: avoid malloc more for audio encoders
...
Use _adapter_peek() to retrieve data so that we can reuse previously
allocated memory.
2009-05-13 23:18:50 +02:00
Edward Hervey
9fdc5a5d64
gstffmpegdec: demote mpeg2 video decoding back to MARGINAL. Fixes #574461
2009-05-13 19:35:32 +02:00
Sebastian Dröge
63a4d4f332
Add mapping for VQF caps
2009-05-13 16:21:36 +02:00
Edward Hervey
ee5a964293
gstffmpegdec: Don't forget to copy over the reordered_opaque in our buffers.
...
This is to be on-par with the default get_buffer() implementation (which is
detailed in libavcodec/utils.c).
2009-05-13 13:47:58 +02:00
Vanista
a26b94d92c
gstffmpegdec: Handle out-of-order frames. Fixes #580796
2009-05-13 12:45:38 +02:00
Wim Taymans
e2dd913f4c
ffenc: make the output buffer big enough
...
The ffmpeg docs say that the output buffer should at least be
FF_MIN_BUFFER_SIZE (which is overly large, but anyways).
2009-05-13 11:21:35 +02:00
Wim Taymans
25b41829b9
ffmpeg: rewrite audio encoders.
...
Rewrite the audio encoders to use the right API functions of ffmpeg. Also get
rid of the handrolled cache and use adapter instead for formats that require
fixed frame_size as input.
2009-05-13 01:04:30 +02:00
Wim Taymans
92b8a5adc9
codecmap: revert bogus commit.
...
We don't need to set a default frame_size, ffmpeg has set this value to 0 to
inform us that there is a fixed relation between the amount of input samples
and output samples. Now we only need to implement handling that fact.
2009-05-12 22:20:49 +02:00
Edward Hervey
a0c7a2d0c5
ffmpegcfg: Expose two more CODEC_FLAG.
2009-05-12 18:13:16 +02:00
Edward Hervey
f384b2a006
gstffmpegdec: No, really, we don't want the VDPAU decoders.
...
They've changed the names, keeping the old ones til we switch upstream
revision.
2009-05-12 15:30:10 +02:00
Sebastian Dröge
b9617cac31
ffdec: Update rank of ffdec_mpeg2video to SECONDARY to make it the default
...
ffdec_mpeg2video is much faster, fixes bug #574461 .
2009-05-12 11:21:01 +02:00
Edward Hervey
fb613191ae
gstffmpegdec: Implement interlaced support.
...
ffmpeg only tells us on a per-decoded-buffer basis if the stream is
interlaced or not. When we see a change, we force negotiation.
We can't detect that in our get_buffer() (when doing downstream allocation),
because at that point the interlaced flags aren't set on the outgoing
buffer.
2009-05-12 11:16:43 +02:00
Edward Hervey
36bdeea0e7
win32: Fix non-portable printf format.
2009-05-09 10:57:55 +02:00
David Hoyt
da8d4abad2
Use av_{i,o}format_next instead of the private next field
...
This fixes compilation with MSVC where the initializer variables
are aliased to different names. Fixes bug #576126 .
2009-05-07 12:57:10 +02:00
Sebastian Dröge
c2a9ee9264
ffenc: Implement preset interface
2009-05-04 13:00:49 +02:00
Thiago Santos
9133bb9ba2
ffenc: Send error upstream when gst_pad_push return is different from GST_FLOW_OK
2009-04-23 14:35:10 -03:00
Edward Hervey
f07223fd24
gstffmpegenc: Don't change properties once opened. Fixes #570815
...
Based on a patch by Tristan Matthews <le businessman at gmail dot com>
2009-04-21 18:38:03 +02:00
Janin Kolenc
ec5ad411a5
gstffmpegcfg: Add H263 to the list of mpeg property-compatible codecs.
2009-04-21 18:34:22 +02:00
Edward Hervey
57e66c5a22
Make sure we provide ffmpeg with 128bit-aligned data.
...
Add a new function new_aligned_buffer() which creates a GstBuffer of
the requested size/caps, with the memory being allocated/freed by ffmpeg's
av_malloc/av_free which guarantees properly aligned memory.
Added a can_allocate_aligned internal property which we use to figure out
whether downstream can provide us with 128bit aligned buffers.
2009-04-21 18:28:54 +02:00
Edward Hervey
ea76b43723
Reverting Jan's fix-the-buildbot commit
...
This reverts commit 5465d40b8d
.
2009-04-19 14:07:58 +02:00
Jan Schmidt
5465d40b8d
build: Deliberately break the build, temporarily.
...
This is to force the buildbots to run autogen.sh one time. I can't
figure out a more elegant way.
2009-04-19 02:42:20 +01:00
Edward Hervey
ae018718d4
gstffmpegdec: Really fix the arguments this time.
...
I blame compilers who can't figure out there's the wrong number of arguments
for the given print format :)
2009-04-18 09:08:39 +02:00
Edward Hervey
199d95c390
gstffmpegdec: Fix build on macosx.
...
The arguments were in the wrong order (and therefore the types were wrong).
2009-04-18 08:50:12 +02:00
Wim Taymans
010871cb77
ffmpegdec: resize padding buffer when it's small
...
Only resize the padding buffer when the size is too small, when it's just right,
we don't need to call realloc.
2009-04-17 19:07:26 +02:00
Wim Taymans
11db4588a6
ffmpeg: add default frame_size for g726
...
Without a frame_size configured in the context, the ffmpeg encoders do nothing.
Since the G726 does not configure a size itself, we set ourselves a frame_size
that corresponds to 20ms of audio, which is a reasonable default.
2009-04-17 16:27:09 +02:00
Edward Hervey
cbea9841ec
gstffmpegutils: Add the files :)
2009-04-16 11:00:46 +02:00
Edward Hervey
cc7ce2639c
Move all non-codecmap-related methods to a new file.
...
We were starting to get too much unrelated code in there. This makes it
a bit easier to maintain.
2009-04-15 22:33:16 +02:00
Edward Hervey
55336b1c5c
gstffmpeg.c: Fix the description of the plugin.
2009-04-15 22:14:09 +02:00
Edward Hervey
05a1470151
gstffmpeg.c: Point to the new ffmpeg website (ffmpeg.org).
2009-04-15 22:11:33 +02:00
Edward Hervey
f3c1a56a60
The proper spelling is 'FFmpeg'.
2009-04-15 22:11:10 +02:00
Edward Hervey
d39ad81ad7
gstffmpegmux: Use the AVFormat long_name in our descriptions.
...
This is the same behaviour we use in the demuxers.
2009-04-15 22:04:02 +02:00
Edward Hervey
9b8a99761a
Disable more fake codecs (raw audio).
2009-04-15 21:56:00 +02:00
LRN
2b25dbe12e
ffdec: copy input offsets to output buffers
...
Copy the incomming offsets to the outgoing buffers.
Fixes 578278.
2009-04-10 00:19:50 +02:00
Janin Kolenc
a44f5b4df3
ffenc: Add support for I-frame request.
...
Add request for I-frame request using GstForceKeyUnit event.
Fixes #575709 .
2009-03-25 12:51:55 +01:00
Sebastian Dröge
3fcef3b6a7
ffmux: Actually set caps on the srcpad instead of working with NULL caps
2009-03-23 14:07:06 +01:00
Edward Hervey
7ca2836193
Take into account ticks_per_frame for framerate calculation. Fixes #575759
2009-03-17 23:45:34 +01:00
Edward Hervey
983d2f2b36
Re-enable amr muxer. It's a muxer after all. Fixes #575664
2009-03-17 11:51:28 +01:00
Edward Hervey
59796dd0bc
gstffmpegdec: Disable vdpau decoders. Fixes #573400
2009-03-11 13:25:40 +01:00
Edward Hervey
2df7d3e960
pixfmt: Stop using PIX_FMT that were marked as deprecated 3 years ago.
...
It still worked... until the 0.5 ffmpeg release, which made those defines unused.
See the bottom of libavutil/pixfmt.h for more details.
2009-03-11 12:56:29 +01:00
Edward Hervey
45ec23e37c
codecmapping: Fix caps for ATRAC3. Fixes #574663
2009-03-10 21:14:21 +01:00
Edward Hervey
1e689f057f
Disable exposing decoder/encoder using external library. Fixes #574746
2009-03-10 21:11:43 +01:00
Edward Hervey
ca1321b224
blacklist bogus demuxer/muxer/typefind. Fixes #567336 and #574814
2009-03-10 21:05:52 +01:00
Edward Hervey
8cfa2c4314
gstffmpegdec: Use 64bit scaling function to avoid overflows detected in some situations.
2009-03-09 18:18:24 +01:00
Edward Hervey
146aab9dcb
demux: If the demuxer isn't initialized yet, forward serialized events without waiting.
...
We do this, because the demuxer is initialized in the loop function. If it's not
initialized yet, that means the loop hasn't been entered... and therefore the
PIPE GCond will never be signalled.
2009-03-09 15:09:10 +01:00
Edward Hervey
f8e3a0007f
demuxers: Blacklist push-mode for avformat demuxers which aren't reliable in push-mode.
...
Currently, only one is blacklisted : ffdemux_ape. This has been confirmed by
ffmpeg developers.
2009-03-09 13:46:06 +01:00
Edward Hervey
3f34bf8ef4
demuxers: Add more debugging
2009-03-09 13:45:22 +01:00
Edward Hervey
cc9dace674
gstffmpegcodecmap: Add proper caps for Fraps video codec
2009-03-09 10:07:39 +01:00
Edward Hervey
98167578c4
ffmpegdec: Make sure we provide 16 byte aligned data to ffmpeg. Fixes #572863
...
We simply allocate the memory using ffmpeg's av_malloc which provides us
with properly memalign'ed data.
This avoids write-outside-of-bounds when sse/altivec code is being used.
2009-03-06 17:37:51 +01:00
Edward Hervey
df6fb6867e
ffaudioresample: Add padding to output buffer. Fixes #573649
...
The internal resampling functions seem to require a slightly bigger buffer
for output than what we require. Therefore we give it an extra 64bytes (although
16 should have been enough).
2009-03-06 12:47:12 +01:00
Tim-Philipp Müller
c389f49295
ffmpegdec: post an error message on the bus when decoding fails
...
We should post a STREAM DECODE error message on the bus when we return
GST_FLOW_ERROR, otherwise the user ends up seeing an ugly internal flow
error message, which isn't very nice.
2009-03-06 11:01:55 +00:00