Jesper Larsen
93a8137be6
mpegtsmux: Add support for muxing SI tables
...
The muxer is now able to include DVB sections in the transport stream.
The si-interval property will determine how often the SI tables are
muxed into the stream.
The section is handled by the mpeg-ts library. Below is a small example
that will include a Netork Information Table with a Network Name
descriptor in the stream.
GstMpegTsNIT *nit;
GstMpegTsDescriptor *descriptor;
GstMpegTsSection *section;
GstElement *mpegtsmux;
gst_mpegts_initialize ();
nit = gst_mpegts_section_nit_new ();
nit->actual_network = TRUE;
descriptor = gst_mpegts_descriptor_from_dvb_network_name ("Network name");
g_ptr_array_add (nit->descriptors, descriptor);
section = gst_mpegts_section_from_nit (nit);
// mpegtsmux should be retrieved from the pipeline
gst_mpegts_section_send_event (section, mpegtsmux);
gst_mpegts_section_unref (section);
2014-02-06 15:55:46 +01:00
Jan Schmidt
14a56b6964
mpegtsmux: Don't disrupt buffer state in the clip function
...
Collectpads assumes that it can pass any buffer to the clip function
for adjustment, some of which are artificially injected - so don't
adjust global timestamp tracking there. Instead, only adjust the
buffer timestamps and use them directly in the collection function.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698748
2013-12-31 23:23:18 +11:00
Thibault Saunier
b148c22cec
mpegtsmux: Properly add subtitle descriptor for DVb subpicture subtitles
...
We were adding an empty descriptor for them and it was not possible to
actually use them on muxed streams.
2013-11-13 17:56:07 -03: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
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
20507bc0cf
mpegtsmux: remove obsolete struct field
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
e8ab5af7b0
mpegtsmux: use default CollectPads collect heuristic
...
... with an appropriately custom buffer clip function to arrange for
buffer processing.
Conflicts:
gst/mpegtsmux/mpegtsmux.c
gst/mpegtsmux/mpegtsmux.h
2012-06-16 19:22:59 +02:00
Matej Knopp
6229305d7b
mpegtsmux: port to 0.11
...
https://bugzilla.gnome.org/show_bug.cgi?id=678130
2012-06-16 19:22:35 +02:00
Mark Nauwelaerts
bef06e8c8d
mpegtsmux: add SPN/PTS indexing capabilities
...
Based on patch by Andreas Frisch <fraxinas@opendreambox.org>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=644890
2012-06-11 16:52:53 +02:00
Mark Nauwelaerts
351f3915db
mpegtsmux: drain cached data upon EOS
2012-06-08 11:30:07 +02:00
Mark Nauwelaerts
0407e21ee3
mpegtsmux: allow for aligned output
...
... and refactor packet handling some more in the process.
Fixes #651805 .
2012-06-08 11:30:05 +02:00
Mark Nauwelaerts
ead42a5e27
mpegtsmux: improve m2ts timestamp interpolation
...
* a known PCR should really belong to a packet holding that PCR
* interpolation can be extended backward for initial packets (PAT, PMT)
2012-06-08 11:30:03 +02:00
Mark Nauwelaerts
8cb22ffeaa
mpegtsmux: header cleanups and clarifications
2012-06-06 10:31:34 +02:00
Mark Nauwelaerts
d97d49d237
mpegtsmux: avoid separate allocation for list of programs
2012-06-06 10:31:19 +02:00
Mark Nauwelaerts
281f48f66e
mpegtsmux: rearrange define's
2012-06-06 10:31:14 +02:00
Mark Nauwelaerts
4d94e0fcf7
mpegtsmux: removed hacked event handling
...
Conflicts:
gst/mpegtsmux/mpegtsmux.c
Reverted back to 0.10 state as it wasn't really ported
yet anyway.
2012-06-06 10:30:55 +02:00
Mark Nauwelaerts
74c73eba05
mpegtsmux: optimize output by aggregating packets
...
... rather than pushing each (small) packet in a separate buffer.
m2ts mode not yet optimized though.
2012-05-14 11:52:29 +02:00
Mark Nauwelaerts
6578797245
collectpads2: rename to collectpads
2012-04-17 15:22:59 +02:00
Vincent Penquerc'h
1029619766
mpegtsmux: port to GstCollectPads2
...
I *think* the stream lock use is correct, not 100% sure.
2011-12-15 13:22:24 +00:00
Alessandro Decina
777c1f034f
mpegtsmux: add support for force key unit events
...
Handle force key unit events outputting PAT and PMT when all_headers=TRUE
2011-11-30 08:56:48 +01:00
Jan Schmidt
9a26173a57
Rewrite M2TS packet output
...
Make sure we only write the bottom 30 bits of the PCR to the m2ts header.
Don't use floating point computation for it, and remove weird bit fiddling
that messes up the PCR in a way I can't find any
justification/documentation for.
Don't accidentally lose PCR packets from the output.
Fix the description for the m2ts-mode property so it's clear it's a flag,
and which setting does what.
Fixes : #611061 #644429
Partially fixes : #645006
2011-03-26 16:18:22 +11:00
Marc-André Lureau
4d3a965476
mpegtsmux: add PAT/PMT in streamheader
...
The check for PAT/PMT buffers was suggested by
Zaheer Abbas Merali.
https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:15 +00:00
Marc-André Lureau
1537023905
mpegtsmux: add pat-interval and pmt-interval properties
...
https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:12 +00:00
Marc-André Lureau
6d554a5560
mpegtsmux: marking non-delta unit, including pre-sections
...
This patch address the issue observed with KF timestamps
and delta flag. When a section is appended before the keyframe,
it is not marked as non-delta. It's preferable to mark the
first buffer non-delta.
This patch also simplify the initial patch written by thomas,
since it does not clutter tsmux/ with a delta flag passed
around only for GStreamer convenience.
https://bugzilla.gnome.org/show_bug.cgi?id=604908
2010-02-03 16:37:27 +00:00
Julien Moutte
6f1ee59df6
mpegtsmux: generate SPS/PPS header once and fix overflow
...
Some H264 packets can be as small as 5 bytes for repeated frames.
In such a situation the output buffer size was not big enough (5*2) to fit the
SPS/PPS header and the start codes. This corrupts the ES stream.
We now generate the SPS/PPS only once which is much more optimal and we now
know the size of the header to calculate the output buffer size more safely.
2010-02-02 12:23:24 +01:00
Tim-Philipp Müller
95d894fd96
mpegsmux, mpegpsmux: fix unused variable warning with the debugging system in core disabled
2009-09-02 13:37:47 +01:00
Tim-Philipp Müller
d94d572e16
mpegtsmux: use an old-fashioned array instead of GPtrArray for mux->programs
...
Using GPtrArray for a fixed-sized array is a bit pointless and makes
for ugly code.
2009-08-31 13:00:04 +01:00
Lin YANG
3ca8288c5b
mpegtsmux: mux->programs: use GPrtArray instead of GArray
2009-08-31 09:19:17 +02:00
Lin YANG
5b0b69a858
mpegtsmux: mpegtsmux_collected(): calculate PCR for programs
2009-08-31 09:19:12 +02:00
Lin YANG
451275714c
mpegtsmux: MpetTsPadData: add prog_id and ref to its program
2009-08-31 09:18:53 +02:00
Lin YANG
ee31988c7a
mpegtsmux: Extend mux->program to a GArray programs
2009-08-31 09:18:48 +02:00
Lin YANG
9f90dfee3e
mpegtsmux: Add new property prog-map to the muxer
2009-08-31 09:18:40 +02:00
Sebastian Dröge
845094c32e
Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This is renamed to mpegtsmux to prevent conflicts. Also al...
...
Original commit message from CVS:
* configure.ac:
* gst/mpegtsmux/Makefile.am:
* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_base_init),
(mpegtsmux_class_init), (mpegtsmux_init), (mpegtsmux_dispose),
(gst_mpegtsmux_set_property), (gst_mpegtsmux_get_property),
(release_buffer_cb), (mpegtsmux_create_stream),
(mpegtsmux_create_streams), (mpegtsmux_choose_best_stream),
(mpegtsmux_collected), (mpegtsmux_request_new_pad),
(mpegtsmux_release_pad), (new_packet_cb),
(mpegtsdemux_prepare_srcpad), (mpegtsmux_change_state),
(plugin_init):
* gst/mpegtsmux/mpegtsmux.h:
* gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
* gst/mpegtsmux/mpegtsmux_aac.h:
* gst/mpegtsmux/mpegtsmux_h264.c: (mpegtsmux_prepare_h264):
* gst/mpegtsmux/mpegtsmux_h264.h:
* gst/mpegtsmux/tsmux/Makefile.am:
* gst/mpegtsmux/tsmux/crc.h:
* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_set_write_func),
(tsmux_set_pat_frequency), (tsmux_get_pat_frequency), (tsmux_free),
(tsmux_program_new), (tsmux_set_pmt_frequency),
(tsmux_get_pmt_frequency), (tsmux_program_add_stream),
(tsmux_program_set_pcr_stream), (tsmux_get_new_pid),
(tsmux_create_stream), (tsmux_find_stream), (tsmux_packet_out),
(tsmux_write_adaptation_field), (tsmux_write_ts_header),
(tsmux_write_stream_packet), (tsmux_program_free),
(tsmux_write_section), (tsmux_write_section_hdr),
(tsmux_write_pat), (tsmux_write_pmt):
* gst/mpegtsmux/tsmux/tsmux.h:
* gst/mpegtsmux/tsmux/tsmuxcommon.h:
* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
(tsmux_stream_get_pid), (tsmux_stream_free),
(tsmux_stream_set_buffer_release_func), (tsmux_stream_consume),
(tsmux_stream_at_pes_start), (tsmux_stream_bytes_avail),
(tsmux_stream_bytes_in_buffer), (tsmux_stream_get_data),
(tsmux_stream_pes_header_length),
(tsmux_stream_find_pts_dts_within),
(tsmux_stream_write_pes_header), (tsmux_stream_add_data),
(tsmux_stream_get_es_descrs), (tsmux_stream_pcr_ref),
(tsmux_stream_pcr_unref), (tsmux_stream_is_pcr),
(tsmux_stream_get_pts):
* gst/mpegtsmux/tsmux/tsmuxstream.h:
Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This
is renamed to mpegtsmux to prevent conflicts. Also all relevant
informations about copyright and license are added to the top of
every file but apart from that no changes compared to the latest
SVN versions happened.
2008-09-01 16:38:40 +00:00