Commit graph

5250 commits

Author SHA1 Message Date
Tim-Philipp Müller
c313b7e212 hlssink: don't leak old playlist entries when using max-files
Based on patch by: Victor Gottardi <vgottardi@hotmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=689822
2013-01-06 22:53:00 +00:00
Tim-Philipp Müller
5522cceb55 inter: don't use deprecated GStaticMutex API 2013-01-04 17:19:25 +00:00
Tim-Philipp Müller
d1e9a96a69 mpegpsmux: use DTS in addition to PTS
And refactor choose_best_stream() a little.

videotestsrc pattern=ball ! x264enc ! mpegpsmux ! ...

plays much nicer now.
2013-01-01 11:59:39 +00:00
Tim-Philipp Müller
37de5a081c mpegpsmux: use gstreamer debug logging system everywhere 2012-12-31 19:45:54 +00:00
Tim-Philipp Müller
c056ecb02b mpegpsmux: port to 0.11
Naive port. Barely tested.
2012-12-31 19:42:03 +00:00
Matthias Hardt
0e3fdb1e16 tsdemux: extract ISO 639 language codes for subtitles into taglists
https://bugzilla.gnome.org/show_bug.cgi?id=680200
2012-12-28 23:32:55 +00:00
Thijs Vermeir
471ad809f6 videoparsers: use appropriate printf format for gsize 2012-12-18 16:52:26 +01:00
Thijs Vermeir
35a5100bc3 mxf: use appropriate printf format for gsize 2012-12-18 16:50:37 +01:00
Thijs Vermeir
67bbe5ebaf jpeg: use appropriate printf format for gsize 2012-12-18 16:40:59 +01:00
Thijs Vermeir
775cf6ab3e inter: use appropriate printf format for gsize 2012-12-18 16:20:08 +01:00
Sebastian Dröge
f623a78924 videoparsers: Make sure the caps are actually writable before changing them 2012-12-17 15:16:48 +01:00
Sebastian Dröge
9f1257330d videoparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.

https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:04:44 +01:00
Tim-Philipp Müller
02ab609c11 rtpmux: remove rtpmux plugin, moved to -good
Move rtpmux and rtpdtmfmux into rtpmanager plugin in -good.

https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 17:36:45 +00:00
Tim-Philipp Müller
7ab936fa7e scaletempo: remove scaletempo plugin, moved to -good
https://bugzilla.gnome.org/show_bug.cgi?id=687262
2012-12-15 13:37:23 +00:00
Tim-Philipp Müller
8b2641805f autoconvert: don't use deprecated threading API 2012-12-14 18:09:06 +00:00
Wim Taymans
0e0dd05fd6 h264parse: use upstream width/height when given
The upstream width and height should override the dimension detected in the
file.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683142
2012-12-13 14:15:04 +01:00
Arnaud Vrac
0d15c8a7a5 mpeg4videoparse: export number of sprite warping points in caps
This allows filtering out videos for hardware decoders that do not
support GMC at all or only support a limited number of sprite warping
points (usually 1).
2012-12-13 11:01:00 +00:00
Arnaud Vrac
07c2a82e5d mpeg4videoparse: handle divx caps
DivX 4/5 are MPEG4 part 2 videos, so they can be parsed by this plugin.
2012-12-13 11:01:00 +00:00
Tim-Philipp Müller
b0c30383ca mxfdemux: printf format fixes for debug messages 2012-12-12 18:50:09 +00:00
Tim-Philipp Müller
796708b3e3 hls: minor Makefile clean-up
Remove superfluous SOUP_CFLAGS and SOUP_LIBS.
2012-12-12 00:40:20 +00:00
Michael Esemplare
91bf909469 hls: link to the right gst-plugins-base libs and fix libs order
https://bugzilla.gnome.org/show_bug.cgi?id=690030
2012-12-11 21:13:21 +00:00
Sebastian Dröge
3478231790 mxfdemux: Don't allow any wrapping other than frame wrapping
Bad things will happen otherwise, like reading a complete,
multiple GB large video track into a single buffer.

