[vlc-devel] [PATCH] demux: mkv: fix more hvcC detection

Thomas Guillem thomas at gllm.fr
Mon Jun 11 15:04:47 CEST 2018


Ok for me.

On Mon, Jun 11, 2018, at 14:54, Zhao Zhili wrote:
> MKV files made by DivXMKVMux 9.8.12.1750 are broken too. FFmpeg
> hevc_parse.c did the same thing to workaround the issue.
> ---
>  modules/demux/mkv/matroska_segment_parse.cpp | 16 ++++++----------
>  1 file changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/
> demux/mkv/matroska_segment_parse.cpp
> index add75d8..c475472 100644
> --- a/modules/demux/mkv/matroska_segment_parse.cpp
> +++ b/modules/demux/mkv/matroska_segment_parse.cpp
> @@ -1586,17 +1586,13 @@ bool matroska_segment_c::TrackInit( mkv_track_t 
> * p_tk )
>              /* HACK: if we found invalid format, made by mkvmerge < 
> 16.0.0,
>               *       we try to fix it. They fixed it in 16.0.0. */
>              const char* app = vars.obj->psz_writing_application;
> -            if( p_extra && p_extra[0] == 0 && app != NULL &&
> -                    strncmp(app, "mkvmerge", sizeof("mkvmerge")-1) == 
> 0 )
> +            if( p_extra && vars.p_tk->i_extra_data >= 3 &&
> +                    p_extra[0] == 0 && (p_extra[1] != 0 || p_extra[2] > 
> 1) )
>              {
> -                int major_version;
> -                if( sscanf(app, "mkvmerge v%d.", &major_version) && 
> major_version < 16 )
> -                {
> -                    msg_Dbg(vars.p_demuxer,
> -                            "Invalid HEVC reserved bits in mkv file"
> -                            "made by mkvmerge < v16.0.0 detected, 
> fixing it");
> -                    p_extra[0] = 0x01;
> -                }
> +                msg_Warn(vars.p_demuxer,
> +                        "Invalid HEVC reserved bits in mkv file "
> +                        "made by %s, fixing it", app ? app : "unknown 
> app");
> +                p_extra[0] = 0x01;
>              }
>  
>              fill_extra_data( vars.p_tk, 0 );
> -- 
> 2.9.5
> 
> 
> 
> _______________________________________________
> 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