summaryrefslogtreecommitdiff
path: root/gst/mpegtsmux
AgeCommit message (Collapse)AuthorFilesLines
2019-02-27mpegtsmux: restore stream creation orderMathieu Duponchelle1-7/+6
In 7c767f3fcd5a7b40d205bb4d588dad6c6275c729 , stream creation was refactored to occur before potential program creation. This created issues with pipelines such as: gst-launch-1.0 videotestsrc ! video/x-raw, format=I420, width=640, height=640, framerate=25/1 ! \ x264enc ! hlssink2 target-duration=1 eg.: gst_buffer_copy_into: assertion 'bufsize >= offset + size' failed As this reordering was actually not needed for the purpose of allowing to specify a PCR stream, this reverts the reordering part of the initial commit.
2019-02-20mpegtsmux: allow specifying the PID of the PCR streamMathieu Duponchelle1-5/+21
The structure passed through the prog-map can now contain a PCR_<prog_id>=sink_<PID> key-value pair.
2018-12-10mpegtsmux: Handle zero-sized buffers correctly without going into an ↵Sebastian Dröge1-1/+1
infinite loop Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/844
2018-09-27mpegtsmux: add custom AC-3 descriptorMathieu Duponchelle1-0/+4
tsdemux expects a custom descriptor (GST_MTS_DESC_AC3_AUDIO_STREAM) to detect a stream as AC3 and not EAC3. Note that tsdemux expects this descriptor because mpegtsmux writes a stream with a HDMV registration descriptor. Fixes: gst-launch-1.0 -v audiotestsrc ! avenc_ac3 ! ac3parse ! mpegtsmux ! \ tsdemux ! ac3parse ! avdec_ac3 ! audioconvert ! autoaudiosink https://bugzilla.gnome.org/show_bug.cgi?id=797220
2018-04-25Meson: Generate pc file for all plugins in badXavier Claessens1-0/+1
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-03mpegtsmux: Resend initial segments and header sections after FLUSH_STOPSebastian Dröge1-0/+19
https://bugzilla.gnome.org/show_bug.cgi?id=794816
2018-03-21mpegtsmux: Explicitly resend PAT/SI/PMT on force-keyunit eventsSebastian Dröge3-4/+50
And don't randomly change the PCR stream, which would cause a new PMT version to be generated instead and could confuse players.
2018-03-21mpegtsmux: Deterministically set the PCR stream to the first stream of the ↵Sebastian Dröge1-3/+9
program Otherwise it would be randomly set to the first stream of the program that receives a buffer.
2018-03-21mpegtsmux: Reset a few more fields in mpegtsmux_reset() to their original valuesSebastian Dröge1-0/+3
2018-03-21tsmux: Don't use GST_DEBUG_OBJECT() with non-GObject typesSebastian Dröge1-2/+1
2017-10-03Use proper GtkDoc notation for NULL/FALSE/TRUEReynaldo H. Verdejo Pinochet1-1/+1
2017-07-21tsmux: Fix make distcheckSebastian Dröge1-0/+1
2017-07-21tsmux: Add mpegtsmux_jpeg2000.c to meson.buildSebastian Dröge1-0/+1
2017-07-21tsmux: Store PES payload size in a 32 bit integerSebastian Dröge1-2/+2
While the size in the packet is only 16 bits, we need to handle bigger sizes without overflowing. For video streams this can happen, 0 is written to the stream instead. This fixes muxing of buffers >= 2**16.
2017-07-21tsmux/tsdemux: Add support for JPEG2000Aaron Boxer7-5/+408
Based on patches by Milos Seleceni. https://bugzilla.gnome.org/show_bug.cgi?id=753323
2017-05-16Remove plugin specific static build optionNicolas Dufresne1-1/+0
Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient.
2016-10-17mpegtsmux: fix buffer size mismatch in M2TS modeVincent Penquerc'h1-1/+25
In M2TS mode, we need an extra 4 bytes in the buffer, so need to ensure the buffer can contain these. The allocation site does not know the mode, so this is done in all cases.
2016-08-20Add support for Meson as alternative/parallel build systemNirbheek Chauhan1-0/+18
https://github.com/mesonbuild/meson With contributions from: Tim-Philipp Müller <tim@centricular.com> Matej Knopp <matej.knopp@gmail.com> Jussi Pakkanen <jpakkane@gmail.com> (original port) Highlights of the features provided are: * Faster builds on Linux (~40-50% faster) * The ability to build with MSVC on Windows * Generate Visual Studio project files * Generate XCode project files * Much faster builds on Windows (on-par with Linux) * Seriously fast configure and building on embedded ... and many more. For more details see: http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html Building with Meson should work on both Linux and Windows, but may need a few more tweaks on other operating systems.
2016-06-07mpegtsmux: Set PTS on aligned buffersJan Alexander Steffens (heftig)1-2/+15
This was broken in 09c05df (make "alignment" property more useful for packetisation). https://bugzilla.gnome.org/show_bug.cgi?id=765926
2016-04-29mpegtsmux: effectively check if there is a languageThiago Santos1-1/+1
'language' is an array and not a pointer. CID 1358835
2016-04-26mpegtsmux: write language descriptor when language is availableThiago Santos2-1/+13
Adds a new function to mpegts lib to create a iso639 language descriptor from a language and use it in mpegtsmux to add a language descriptor to audio streams that have a language set. https://bugzilla.gnome.org/show_bug.cgi?id=763647
2016-04-16mpegtsmux: Remove an unnecessary check for NULL before g_freeJan Schmidt1-4/+2
2016-04-14mpegtsmux: free pad_data->language before g_strdup in order to avoid memory leakDamian Ziobro1-0/+4
https://bugzilla.gnome.org/show_bug.cgi?id=765005
2016-03-24bad: use new gst_element_class_add_static_pad_template()Vineeth TM1-4/+4
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-01-19mpegtsmux: set non-0 payload length in PES header if video ES packet is ↵Hyunjun Ko1-5/+10
small enough https://bugzilla.gnome.org/show_bug.cgi?id=748507
2016-01-19mpegtsmux: reset pes_bytes_written when starting to write new PES packetHyunjun Ko1-1/+3
In case of an unbounded packet (video usually), pes_bytes_written was no reset. https://bugzilla.gnome.org/show_bug.cgi?id=748507
2016-01-19mpegtsmux: add support for H.265/HEVC videoTim-Philipp Müller3-0/+6
https://bugzilla.gnome.org/show_bug.cgi?id=744367
2016-01-09mpegtsmux: fix reserve bits so they are 1'sBob Holcomb1-3/+3
The MPEG standard (ISO-13880-1) says the reserve bits need to be set to one (2.1.64). This is causing transport streams to fail validation on some systems. https://bugzilla.gnome.org/show_bug.cgi?id=760127
2015-12-01tsmux: fix wrong log message levelTim-Philipp Müller1-1/+1
ERROR level is debugging left-over.
2015-11-18Remove unnecessary NULL checks before g_free()Reynaldo H. Verdejo Pinochet1-2/+1
g_free() is NULL-safe
2015-11-12mpegtsmux: remove unnecessary buffer checkLuis de Bethencourt1-2/+2
buf surely isn't NULL inside the block conditional to a buffer size bigger than (G_MAXUINT16 - 3). Plus gst_buffer_unref() checks if the buffer is NULL and does nothing if it is. CID 1338693
2015-11-03tsmux: Simplify Opus caps parsing by using codecutils helpersSebastian Dröge2-49/+26
https://bugzilla.gnome.org/show_bug.cgi?id=757152
2015-11-03tsdemux/mux: Add support for GstAudioClippingMeta for OpusSebastian Dröge2-3/+25
https://bugzilla.gnome.org/show_bug.cgi?id=757153
2015-11-03tsmux: Add support for OpusSebastian Dröge6-2/+338
https://bugzilla.gnome.org/show_bug.cgi?id=757049
2015-11-03tsmux: Don't leak buffer in error casesSebastian Dröge1-1/+11
https://bugzilla.gnome.org/show_bug.cgi?id=757049
2015-11-03tsmux: Call prepare function for each collected bufferSebastian Dröge1-9/+9
Not when clipping buffers, as that doesn't happen for every buffer. https://bugzilla.gnome.org/show_bug.cgi?id=757049
2015-11-02mpegtsmux: use GST_STIME_ARGS for GstClockTimeDiffLuis de Bethencourt1-3/+2
No need to manually handle negative values of best->dts in GST_DEBUG_OBJECT. Use GST_STIME_ARGS for this.
2015-09-30mpegtsmux: fix downstream key unit events handling with hlssinkTim-Philipp Müller1-2/+1
The buffer timestamps in the collect function will already be running time, don't try to convert them again to running time, this would yield CLOCK_TIME_NONE now that the segment is shifted to account for negative dts. This fixes x264enc ! mpegtsmux ! hlssink, which was broken because mpegtsmux would send a downstream key unit event with running time NONE and then hlssink would immediately send another one upstream and it would just be a flood of force keyframe events in both directions after the first one. This would then break hlssink because it uses multifilesink in next-file=key-unit-event mode, and starting a new file after every few kB does not work well for HLS.
2015-07-29mpegtsmux: use GQueue instead of GList prepend/reverseTim-Philipp Müller2-20/+10
2015-07-29mpegtsmux: Don't clear the PID on reset.Jan Schmidt1-1/+0
The PID on a pad shouldn't change on a state change, only if the pad is freed and a new one created. Clearing the PID prevented mpegtsmux from being reused, because all packets would end up muxed in PID 0 https://bugzilla.gnome.org/show_bug.cgi?id=752999
2015-07-29mpegtsmux: Accumulate streamheaders in reverseJan Schmidt1-11/+11
Accumulate streamheader packets in reverse into the GList for efficiency, and reverse the list once when processing. Improves muxing speed when there are a lot of streamheaders.
2015-07-20mpegtsmux: fix aac caps in pad template for raw aacTim-Philipp Müller1-1/+3
Raw aac doesn't need framed=true. Fixes not-negotiated error with voaacenc ! mpegtsmux.
2015-07-13mpegtsmux: don't wait for data on sparse inputs like metadata or subtitle ↵Tim-Philipp Müller1-0/+13
streams
2015-07-13mpegtsmux: add basic support for asynchronous KLV metadata streamsTim-Philipp Müller3-1/+27
This is defined in SMPTE Rp 217. In this case the metadata PES packets carry no timestamps of their own and no Metadata Access Unit Wrappers are used.
2015-06-22tsmux: code style fixVineeth TM1-3/+2
trivial patch to add proper ( while checking for if(G_UNLIKELY()) https://bugzilla.gnome.org/show_bug.cgi?id=751305
2015-06-15mpegtsmux: Remove redundant min_dtsNicolas Dufresne2-13/+6
After few iteration, this variable became the same as dts. It's not the min as the name says, but the dts of the current buffer. Simply remove and place with dts. Also move the debug trace to actually print the signed version of the running-time dts.
2015-06-15mpegtsmux: fix build errorVineeth TM1-1/+1
after e000a6f0a4984fbe81190df6cd439c70dafde3d6, there is build error in bad plugins this happens because, GST_CLOCK_STIME_IS_VALID () is being checked for pad_data but it expects a GstClockTime parameter. Changing the check to 'dts' https://bugzilla.gnome.org/show_bug.cgi?id=750961
2015-06-12tsmux: Add negative DTS supportNicolas Dufresne4-59/+77
Use the saved DTS, make it signed and pass that to the stream muxer. This preserves the running time sign. All usage of -1 as invalid TS are now replaced with G_MININT64. Negative values will be seen as wrap-around point, but the delta between PTS and DTS will remain correct. Demuxers don't care about absolute values, they only cares about deltas. https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-12tsmux: Remove uneeded cast and cast macroNicolas Dufresne2-3/+1
https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-12mpegtsmux: Properly detect backward DTSNicolas Dufresne1-2/+7
There was code to detect backward dts, but the marker min_dts was never set. Setting it enable this feature that prevents potential integer overflow when generating TS. https://bugzilla.gnome.org/show_bug.cgi?id=740575