Commit graph

260 commits

Author SHA1 Message Date
Jan Schmidt
f2d0c6a89e resindvd/mpegdemux: Send both PTS and DTS downstream
Now that we can.
2012-09-01 16:09:59 -07:00
Jan Schmidt
3ace19461f mpegdemux: Merge some DVD pieces and fixes
Bring the resindvd copy of mpegpsdemux and the normal version
slightly closer together.

Don't forward incoming sink caps event to downstream elements.
2012-08-31 07:06:50 -07:00
Jan Schmidt
628a8ed8b1 mpegdemux: avoid extra refs/unrefs of the demuxer
Change all the gst_pad_get_parent() calls to a cast to the
passed parent variable where appropriate, and don't unref,
including the extra unref in the
gst_flups_demux_sink_activate_push() function.
2012-08-31 07:06:50 -07:00
Tim-Philipp Müller
2483c82bd7 video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 23:37:00 +01:00
Tim-Philipp Müller
0cf07e04be mpegpsdemux: also activate in push mode if the scheduling query failed
In case pads are unlinked somewhere.
2012-07-18 09:19:30 +01:00
Tim-Philipp Müller
421b593048 mpegdemux: fix push mode activation
Extra unref on push mode activation caused havoc.
2012-07-18 08:43:01 +01:00
Sebastian Dröge
9c7d7498bb gst: Implement segment-done event 2012-07-05 13:18:47 +02:00
Wim Taymans
dbed726057 update for task api change 2012-06-20 10:40:42 +02:00
Tim-Philipp Müller
a3fc64d153 mpegdemux: rename plugin to mpegpsdemux 2012-06-16 18:35:56 +01:00
Tim-Philipp Müller
61bad24f81 mpegdemux: remove unused TS demuxer bits that have moved to tsdemux 2012-06-16 18:35:56 +01:00
Sebastian Dröge
cda192b3b7 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Sebastian Dröge
860ccd414d Merge remote-tracking branch 'origin/0.10'
Conflicts:
	NEWS
	RELEASE
	common
	configure.ac
	docs/libs/gst-plugins-bad-libs-sections.txt
	docs/plugins/gst-plugins-bad-plugins.args
	docs/plugins/gst-plugins-bad-plugins.hierarchy
	docs/plugins/gst-plugins-bad-plugins.interfaces
	docs/plugins/inspect/plugin-adpcmdec.xml
	docs/plugins/inspect/plugin-adpcmenc.xml
	docs/plugins/inspect/plugin-assrender.xml
	docs/plugins/inspect/plugin-audiovisualizers.xml
	docs/plugins/inspect/plugin-autoconvert.xml
	docs/plugins/inspect/plugin-bayer.xml
	docs/plugins/inspect/plugin-bz2.xml
	docs/plugins/inspect/plugin-camerabin2.xml
	docs/plugins/inspect/plugin-celt.xml
	docs/plugins/inspect/plugin-dataurisrc.xml
	docs/plugins/inspect/plugin-debugutilsbad.xml
	docs/plugins/inspect/plugin-dtmf.xml
	docs/plugins/inspect/plugin-dtsdec.xml
	docs/plugins/inspect/plugin-dvbsuboverlay.xml
	docs/plugins/inspect/plugin-dvdspu.xml
	docs/plugins/inspect/plugin-faac.xml
	docs/plugins/inspect/plugin-faad.xml
	docs/plugins/inspect/plugin-gsm.xml
	docs/plugins/inspect/plugin-h264parse.xml
	docs/plugins/inspect/plugin-mms.xml
	docs/plugins/inspect/plugin-modplug.xml
	docs/plugins/inspect/plugin-mpeg2enc.xml
	docs/plugins/inspect/plugin-mpegdemux2.xml
	docs/plugins/inspect/plugin-mpegtsdemux.xml
	docs/plugins/inspect/plugin-mpegvideoparse.xml
	docs/plugins/inspect/plugin-mplex.xml
	docs/plugins/inspect/plugin-pcapparse.xml
	docs/plugins/inspect/plugin-rawparse.xml
	docs/plugins/inspect/plugin-rtpmux.xml
	docs/plugins/inspect/plugin-rtpvp8.xml
	docs/plugins/inspect/plugin-scaletempo.xml
	docs/plugins/inspect/plugin-schro.xml
	docs/plugins/inspect/plugin-sdp.xml
	docs/plugins/inspect/plugin-segmentclip.xml
	docs/plugins/inspect/plugin-shm.xml
	docs/plugins/inspect/plugin-videomaxrate.xml
	docs/plugins/inspect/plugin-videoparsersbad.xml
	docs/plugins/inspect/plugin-vp8.xml
	docs/plugins/inspect/plugin-y4mdec.xml
	ext/celt/gstceltdec.c
	ext/dts/gstdtsdec.c
	ext/modplug/gstmodplug.cc
	ext/opus/gstopusenc.c
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideodecoder.h
	gst-libs/gst/video/gstbasevideoencoder.c
	gst-libs/gst/video/gstbasevideoencoder.h
	gst/adpcmdec/Makefile.am
	gst/audiovisualizers/gstbaseaudiovisualizer.c
	gst/h264parse/gsth264parse.c
	gst/mpegdemux/mpegtsparse.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/mpegtsdemux/mpegtspacketizer.c
	gst/mpegtsdemux/mpegtsparse.c
	gst/mpegtsdemux/tsdemux.c
	gst/mpegtsdemux/tsdemux.h
	gst/mxf/mxfdemux.c
	gst/rawparse/gstaudioparse.c
	gst/videoparsers/gsth263parse.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	sys/decklink/gstdecklinksink.cpp
	sys/dvb/gstdvbsrc.c
	sys/shm/gstshmsrc.c
	sys/vdpau/h264/gstvdph264dec.c
	sys/vdpau/mpeg/gstvdpmpegdec.c
	tests/examples/opencv/gst_element_print_properties.c
	win32/common/config.h
