[vlc-devel] [PATCH 7/9] demux: mkv: add support for S_DVBSUB

Steve Lhomme robux4 at ycbcr.xyz
Mon Jul 16 12:22:28 CEST 2018


LGTM


On 2018-07-16 5:19, Filip Roséen wrote:
> fixes: #14577
> ---
>   modules/demux/mkv/matroska_segment_parse.cpp | 12 ++++++++++++
>   modules/demux/mkv/mkv.cpp                    | 13 +++++++++++++
>   2 files changed, 25 insertions(+)
>
> diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
> index 2fad7621ae..59f228bca4 100644
> --- a/modules/demux/mkv/matroska_segment_parse.cpp
> +++ b/modules/demux/mkv/matroska_segment_parse.cpp
> @@ -2056,6 +2056,18 @@ bool matroska_segment_c::ParseTrackCodecData( mkv_track_t * p_tk )
>                   }
>               }
>           }
> +        S_CASE("S_DVBSUB")
> +        {
> +            vars.p_fmt->i_codec = VLC_CODEC_DVBS;
> +
> +            if( vars.p_tk->i_extra_data < 4 )
> +                throw std::runtime_error( "not enough codec data for S_DVBSUB" );
> +
> +            uint16_t page_id = GetWBE( &vars.p_tk->p_extra_data[0] );
> +            uint16_t ancillary_id = GetWBE( &vars.p_tk->p_extra_data[2] );
> +
> +            vars.p_fmt->subs.dvb.i_id = ( ancillary_id << 16 ) | page_id;
> +        }
>           S_CASE("S_HDMV/PGS") {
>               vars.p_fmt->i_codec = VLC_CODEC_BD_PG;
>           }
> diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
> index 4400198778..3203d31608 100644
> --- a/modules/demux/mkv/mkv.cpp
> +++ b/modules/demux/mkv/mkv.cpp
> @@ -646,6 +646,19 @@ void BlockDecode( demux_t *p_demux, KaxBlock *block, KaxSimpleBlock *simpleblock
>                           / CLOCK_FREQ;
>               }
>               break;
> +
> +        case VLC_CODEC_DVBS:
> +            {
> +                p_block = block_Realloc( p_block, 2, p_block->i_buffer + 1);
> +
> +                if( unlikely( !p_block ) )
> +                    continue;
> +
> +                p_block->p_buffer[0] = 0x20; // data identifier
> +                p_block->p_buffer[1] = 0x00; // subtitle stream id
> +                p_block->p_buffer[ p_block->i_buffer - 1 ] = 0x3f; // end marker
> +            }
> +            break;
>           }
>   
>           p_block->i_dts = i_dts;
> -- 
> 2.18.0
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list