Conflicts:
	gst/mxf/mxfdemux.c
2012-12-06 10:10:05 +01:00
Sebastian Dröge
76ca3c77d7 mxfdemux: Add function to get the essence track wrapping 2012-12-06 10:09:21 +01:00
Sebastian Dröge
28c11b2762 mxf: Add support for parsing filler structural components
This does not add support for actually producing filler data
if there's a filler component in a timeline.
2012-12-05 12:24:30 +01:00
Sebastian Dröge
a83b798312 mxf: Improve debug output during metadata resolval 2012-12-05 12:10:44 +01:00
Tim-Philipp Müller
caa9014bce resindvd, frei0r: link to libgmodule-2.0 in plugins that use g_module_* API
Probably needed for other plugins as well.
2012-11-30 20:01:16 +00:00
Sebastian Dröge
84e5418cfc mxf: Add more support for RP2008 (AVC in the MPEG mapping)
Conflicts:
	gst/mxf/mxfmpeg.c
2012-11-30 15:19:35 +01:00
Krzysztof Konopko
13910f5154 mpegtsmux: crashes when trying to re-use the element
A crash occured after pushing buffers and changing mpegtsmux state to
NULL/READ and then back to PLAYING/PAUSED.

The crash was caused by holding a dangling pointer in the MpegTsMux
program table.

Additionally stream headers were leaked when resetting the element:
mux->streamheader set to NULL in mpegtsmux_reset() before it's released
later in the same function.

Added a unit test: test_multiple_state_change

https://bugzilla.gnome.org/show_bug.cgi?id=689107
2012-11-27 19:00:25 +00:00
Krzysztof Konopko
76b8e8be51 mpegtsmux: propagate flow returns
And add a unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=688870
2012-11-23 00:14:53 +00:00
Tim-Philipp Müller
c6343ae5b5 hlssink: add doc chunk with example command line 2012-11-20 23:20:38 +00:00
Thibault Saunier
d53a447731 mpeg4videoparse: Fix nitpick 2012-11-15 11:40:05 -03:00
Thibault Saunier
daed78039e mpeg4videoparse: Make sure pad template caps are not fixed from the begging
Right now decodebin will concider the pad template caps as fixed and if a decoder
has restriction on for example height/width it won't be autoplugged because
gst_caps_is_subset fails as those fields are missing from the pad template caps.
We fix the issue here making sure that the pad caps are fixed using data from
the stream.
2012-11-15 10:45:53 -03:00
Josep Torra
3d012665f0 tsdemux: forward upstream time segments after flushes
Also reset segment info and drop the segment event when demuxer is
flushed.
Restore demuxer segment with the info stored in base when demuxer is
going to push data again if needed.
Drop code to recover the segment info from base in the initial program
becauses it's superseded by the new code.
2012-11-14 22:51:35 +01:00
Tim-Philipp Müller
9f7e7d305d gst_adapter_prev_timestamp -> gst_adapter_prev_pts 2012-11-14 12:41:27 +00:00
Tim-Philipp Müller
3abce95e61 hls: dist all header files needed to build 2012-11-14 11:35:23 +00:00
Tim-Philipp Müller
acd20a7960 accurip: fix linker flags
Spotted by Rico Tzschichholz.
2012-11-14 10:46:55 +00:00
Josep Torra
0b3e0ed080 tsdemux: reset the stream some more in the flushes
Now that we handle flushing in the FLUSH_STOP event we need to make
the streams ready if they were flushing.
2012-11-12 22:57:19 +01:00
Josep Torra
150376efe4 mpegtspacketizer: flush observations too
Flush the previous observations when the packetizer is flushed.
Also don't leak them in the dispose.
2012-11-12 22:57:19 +01:00
Josep Torra
1fc5fffe08 mpegtsbase: fix double unref of seek event 2012-11-12 22:57:19 +01:00
Josep Torra
cc40d49bed mpegtsbase: flush in FLUSH_STOP to avoid race conditions
Ensure the chain is not running before reset the state to avoid race
conditions and random corruptions downstream.
Also fixes segfaults in the packetizer due wrong available values that
causes gst_adapter_map to return a NULL pointer.
2012-11-12 22:57:19 +01:00
Josep Torra
996da425a9 Revert "tspacketizer: ensure that a null pointer isn't accessed"
This reverts commit 6efd611b8c.

