diff --git a/Source/MediaInfo/Audio/File_Ac3.cpp b/Source/MediaInfo/Audio/File_Ac3.cpp index 2d278d4783..b4920964a5 100644 --- a/Source/MediaInfo/Audio/File_Ac3.cpp +++ b/Source/MediaInfo/Audio/File_Ac3.cpp @@ -1086,6 +1086,7 @@ File_Ac3::File_Ac3() TimeStamp_IsParsing=false; TimeStamp_Parsed=false; TimeStamp_Count=0; + Stream_Size_Total=0; BigEndian=true; IgnoreCrc_Done=false; } @@ -1772,6 +1773,8 @@ void File_Ac3::Streams_Finish() } } } + if (IsSub && Stream_Size_Total && Core_IsPresent) + Fill(Stream_Audio, 0, Audio_StreamSize, Stream_Size_Total); else if (FrameInfo.PTS!=(int64u)-1 && FrameInfo.PTS>PTS_Begin) { Fill(Stream_Audio, 0, Audio_Duration, float64_int64s(((float64)(FrameInfo.PTS-PTS_Begin))/1000000)); @@ -2265,6 +2268,8 @@ void File_Ac3::Data_Parse() Buffer_Size=Save_Buffer_Size; File_Offset-=Buffer_Offset; } + if (IsSub) + Stream_Size_Total+=Element_Size; } //--------------------------------------------------------------------------- diff --git a/Source/MediaInfo/Audio/File_Ac3.h b/Source/MediaInfo/Audio/File_Ac3.h index 1b88cd978a..a1cacc9b43 100644 --- a/Source/MediaInfo/Audio/File_Ac3.h +++ b/Source/MediaInfo/Audio/File_Ac3.h @@ -200,6 +200,7 @@ private : TimeCode TimeStamp_FirstFrame; int16u TimeStamp_FirstFrame_SampleNumber; size_t TimeStamp_Count; + int64u Stream_Size_Total; }; } //NameSpace