From a09821f3c42c2daad349c89fbf70cd58c32d56fc Mon Sep 17 00:00:00 2001 From: Macmade Date: Fri, 20 Jun 2014 20:48:02 +0200 Subject: [PATCH] CI + Updates for OS X 10.10. --- .travis.yml | 3 +++ MP4Parse.xcodeproj/project.pbxproj | 18 ++++++++++++++---- .../UserInterfaceState.xcuserstate | Bin 57250 -> 73444 bytes .../xcschemes/MP4Parse.xcscheme | 2 +- .../xcschemes/xcschememanagement.plist | 2 +- README.md | 2 ++ makefile-code/C++.mk | 4 ++-- makefile-code/Objective-C.mk | 4 ++-- source/MP4.Atom.cpp | 5 ++++- source/MP4.BXML.cpp | 2 +- source/MP4.BinaryStream.cpp | 4 ++-- source/MP4.CO64.cpp | 2 +- source/MP4.CPRT.cpp | 2 +- source/MP4.CTTS.cpp | 2 +- source/MP4.ContainerAtom.cpp | 2 +- source/MP4.DREF.cpp | 2 +- source/MP4.ELST.cpp | 2 +- source/MP4.FREE.cpp | 2 +- source/MP4.FRMA.cpp | 2 +- source/MP4.FTYP.cpp | 2 +- source/MP4.File.cpp | 2 +- source/MP4.HDLR.cpp | 2 +- source/MP4.HMHD.cpp | 2 +- source/MP4.IINF.cpp | 2 +- source/MP4.ILOC.cpp | 2 +- source/MP4.IMIF.cpp | 2 +- source/MP4.IPMC.cpp | 2 +- source/MP4.MDAT.cpp | 2 +- source/MP4.MDHD.cpp | 2 +- source/MP4.MEHD.cpp | 2 +- source/MP4.MFHD.cpp | 2 +- source/MP4.MFRO.cpp | 2 +- source/MP4.MVHD.cpp | 2 +- source/MP4.PADB.cpp | 2 +- source/MP4.PDIN.cpp | 2 +- source/MP4.PITM.cpp | 2 +- source/MP4.SBGP.cpp | 2 +- source/MP4.SCHI.cpp | 2 +- source/MP4.SCHM.cpp | 2 +- source/MP4.SDTP.cpp | 2 +- source/MP4.SGPD.cpp | 2 +- source/MP4.SMHD.cpp | 2 +- source/MP4.STCO.cpp | 2 +- source/MP4.STDP.cpp | 2 +- source/MP4.STSC.cpp | 2 +- source/MP4.STSD.cpp | 2 +- source/MP4.STSH.cpp | 2 +- source/MP4.STSS.cpp | 2 +- source/MP4.STSZ.cpp | 2 +- source/MP4.STTS.cpp | 2 +- source/MP4.STZ2.cpp | 2 +- source/MP4.SUBS.cpp | 2 +- source/MP4.TFHD.cpp | 2 +- source/MP4.TFRA.cpp | 2 +- source/MP4.TKHD.cpp | 2 +- source/MP4.TREF.cpp | 2 +- source/MP4.TREX.cpp | 2 +- source/MP4.TRUN.cpp | 2 +- source/MP4.UDTA.cpp | 2 +- source/MP4.VMHD.cpp | 2 +- source/MP4.XML.cpp | 2 +- source/include/MP4.Atom.h | 2 ++ source/include/MP4.ContainerAtom.h | 2 +- source/include/types.h | 2 +- 64 files changed, 86 insertions(+), 66 deletions(-) create mode 100644 .travis.yml rename MP4Parse.xcodeproj/{xcuserdata/macmade.xcuserdatad => xcshareddata}/xcschemes/MP4Parse.xcscheme (98%) diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..57296b7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,3 @@ +language: objective-c +compiler: clang +script: make && make test diff --git a/MP4Parse.xcodeproj/project.pbxproj b/MP4Parse.xcodeproj/project.pbxproj index b4eb3a1..73c0060 100644 --- a/MP4Parse.xcodeproj/project.pbxproj +++ b/MP4Parse.xcodeproj/project.pbxproj @@ -354,8 +354,8 @@ 05DE45A013378714002269FF /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0460; - ORGANIZATIONNAME = XS-Labs; + LastUpgradeCheck = 0600; + ORGANIZATIONNAME = "XS-Labs"; }; buildConfigurationList = 05DE45A313378714002269FF /* Build configuration list for PBXProject "MP4Parse" */; compatibilityVersion = "Xcode 3.2"; @@ -377,11 +377,14 @@ 05DE45A613378714002269FF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; @@ -389,7 +392,9 @@ GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; @@ -400,16 +405,21 @@ 05DE45A713378714002269FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx; diff --git a/MP4Parse.xcodeproj/project.xcworkspace/xcuserdata/macmade.xcuserdatad/UserInterfaceState.xcuserstate b/MP4Parse.xcodeproj/project.xcworkspace/xcuserdata/macmade.xcuserdatad/UserInterfaceState.xcuserstate index 5bc1f5c2b9e744c97b0fa412f9efb4cb8f7c7016..50343575981bc393ef8e1d9b966075e3db79a632 100644 GIT binary patch literal 73444 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�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 literal 57250 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