Also this extra check won't be needed if it's fixed the race by moving
flush actions to FLUSH_STOP.
2012-11-10 19:52:46 +01:00
Josep Torra
80dd130fb0 Revert "tsbase: add a guard with an atomic boolean when flushing"
This reverts commit e14e310f71.

Would be better move the packetizer flushing to FLUSH_STOP and avoid
the race that way. Without introducing a memory barrier that could
have impact in the performance.
2012-11-10 19:46:40 +01:00
Alessandro Decina
51c4f255be hlssink: remove vim .swp files that I just committed accidentally... 2012-11-10 14:43:17 +01:00
Alessandro Decina
48431d76e6 hlssink: port to 1.0 2012-11-10 14:40:50 +01:00
Alessandro Decina
8cc1400488 hlssink: cut segments using the running-time 2012-11-10 14:40:50 +01:00
Alessandro Decina
b9018b2870 hlssink: don't unref ->multifilesink.
We gst_bin_add it to ourself so no need to unref in _dispose.
2012-11-10 14:40:50 +01:00
Alessandro Decina
b46886643b hlssink: rework _reset a bit 2012-11-10 14:40:38 +01:00
Josep Torra
e14e310f71 tsbase: add a guard with an atomic boolean when flushing 2012-11-10 00:08:35 +01:00
Josep Torra
6efd611b8c tspacketizer: ensure that a null pointer isn't accessed
Mitigates segfault due race condition in FLUSH_START handling and
mpegts_base_chain.
2012-11-09 22:17:11 +01:00
Edward Hervey
651203de07 mpegts: Only use timestamp-based PCR/PTS estimation when needed
When dealing with non-time based push-mode streams, we need to revert
to using the offset-based PCR/PTS estimation logic of packetizer.

This solves uses cases such as:
 pushfile:// ! tsdemux
 src ! queue ! tsdemux

https://bugzilla.gnome.org/show_bug.cgi?id=687178
2012-11-09 12:15:24 +01:00
Kevin Thornberry
c2d4c0da5e mpegtsmux: fix DTS value being used for PTS
https://bugzilla.gnome.org/show_bug.cgi?id=687806
2012-11-07 20:34:38 +00:00
Thibault Saunier
b3abd51656 h264parse: don't rewind to the NAL length size in bytewriter if the format is bytestream
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687548

Signed-off-by:  Kevin Thornberry
2012-11-06 12:44:29 -03:00
Thibault Saunier
72933e3929 h264parse: Actually add PPS data to the output buffer 2012-11-06 11:54:39 -03:00
Will Thompson
b4bf05b32e hlssink: add a playlist-length property
Probably not particularly useful in general, but handy
to cut down the latency on a stream.

https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:11 +00:00
Luciana Fujii Pontello
40325be3a4 hlssink: reset when going to NULL state
https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:07 +00:00
Luciana Fujii Pontello
dda3106650 hlssink: Fix segment names on playlist
When the playlist-root is not set, the segment name must not be
appended by the path.