2012-03-29 17:41:53 +02:00
Wim Taymans
bc38bc27b7 don't pass random pointers to pull_range 2012-03-16 21:47:39 +01:00
Wim Taymans
6cbb840385 update for memory api changes 2012-03-15 13:37:36 +01:00
Sebastian Dröge
0bd9ae0dea mpegtsparse: Fix 'variable 'pid' is uninitialized when used here' compiler warning 2012-03-06 14:44:25 +01:00
Sebastian Dröge
5f2081e828 mpegdemux: Fix 'expression result unused' compiler warning 2012-03-06 14:43:29 +01:00
Edward Hervey
85878c142e mpegts: Switch rank of mpegtsdemux and tsdemux
More effort has been put lately in tsdemux and works in more use cases
2012-03-05 09:46:17 +01:00
Guillaume Desmottes
ddfcfb5a7a Add missing GLIB_DISABLE_DEPRECATION_WARNINGS
Suppress warnings about deprecated threading and GValueArray
API, so git compiles with -Werror.

https://bugzilla.gnome.org/show_bug.cgi?id=670982
2012-02-28 22:55:34 +00:00
Wim Taymans
1119f6ee41 Merge branch 'master' into 0.11
Conflicts:
	ext/chromaprint/gstchromaprint.c
	ext/mpeg2enc/Makefile.am
	ext/voaacenc/gstvoaacenc.c
	gst/dvbsuboverlay/gstdvbsuboverlay.c
	gst/mpegtsdemux/mpegtsbase.c
	gst/sdp/gstsdpdemux.c
	gst/videoparsers/gsth264parse.c
	sys/d3dvideosink/d3dvideosink.c
	tests/examples/camerabin/gst-camera-perf.c
	tests/examples/camerabin/gst-camerabin-test.c
	tests/examples/camerabin2/gst-camerabin2-test.c
	tests/examples/mxf/mxfdemux-structure.c
	tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Wim Taymans
de1f89bf07 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:37:13 +01:00
Vincent Penquerc'h
2eef9828d6 mpegtsdemux: do not emit no-more-pads
Doing so may fix some things, but breaks others (new streams being
added in the future).

