Skip to content

Commit ce2ae13

Browse files
committed
isobmff: make skipping mdat copy the default
Tested: default case: ``` $ valgrind --tool=massif --detailed-freq=1 ./tools/isobmff in.mp4 $ grep mem_heap_B massif.out.default | awk -F= '{if($2 > max) max=$2} END{print max}' 691167 ``` donotskipmdat: Added the following patch ``` diff --git a/tools/main.cpp b/tools/main.cpp index def1861..5552cb7 100644 --- a/tools/main.cpp +++ b/tools/main.cpp @@ -223,6 +223,7 @@ int main( int argc, char *const * argv ) try { + parser.AddOption( ISOBMFF::Parser::Options::DoNotSkipMDATData ); parser.Parse( path ); } catch( const std::runtime_error & e ) ``` And then: ``` $ valgrind --tool=massif --detailed-freq=1 ./tools/isobmff in.mp4 $ grep mem_heap_B massif.out.donotskipmdat | awk -F= '{if($2 > max) max=$2} END{print max}' 682524151 ```
1 parent 532b69d commit ce2ae13

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

include/Parser.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ namespace ISOBMFF
6868
/*!
6969
* @enum Options
7070
* @abstract Parser options.
71-
* @constant SkipMDATData Do not keep data found in MDAT boxes.
71+
* @constant DoNotSkipMDATData Keep data found in MDAT boxes.
7272
*/
7373
enum class Options: uint64_t
7474
{
75-
SkipMDATData = 1 << 0
75+
DoNotSkipMDATData = 1 << 0
7676
};
7777

7878
/*!

src/ContainerBox.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ namespace ISOBMFF
111111
if
112112
(
113113
length > ( std::numeric_limits< size_t >::max )()
114-
|| ( name == "mdat" && parser.HasOption( Parser::Options::SkipMDATData ) )
114+
|| ( name == "mdat" && !parser.HasOption( Parser::Options::DoNotSkipMDATData ) )
115115
)
116116
{
117117
stream.Seek( length - 16, BinaryStream::SeekDirection::Current );
@@ -123,7 +123,7 @@ namespace ISOBMFF
123123
}
124124
else
125125
{
126-
if( name == "mdat" && parser.HasOption( Parser::Options::SkipMDATData ) )
126+
if( name == "mdat" && !parser.HasOption( Parser::Options::DoNotSkipMDATData ) )
127127
{
128128
stream.Seek( length - 8, BinaryStream::SeekDirection::Current );
129129
}

tools/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,6 @@ int main( int argc, char *const * argv )
223223

224224
try
225225
{
226-
parser.AddOption( ISOBMFF::Parser::Options::SkipMDATData );
227226
parser.Parse( path );
228227
}
229228
catch( const std::runtime_error & e )

0 commit comments

Comments
 (0)