mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 09:40:37 +00:00
matroskamux: some non-delta buffers were not marked as keyframes
This commit is contained in:
parent
45f711044f
commit
823a514161
1 changed files with 3 additions and 1 deletions
|
@ -2681,13 +2681,15 @@ gst_matroska_mux_write_data (GstMatroskaMux * mux, GstMatroskaPad * collect_pad)
|
||||||
|
|
||||||
return gst_ebml_last_write_result (ebml);
|
return gst_ebml_last_write_result (ebml);
|
||||||
} else {
|
} else {
|
||||||
|
int flags =
|
||||||
|
GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) ? 0 : 0x80;
|
||||||
gst_ebml_write_set_cache (ebml, GST_BUFFER_SIZE (buf) * 2);
|
gst_ebml_write_set_cache (ebml, GST_BUFFER_SIZE (buf) * 2);
|
||||||
/* write and call order slightly unnatural,
|
/* write and call order slightly unnatural,
|
||||||
* but avoids seek and minizes pushing */
|
* but avoids seek and minizes pushing */
|
||||||
blockgroup = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_BLOCKGROUP);
|
blockgroup = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_BLOCKGROUP);
|
||||||
hdr =
|
hdr =
|
||||||
gst_matroska_mux_create_buffer_header (collect_pad->track,
|
gst_matroska_mux_create_buffer_header (collect_pad->track,
|
||||||
relative_timestamp, 0);
|
relative_timestamp, flags);
|
||||||
if (write_duration) {
|
if (write_duration) {
|
||||||
gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION,
|
gst_ebml_write_uint (ebml, GST_MATROSKA_ID_BLOCKDURATION,
|
||||||
gst_util_uint64_scale (block_duration, 1, mux->time_scale));
|
gst_util_uint64_scale (block_duration, 1, mux->time_scale));
|
||||||
|
|
Loading…
Reference in a new issue