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
Benjamin Otte
240f494aa7
Add -Wold-style-definition
...
and fix the warnings
2010-03-22 16:56:03 +01:00
Benjamin Otte
775c7584fd
gst_element_class_set_details => gst_element_class_set_details_simple
2010-03-18 22:46:41 +01:00
Julien Moutte
d8117471f6
mpegtsmux: Fix a potential unref of a NULL pointer.
...
At first iteration we don't have any cached SPS/PPS buffer to free.
2010-02-04 19:45:42 +01: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
130cf80752
mpegtsmux: fix PAT/PMT insertion frequency
...
The current code is comparing timestamps with different clock.
Let's use only the clock for PTS values.
Also rename frequency to interval, to avoid confusion. And remove
documentation about value 0, which won't work like documented.
https://bugzilla.gnome.org/show_bug.cgi?id=608896
2010-02-03 18:26:09 +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
Thiago Santos
6e1f2cf392
mpegtsmux: Fix mistake on previous commit
...
Use the correct variables and variable format in the warning
message
2010-01-12 15:21:29 -03:00
Thiago Santos
ddeb6e17fd
mpegtsmux: Do not crash on misinterpreted h264
...
Avoid crashing when bytestream h264 is interpreted as avc format
h264
Fixes #606657
2010-01-12 09:37:34 -03:00
Marc-André Lureau
67e5d76d08
mpegtsmux: only video can have non-delta-unit
2010-01-08 16:06:38 +00:00
Thomas Vander Stichele
5fab65aafb
mpegtsmux: mark delta-unit on outgoing buffers
...
Signed-off-by: Marc-André Lureau <mlureau@flumotion.com>
2010-01-08 13:07:53 +01:00
Stefan Kost
b7b8b7f407
build: fprintf, sprintf, sscanf need stdio.h
2009-10-07 15:26:12 +03: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