Commit graph

29 commits

Author SHA1 Message Date
fengalin
3464aac3c9 matroska: fix memory leaks due to toc related updates
https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
Sebastian Dröge
c55824e4fa matroskamux: Fix various memory leaks in the unit test
https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
fengalin
694c07fe63 matroska-mux: migrate test to gst_harness
... following the guide lines from Håvard Graff (see https://gstconf.ubicast.tv/videos/moar-better-tests/).

https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
fengalin
a6702a76d5 matroska: re-activate and update TOC support
TOC support in mastroskamux has been deactivated for a couple of years. This commit updates it to recent GstToc evolutions and introduces toc unit tests for both matroska-mux and matroska-demux.

There are two UIDs for Chapters in Matroska's specifications:
- The ChapterUID is a mandatory unsigned integer which internally refers to a given chapter. Except for title & language which use dedicated fields, this UID can also be used to add tags to the Chapter. The tags come in a separate section of the container.
- The ChapterStringUID is an optional UTF-8 string which also uniquely refers to a chapter but from an external perspective. It can act as a "WebVTT cue identifier" which "can be used to reference a specific cue, for example from script or CSS".

During muxing, the ChapterUID is generated and checked for unicity, while the ChapterStringUID receives the user defined UID. In order to be able to refer to chapters from the tags section, we maintain an internal Toc tree with the generated ChapterUID.

When demuxing, the ChapterStringUIDs (if available) are assigned to the GstTocEntries UIDs and an internal toc mimicking the toc is used to keep track of the ChapterUIDs and match the tags with the appropriate GstTocEntries.

https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
Sebastian Dröge
7e718d6039 Revert "matroskamux: adjust unit test to modified behaviour"
This reverts commit 8fe478c8a7.

We're back to previous behaviour
2017-07-18 10:08:33 +03:00
Guillaume Desmottes
0f719af307 tests: matroskamux, qtmux: don't add codec_data buffers to template caps
streamheader and codec_data buffers fields are only meant to be
in the negotiated caps, not the template caps.

Fixes false-positive leaks of those buffers detected by the leaks
tracer, as template caps are static, and we decided to not include
code in gstreamer core to handle this unusual case of template caps
having buffers in them.

https://bugzilla.gnome.org/show_bug.cgi?id=768762
2017-02-21 15:47:16 +00:00
Nicola Murino
8fe478c8a7 matroskamux: adjust unit test to modified behaviour
Now matroskamux mark all packets of audio-only streams as keyframes so
in test_block_group after pushing the test audio data 4 buffers are produced
and not more 2. The last buffer is the original data and must match with what
pushed. The remaining ones are matroskamux headers

https://bugzilla.gnome.org/show_bug.cgi?id=754696
2016-12-21 16:58:42 +00:00
Edward Hervey
d524439b35 check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
2015-06-02 16:27:24 +02:00
Sebastian Dröge
3dd14e968a tests: Fix some more event handling in tests 2013-05-13 15:36:19 +02:00
Tim-Philipp Müller
672ab8fb5b webmux: fix linking with shout2send element
Shout2send only accepts webm format, not matroska, but due
to a bug in matroskamux, webmmux's source pad is also created
with the matroska source pad template as pad template, which
makes the link function think it can't link webmmux to shout2send.

Also add unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=689336
2012-11-30 17:22:34 +00:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Tim-Philipp Müller
95da93fcb7 tests: fix matroskamux unit test after media type changes 2012-04-28 23:14:24 +01:00
René Stadler
17240ac9ec matroska: port to 0.11
Support for TAG_IMAGE and TAG_ATTACHMENT is commented out; this requires caps
on buffers which is gone from 0.11.

Segment handling in the demuxer is a bit complex; I added some FIXME comments
in places where I'm not yet sure if I ported correctly.
2011-11-26 15:01:01 +01:00
Wim Taymans
a95acb7122 make %u in all request pad templates 2011-11-04 11:58:22 +01:00
Ognyan Tonchev
0add79cbf1 matroskamux: don't leak ebml writer caps when re-using matroskamux
https://bugzilla.gnome.org/show_bug.cgi?id=640542
2011-01-26 08:51:04 +00:00
Zaheer Abbas Merali
e49c31fd25 matroskamux: revert change that set a reserved flag on the Block.
So matroska's Block structure has no keyframe flag, only the SimpleBlock has it.
To detect keyframes in Blocks, it is just the BlockGroup container that needs
to have a ReferenceBlock attached if it is a delta frame in video.
2010-06-14 14:28:53 +01:00
Sebastian Dröge
307e7f7a21 matroskamux: Fix unit test for changed key-frame behaviour
All audio frames are marked as keyframe now instead of marking
them all as delta unit...
2010-06-10 22:55:17 +02:00
Mark Nauwelaerts
4e5c985ba4 matroskamux: adjust unit test to modified behaviour 2010-06-01 15:55:24 +02:00
Mark Nauwelaerts
b967b035a9 matroskamux: unit test checks version 1 files 2010-05-20 17:32:24 +02:00
Edward Hervey
552f790e84 check: Don't re-declare 'GList *buffers' in the tests
It's an external which lives in gstcheck.c. Redeclaring it makes some
compilers/architectures think the 'buffers' in the individual tests are
a different symbol... and therefore we end up comparing holodecks with
oranges.
2010-04-12 18:03:20 +02:00
Benjamin Otte
3342b1679e Add -Wmissing-declarations -Wmissing-prototypes warning flags
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Mark Nauwelaerts
7958cf82ab gst/matroska/: Some cleanups, refactoring and minor enhancements in caps handling.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps):
Some cleanups, refactoring and minor enhancements in caps handling.
* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init),
(gst_matroska_mux_init), (gst_matroska_pad_reset),
(gst_matroska_pad_free), (gst_matroska_mux_reset),
(gst_matroska_mux_video_pad_setcaps),
(gst_matroska_mux_request_new_pad):
* tests/check/elements/matroskamux.c: (teardown_src_pad):
Only remove, release or reset what is appropriate upon state change.
2009-01-08 15:56:46 +00:00
Wim Taymans
707191104d tests/check/elements/: Don't use gst_element_get_pad(), it's a bad, bad method.
Original commit message from CVS:
* tests/check/elements/avimux.c: (setup_src_pad),
(teardown_src_pad):
* tests/check/elements/icydemux.c: (icydemux_found_pad),
(GST_START_TEST):
* tests/check/elements/matroskamux.c: (setup_src_pad),
(teardown_src_pad), (setup_sink_pad), (teardown_sink_pad):
* tests/check/elements/videocrop.c: (video_crop_get_test_caps),
(GST_START_TEST):
* tests/check/elements/wavpackparse.c: (wavpackparse_found_pad),
(setup_wavpackparse), (cleanup_wavpackparse):
Don't use gst_element_get_pad(), it's a bad, bad method.
2008-05-21 17:51:09 +00:00
Tim-Philipp Müller
f441440a43 gst/matroska/matroska-mux.c: Use GST_DEBUG_FUNCPTR; activate request pad before returning it.
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init),
(gst_matroska_mux_request_new_pad):
Use GST_DEBUG_FUNCPTR; activate request pad before returning it.
* tests/check/elements/matroskamux.c: (setup_src_pad),
(setup_sink_pad), (GST_START_TEST):
Activate pads before using them.
2006-11-16 15:36:48 +00:00
Tim-Philipp Müller
323331a051 tests/check/elements/matroskamux.c: Collectpads in core got changed and now also holds a reference to any pad that is...
Original commit message from CVS:
* tests/check/elements/matroskamux.c: (setup_src_pad):
Collectpads in core got changed and now also holds a
reference to any pad that is part of it. Fix refcount
checks in test case accordingly.
2006-02-06 11:57:52 +00:00
Wim Taymans
42c5075f17 check/elements/matroskamux.c: Fix leak in check.
Original commit message from CVS:
* check/elements/matroskamux.c: (setup_src_pad), (setup_sink_pad):
Fix leak in check.
2005-11-16 19:08:54 +00:00
Thomas Vander Stichele
4ab30e5583 sigh, static pad templates aren't refcounted properly
Original commit message from CVS:
sigh, static pad templates aren't refcounted properly
2005-11-02 16:48:55 +00:00
Thomas Vander Stichele
b1b1fe52d6 Fix leaks and invalid memory access as reported by valgrind
Original commit message from CVS:

* check/elements/matroskamux.c: (setup_src_pad), (setup_sink_pad),
(setup_matroskamux), (check_buffer_data), (GST_START_TEST):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_finalize),
(gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_setcaps),
(gst_matroska_mux_start), (gst_matroska_mux_write_data),
(gst_matroska_mux_collected):
Fix leaks and invalid memory access as reported by valgrind
2005-11-01 15:11:16 +00:00
Thomas Vander Stichele
c88fb97881 ... and add the missing file
Original commit message from CVS:
... and add the missing file
2005-11-01 14:41:01 +00:00