https://bugzilla.gnome.org/show_bug.cgi?id=665814
2012-02-03 17:37:16 +00:00
Vincent Penquerc'h
5c8ca4e1d0 mpegdemux: include specific AAC stream-format types in template caps
https://bugzilla.gnome.org/show_bug.cgi?id=665394
2012-02-02 12:37:01 +00:00
Sebastian Dröge
2e0bc90903 mpegdemux: Don't leak the SCHEDULING query 2012-01-27 16:56:53 +01:00
Matej Knopp
7bcd991f93 Port mpegdemux to 0.11 2012-01-27 16:56:23 +01:00
Vincent Penquerc'h
8147669971 plenty: fixup glib deprecations 2012-01-27 15:47:07 +00:00
Sebastian Dröge
a2a4300241 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	ext/kate/gstkateenc.c
	gst/colorspace/colorspace.c
	gst/mpegvideoparse/mpegvideoparse.c
2012-01-25 13:22:43 +01:00
Alessandro Decina
8fb0beaf00 mpegpsdemux: limit the amount of scanning done on duration queries
Limit the amount of data scanned when looking for PTSes in duration queries as a
failsafe for kinda broken, potentially large files with sparse or no PTSes.
2012-01-25 13:06:46 +01:00
Alessandro Decina
0961e2f494 mpegpsdemux: don't scan for the last PTS if the first wasn't found 2012-01-25 13:06:45 +01:00
Vincent Penquerc'h
cf74b0bc76 mpegtsdemux: fix frequent deadlock demuxing MPEG TS
A previous patch to add streams early to fix playback of
low bitrate streams causes frequent deadlock of a nature
I'm at loss how to fix.
I'm not certain whether it's a bug in decodebin2, or in
that mpegtsdemux patch.
Since it causes a major regression, let it be disabled for now.
2012-01-23 17:47:45 +00:00
Mark Nauwelaerts
f1810502a7 mpegdemux: avoid NULL manipulation if invalid input 2012-01-23 14:22:18 +01:00
Mark Nauwelaerts
552f991ba0 mpegdemux: avoid some unlikely leaks 2012-01-23 14:22:17 +01:00
Tim-Philipp Müller
27354f065d mpegpsdemux: handle corner-case of short read in pull_buffer better
It's extremely unlikely, but there are corner cases where a short
read might happen, so handle that, just in case.
2012-01-19 15:56:12 +00:00
Vincent Penquerc'h
31cb57fbb7 mpegdemux: fix missing finalize chaining to parent
This code does not seem to trigger on my test streams, so it's
a bit of a blind fix, but seems safe enough to push.
2012-01-16 17:10:30 +00:00
Edward Hervey
f70a623418 Merge remote-tracking branch 'origin/master' into 0.11-premerge
Conflicts:
	docs/libs/Makefile.am
	ext/kate/gstkatetiger.c
	ext/opus/gstopusdec.c
	ext/xvid/gstxvidenc.c
	gst-libs/gst/basecamerabinsrc/Makefile.am
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideoencoder.c
	gst/asfmux/gstasfmux.c
	gst/audiovisualizers/gstwavescope.c
	gst/camerabin2/gstcamerabin2.c
	gst/debugutils/gstcompare.c
	gst/frei0r/gstfrei0rmixer.c
	gst/mpegpsmux/mpegpsmux.c
	gst/mpegtsmux/mpegtsmux.c
	gst/mxf/mxfmux.c
	gst/videomeasure/gstvideomeasure_ssim.c
	gst/videoparsers/gsth264parse.c
	gst/videoparsers/gstmpeg4videoparse.c
2011-12-30 11:41:17 +01:00
Vincent Penquerc'h
b23e6bfa70 mpegtsdemux: only warn when we see a PID with unknown type
This is quite frequent, and we will just ignore that stream,
so an error is not warranted.
2011-12-19 13:18:51 +00:00
Julien Isorce
f21ea162ad mpegtsparse: check offset when retrieving table_id on malformed packets
Fix bug #665988
2011-12-13 10:44:47 +01:00
Sebastian Dröge
0d40afa9f0 Revert "mpegtsparse: check offset when retrieving table_id on malformed packets"
This reverts commit e62978d045.
2011-12-13 10:44:42 +01:00
Julien Isorce
e62978d045 mpegtsparse: check offset when retrieving table_id on malformed packets 2011-12-12 15:05:16 +01:00
Vincent Penquerc'h
09f0860a10 mpegtsdemux: only offset timestamps when live
This code is to sync to a live source when there is a delay
between start and when we receive the first buffer, so it does
not make sense in a non live case.