https://bugzilla.gnome.org/show_bug.cgi?id=687133
2012-11-05 12:50:04 +00:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Sebastian Dröge
6fbf96d3e4 scaletempo: Use a better plugin filename 2012-11-02 13:44:02 +01:00
Tim-Philipp Müller
854626c908 rtpvp8: remove and move to -good
https://bugzilla.gnome.org/show_bug.cgi?id=687263
2012-11-01 20:50:56 +00:00
Jan Schmidt
119c27c9b9 tsmux: Slightly reflow collected buffer handler for clarity. 2012-10-30 10:00:08 +11:00
Sebastian Pölsterl
43938bbf54 tsdemux: Fix name of CAT GstStructure
The structure previously was assigned the name "pat".

https://bugzilla.gnome.org/show_bug.cgi?id=686948
2012-10-29 13:16:46 +01:00
Tim-Philipp Müller
72353aeb71 docs: add new accurip element to docs
https://bugzilla.gnome.org/show_bug.cgi?id=685163
2012-10-28 16:54:07 +00:00
Christophe Fergeau
8c81e39de0 accuraterip: new element for AccurateRip calculation
https://bugzilla.gnome.org/show_bug.cgi?id=685163
2012-10-28 16:36:01 +00:00
Michael Smith
0c8a7fa46f mxf: Port mxfdemux to 1.0
Also ports mxfmux to 1.0 to the extent that it compiles, but is 100% untested,
so remains disabled.

Conflicts:
	gst/mxf/mxfdemux.c
	gst/mxf/mxfmux.c
2012-10-26 13:48:06 -07:00
Mark Nauwelaerts
0d1c7f6ea2 videoparsers: use parsed or upstream fps to set some baseparse parameters 2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
58441bf262 h264parse: extract structure from correct caps
... which are known != NULL.
2012-10-25 18:02:38 +02:00
Mark Nauwelaerts
821c8519e0 videoparsers: preserve upstream fps and par
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660866
2012-10-25 17:07:18 +02:00
Sebastian Dröge
36680b1190 vc1parse: Give vc1parse a rank of NONE for now 2012-10-25 14:05:48 +02:00
Sebastian Dröge
6d5fc5a771 vc1parse: Port to 1.0 2012-10-25 14:05:48 +02:00
Alessandro Decina
00abb674ca vc1parse: disable BDU parsing until it's more mature
Parsing and splitting BDUs seems to trigger a few bugs in
downstream decoders so disable it for now.
2012-10-25 14:05:48 +02:00
Alessandro Decina
d03f5499bd vc1parse: set duration on output buffers
This has the nice side effect of avoiding hanging at EOS with truncated asf
clips.

Conflicts:
	gst/videoparsers/gstvc1parse.c
