Commit graph

1404 commits

Author SHA1 Message Date
Tim-Philipp Müller
36d972e01a mpg123: fix build with msvc
Fix syntax errors when compiling against cerbero-provided libmpg123
headers. We do the same as the libmpg123 internal visual studio
build here.

mpg123.h(1378): error C2143: syntax error: missing ')' before '('
mpg123.h(1378): error C2081: 'ssize_t': name in formal parameter list illegal
mpg123.h(1378): error C2143: syntax error: missing ')' before '*'
mpg123.h(1378): error C2091: function returns function
mpg123.h(1378): error C2143: syntax error: missing '{' before '*'
mpg123.h(1378): error C2059: syntax error: ')'
mpg123.h(1379): error C2143: syntax error: missing ')' before '*'
mpg123.h(1379): error C2365: 'off_t': redefinition; previous definition was 'typedef'
...
2016-04-15 19:55:03 +01:00
Tim-Philipp Müller
fd5a868c11 mpeg2dec: bump libmpeg2 requirement to 0.5.1 and fix msvc build
libmpeg2 0.5.1 was released in mid-2008, let's bump the requirement
and get rid of version-dependent code paths. There's still
avdec_mpeg2video for those who are stuck on ancient distros which
we don't target any more.

Also fixes build with MSVC, which doesn't like #if #else #endif
inside macro arguments (like the GST_DEBUG_OBJECT in line 941).
2016-04-15 18:43:27 +01:00
Vineeth TM
eacdaa56b3 ugly: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763082
2016-03-24 14:38:13 +02:00
Jens Georg
7e1c64e846 dvdread: Fix seek starting at 0 for title != 1
Otherwise the playback would start at title 0

https://bugzilla.gnome.org/show_bug.cgi?id=762787
2016-02-28 23:34:00 +11:00
Tim-Philipp Müller
b0434ddf4e mpeg2dec: don't use exported but undeclared core debug category symbols
It's not right and won't work on Windows with MSVC.
2016-02-20 11:55:37 +00:00
Sebastian Dröge
a40244bf25 sidplay: Fix compiler warning about C++11 compatibility
gstsiddec.cc:78:17: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
                 ^
gstsiddec.cc:78:38: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE(S16)","GST_AUDIO_NE(U16)", S8, U8 }"
                                      ^
2016-02-18 00:25:56 +02:00
Tim-Philipp Müller
43bd45ba99 mpg123: move from -bad to -ugly
Hook up to build system, add to docs
2016-02-16 10:59:25 +00:00
Tim-Philipp Müller
e3bb9b2928 Merge branch 'plugin-move-mpg123'
Move mpg123 plugin from -bad to -ugly.

https://bugzilla.gnome.org/show_bug.cgi?id=719849
2016-02-16 10:41:07 +00:00
Vineeth TM
93b15dd649 plugins-bad: Fix example pipelines
rename gst-launch --> gst-launch-1.0
replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
fix caps in examples

https://bugzilla.gnome.org/show_bug.cgi?id=759432
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
81ede77eb7 mpg123: still reset pending audio info on hard flush
Follow-up to previous commit.

https://bugzilla.gnome.org/show_bug.cgi?id=752431
2016-02-16 10:40:40 +00:00
Jason Litzinger
5d86e1070d mpg123: fix handling of sample rate change during playback
If the sample rate of the media changes, the resulting flush will
clear the has_next_audioinfo flag, and the caps won't be sent
downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=752431
2016-02-16 10:40:40 +00:00
Thiago Santos
2309da4e9c audiodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
          sbcdec, adpcmdec, sirendec
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
d6082ad2fc Remove obsolete Android build cruft
This is not needed any longer.
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
02e20d5056 mpg123: fix compiler warning and simplify checks in set_caps
https://bugzilla.gnome.org/show_bug.cgi?id=740195
2016-02-16 10:40:40 +00:00
Carlos Rafael Giani
4b7a954cae mpg123: rework set_format code so mpg123audiodec works with decodebin/playbin
The old code was using gst_caps_normalize() and was generally overly
complex. Simplify by picking sample rate and number of channels from
upstream and the sample format from the allowed caps. If the format caps
is a list of strins, just pick the first one. And if the srcpad isn't
linked yet, use the default format (S16).

