[vlc-devel] [PATCH 6/7] demux: mkv: remove workaround of KaxBlockVirtual

Steve Lhomme robux4 at ycbcr.xyz
Mon May 28 10:02:17 CEST 2018


On 2018-05-28 9:00 AM, Zhao Zhili wrote:
> The workaround was added by ce718de in 2008. The bug was fixed in
> upstream in 2010.

It seems that it was done before the 1.0.0 release so we can remove it 
safely.
I'll apply your changes.
Thanks !

> ---
>   modules/demux/mkv/Ebml_parser.cpp |  8 --------
>   modules/demux/mkv/Ebml_parser.hpp | 11 -----------
>   2 files changed, 19 deletions(-)
>
> diff --git a/modules/demux/mkv/Ebml_parser.cpp b/modules/demux/mkv/Ebml_parser.cpp
> index 76bc45a..eb7315c 100644
> --- a/modules/demux/mkv/Ebml_parser.cpp
> +++ b/modules/demux/mkv/Ebml_parser.cpp
> @@ -224,8 +224,6 @@ next:
>           {
>               if( !mb_keep )
>               {
> -                if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
> -                    static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix(); // !! WARNING : TODO !! this is undefined-behavior
>                   delete p_prev;
>                   p_prev = NULL;
>               }
> @@ -285,8 +283,6 @@ next:
>               {
>                   if( !mb_keep )
>                   {
> -                    if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
> -                        static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix(); // !! WARNING : TODO !! this is undefined-behavior
>                       delete p_prev;
>                       p_prev = NULL;
>                   }
> @@ -318,8 +314,6 @@ next:
>               {
>                   if( !mb_keep )
>                   {
> -                    if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
> -                        static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix(); // !! WARNING : TODO !! this is undefined-behavior
>                       delete p_prev;
>                       p_prev = NULL;
>                   }
> @@ -333,8 +327,6 @@ next:
>       {
>           if( !mb_keep )
>           {
> -            if( MKV_IS_ID( p_prev, KaxBlockVirtual ) )
> -                static_cast<KaxBlockVirtualWorkaround*>(p_prev)->Fix();
>               delete p_prev;
>           }
>           mb_keep = false;
> diff --git a/modules/demux/mkv/Ebml_parser.hpp b/modules/demux/mkv/Ebml_parser.hpp
> index ba0ac71..6e427fa 100644
> --- a/modules/demux/mkv/Ebml_parser.hpp
> +++ b/modules/demux/mkv/Ebml_parser.hpp
> @@ -66,15 +66,4 @@ class EbmlParser
>       bool         mb_dummy;
>   };
>   
> -/* This class works around a bug in KaxBlockVirtual implementation */
> -class KaxBlockVirtualWorkaround : public KaxBlockVirtual
> -{
> -public:
> -    void Fix()
> -    {
> -        if( GetBuffer() == DataBlock )
> -            SetBuffer( NULL, 0 );
> -    }
> -};
> -
>   #endif



More information about the vlc-devel mailing list