Commit graph

846 commits

Author SHA1 Message Date
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
Jan Schmidt
cb245b7504 Automatic update of common submodule
From c572721 to f810030
2009-06-24 15:15:53 +01:00
Stefan Kost
8e798e0082 debug: fix unused variable when building with debug disabled 2009-06-17 09:22:14 +03:00
Jan Schmidt
60ee556217 build: Fix the dist - libswscale isn't an external on the 0.5 branch
The 0.5 ffmpeg branch includes libswscale directly, not as an external,
breaking the dist (and warning in autogen.sh) about not being able to
update its revision.

Add some code to not update the svn external if the
FFMPEG_EXTERNALS_REVISION variable is empty.

Also, in autogen.sh check that the current FFmpeg checkout is from the
right branch according to ffmpegrev, and check it out again if
it's not.
2009-06-06 15:14:45 +01:00
Jan Schmidt
8e961ec5ef 0.10.7.2 pre-release 2009-06-05 22:12:24 +01: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
6d643a134e check: add registry rescan test 2009-06-05 13:17:09 +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
LRN
5917098edf ffmpeg: change library inclusion order
Fixes #584399
2009-06-01 17:24:53 +02:00
Sebastian Dröge
3511342f18 Switch back to the ffmpeg 0.5 branch to allow us to release in the next weeks 2009-05-29 13:51:31 +02:00
Jan Schmidt
c4293909e4 Automatic update of common submodule
From 888e0a2 to c572721
2009-05-26 17:20:14 +01: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
2dbdbafb88 Automatic update of common submodule
From 6ab11d1 to 888e0a2
2009-05-22 10:21:02 +01: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
Sebastian Dröge
12ef79a2df Update ffmpeg revision to latest trunk 2009-05-13 16:19:21 +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
Marc-Andre Lureau
342b97cb3f Run libtoolize before aclocal
This unbreaks the build in some cases. Fixes bug #582021
2009-05-10 16:47:23 +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
Christian Schaller
c5e9009f08 Add videoscaler to spec file 2009-05-05 17:32:07 +01:00
Christian Schaller
f91e523955 removing make flags in spec file to make things flow easy with
GCC 4.4.0
2009-05-05 17:27:27 +01: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
Jan Schmidt
1e2a773c9b Automatic update of common submodule
From b3941ea to 6ab11d1
2009-04-21 22:13:51 +01: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
Jan Schmidt
3c064affc1 build: Fix maintainer-mode and embedded FFmpeg configuration parameters
Don't use AC_CONFIG_SUBDIRS to call the FFmpeg configure script, as it
complains about all the unknown parameters autoconf gives it, and fiddling
with ac_configure_args makes maintainer-mode call our real configure script
with a bunch of bogus arguments.

Instead, use AC_CONFIG_COMMANDS to call the FFmpeg configure script
ourselves.

Remove autogen.sh code that modifies the FFmpeg configure script, as it's
not needed now that we only pass it arguments it understands, and move
the detection of flags like --disable-ffmpeg into the configure script,
otherwise they never get passed to FFmpeg if we call configure ourselves,
such as from a tarball.
2009-04-19 02:42:10 +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
Jan Schmidt
a3d1cfe247 check: Add a simple test that the FFmpeg plugin loads
Check that the ffmpeg plugin actually exists after building.
2009-04-17 13:46:39 +01: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