https://bugzilla.gnome.org/show_bug.cgi?id=740195
2016-02-16 10:40:40 +00:00
Tim-Philipp Müller
eb89bf4030 Fix up one-element lists in template caps 2016-02-16 10:40:39 +00:00
Carlos Rafael Giani
fc142ba28a mpg123: improved error report and checks
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2016-02-16 10:40:39 +00:00
Sebastian Dröge
056c7bc7c9 mpg123audiodec: Require caps to be set before any data processing 2016-02-16 10:40:39 +00:00
Edward Hervey
fe7f0a6ac7 mpg123: Remove dead assignment
harder ? :)
2016-02-16 10:40:39 +00:00
Sebastian Dröge
deffbd375e gst: Add better support for static plugins 2016-02-16 10:40:39 +00:00
David Schleef
c4399160f6 mpg123: Add conditional on API version for new enum 2016-02-16 10:40:39 +00:00
Tim-Philipp Müller
11904d63be amrnb, amrwb: unconditionally depend on opencore-amr*b >= 0.1.3
We don't really need to cater for older versions any more.
2016-01-25 20:00:26 +00:00
Edward Hervey
e9a04cd153 mpeg2dec: Demote rank to SECONDARY
https://bugzilla.gnome.org/show_bug.cgi?id=574461
2016-01-21 17:38:34 +01:00
Arjen Veenhuizen
f037e7e59e x264enc: increase bitrate limit from 100Mbps to 2Gbps
Don't artificially limit the bitrate, x264enc allows much
higher bitrates, and for intra-only 4k AVC they are needed.
x264 clips to 2Gbps internally, so use that as limit for now.

