backport commit r501 accepted/tizen_3.0_common accepted/tizen_3.0_ivi accepted/tizen_common accepted/tizen_ivi accepted/tizen_mobile accepted/tizen_tv accepted/tizen_unified accepted/tizen_wearable tizen tizen_3.0 tizen_3.0.2014.q4_common tizen_3.0.2015.q1_common tizen_3.0.2015.q2_common tizen_3.0.m1_mobile tizen_3.0.m1_tv tizen_3.0.m2 tizen_3.0_ivi accepted/tizen/3.0/common/20161114.111015 accepted/tizen/3.0/ivi/20161011.050530 accepted/tizen/common/20150108.083639 accepted/tizen/ivi/20150112.060322 accepted/tizen/ivi/20160218.025205 accepted/tizen/mobile/20150108.122154 accepted/tizen/tv/20150108.120100 accepted/tizen/unified/20170309.040049 accepted/tizen/wearable/20150108.120851 submit/local-generic/20150107.202707 submit/tizen/20150107.202846 submit/tizen/20150107.203626 submit/tizen_3.0.m2/20170104.093753 submit/tizen_3.0_common/20161104.104000 submit/tizen_3.0_ivi/20161010.000004 submit/tizen_ivi/20160217.000000 submit/tizen_ivi/20160217.000006 submit/tizen_unified/20170308.100414 tizen_3.0.m1_mobile_release tizen_3.0.m1_tv_release tizen_3.0.m2.a1_mobile_release tizen_3.0.m2.a1_tv_release tizen_3.0_ivi_release tizen_4.0.m1_release
authorJeremy Noring <kidjan@gmail.com>
Wed, 7 Jan 2015 20:17:52 +0000 (18:17 -0200)
committerLeandro Dorileo <leandro.maciel.dorileo@intel.com>
Wed, 7 Jan 2015 20:22:55 +0000 (18:22 -0200)
fix for  issue 150 ; mp4v2 incorrectly reports track bitrate in the absence of the
avgBitrate track property.  thanks to ktakata65536 for the patch.

src/mp4.cpp

index 3605298..e1ea9fd 100644 (file)
@@ -2402,8 +2402,11 @@ MP4FileHandle MP4ReadProvider( const char* fileName, const MP4FileProvider* file
         if (MP4_IS_VALID_FILE_HANDLE(hFile)) {
             MP4File *pFile = (MP4File *)hFile;
             try {
-                return pFile->GetTrackIntegerProperty(trackId,
+                uint32_t bitrate = pFile->GetTrackIntegerProperty(trackId,
                                                       "mdia.minf.stbl.stsd.*.esds.decConfigDescr.avgBitrate");
+                if(bitrate != 0) {
+                    return bitrate;
+                }
             }
             catch( Exception* x ) {
                 //mp4v2::impl::log.errorf(*x);  we don't really need to print this.