eQ_d+-~2e#up3C6zt+ot3QgHfdo4 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 SchemeUserState - MP4Parse.xcscheme + MP4Parse.xcscheme_^#shared#^_ orderHint 0 diff --git a/README.md b/README.md index 7eee779..8084c9c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ MP4Parse ======== +[![Build Status](https://travis-ci.org/macmade/MP4Parse.svg?branch=master)](https://travis-ci.org/macmade/MP4Parse) + About ----- diff --git a/makefile-code/C++.mk b/makefile-code/C++.mk index 17d79a6..e69210a 100755 --- a/makefile-code/C++.mk +++ b/makefile-code/C++.mk @@ -42,7 +42,7 @@ # $Id$ # Flag to let the makefile knows that the code specific options were included -CODE_HASOPTIONS := 1 +CODE_HASOPTIONS := 1 #------------------------------------------------------------------------------- # Extensions for files @@ -58,7 +58,7 @@ EXT_OBJECT = .o #------------------------------------------------------------------------------- CC = g++ -LIBTOOL = glibtool +LIBTOOL = libtool #------------------------------------------------------------------------------- # Arguments for the compiler tools diff --git a/makefile-code/Objective-C.mk b/makefile-code/Objective-C.mk index 2def676..3a371ee 100755 --- a/makefile-code/Objective-C.mk +++ b/makefile-code/Objective-C.mk @@ -42,7 +42,7 @@ # $Id$ # Flag to let the makefile knows that the code specific options were included -CODE_HASOPTIONS := 1 +CODE_HASOPTIONS := 1 #------------------------------------------------------------------------------- # Extensions for files @@ -58,7 +58,7 @@ EXT_OBJECT = .o #------------------------------------------------------------------------------- CC = gcc -LIBTOOL = glibtool +LIBTOOL = libtool #------------------------------------------------------------------------------- # Arguments for the compiler tools diff --git a/source/MP4.Atom.cpp b/source/MP4.Atom.cpp index 23fac8b..e782960 100644 --- a/source/MP4.Atom.cpp +++ b/source/MP4.Atom.cpp @@ -33,7 +33,10 @@ using namespace MP4; +Atom::~Atom( void ) +{} + std::string Atom::getType( void ) { return this->_type; -} \ No newline at end of file +} diff --git a/source/MP4.BXML.cpp b/source/MP4.BXML.cpp index 86d84a4..6d4e7ef 100644 --- a/source/MP4.BXML.cpp +++ b/source/MP4.BXML.cpp @@ -50,4 +50,4 @@ std::string BXML::description( void ) void BXML::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.BinaryStream.cpp b/source/MP4.BinaryStream.cpp index 4b8e3cc..05196f3 100644 --- a/source/MP4.BinaryStream.cpp +++ b/source/MP4.BinaryStream.cpp @@ -296,7 +296,7 @@ float BinaryStream::readFloat( void ) for( i = 0; i > -24; i-- ) { - if( mantissa & ( 1 << i + 23 ) ) + if( mantissa & ( 1 << ( i + 23 ) ) ) { flt += pow( 2, i + exp ); } @@ -340,7 +340,7 @@ double BinaryStream::readDouble( void ) for( i = 0; i > -24; i-- ) { - if( mantissa & ( 1 << i + 23 ) ) + if( mantissa & ( 1 << ( i + 23 ) ) ) { flt += pow( 2, i + exp ); } diff --git a/source/MP4.CO64.cpp b/source/MP4.CO64.cpp index de157b9..c990c57 100644 --- a/source/MP4.CO64.cpp +++ b/source/MP4.CO64.cpp @@ -50,4 +50,4 @@ std::string CO64::description( void ) void CO64::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.CPRT.cpp b/source/MP4.CPRT.cpp index 8ec59f5..9c357cf 100644 --- a/source/MP4.CPRT.cpp +++ b/source/MP4.CPRT.cpp @@ -50,4 +50,4 @@ std::string CPRT::description( void ) void CPRT::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.CTTS.cpp b/source/MP4.CTTS.cpp index b8080cc..738d59c 100644 --- a/source/MP4.CTTS.cpp +++ b/source/MP4.CTTS.cpp @@ -50,4 +50,4 @@ std::string CTTS::description( void ) void CTTS::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.ContainerAtom.cpp b/source/MP4.ContainerAtom.cpp index d9571d0..aee2950 100644 --- a/source/MP4.ContainerAtom.cpp +++ b/source/MP4.ContainerAtom.cpp @@ -84,4 +84,4 @@ std::string ContainerAtom::description( void ) } return s; -} \ No newline at end of file +} diff --git a/source/MP4.DREF.cpp b/source/MP4.DREF.cpp index 0cb4bd7..cbee1dc 100644 --- a/source/MP4.DREF.cpp +++ b/source/MP4.DREF.cpp @@ -50,4 +50,4 @@ std::string DREF::description( void ) void DREF::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.ELST.cpp b/source/MP4.ELST.cpp index 61c5d29..3ead4ca 100644 --- a/source/MP4.ELST.cpp +++ b/source/MP4.ELST.cpp @@ -50,4 +50,4 @@ std::string ELST::description( void ) void ELST::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.FREE.cpp b/source/MP4.FREE.cpp index 0f99978..7b82a05 100644 --- a/source/MP4.FREE.cpp +++ b/source/MP4.FREE.cpp @@ -50,4 +50,4 @@ std::string FREE::description( void ) void FREE::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.FRMA.cpp b/source/MP4.FRMA.cpp index 9dd4ae7..51ff0ca 100644 --- a/source/MP4.FRMA.cpp +++ b/source/MP4.FRMA.cpp @@ -50,4 +50,4 @@ std::string FRMA::description( void ) void FRMA::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.FTYP.cpp b/source/MP4.FTYP.cpp index b4b7766..a13753f 100644 --- a/source/MP4.FTYP.cpp +++ b/source/MP4.FTYP.cpp @@ -97,4 +97,4 @@ void FTYP::processData( MP4::BinaryStream * stream, size_t length ) _compatibleBrands.push_back( s ); } } -} \ No newline at end of file +} diff --git a/source/MP4.File.cpp b/source/MP4.File.cpp index 126f2c3..bdaae7f 100644 --- a/source/MP4.File.cpp +++ b/source/MP4.File.cpp @@ -46,4 +46,4 @@ std::string File::description( void ) } return s; -} \ No newline at end of file +} diff --git a/source/MP4.HDLR.cpp b/source/MP4.HDLR.cpp index 4f83ffe..64669a5 100644 --- a/source/MP4.HDLR.cpp +++ b/source/MP4.HDLR.cpp @@ -50,4 +50,4 @@ std::string HDLR::description( void ) void HDLR::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.HMHD.cpp b/source/MP4.HMHD.cpp index 545c0fc..bffee1e 100644 --- a/source/MP4.HMHD.cpp +++ b/source/MP4.HMHD.cpp @@ -50,4 +50,4 @@ std::string HMHD::description( void ) void HMHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.IINF.cpp b/source/MP4.IINF.cpp index 681ffe6..75891c1 100644 --- a/source/MP4.IINF.cpp +++ b/source/MP4.IINF.cpp @@ -50,4 +50,4 @@ std::string IINF::description( void ) void IINF::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.ILOC.cpp b/source/MP4.ILOC.cpp index beae6cf..706cefa 100644 --- a/source/MP4.ILOC.cpp +++ b/source/MP4.ILOC.cpp @@ -50,4 +50,4 @@ std::string ILOC::description( void ) void ILOC::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.IMIF.cpp b/source/MP4.IMIF.cpp index d76985f..bb11a5d 100644 --- a/source/MP4.IMIF.cpp +++ b/source/MP4.IMIF.cpp @@ -50,4 +50,4 @@ std::string IMIF::description( void ) void IMIF::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.IPMC.cpp b/source/MP4.IPMC.cpp index 8dc3eef..8fb1dcd 100644 --- a/source/MP4.IPMC.cpp +++ b/source/MP4.IPMC.cpp @@ -50,4 +50,4 @@ std::string IPMC::description( void ) void IPMC::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.MDAT.cpp b/source/MP4.MDAT.cpp index 66c8ea2..cc8cb52 100644 --- a/source/MP4.MDAT.cpp +++ b/source/MP4.MDAT.cpp @@ -50,4 +50,4 @@ std::string MDAT::description( void ) void MDAT::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.MDHD.cpp b/source/MP4.MDHD.cpp index baaa27c..1a5a0b2 100644 --- a/source/MP4.MDHD.cpp +++ b/source/MP4.MDHD.cpp @@ -76,4 +76,4 @@ void MDHD::processData( MP4::BinaryStream * stream, size_t length ) this->_language = stream->readBigEndianISO639Code(); stream->ignore( length - parsedLength ); -} \ No newline at end of file +} diff --git a/source/MP4.MEHD.cpp b/source/MP4.MEHD.cpp index 995c199..86d781d 100644 --- a/source/MP4.MEHD.cpp +++ b/source/MP4.MEHD.cpp @@ -50,4 +50,4 @@ std::string MEHD::description( void ) void MEHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.MFHD.cpp b/source/MP4.MFHD.cpp index 3a66e83..3f38abf 100644 --- a/source/MP4.MFHD.cpp +++ b/source/MP4.MFHD.cpp @@ -50,4 +50,4 @@ std::string MFHD::description( void ) void MFHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.MFRO.cpp b/source/MP4.MFRO.cpp index 84399f2..8d18b73 100644 --- a/source/MP4.MFRO.cpp +++ b/source/MP4.MFRO.cpp @@ -50,4 +50,4 @@ std::string MFRO::description( void ) void MFRO::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.MVHD.cpp b/source/MP4.MVHD.cpp index 8b3b577..edc6082 100644 --- a/source/MP4.MVHD.cpp +++ b/source/MP4.MVHD.cpp @@ -81,4 +81,4 @@ void MVHD::processData( MP4::BinaryStream * stream, size_t length ) this->_nextTrackId = stream->readBigEndianUnsignedInteger(); } -} \ No newline at end of file +} diff --git a/source/MP4.PADB.cpp b/source/MP4.PADB.cpp index ff1add4..3733a95 100644 --- a/source/MP4.PADB.cpp +++ b/source/MP4.PADB.cpp @@ -50,4 +50,4 @@ std::string PADB::description( void ) void PADB::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.PDIN.cpp b/source/MP4.PDIN.cpp index bab22d7..465aae8 100644 --- a/source/MP4.PDIN.cpp +++ b/source/MP4.PDIN.cpp @@ -50,4 +50,4 @@ std::string PDIN::description( void ) void PDIN::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.PITM.cpp b/source/MP4.PITM.cpp index 10b4cea..b253bf2 100644 --- a/source/MP4.PITM.cpp +++ b/source/MP4.PITM.cpp @@ -50,4 +50,4 @@ std::string PITM::description( void ) void PITM::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SBGP.cpp b/source/MP4.SBGP.cpp index b46d31d..b034083 100644 --- a/source/MP4.SBGP.cpp +++ b/source/MP4.SBGP.cpp @@ -50,4 +50,4 @@ std::string SBGP::description( void ) void SBGP::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SCHI.cpp b/source/MP4.SCHI.cpp index 03d93a9..058081b 100644 --- a/source/MP4.SCHI.cpp +++ b/source/MP4.SCHI.cpp @@ -50,4 +50,4 @@ std::string SCHI::description( void ) void SCHI::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SCHM.cpp b/source/MP4.SCHM.cpp index 8ba5a81..e1e656c 100644 --- a/source/MP4.SCHM.cpp +++ b/source/MP4.SCHM.cpp @@ -50,4 +50,4 @@ std::string SCHM::description( void ) void SCHM::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SDTP.cpp b/source/MP4.SDTP.cpp index ce3595c..fffd240 100644 --- a/source/MP4.SDTP.cpp +++ b/source/MP4.SDTP.cpp @@ -50,4 +50,4 @@ std::string SDTP::description( void ) void SDTP::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SGPD.cpp b/source/MP4.SGPD.cpp index a1418d5..538dc06 100644 --- a/source/MP4.SGPD.cpp +++ b/source/MP4.SGPD.cpp @@ -50,4 +50,4 @@ std::string SGPD::description( void ) void SGPD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SMHD.cpp b/source/MP4.SMHD.cpp index fd4a9da..9d17e33 100644 --- a/source/MP4.SMHD.cpp +++ b/source/MP4.SMHD.cpp @@ -50,4 +50,4 @@ std::string SMHD::description( void ) void SMHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STCO.cpp b/source/MP4.STCO.cpp index e31b3ed..7f3e95f 100644 --- a/source/MP4.STCO.cpp +++ b/source/MP4.STCO.cpp @@ -50,4 +50,4 @@ std::string STCO::description( void ) void STCO::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STDP.cpp b/source/MP4.STDP.cpp index 7fd1e23..cba18e9 100644 --- a/source/MP4.STDP.cpp +++ b/source/MP4.STDP.cpp @@ -50,4 +50,4 @@ std::string STDP::description( void ) void STDP::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STSC.cpp b/source/MP4.STSC.cpp index 400ea0a..d4037da 100644 --- a/source/MP4.STSC.cpp +++ b/source/MP4.STSC.cpp @@ -50,4 +50,4 @@ std::string STSC::description( void ) void STSC::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STSD.cpp b/source/MP4.STSD.cpp index 2900921..ac39850 100644 --- a/source/MP4.STSD.cpp +++ b/source/MP4.STSD.cpp @@ -50,4 +50,4 @@ std::string STSD::description( void ) void STSD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STSH.cpp b/source/MP4.STSH.cpp index 26d05c5..05a2d74 100644 --- a/source/MP4.STSH.cpp +++ b/source/MP4.STSH.cpp @@ -50,4 +50,4 @@ std::string STSH::description( void ) void STSH::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STSS.cpp b/source/MP4.STSS.cpp index 3d4fa7f..62ee37d 100644 --- a/source/MP4.STSS.cpp +++ b/source/MP4.STSS.cpp @@ -50,4 +50,4 @@ std::string STSS::description( void ) void STSS::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STSZ.cpp b/source/MP4.STSZ.cpp index 300c2ba..596c3d8 100644 --- a/source/MP4.STSZ.cpp +++ b/source/MP4.STSZ.cpp @@ -50,4 +50,4 @@ std::string STSZ::description( void ) void STSZ::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STTS.cpp b/source/MP4.STTS.cpp index 8537379..e4b582b 100644 --- a/source/MP4.STTS.cpp +++ b/source/MP4.STTS.cpp @@ -50,4 +50,4 @@ std::string STTS::description( void ) void STTS::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.STZ2.cpp b/source/MP4.STZ2.cpp index f92d964..4a617d2 100644 --- a/source/MP4.STZ2.cpp +++ b/source/MP4.STZ2.cpp @@ -50,4 +50,4 @@ std::string STZ2::description( void ) void STZ2::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.SUBS.cpp b/source/MP4.SUBS.cpp index 160cbcc..795d1d4 100644 --- a/source/MP4.SUBS.cpp +++ b/source/MP4.SUBS.cpp @@ -50,4 +50,4 @@ std::string SUBS::description( void ) void SUBS::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TFHD.cpp b/source/MP4.TFHD.cpp index e2b6b7b..9610374 100644 --- a/source/MP4.TFHD.cpp +++ b/source/MP4.TFHD.cpp @@ -50,4 +50,4 @@ std::string TFHD::description( void ) void TFHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TFRA.cpp b/source/MP4.TFRA.cpp index 025c9d6..304068e 100644 --- a/source/MP4.TFRA.cpp +++ b/source/MP4.TFRA.cpp @@ -50,4 +50,4 @@ std::string TFRA::description( void ) void TFRA::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TKHD.cpp b/source/MP4.TKHD.cpp index c373882..e749d78 100644 --- a/source/MP4.TKHD.cpp +++ b/source/MP4.TKHD.cpp @@ -50,4 +50,4 @@ std::string TKHD::description( void ) void TKHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TREF.cpp b/source/MP4.TREF.cpp index cec9454..a10852a 100644 --- a/source/MP4.TREF.cpp +++ b/source/MP4.TREF.cpp @@ -50,4 +50,4 @@ std::string TREF::description( void ) void TREF::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TREX.cpp b/source/MP4.TREX.cpp index 7ee7936..e648af7 100644 --- a/source/MP4.TREX.cpp +++ b/source/MP4.TREX.cpp @@ -50,4 +50,4 @@ std::string TREX::description( void ) void TREX::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.TRUN.cpp b/source/MP4.TRUN.cpp index 94910da..f89e687 100644 --- a/source/MP4.TRUN.cpp +++ b/source/MP4.TRUN.cpp @@ -50,4 +50,4 @@ std::string TRUN::description( void ) void TRUN::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.UDTA.cpp b/source/MP4.UDTA.cpp index eea1132..fd5ee3a 100644 --- a/source/MP4.UDTA.cpp +++ b/source/MP4.UDTA.cpp @@ -50,4 +50,4 @@ std::string UDTA::description( void ) void UDTA::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.VMHD.cpp b/source/MP4.VMHD.cpp index aca96f9..cc81b08 100644 --- a/source/MP4.VMHD.cpp +++ b/source/MP4.VMHD.cpp @@ -50,4 +50,4 @@ std::string VMHD::description( void ) void VMHD::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/MP4.XML.cpp b/source/MP4.XML.cpp index 8b7263c..ee04020 100644 --- a/source/MP4.XML.cpp +++ b/source/MP4.XML.cpp @@ -50,4 +50,4 @@ std::string XML::description( void ) void XML::processData( MP4::BinaryStream * stream, size_t length ) { stream->ignore( length ); -} \ No newline at end of file +} diff --git a/source/include/MP4.Atom.h b/source/include/MP4.Atom.h index 8dbea48..7caf866 100644 --- a/source/include/MP4.Atom.h +++ b/source/include/MP4.Atom.h @@ -50,6 +50,8 @@ namespace MP4 public: + virtual ~Atom( void ); + std::string getType( void ); virtual std::string description( void ) = 0; diff --git a/source/include/MP4.ContainerAtom.h b/source/include/MP4.ContainerAtom.h index 0ea2387..6cef33e 100644 --- a/source/include/MP4.ContainerAtom.h +++ b/source/include/MP4.ContainerAtom.h @@ -60,4 +60,4 @@ namespace MP4 }; } -#endif /* _MP4_CONTAINER_ATOM_ */ \ No newline at end of file +#endif /* _MP4_CONTAINER_ATOM_ */ diff --git a/source/include/types.h b/source/include/types.h index c1edd44..d1f4dc8 100644 --- a/source/include/types.h +++ b/source/include/types.h @@ -47,4 +47,4 @@ typedef struct _matrix } matrix; -#endif /* _TYPES_H_ */ \ No newline at end of file +#endif /* _TYPES_H_ */