https://bugzilla.gnome.org/show_bug.cgi?id=758620
2015-11-26 15:49:47 +00:00
Reynaldo H. Verdejo Pinochet
7d7bab4640 x264enc: drop unnecessary NULL check before g_free 2015-11-18 23:20:59 -08:00
Reynaldo H. Verdejo Pinochet
7a7715e18c dvdread: remove broken link
Removing instead of updating as previously pointed-to page
(now http://dvd.sourceforge.net/dvdinfo/) is already linked
from dvd.sourceforge.net's homepage as: "Collection of
information on file formats/data structures relating to DVD
navigation/SPUs."
2015-09-29 14:16:07 -07:00
Jan Schmidt
05aa763561 x264: Add bitrate info to the tags output.
Makes it possible for muxers to know the target bitrate as soon
as encoding starts, which flvmux now uses.
2015-09-05 23:34:45 +10:00
Thiago Santos
7fef2de2d8 x264enc: actually return TRUE from accept-caps handler
The query was handled
2015-08-18 02:23:55 -03:00
Thiago Santos
ba5e19706d x264enc: implement accept-caps handling
Implement accept-caps handling without doing caps queries downstream
2015-08-16 14:27:44 -03:00
Thiago Santos
e1b6ef3209 audioencoders: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough

Elements: amrnbenc, lamemp3enc, twolamemp2enc
2015-08-15 22:15:26 -03:00
Thiago Santos
c1211659cc mpeg2dec: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query
2015-08-15 11:54:11 -03:00
Thiago Santos
79bfd0f42c audiodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an
accept-caps query

Elements: a52dec, amrnbdec, amrwbdec, mad
2015-08-15 11:54:11 -03:00
Tim-Philipp Müller
9f41cf0745 Update mailing list address from sourceforge to freedesktop 2015-07-16 17:19:58 +01:00
Matej Knopp
43d6ca85a0 x264enc: Use gst_video_encoder_set_min_pts
This method replace the manual adjustment of PTS and DTS to avoid
negative DTS issues. Using this method will also update the segment so
we don't loos sync.

https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-11 10:29:25 -04:00
Jan Schmidt
c6958c158f x264enc: Add support for stereoscopic video
Provide new frame-packing property to directly set
x264enc frame packing, or pass through upstream settings

The explicit layout from the frame-packing property is
preferred over any info from the caps.
2015-06-11 11:01:38 +10:00
Tim-Philipp Müller
c3c306b486 x264enc: don't artificially limit max allowed value of "threads" property
In auto mode it will happily chose much higher values anyway,
and a limit of 4 seems a bit low these days.
2015-05-26 17:58:18 +01:00
Jan Schmidt
5dfd112521 dvdread: Also reset the first_seek var in start()
Make the initial chapter seek work across reuse.

https://bugzilla.gnome.org/show_bug.cgi?id=453322
2015-05-12 22:06:15 +10:00
Jan Schmidt
bc7e8282d3 dvdread: Work around basesrc initial seek
Ignore the initial seek basesrc sends, as it
breaks starting from another chapter by
immediately seeking back to the start of the title
2015-05-12 21:52:24 +10:00
Tim-Philipp Müller
f034f77b73 docs: update example pipelines in element docs
Mostly gst-launch -> gst-launch-1.0, but also
use autoaudiosink/autovideosink in more places
and update pipelines a little or flesh out
descriptions.
2015-05-10 11:34:33 +01:00
Tim-Philipp Müller
19fd6f240d Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 17:56:31 +01:00
Vincent Penquerc'h
f529481b3d a52dec: fix race in liba52dec lookup table initialization
a52_init initializes the IMDCT global state as well as creating
a new state. When two A52 decoders are created (eg, when two AC3
tracks are contained in a video), calls to a52_init may happen
at the same time, and the IMDCT initialization is not reentrant.

https://bugzilla.gnome.org/show_bug.cgi?id=746781
2015-04-03 09:57:38 +01:00
Guillaume Desmottes
ca5fd56862 mpeg2dec: fix buffer leak in crop_buffer()
gst_buffer_pool_acquire_buffer() gives us a new owned buffer while
gst_buffer_replace() reffed it as well so we were one reference extra.

https://bugzilla.gnome.org/show_bug.cgi?id=746887
2015-03-30 16:19:00 -04:00
Luis de Bethencourt
31bf54a076 mpeg2dec: fix memory leak
CID #1291630
2015-03-24 12:51:36 +00:00
Luis de Bethencourt
d077a3a300 mpeg2dec: initialize buffer
Buffer needs to be null before passing it to gst_buffer_pool_acquire_buffer()

CID #1291634
2015-03-24 10:29:52 +00:00
Nicolas Dufresne
35c937f2a4 mpeg2dec: Add stride support
This allow using external pools that have different strides from the
default. These strides need to respect certain rules, which we check
and if these are not met, we fallback to generic pool.

https://bugzilla.gnome.org/show_bug.cgi?id=735379
2015-03-13 17:00:03 +00:00
Nicolas Dufresne
7e8050728a mpeg2dec: Re-implement pool handling
This is a rewrite of the pool negotiation and configuration. Direct
to output decoding is now achieved by configuring the pool using
video-alignment. This removes copies when dealing with any elements that
supports VideoAlignment, and enable usage of generic video buffer pool,
XVImagePool and GLPool. It drops the crop meta implementation for now.

https://bugzilla.gnome.org/show_bug.cgi?id=735379
2015-03-13 09:56:00 +00:00
Tim-Philipp Müller
0a467495c2 Fix double semicolons 2015-03-10 09:32:51 +00:00
Nicolas Dufresne
77126f73c5 Revert "mpeg2dec: Fix handling of stride"
This reverts commit f3e8dcb9de.
2015-03-09 19:11:51 +00:00
Nicolas Dufresne
d86e34a41e Revert "mpeg2dec: Use propose unref method for buffer"
This reverts commit 63b43d3bee.
2015-03-09 19:11:44 +00:00
Nicolas Dufresne
63b43d3bee mpeg2dec: Use propose unref method for buffer 2015-03-09 18:43:43 +00:00
Simon Farnsworth
f3e8dcb9de mpeg2dec: Fix handling of stride
A pipeline like:

gst-launch-1.0 filesrc location=file.ts ! tsdemux ! mpegvideoparse ! mpeg2dec  ! vaapisink

would look bad when file.ts contains 704x576 video, because vaapisink would
give you buffers of stride 768, but libmpeg2 was not told about this and
used a stride of 704.

Tell libmpeg2 about the stride from  downstream; in the process, teach it to
reject buffer pools that don't meet libmpeg2's chroma stride requirements

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
2015-02-15 15:11:41 -06:00
Sebastian Dröge
7dc03df3de Improve and fix LATENCY query handling
This now follows the design docs everywhere, especially the maximum latency
handling.

https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 13:56:48 +01:00
Sebastian Dröge
5dd1a28906 x264enc: Don't set max latency to the same value as the encoder latency
The meaning of the max latency is *not* the maximum latency this element will
introduce. It is the maximum latency this element can endure without
overflowing any buffers, which is infinite for x264enc.

Fixes latency configuration in zero latency mode, where max latency was
becoming 0... which usually won't work well if something else introduces
latency as then max < min in the end, and latency configuration just fails.
2015-02-06 19:04:32 +01:00
Vincent Penquerc'h
5f075f3361 x264enc: set annexb=1 in byte stream mode when downstream has ANY caps
This matches what is done when downstream caps are not ANY, and fixes
prerolling in byte stream mode when typefind is downstream.
2015-02-02 14:28:33 +00:00
Sebastian Dröge
2c5ba12f28 Constify some static arrays everywhere 2015-01-21 09:56:41 +01:00
Nicolas Dufresne
acc9529a36 x264enc: Don't set an allocation maximum
There is no reason x264enc should enforce a maximum allocation size.
The maximum is normally set by buffer pool which cannot grow, but we
don't offer a buffer pool. This would lead to stall when used with
element that don't implement allocation query.

Related to: https://bugzilla.gnome.org/show_bug.cgi?id=738302
2015-01-18 11:07:43 -05:00
Tim-Philipp Müller
5872a1454e x264: fix colour inversion with YV12 format
It's the same as I420 but with the U/V planes swapped.
2014-08-05 19:47:26 +01:00
Nicolas Dufresne
8aea88d261 x264enc: Request buffers in allocation query
https://bugzilla.gnome.org/show_bug.cgi?id=732288
2014-07-25 14:29:21 -04:00
Nicolas Dufresne
698714fc97 x264enc: Shift both PTS and DTS to ensure positive timestamp
Currently we only shift DTS to compensate that we don't support negative
timestamp. This cause a problem that PTS is no longer >= DTS and may
make muxers live much harder. Instead, shift both PTS/DTS forward. Also
remove all the hack to handle this which seems the result of thinking libx264
is bugged.

https://bugzilla.gnome.org/show_bug.cgi?id=731351
2014-07-19 12:59:05 -04:00
Aurélien Zanelli
84b2009155 x264enc: fix caps leak in set_format()
https://bugzilla.gnome.org/show_bug.cgi?id=730865
2014-05-28 10:09:41 +02:00
Tim-Philipp Müller
b2e13b82aa mpeg2dec: remove unused struct members 2014-05-16 16:24:46 +01:00
Edward Hervey
a665347345 mpeg2dec: Release codec state on negotiation failures
Else it leaks

CID #1212169
2014-05-09 14:54:54 +02:00
Tim-Philipp Müller
441e4f33b6 docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-27 00:29:16 +01:00
Vincent Penquerc'h
16a85fc664 dvdread: avoid intermediate promotion to signed
We should not reach the dangerous range here, though.

Coverity 206491, 206492, 1139856
2014-04-10 16:56:13 +01:00
Vincent Penquerc'h
6b887060b1 mpeg2dec: do not reset the whole video info when setting size
New changes to gstvideo will reset all the video info state
when calling _set_format, overwriting what was previously set
in the preceding code.

The comment says the following code is meant to preserve the
pre-crop size, so let's just keep the size and related data
 as this does not seem to break anything else (this is what
the _set_format call would have set before the change that
reset all data, except the colorimetry).
2014-04-04 10:58:50 +01:00
Dirk Van Haerenborgh
e15eb270f9 x264enc: allow lossless compression (qp=0)
https://bugzilla.gnome.org/show_bug.cgi?id=725051
2014-02-26 09:18:37 +01:00
Sebastian Dröge
4fb63af272 amrwbdec: Remove some dead code 2013-12-05 12:16:45 +01:00
Sebastian Dröge
4b3199bb8e amrnbdec: Remove some dead code 2013-12-05 12:16:38 +01:00
Sebastian Dröge
b378c171ff amrnbdec: Use gst_audio_decoder_set_needs_format() instead of custom code 2013-12-05 12:09:04 +01:00
Sebastian Dröge
cf32f8f6a5 amrwbdec: Use gst_audio_decoder_set_needs_format() instead of custom code 2013-12-05 12:08:46 +01:00
Sebastian Dröge
6049866ca6 mpeg2dec: Use new gst_video_decoder_set_needs_format() API 2013-12-05 11:44:10 +01:00
Tim-Philipp Müller
88b27e30c9 x264enc: fix compiler warning
Compiler warns rightly about possibly uninitialized variable.
2013-11-29 15:54:55 +00:00
Tim-Philipp Müller
20d6dbd2f6 x264enc: fix crash on NULL caps when negotiation happens without a downstream peer
gst-launch-1.0 videotestsrc ! x264enc
2013-11-29 15:54:55 +00:00
Mark Nauwelaerts
8c1be8796e mpeg2dec: graceful degradation for badly parsed input 2013-11-11 13:25:22 +01:00
Michael Esemplare
fc29cbaa54 x264enc: If FPS is available, set VFR to false
https://bugzilla.gnome.org/show_bug.cgi?id=708940
2013-10-04 12:07:31 +02:00
Andoni Morales Alastruey
03a98eabce x264enc: Update the documentation to match the default profile used
https://bugzilla.gnome.org/show_bug.cgi?id=708036
2013-09-24 10:47:41 +02:00
Olivier Crête
b82703170a x264enc: Implement getcaps that restricts the input format depending on the output profile
Also add some x264enc profile tests

https://bugzilla.gnome.org/show_bug.cgi?id=708326
2013-09-18 19:33:01 -04:00
Mathieu Duponchelle
0243810e1e x264enc: Don't unref future state but the old one
Being silly will lead us nowhere.
2013-09-05 22:56:48 +02:00
Sebastian Dröge
55037ab411 x264enc: Check if we have an input state before using it
Flushing might happen before caps were set on the encoder,
which would lead to crashes here.

Thanks to Matej Knopp for analyzing this.

https://bugzilla.gnome.org/show_bug.cgi?id=707414
2013-09-04 16:33:18 +02:00
Matej Knopp
ae45623450 x264enc: fix unsigned comparison warning 2013-09-04 10:47:55 +02:00
Tim-Philipp Müller
6572393629 x264enc: log when we output a lower profile than requested 2013-08-27 14:13:06 +01:00
Sebastian Dröge
aab5534573 x264enc: Consider subset relations of profiles when setting srcpad caps
constrained-baseline is a subset of baseline, is a subset of main,
is a subset of high profile.

https://bugzilla.gnome.org/show_bug.cgi?id=705425
2013-08-21 18:35:09 +02:00
Tim-Philipp Müller
e0ae81ebac x264enc: propagate flow return back to base class and upstream
https://bugzilla.gnome.org/show_bug.cgi?id=705425
2013-08-21 12:35:32 +01:00
Tim-Philipp Müller
71ce5136d1 x264enc: minor clean-up
We requires x264 build >= 120 now.
2013-08-17 23:09:15 +01:00
Sebastian Dröge
22b3a60dbd mpeg2dec: Fix mpeg2_reset() calls 2013-08-15 15:30:31 +02:00
Sebastian Dröge
f541f94262 ext: Use new flush vfunc of video codec base classes and remove reset implementations 2013-08-15 15:27:48 +02:00
Edward Hervey
96c15877f2 mpeg2dec: Do a hard reset of flush_stop
Which is notified by hard == 0 with latest refactoring.
2013-08-02 08:25:49 +02:00
Edward Hervey
767005d8c0 x264: Fix dts comparision
We were assigning to a guint64 value (frame->dts) the sum of a unsigned
and signed value... resulting it the result never being < 0.

Instead just check if it is smaller before assigning to frame->dts.
2013-07-26 16:47:30 +02:00
Sebastian Dröge
f8e05c2af0 mpeg2dec: Clean up reset/start/stop handling 2013-07-25 13:35:44 +02:00
Sebastian Dröge
a4a89275f8 x264enc: React properly to flushing/resetting the encoder
https://bugzilla.gnome.org/show_bug.cgi?id=656007
2013-07-25 12:48:55 +02:00
Sebastian Dröge
828791fadc siddec: Add support for group-id in the stream-start event 2013-07-22 16:02:46 +02:00
Edward Hervey
576fe462bc mpeg2dec: Properly reset on sequence changes
Otherwise we end up using stray data/buffers.

Fixes #690701
2013-07-17 16:17:54 +02:00
Mark Nauwelaerts
d0502b0a52 dvdreadsrc: correctly determine last chapter's duration
This (mostly) reverts 683f5eeae7.
It worked just fine before ...
2013-07-09 22:04:51 +02:00
Sreerenj Balachandran
866f60cce6 mpeg2dec: make the aspect ratio calculation more accurate.
Utilize the libmpeg2 api: mpeg2_guess_aspect() to guess the
aspect-ratio if we don't have a valid upstream PAR.

https://bugzilla.gnome.org/show_bug.cgi?id=685103
2013-06-04 17:29:31 +02:00
Olivier Crête
c9e20af4cb lamemp3enc: Tell GstAudioEncoder about the number of incoming samples
lame does internal resampling, but the base class only cares about
the number of raw samples, so tell finish frames about that, not
the number of samples in the outgoing frame.:
2013-05-09 19:48:37 -04:00
Tim-Philipp Müller
62ac56668a x264enc: output byte-stream if downstream has ANY caps
It's what people expect when they pipe the output to
filesink or into a tcp connection or pipe.
2013-04-30 10:04:23 +01:00
Sebastian Dröge
ef182de45f gst: Add better support for static plugins 2013-04-15 15:56:02 +02:00
Tom Greenwood
2e38f24b56 x264enc: Fix for 0/1 framerate - now uses VFR in this case
Previously did a division by zero.

https://bugzilla.gnome.org/show_bug.cgi?id=695728
2013-03-25 10:08:44 +01:00
Tim-Philipp Müller
5f83e4101f x264enc: simplify template caps
No need to make an array for one single element.
2013-02-08 00:15:01 +00:00
Tim-Philipp Müller
201e3f74be x264enc: put all theoretically possible formats in template caps
and decide at runtime which subset of these (8-bit or 10-bit video
formats) is supported. libx264 will be compiled for one of these
two options, and it is possible to switch by pointing the dynamic
linker to a different libx264 build at runtime. If we want our
template caps to be correct, they should contain all then, with
the actually supported ones determined at runtime.

https://bugzilla.gnome.org/show_bug.cgi?id=691935
2013-02-08 00:11:03 +00:00