This fixes playback of streams where the input timestamps are
based off some arbitrary offset.

https://bugzilla.gnome.org/show_bug.cgi?id=663756
2011-12-08 12:46:20 +00:00
Alexey Fisher
2099a39459 mpegpsdemux: recalculate adjust if difference is negative
One of my dvds jump on some position and miss about 1 minute of stream.
The reason was mpeg timestamps. On some position scr difference is negative.
It produced negative timestamps. Since it was converted to unsigned value,
gstreamer timestamps was invalid. Instead of increasing mpeg ts,
they was decreasing till it started to be positive.

The jump in timestamps caused mpeg2dec to skip frames to make QoS happy.

This patch just make diff unsigned to avoid negative values.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>

https://bugzilla.gnome.org/show_bug.cgi?id=656115
2011-11-29 11:35:11 +00:00
Tim-Philipp Müller
f585848d4b Merge remote-tracking branch 'origin/master' into 0.11 2011-11-28 23:20:58 +00:00
Vincent Penquerc'h
f1a4791f74 mpegdemux: Try to add all streams early
This will allow us to signal no-more-pads to avoid hitting
the decodebin2 overrun.
2011-11-28 15:10:47 +00:00
Vincent Penquerc'h
fb66b3c2ac mpegtsdemux: handle pads with no data
Some streams declare PIDs but will not send data for them.
Ensure we time out on those, and both send new segments to
keep their time synchronized with the rest, and do not wait
forever before deciding to signal no-more-pads.

https://bugzilla.gnome.org/show_bug.cgi?id=659924
2011-11-28 15:08:13 +00:00
Vincent Penquerc'h
f909c57546 mpegtsdemux: signal no-more-pads when appropriate
We track streams for which a data callback is set (and for which
pads will be added only when data is received), and signal
no-more-pads when the last pad is added.

https://bugzilla.gnome.org/show_bug.cgi?id=659924
2011-11-28 15:08:06 +00:00
Vincent Penquerc'h
9715fc3189 mpegdemux: take into account offset of first buffer
This fixes playback when the source starts later than the playback
pipeline, and when a source drops for a while then restarts.

https://bugzilla.gnome.org/show_bug.cgi?id=657794
2011-11-28 14:01:43 +00:00
Vincent Penquerc'h
918d2e710f mpegdemux: fix some more video freezing
There was a second threshold, which apparently needs to be smaller
than the first, though I'm not certain of it as I don't understand
yet this nest of wtf that is the mpeg demuxer timing logic.

Fixes video freezing on one (corrupted) MPEG sample. It would
previously never think it was out of the discontinuity, and would
push buffers with no timestamp.

Now this took me more than a day's poking at the thing, for just
one constant change, and I'm scared to have to touch this again :S

https://bugzilla.gnome.org/show_bug.cgi?id=655804
2011-11-28 13:57:42 +00:00
Vincent Penquerc'h
7960280afb mpegdemux: catch smaller PTS dicontinuities
In a test stream, I get one buffer with a PTS of about 15 seconds
in the future compared to the previous one, and next buffers with
timestamps continuing where the original ones left off.

This caused the sink to wait 15 seconds to display the frame while
more frames queued up, and then dump all the subsequent frames as
they "arrived too late".

Maybe that threshold should be made configurable, but for now,
make it more smaller to catch more of these.

https://bugzilla.gnome.org/show_bug.cgi?id=655804

Non AV streams keep using the larger threshold (10 minutes), as
subtitles may arrive only every so often.
2011-11-28 13:57:29 +00:00
Vincent Penquerc'h
7521b597f4 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Wim Taymans
0a9387c43c Merge branch 'master' into 0.11
Conflicts:
	ext/opus/gstopusdec.c
	ext/opus/gstopusenc.c
	ext/opus/gstopusparse.c
	gst/audiovisualizers/gstwavescope.c
	gst/filter/Makefile.am
	gst/filter/gstfilter.c
	gst/filter/gstiir.c
	gst/playondemand/gstplayondemand.c
2011-11-23 11:08:39 +01:00