Jesper Larsen
6a5f1354b3
mpegtsmux: Use mpeg-ts lib for PAT/PMT sections
...
Rewrite of the PAT/PMT section handling to use the mpeg-ts library
2014-02-06 15:57:50 +01:00
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
Justin Joy
99c2aa14c3
mpegtsmux: don't leak pad name when treating events
...
https://bugzilla.gnome.org/show_bug.cgi?id=722699
2014-01-22 10:07:11 +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
da4f9c18ec
mpegtsmux: Fix compilation when debug is disabled
2013-11-14 09:02:35 -03: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
Matthieu Bouron
e7687dbaa2
mpegtsmux: fix uninitialized variable warning
...
https://bugzilla.gnome.org/show_bug.cgi?id=710759
2013-10-25 12:26:23 +01:00
Jesper Larsen
e4a0c4d509
mpegtsmux: Set the program number from prog-map
...
The prog-map property of mpegtsmux only allows you to group pids together in a program.
The program number set in the PAT/PMT tables cannot be set explicitly.
This patch will set the program number according to the prog-map.
If a program id of 0 is given, the first vacant program number starting from 1 will be used.
https://bugzilla.gnome.org/show_bug.cgi?id=697239
2013-08-21 13:02:02 +02:00
Tim-Philipp Müller
646ba6b3df
mpegts: private/teletext -> application/x-teletext
2013-07-30 16:08:17 +01:00
Edward Hervey
97426a1caa
all: Fix for GST_DISABLE_GST_DEBUG
...
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
Vincent Penquerc'h
5c82a510d9
mpegtsmux: avoid using clipped out buffers
...
If a buffer was entirely clipped out (ie, it's out of the segment
entirely), we'll end up with a NULL buffer, which we don't want
to process/dereference.
2013-07-25 15:06:12 +01:00
Sebastian Dröge
f0a1935119
mpegtsmux: Push stream-start event before anything else
2013-05-15 11:38:35 +02:00
Greg Rutz
4d4fd09a3a
mpegtsmux: Fix memory leak when using prepare_func
...
prepare_func will allocate a new buffer to replace the original
one. Instead of using gst_buffer_replace (which causes an extra
refcount increment on the new buffer), we just unref the original
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=699786
2013-05-07 16:37:49 +02:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
Kevin Thornberry
72c5c70b90
mpegtsmux: fix creation of ADTS header for AAC audio in MPEG-TS
...
https://bugzilla.gnome.org/show_bug.cgi?id=695412
2013-03-18 10:31:51 +00: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
9f7e7d305d
gst_adapter_prev_timestamp -> gst_adapter_prev_pts
2012-11-14 12:41:27 +00: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
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
119c27c9b9
tsmux: Slightly reflow collected buffer handler for clarity.
2012-10-30 10:00:08 +11: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
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
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Stefan Sauer
27cd08ad95
collectpads: remove gst_collect_pads_add_pad_full
...
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:13:35 +02:00
Tim-Philipp Müller
c031f5bd27
schroedinger, mpegtsmux: fix plugin names
2012-08-03 11:52:11 +01:00
Mark Nauwelaerts
c4b480b993
mpegtsmux: apply some more CLOCK_BASE to ensure slack for PCR offset
...
Conflicts:
gst/mpegtsmux/tsmux/tsmux.c
2012-06-27 14:52:10 +02:00
Mark Nauwelaerts
ed34ed5b3d
mpegtsmux: fix value handling in pad iteration
2012-06-20 12:22:09 +02:00
Matej Knopp
9ad3761148
mpegtsmux: fix memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=678130
2012-06-20 10:21:42 +02:00
Mark Nauwelaerts
20507bc0cf
mpegtsmux: remove obsolete struct field
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
beceb09acc
mpegtsmux: add support for DVB subtitle and teletext streams
...
See bug #673582 .
Conflicts:
gst/mpegtsmux/Makefile.am
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
898f6b48be
mpegtsmux: optionally use fixed-size PES header
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
f49e74aa34
mpegtsmux: only write PTS and DTS if different
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
fd92a8b65a
mpegtsmux: optionally set data_alignment flag in PES header
2012-06-16 19:23:00 +02:00
Mark Nauwelaerts
c76627ec9a
mpegtsmux: re-enable inadvertent disabled code
2012-06-16 19:22:59 +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
Raimo Järvi
3f9a0a1747
mpegtsmux: Fix compiler warnings
...
https://bugzilla.gnome.org/show_bug.cgi?id=678211
2012-06-16 19:22:59 +02:00
Mark Nauwelaerts
893d6eb2a3
mpegtsmux: fix ported segment init
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
40760117b1
mpegtsmux: sprinkle some more debug catering
2012-06-11 16:52:55 +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
05dcabfe16
mpegtsmux: avoid memcpy due to temporary packet buffer
...
... by writing directly into the output buffer instead.
2012-06-11 16:52:49 +02:00
Mark Nauwelaerts
c2387d8bf6
mpegtsmux: plug leaks when freeing stream
2012-06-08 17:20:30 +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
8637fd69e5
mpegtsmux: tweak output buffer timestamping
2012-06-08 11:30:01 +02:00
Mark Nauwelaerts
4cc905409e
mpegtsmux: more header clarifications and remove some redundant fields
2012-06-06 10:32:05 +02:00
Mark Nauwelaerts
38bb55c472
mpegtsmux: avoid PID collision for auto-generated PID
2012-06-06 10:31:59 +02:00
Edward Hervey
fa4f487d8f
tsmux: inline more code
...
With the previous commit, makes mpegtsmux 10 to 15% faster
2012-06-06 10:31:54 +02:00
Edward Hervey
e3a02ce49a
mpegtsmux: Don't use g_list_first ()
...
Seriously ...
2012-06-06 10:31:48 +02:00
Mark Nauwelaerts
c195a015e1
mpegtsmux: also properly reset and free pad data
2012-06-06 10:31:43 +02:00
Mark Nauwelaerts
ec109c390f
mpegtsmux: refactor init using _reset to cater for proper reuse
2012-06-06 10:31:39 +02:00
Mark Nauwelaerts
8cb22ffeaa
mpegtsmux: header cleanups and clarifications
2012-06-06 10:31:34 +02:00
Mark Nauwelaerts
59627a3e5d
mpegtsmux: tweak buffer handling
...
... for clarity and to avoid mixing _peek/_pop
2012-06-06 10:31:29 +02:00
Mark Nauwelaerts
30c782e062
mpegtsmux: misc code cleanups and refactoring
2012-06-06 10:31:24 +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
Alessandro Decina
4251b25308
mpegtsmux: fix pad iterator leak
2012-04-16 08:53:12 +02:00
Alessandro Decina
34cf1a1bbc
mpegtsmux: don't leak force key unit events
2012-04-16 08:53:06 +02: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
Wim Taymans
eff7037447
Merge branch 'master' into 0.11
2012-02-14 11:19:04 +01:00
Jan Schmidt
debf4984df
mpegtsmux: Trivial bug fix. Don't copy data from an uninited buffer.
2012-02-13 23:05:35 +11: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
Vincent Penquerc'h
27f21d31ac
mpegtsmux: specify in template caps we only take raw/adts AAC format
...
This appears to be what this element supports.
https://bugzilla.gnome.org/show_bug.cgi?id=665394
2012-02-02 12:37:02 +00:00
Alessandro Decina
f547336fdc
mpegtsmux: update after collectpads2 changes
2012-01-31 08:44:04 +01:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +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
Alessandro Decina
38a5719c53
mpegtsmux: unset the current PCR stream when starting a new unit
...
Unset the current PCR stream when starting a new unit so that afterwards a new
stream is selected as PCR and PAT and PMT tables are regenerated.
2011-12-18 17:32:11 +01:00
Alessandro Decina
ee429ba7b8
mpegtsmux: fix key unit event handling when muxing both audio and video
...
Take only video buffers into account when deciding when to cut so that new units
start with a video keyframe.
2011-12-18 17:31:18 +01: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
Tim-Philipp Müller
65e8564343
mpegtsmux: fix build in uninstalled setup
...
Add -base libs includes to CFLAGS, fix order of LIBS.
2011-11-30 10:35:12 +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
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
Stefan Sauer
d2f2955f18
collectpads: port API changes
2011-11-17 08:53:23 +01:00
Wim Taymans
c8adc4f8c8
make request pads take _%u
2011-11-04 12:22:37 +01:00
Alessandro Decina
fa6d174455
tsmux: remove unnecessary check
...
remove an if (best) check where best != NULL has already been checked
2011-08-21 10:54:52 +02:00
Sameer Naik
666807ed69
mpegtsmux: fix segfault if gst_collect_pads_pop () returns no buffer
...
In mpegtsmux_choose_best_stream () call if the gst_collect_pads_pop () call
returns no buffer (NULL), the plugin SegFaults in the gst_buffer_unref call.
To fix this we check if a valid buffer is returned before calling
gst_buffer_unref ().
Fixes bug #654416 .
2011-07-12 07:51:21 +02:00
Andreas Frisch
4a7057048f
mpegtsmux: fix pointer output in stream-not-associated debug output
...
https://bugzilla.gnome.org/show_bug.cgi?id=651050
2011-05-25 14:21:57 +01:00
David Schleef
02daafb9ae
mpegtsmux: use gst debug for tsmux library
2011-05-18 12:06:38 -07:00
David Schleef
55633f5e8f
mpegtsmux: Add byte-stream to h264 caps
2011-04-18 09:50:56 -07:00
David Schleef
4a8ba50cb2
mpegtsmux: Fix 64-bit printf format problem
2011-03-27 13:57:05 -07:00
Jan Schmidt
5111540ceb
Use correct clock when checking whether to write a new PCR
...
The PCR clocks against the 27MHz SCR clock, so check it correctly
to avoid writing the PCR too often.
Partially fixes : #611046
2011-03-26 16:18:22 +11: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
Jan Schmidt
2721e943e2
Fix a FIXME, and some whitespace/code style bits.
...
Also, add a new copyright notice for me.
2011-03-26 16:18:22 +11:00
Tim-Philipp Müller
0276663d0c
mpegtsmux: fix broken pad caps refcount handling
...
gst_caps_make_writable() takes ownership of the caps passed in, but
the caller doesn't own a ref to the caps here, because GST_PAD_CAPS
doesn't return a ref. Looks like the code relied on a caps leak
elsewhere for this to work properly.
2011-03-14 12:42:33 +00:00
Tim-Philipp Müller
70e71562b7
mpegtsmux: don't error out if downstream fails to handle the newsegment event
...
If downstream doesn't handle the newsegment event, don't error out (esp.
not without posting a proper error message on the bus), but just continue.
If there's a problem, we'll find out when we start pushing buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=644395
2011-03-14 12:42:33 +00:00
Andreas Frisch
aac497b635
mpegtsmux: remove unused variable
2011-03-14 12:42:33 +00:00
David Schleef
455aaa3fbd
mpegtsmux: fix release_pad
...
Remove bogus freeing of pad element_private data that we
never set (collectpads uses it, which causes confusion here).
Also, check that our collectpads instance exists before using
it. Partial fix for #636011 .
2011-02-17 13:47:52 -08:00
David Schleef
94f6f34ace
mpegtsmux: Set adaptation flag when appropriate
...
Specifically, when there's stuff to go into the adaptation
header.
2011-01-02 14:52:34 -08:00
David Schleef
ea113a79aa
mpegtsmux: Set random_access_indicator for keyframes
2011-01-02 14:52:34 -08:00
David Schleef
7e8081c89e
mpegtsmux: Fix some memleaks
2010-11-27 19:09:58 -08:00
Stefan Kost
0c22e1b954
various (gst): add missing G_PARAM_STATIC_STRINGS flags
...
Canonicalize property names as needed.
2010-10-19 15:47:17 +03:00
Andoni Morales Alastruey
4668330bdc
mpegtsmux: Initialize PES packet before getting the header size.
...
The PES header length is calculated before setting the dynamic flags, returning
a wrong value. Small frames that should be sent in a single TS packet are
spawned to a new packet because of that error. For audio streams where a single
frame can cope in one TS packet it introduces a huge overhead.
For a 100B packet, we prepare a TS packet with a payload of(100+9)B. Then, we
write the TS header using this value in tsmux_write_ts_header, and call
tsmux_stream_get_data(). The dynamic flags where not set yet and now
tsmux_stream_pes_header_length() returns 14B instead of 9B. The payload of the
TS packet is 114B, 5B more than what was calculated. 109B are sent in a first
packet and the remaining 5B are sent in another one.
Fixes bug #628548 .
2010-09-04 15:01:30 +02:00
Marc-André Lureau
43f8e926e7
mpegtsmux: start pmt at 0x020 as suggested by Zaheer
2010-06-08 15:36:47 +02:00
Marc-André Lureau
d335a55b49
mpegtsmux: take all the pmt in the streamheaders
2010-06-08 15:36:29 +02:00