Nicola Murino
e676b8ba9c
matroskamux/demux: initialize dts_only
...
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-27 09:56:06 +02:00
Matej Knopp
fa283f407f
matroskademux: V_MS/VFW/FOURCC streams have DTS instead of PTS
...
When such stream is present demuxer should set DTS on buffers instead
of PTS. This is consistent with how VLC and libav/ffmpeg handle VFW
streams.
Sample file
https://s3.amazonaws.com/MatejK/Samples/Matroska-VFW-DTS-Only.mkv
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-26 11:12:34 +02:00
Jan Schmidt
4a77c8a84f
matroska: Fix seeking past the end of the file in reverse mode.
...
Snap to the end of the file when seeking past the end in reverse mode,
and also fix GST_SEEK_TYPE_END and GST_SEEK_TYPE_NONE handling
for the stop position by always seeking on a segment in stream time
2015-01-31 06:15:44 +11:00
Sebastian Dröge
67d4b85d6a
matroskademux: Improve detection of being stuck at the same offset
...
Only error out if we read from the same position again and got the
same length. Just the same position is not necessarily enough.
2014-12-29 15:35:19 +01:00
Sebastian Dröge
e596a3b6a7
matroskademux: Don't get stuck at the same offset when searching for clusters
...
This could happen if there is an invalid cluster with size 0, and in that
case just error out instead of looping forever.
2014-12-29 15:02:52 +01:00
Edward Hervey
cbe56d2331
matroska-demux: Cache upstream length
...
Instead of constantly querying upstream, just cache the last duration,
and in the unlikelyness we might have gone over query again before
deciding we are EOS.
Cut 15% cpu off matroskademux streaming thread (srsly...)
2014-12-19 10:59:18 +01:00
Vincent Penquerc'h
b7413279d9
matroska: mux/demux the OpusHead header
...
This is meant to be so (https://wiki.xiph.org/MatroskaOpus - while
it is marked as a draft, this part was confirmed to be correct on
IRC), and allows one to determine whether a demuxed stream is
multistream or not, and thus set the multistream caps field
accordingly. In turn, this means downstream does not have to guess.
https://bugzilla.gnome.org/show_bug.cgi?id=740744
2014-12-18 11:38:49 +00:00
Nicola Murino
c466ff4748
matroskademux: set framerate 0/1 when duration is not known
...
https://bugzilla.gnome.org/show_bug.cgi?id=740130
2014-12-04 18:20:37 +01:00
Jonas Holmberg
1371fa0c61
matroskademux: make demuxer reusable
...
Remove pads from flow combiner and reset last
flow return to FLOW_OK by resetting the flow combiner.
This prevents FLOW_FLUSHING when trying to re-use the
demuxer after setting it back to NULL/READY state.
https://bugzilla.gnome.org/show_bug.cgi?id=737359
2014-09-25 16:14:18 +01:00
Tim-Philipp Müller
4c08f2694d
matroskademux: handle real audio 28_8
...
Fixes duplicate check for 14_4.
https://bugzilla.gnome.org//show_bug.cgi?id=736543
2014-09-12 10:35:36 +01:00
Sebastian Dröge
a3a5530518
matroska-demux: Don't handle parse errors at the end of file as an error
...
But only if they happen after the Matroska segment.
https://bugzilla.gnome.org/show_bug.cgi?id=735833
2014-09-05 11:36:30 +03:00
Jan Schmidt
f1c3a40547
matroska: Use gst_video_guess_framerate() function
...
Remove local framerate guessing function in favour of
the new gst_video_guess_framerate() function.
2014-08-15 01:17:27 +10:00
Vincent Penquerc'h
5653b1a25a
matroskademux: send gap events instead of segment tricks
...
This fixes missing frames from being time skipped.
https://bugzilla.gnome.org/show_bug.cgi?id=732372
2014-07-01 15:14:34 +01:00
Thiago Santos
c7c25071e3
matroskademux: use GstFlowCombiner
...
Use the flow combiner to have the standard combination results and avoid
repeating the same code
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:02 -03:00
Tim-Philipp Müller
b158a1c068
matroska-demux: add mapping for Opus audio codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2014-03-30 00:31:11 +00:00
Mark Nauwelaerts
3414e3d0b9
matroskademux: segment closing not needed in 1.x
...
... as sender should keep track of segment base accumulation.
Rather, it may have some adverse effects as a spurious segment event,
e.g. in collectpads.
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
9a30726226
matroskademux: early sending pending codec-data for all streams
...
... at least before syncing across all streams might cause some gap
activity on any of those streams, notably sparse streams.
See also #712134
2014-03-25 21:02:45 +01:00
Per x Johansson
2a362c6fb1
matroskademux: fix assert on fps lower than 1
...
Fixes assert caused by gst_duration_to_fraction calling
gst_util_uint64_scale_int with a denominator of 0 when fps is less
than 1.
https://bugzilla.gnome.org/show_bug.cgi?id=726106
2014-03-12 09:08:31 +01:00
Tim-Philipp Müller
f3163fb45f
matroskademux: align raw audio memory to powers of two
...
https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:39 +00:00
Tim-Philipp Müller
c3dc53e551
matroskademux: calculate alignment properly for audio depths not a multiple of 8
2014-02-27 00:46:39 +00:00
Matej Knopp
d33b4dce63
matroskademux: fix crash with 24-bit raw audio
...
Do not try to align audio buffers to odd numbers,
which will get us a NULL buffer which we then
crash on.
https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:28 +00:00
divhaere
19a307930a
matroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=723849
2014-02-11 21:22:33 +01:00
Reynaldo H. Verdejo Pinochet
2f8a1aa870
matroska: factor out read context init/reset
...
While at this, move _track_reset() to track-ids
so it can be called from the common read context
reset routine.
https://bugzilla.gnome.org/show_bug.cgi?id=722705
2014-02-06 13:25:12 -03:00
Reynaldo H. Verdejo Pinochet
cf0c780138
matroskaparse: better default caps when none set
...
Uses information gathered during EBML parsing to
forge a more suitable set of caps instead of blindly
assuming everything is video/x-matroska.
For consistency, stream type reset was added to
matroska-demux too.
https://bugzilla.gnome.org/show_bug.cgi?id=722311
2014-01-21 11:11:46 -03:00
Sebastian Dröge
809d105982
matroskademux: Don't skip all video frames until the first keyframe
...
Instead do it like all other demuxers and let parsers and decoders
handle that. The keyframe information inside the container might
be completely wrong like in the sample file of the bug report,
and if it is correct and we push no keyframes, then the parsers
and decoders will handle that properly anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=682276
2014-01-15 22:49:58 +01:00
Sebastian Dröge
77745289c4
matroskademux: Add HEVC / h265 support
2014-01-06 14:55:36 +01:00
Sebastian Dröge
7cae8922cb
matroskademux: Check for the correct size of codec_data in the ACM case
2013-12-23 15:46:43 +01:00
Sebastian Dröge
fb14f66696
matroska-demux: Allow a bit more variation when detecting common framerates
...
Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are
some Matroska files out there with 33.333331ms per frame for 30fps.
2013-11-26 11:17:42 +01:00
Sebastian Dröge
20ad174679
matroska-demux: Use gst_util_double_to_fraction() instead of GValue magic
2013-11-26 10:21:04 +01:00
Thibault Saunier
6ff7522ba2
matroskademux: Use GstVideoInfo helper to create caps for raw video
...
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description helper to
get codec description.
https://bugzilla.gnome.org/show_bug.cgi?id=712328
2013-11-22 18:52:54 -03:00
Tim-Philipp Müller
d9c2914c90
g_memmove() is deprecated
...
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.
https://bugzilla.gnome.org/show_bug.cgi?id=712811
2013-11-21 15:30:34 +00:00
Per x Johansson
b3e0b1dbca
matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
...
https://bugzilla.gnome.org/show_bug.cgi?id=711829
2013-11-11 11:30:54 +01:00
Sebastian Dröge
4a8082856a
matroska-demux: Fix compiler warning
...
matroska-demux.c: In function 'gst_matroska_demux_add_stream':
matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=]
"%03u", context->uid);
^
2013-10-30 22:13:06 +01:00
Matej Knopp
cf12017ef8
matroskademux: make dvd palette change event sticky
...
So they don't get lost.
https://bugzilla.gnome.org/show_bug.cgi?id=709454
2013-10-05 10:55:03 +01:00
Ognyan Tonchev
30f62a2eec
matroskademux: Fix memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=709266
2013-10-02 16:17:33 +02:00
Matej Knopp
40c0586c17
matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-27 14:38:19 +02:00
Matej Knopp
a1a493dae4
matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily
...
https://bugzilla.gnome.org/show_bug.cgi?id=708505
2013-09-24 15:12:44 -07:00
Sebastian Dröge
d8841b4832
matroska-demux: Make sure that subtitle buffers are \0-terminated
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-20 10:22:40 +02:00
Seán de Búrca
9d3dbd6581
matroskademux: Fix off-by-one in validation of UTF-8
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-12 09:19:15 +02:00
Thiago Santos
193ce9110e
matroskademux: Preserve seqnum when pushing seek upstream
...
After converting a seek from time to bytes, use the same seqnum
on the event that goes upstream
2013-09-10 17:57:49 -03:00
Sebastian Dröge
9863e08839
matroskademux: Don't print warnings during flushing and stop as soon as possible
...
https://bugzilla.gnome.org//show_bug.cgi?id=705442
2013-08-08 11:53:15 +02:00
Sebastian Dröge
2e35b36aab
gst: Don't swap start/stop for negative rates in the SEGMENT query
2013-07-29 12:12:41 +02:00
Sebastian Dröge
722ef42196
matroskademux: Implement SEGMENT query
2013-07-29 10:53:54 +02:00
Matej Knopp
7335b81c47
matroskademux: fix memory leak in check_subtitle_buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=704921
2013-07-26 17:11:31 +02:00
Thiago Santos
8bd12e12b3
matroskademux: fix seqnum handling for seeks
...
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
2013-07-25 15:24:31 -03:00
Sebastian Dröge
57dd1189d5
matroskademux: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Arnaud Vrac
6e26f1d067
mastrokademux: do not push discont buffers if they aren't discont
...
Unset the discont flag instead of posssibly pushing a buffer with
a flag that's still set.
https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-07-17 18:10:11 +01:00
Jonas Holmberg
beebe2b7af
matroskademux: Unlock stream lock after use
...
Stream lock of sink pad was not unlocked after non-updating seek.
2013-07-09 11:25:14 +02:00
Sebastian Dröge
75b5a54f17
matroskademux: Add MPEG4 video profile/level to the caps
2013-07-01 11:01:13 +02:00
Sebastian Dröge
423bddac6a
matroskademux: Add AAC profile/level to the caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=703312
2013-07-01 11:01:13 +02:00
Sebastian Dröge
3c9aba91dc
matroska: Add initial VP9 support
2013-06-21 18:22:13 +02:00
Bruno Gonzalez
e89a48616b
matroskademux: Don't unlock stream lock without locking it first
...
https://bugzilla.gnome.org/show_bug.cgi?id=702167
2013-06-14 14:10:13 +02:00
Tim-Philipp Müller
213cd2777b
matroskademux: mark subtitle streams as sparse in stream-start event
...
And also mark the streams that should be selected by default if
marked so in the headers.
https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-06-12 15:31:22 +01:00
Sebastian Dröge
e2b46a776f
matroskademux: Send stream headers after the segment event
...
https://bugzilla.gnome.org/show_bug.cgi?id=700799
2013-06-11 13:54:53 +02:00
Ognyan Tonchev
0584d5c4c9
matroskademux: add stream-format=raw to aac caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=699303
2013-05-01 15:47:15 +02:00
Tim-Philipp Müller
078ff16abe
matroskademux: fix some debug messages
2013-04-03 00:49:37 +01:00
Arnaud Vrac
00b46b4744
matroskademux: handle TrueHD audio codec id
...
https://bugzilla.gnome.org/show_bug.cgi?id=697113
2013-04-02 22:47:54 +01:00
David Schleef
53f8b05b08
Use %03u for format in gst_pad_create_stream_id_printf()
2013-03-25 18:57:08 -07: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
ef0805ea14
matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
...
https://bugzilla.gnome.org/show_bug.cgi?id=640589
2012-10-30 23:29:46 +00:00
Alexey Fisher
29cd24bc41
matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
...
https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-10-27 14:46:02 +01:00
Руслан Ижбулатов
b75628f041
matroskademux: Per-track tags for Matroska
...
Requires Matroska file to have sane layout (track info before tag info).
Uses replace-merge.
Makes track UIDs 64-bit.
Fixes #682448
2012-10-26 10:03:55 +02:00
Mark Nauwelaerts
f12ef67f56
ext, gst: only activate in pull mode if upstream is seekable
2012-09-11 17:44:51 +02:00
Tim-Philipp Müller
9bf90f47cf
video/x-xvid -> video/mpeg,mpegversion=4
2012-09-03 02:51:24 +01:00
Tim-Philipp Müller
fb0f3c17f5
text/plain + text/x-pango-markup -> text/x-raw
2012-09-02 02:50:50 +01:00
Tim-Philipp Müller
b27ac94af2
gst_message_new_duration -> gst_message_new_duration_changed
2012-09-02 01:31:53 +01:00
Tim-Philipp Müller
4bb52bbadf
docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert
2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
bce47066ca
video/x-dvd-subpicture -> subpicture/x-dvd
2012-08-20 23:30:38 +01:00
Sebastian Dröge
6f74b2afb7
gst: Set alignment at the correct place of GstAllocationParams
2012-08-08 17:41:31 +02:00
Sebastian Dröge
7b5925b5a4
gst: Add stream-id to stream-start events
2012-08-06 13:43:57 +02:00
Sebastian Dröge
46255d6ada
matroskademux: Chain up to the parent class' query handler if no pad is provided
2012-08-06 10:59:18 +02:00
Tim-Philipp Müller
c074bfd0b9
gst_tag_list_free -> gst_tag_list_unref
2012-08-04 16:10:16 +01:00
Sebastian Dröge
0827f54b93
tag: Update for taglist/tag event API changes
2012-07-28 00:19:51 +02:00
Mark Nauwelaerts
1a46572aaa
matroskademux: push mode: increase segment accuracy following seek
...
Conflicts:
gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Mark Nauwelaerts
ea0729ff32
matroskademux: perform proper KEY_UNIT seek also in push mode
...
Conflicts:
gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Mark Nauwelaerts
7e9dffa226
matroskademux: avoid NULL access when checking subtitle
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680388
2012-07-24 12:33:41 +02:00
Mark Nauwelaerts
d6ef204190
matroskademux: generate correct segment stream time
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680275
2012-07-23 17:38:43 +02:00
Mark Nauwelaerts
a5dfa3d689
matroskademux: proper parse recovery after seek
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680427
2012-07-23 15:45:33 +02:00
Sebastian Dröge
b4621cbb3a
matroskademux: Non-update seeks should still make sure that reverse playback status is reset
...
Conflicts:
gst/matroska/matroska-demux.c
2012-07-20 15:33:43 +02:00
Sebastian Dröge
9a83a0749e
matroskademux: Properly initialize from_offset and from_time
2012-07-20 15:33:04 +02:00
Sebastian Dröge
b02034dda1
matroskademux: We need an index and index entry for reverse playback
...
Reverse playback does not work with index-less files yet.
2012-07-20 14:28:37 +02:00
Sebastian Dröge
6dbc6ad3cf
matroskademux: Fix reverse playback for seeks without stop position
...
Conflicts:
gst/matroska/matroska-demux.c
gst/matroska/matroska-demux.h
2012-07-20 11:23:16 +02:00
Sebastian Dröge
42b5065cc4
matroskademux: Only take the stream_start_time into account for SET seeks
...
For other seeks the stream_start_time is already added to the
segment values.
Conflicts:
gst/matroska/matroska-demux.c
2012-07-20 11:18:27 +02:00
Sebastian Dröge
9fdcad4aee
matroskademux: Pass seek rate to upstream seek events in push mode
...
Fixes bug #679435 .
Conflicts:
gst/matroska/matroska-demux.c
2012-07-18 11:40:56 +02:00
Edward Hervey
f063e40af7
demux: Push STREAM_START event when needed
2012-07-13 13:51:48 +02:00
Mark Nauwelaerts
f1b435d1b5
update for riff field rename
2012-07-09 12:53:47 +02:00
Sebastian Dröge
aeafc3a093
gst: Implement segment-done event
2012-07-05 13:13:09 +02:00
Sebastian Dröge
2e90ff9bb9
matroskademux: Remove the TOC query handling
2012-07-05 12:35:49 +02:00
Sebastian Dröge
04e0bbef17
matroska: Update for new GstToc API
...
TOC support in matroskamux is disabled for now as it was broken anyway.
2012-07-05 12:28:59 +02:00
Sebastian Dröge
407bf06dc4
matroskademux: Only push the TOC event, the message is handled by the sinks
2012-07-03 17:34:10 +02:00
Wim Taymans
e565f0d1ff
matroska: set interlace-mode
2012-06-26 17:04:41 +02:00
Sebastian Dröge
dff2fec970
matroskademux: Return FALSE from queries if we can't answer POSITION/DURATION queries
2012-06-25 13:33:57 +02:00
Anton Belka
c3061f434b
matroskademux: Return FALSE from TOC query if no TOC exists instead of an empty TOC
2012-06-25 09:47:59 +02:00
Tim-Philipp Müller
296783908c
matroska: update for GstToc API changes
2012-06-24 22:51:16 +01:00
Wim Taymans
30d3dfee36
update for task api change
2012-06-20 10:33:42 +02:00
Matej Knopp
c55e492e80
matroska-demux: Send gap events for subtitle streams
2012-06-19 11:21:52 +01:00
Mark Nauwelaerts
8b1da8adb2
matroskademux: always perform full seek if seek is flushing
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677838
2012-06-11 13:12:26 +02:00
Sebastian Dröge
91ca34a0bb
matroskademux: Update for TOC event API change
2012-06-06 14:17:08 +02:00
Wim Taymans
b5df4f0e62
update for tag event change
2012-06-06 13:02:12 +02:00
Alessandro Decina
51c8cd805d
matroskademux: increase NEWSEGMENT accuracy after seeking
...
demux->common.segment is populated during seek handling with the target
start/stop positions. Don't override them when sending out a NEWSEGMENT.
Conflicts:
gst/matroska/matroska-demux.c
2012-05-24 14:31:55 +02:00