summaryrefslogtreecommitdiff
path: root/gst/mpegtsmux
Commit message (Collapse)AuthorAgeFilesLines
* Use proper GtkDoc notation for NULL/FALSE/TRUEReynaldo H. Verdejo Pinochet2017-10-031-1/+1
|
* tsmux: Fix make distcheckSebastian Dröge2017-07-211-0/+1
|
* tsmux: Add mpegtsmux_jpeg2000.c to meson.buildSebastian Dröge2017-07-211-0/+1
|
* tsmux: Store PES payload size in a 32 bit integerSebastian Dröge2017-07-211-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.
* tsmux/tsdemux: Add support for JPEG2000Aaron Boxer2017-07-217-5/+408
| | | | | | Based on patches by Milos Seleceni. https://bugzilla.gnome.org/show_bug.cgi?id=753323
* Remove plugin specific static build optionNicolas Dufresne2017-05-161-1/+0
| | | | | Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient.
* mpegtsmux: fix buffer size mismatch in M2TS modeVincent Penquerc'h2016-10-171-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.
* Add support for Meson as alternative/parallel build systemNirbheek Chauhan2016-08-201-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.
* mpegtsmux: Set PTS on aligned buffersJan Alexander Steffens (heftig)2016-06-071-2/+15
| | | | | | | This was broken in 09c05df (make "alignment" property more useful for packetisation). https://bugzilla.gnome.org/show_bug.cgi?id=765926
* mpegtsmux: effectively check if there is a languageThiago Santos2016-04-291-1/+1
| | | | | | 'language' is an array and not a pointer. CID 1358835
* mpegtsmux: write language descriptor when language is availableThiago Santos2016-04-262-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
* mpegtsmux: Remove an unnecessary check for NULL before g_freeJan Schmidt2016-04-161-4/+2
|
* mpegtsmux: free pad_data->language before g_strdup in order to avoid memory leakDamian Ziobro2016-04-141-0/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=765005
* bad: use new gst_element_class_add_static_pad_template()Vineeth TM2016-03-241-4/+4
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=763081
* mpegtsmux: set non-0 payload length in PES header if video ES packet is ↵Hyunjun Ko2016-01-191-5/+10
| | | | | | small enough https://bugzilla.gnome.org/show_bug.cgi?id=748507
* mpegtsmux: reset pes_bytes_written when starting to write new PES packetHyunjun Ko2016-01-191-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
* mpegtsmux: add support for H.265/HEVC videoTim-Philipp Müller2016-01-193-0/+6
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=744367
* mpegtsmux: fix reserve bits so they are 1'sBob Holcomb2016-01-091-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
* tsmux: fix wrong log message levelTim-Philipp Müller2015-12-011-1/+1
| | | | ERROR level is debugging left-over.
* Remove unnecessary NULL checks before g_free()Reynaldo H. Verdejo Pinochet2015-11-181-2/+1
| | | | g_free() is NULL-safe
* mpegtsmux: remove unnecessary buffer checkLuis de Bethencourt2015-11-121-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
* tsmux: Simplify Opus caps parsing by using codecutils helpersSebastian Dröge2015-11-032-49/+26
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757152
* tsdemux/mux: Add support for GstAudioClippingMeta for OpusSebastian Dröge2015-11-032-3/+25
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757153
* tsmux: Add support for OpusSebastian Dröge2015-11-036-2/+338
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757049
* tsmux: Don't leak buffer in error casesSebastian Dröge2015-11-031-1/+11
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=757049
* tsmux: Call prepare function for each collected bufferSebastian Dröge2015-11-031-9/+9
| | | | | | Not when clipping buffers, as that doesn't happen for every buffer. https://bugzilla.gnome.org/show_bug.cgi?id=757049
* mpegtsmux: use GST_STIME_ARGS for GstClockTimeDiffLuis de Bethencourt2015-11-021-3/+2
| | | | | No need to manually handle negative values of best->dts in GST_DEBUG_OBJECT. Use GST_STIME_ARGS for this.
* mpegtsmux: fix downstream key unit events handling with hlssinkTim-Philipp Müller2015-09-301-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.
* mpegtsmux: use GQueue instead of GList prepend/reverseTim-Philipp Müller2015-07-292-20/+10
|
* mpegtsmux: Don't clear the PID on reset.Jan Schmidt2015-07-291-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
* mpegtsmux: Accumulate streamheaders in reverseJan Schmidt2015-07-291-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.
* mpegtsmux: fix aac caps in pad template for raw aacTim-Philipp Müller2015-07-201-1/+3
| | | | | | Raw aac doesn't need framed=true. Fixes not-negotiated error with voaacenc ! mpegtsmux.
* mpegtsmux: don't wait for data on sparse inputs like metadata or subtitle ↵Tim-Philipp Müller2015-07-131-0/+13
| | | | streams
* mpegtsmux: add basic support for asynchronous KLV metadata streamsTim-Philipp Müller2015-07-133-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.
* tsmux: code style fixVineeth TM2015-06-221-3/+2
| | | | | | trivial patch to add proper ( while checking for if(G_UNLIKELY()) https://bugzilla.gnome.org/show_bug.cgi?id=751305
* mpegtsmux: Remove redundant min_dtsNicolas Dufresne2015-06-152-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.
* mpegtsmux: fix build errorVineeth TM2015-06-151-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
* tsmux: Add negative DTS supportNicolas Dufresne2015-06-124-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
* tsmux: Remove uneeded cast and cast macroNicolas Dufresne2015-06-122-3/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=740575
* mpegtsmux: Properly detect backward DTSNicolas Dufresne2015-06-121-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
* mpegtsmux: Remove arbitrary constraint on prog-map program idsYanko Kaneti2015-06-122-11/+19
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=746765
* mpegtsmux: don't overwrite valueLuis de Bethencourt2015-05-271-3/+4
| | | | | | | | Value of res is reset to FALSE in each iteration of the while loop. We want to conserve TRUE if any pad event succeeded until we arrive to done. Also, buf is set to the value of *outbuf twice. Removing the first assignment since the second one is outside of a conditional.
* mpegtsmux: Carry over GST_BUFFER_FLAG_HEADEREdward Hervey2015-05-202-1/+8
| | | | | | | In the same way we do it for the DELTA_UNIT flag This allows downstream elements to know whether a given mpeg-ts packet contains a corresponding HEADER elementary unit
* mpegtsmux: the parent is provided in the functionThiago Santos2015-05-131-2/+1
| | | | No need to get it again
* Rename property enums from ARG_ to PROP_Luis de Bethencourt2015-04-271-25/+25
| | | | Property enum items should be named PROP_ for consistency and readability.
* mpegtsmux: drop some superfluous assertionsTim-Philipp Müller2015-03-151-8/+2
| | | | | | g_return_*_if_fail() is for public API to catch programming errors. For internal code, we should just use g_assert() to check internal state.
* mpegtsmux: Fix namespace of some internal functionsJesper Larsen2015-03-151-6/+6
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=733347
* mpegtsmux: make "alignment" property more useful for packetisationTim-Philipp Müller2015-03-151-24/+25
| | | | | | | | | | | | | | | | | | | | | | | | Currently the alignment property just makes sure that we output things in multiples of align*packet_size bytes, but with no clear maximum size. When streaming MPEG-TS over UDP one wants buffers with a maximum packet size of 1316. The alignment property so far would just output buffers that are a multiple of 1316 then. Instead we now make the alignment property output individual buffers with the alignment size, which is entirely backwards compatible with the expected behaviour up until now. For efficiency reason collect all those buffers in a buffer list and send that downstream. Also collect data to push downstream in a buffer list from the adapter if we don't align things, which is still more efficient because of the silly way the muxer currently creates output packets. https://bugzilla.gnome.org/show_bug.cgi?id=722129
* mpegtsmux: fall through switch statementLuis de Bethencourt2015-03-061-0/+1
| | | | | | Adding a comment makes coverity happy and quells the issue. CID #1139748
* mpegtsmux: Remove duplicate codeIlya Averyanov2015-03-041-3/+0
| | | | | | The muxer is already allocated in reset(), which is called soon afterwards. https://bugzilla.gnome.org/show_bug.cgi?id=745506