2012-10-25 14:05:48 +02:00
Alessandro Decina
f287dec1a2 vc1parse: workaround for simple/main codec_data being 5 bytes long
Sometimes the codec_data buffer for simple/main pushed by asfdemux is 5 bytes
instead of 4. When that happens, codec_data is still valid but it seems to have
one 0x00 trailing byte. Might be a bug in the demuxer, needs more investigation.
2012-10-25 14:05:48 +02:00
Alessandro Decina
8aec23ac05 vc1parse: remove stub stream conversion code 2012-10-25 14:05:48 +02:00
Alessandro Decina
cbecbbe23e vc1parse: add some more debugging to _renegotiate 2012-10-25 14:05:48 +02:00
Sebastian Dröge
5af8f82ecd vc1parse: Add VC1 parser plugin 2012-10-25 14:05:48 +02:00
Thijs Vermeir
1d710ad13a mpegdemux: check base_time before calculating new_start
https://bugzilla.gnome.org/show_bug.cgi?id=623387
2012-10-24 12:01:46 +02:00
Sebastian Dröge
df12aae15b scaletempo: Fix event leak 2012-10-23 14:33:21 +02:00
Sebastian Dröge
7c136f1166 scaletempo: Fix timestamp tracking 2012-10-23 14:32:24 +02:00
Sebastian Dröge
bb0c2d40c4 scaletempo: Implement LATENCY query 2012-10-23 14:20:12 +02:00
Sebastian Dröge
9319b48d24 scaletempo: Store instance private data in the instance struct
Getting it over and over again via G_TYPE_INSTANCE_GET_PRIVATE()
is really slow.
2012-10-23 13:39:17 +02:00
Sebastian Dröge
1bafd6191a hls: Link to $(LIBM) for isfinite() 2012-10-23 10:07:31 +02:00
Tim-Philipp Müller
2c02e25640 subenc: port to 1.0 2012-10-22 11:00:38 +01:00
Jan Schmidt
5888c60570 mpegtsmux: Don't make the same buffer writable twice.
Fixes Bug 686327 - mpegtsmux: fix refcount issue with input buffers
2012-10-22 01:41:41 +11:00
Mark Nauwelaerts
88f407bb5b mpegdemux: forward non-processed dvd events
... such as notably dvd-spu-clut-change.
2012-10-19 16:17:45 +02:00
Mark Nauwelaerts
a2b6f46f00 mpegdemux: segment event should be sent before gap event 2012-10-19 16:17:45 +02:00
Tim-Philipp Müller
465374f3c8 tsdemux: fix program packet sequence counter parsing in PES header 2012-10-19 01:05:44 +01:00
Tim-Philipp Müller
10c881b107 tsdemux: fix some inconsequential PES header parsing issues
additional_copy_info: need to get rid of the highest
bit, not the lowest one

program_packet_sequence_counter: also need to get rid
of the highest bit instead of multiplying with a random
value

original_stuff_length: want to AND 0x3f to extract the
lowest 6 bits, not multiply by it.

None of these fields are actually used though, so these
should not have caused any issues.
2012-10-19 01:05:34 +01:00
Raimo Järvi
9640669689 tsdemux: Fix parsing P-STD_buffer in PES header
https://bugzilla.gnome.org/show_bug.cgi?id=686294
2012-10-19 00:29:40 +01:00
Andoni Morales Alastruey
f768dfd925 tsdemux: fix potential crash dereferencing NULL program pointer
https://bugzilla.gnome.org/show_bug.cgi?id=686358
2012-10-18 17:54:41 +01:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Sebastian Dröge
5e6783f5af mpegdemux: Fix unitialized variable compiler warning 2012-10-16 11:38:08 +02:00
Sebastian Dröge
932c7175d3 hlsdemux: And fix another deadlock caused by the update thread not correctly shutting down
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 11:46:45 +02:00
Sebastian Dröge
477b04a282 hlsdemux: Also hold the mutex before signalling the condition variable
Conflicts:
	gst/hls/gsturidownloader.c
2012-10-15 11:04:06 +02:00
Sebastian Dröge
113ccb1a53 hlsdemux: Also cancel the downloader before stopping the playlist update task 2012-10-15 10:55:12 +02:00
Sebastian Dröge
b335f5a68e hlsdemux: Only lock the mutex when it's not locked already
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 10:39:52 +02:00
Sebastian Dröge
443703a08e hlsdemux: Fix another race condition by holding the mutex that the condition variable uses
Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 10:38:36 +02:00
Sebastian Dröge
e3f00d6252 hlsdemux: Port some things from the last commits 2012-10-15 09:47:35 +02:00
Sebastian Dröge
4df3fad9e4 hlsdemux: Never ever stop a task from the task function
This will deadlock. Also make sure to always post an error message
if required before pausing tasks from the task function.

Should fix another bunch of deadlocks.

Conflicts:
	gst/hls/gsthlsdemux.c
2012-10-15 09:45:14 +02:00
Sebastian Dröge
ca57dd81e4 hlsdemux: Fix lots of deadlocks caused by race conditions in the task state handling 2012-10-15 09:44:09 +02:00
Mark Nauwelaerts
953e94ac78 mpegdemux: advance stream time when sending GAP event 2012-10-12 22:35:05 +02:00