[vlc-commits] demux: mkv: readd missing AV1 temporal delimiter after demux
Francois Cartegnie
git at videolan.org
Wed Oct 10 16:15:37 CEST 2018
vlc/vlc-3.0 | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Oct 10 11:45:29 2018 +0200| [e9d85901c060ba920530ccbcfae2d3bfcce77d1c] | committer: Tristan Matthews
demux: mkv: readd missing AV1 temporal delimiter after demux
(cherry picked from commit 7f8079692efce04977de79d1c050e23477dc76d3)
> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=e9d85901c060ba920530ccbcfae2d3bfcce77d1c
---
modules/demux/mkv/mkv.cpp | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
index 1667c12a0e..08a40aa8a7 100644
--- a/modules/demux/mkv/mkv.cpp
+++ b/modules/demux/mkv/mkv.cpp
@@ -609,11 +609,28 @@ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock
break;
case VLC_CODEC_OPUS:
- mtime_t i_length = i_duration * track. f_timecodescale *
- (double) p_segment->i_timescale / 1000.0;
- if ( i_length < 0 ) i_length = 0;
- p_block->i_nb_samples = i_length * track.fmt.audio.i_rate
- / CLOCK_FREQ;
+ {
+ mtime_t i_length = i_duration * track. f_timecodescale *
+ (double) p_segment->i_timescale / 1000.0;
+ if ( i_length < 0 ) i_length = 0;
+ p_block->i_nb_samples = i_length * track.fmt.audio.i_rate
+ / CLOCK_FREQ;
+ break;
+ }
+
+ case VLC_CODEC_AV1:
+ {
+ if( (p_block->p_buffer[0] & 0x81) == 0 && /* reserved flags */
+ (p_block->p_buffer[0] & 0x7A) != 0x12 ) /* no starting TEMPORAL_DELIMITER */
+ {
+ p_block = block_Realloc( p_block, 2, p_block->i_buffer );
+ if( p_block )
+ {
+ p_block->p_buffer[0] = 0x12;
+ p_block->p_buffer[1] = 0x00;
+ }
+ }
+ }
break;
}
More information about the vlc-commits
mailing list