OSDN Git Service

Merge "stagefright: MPEG4Extractor: allow \'hdlr\' box before first track" into klp...
authorJon Larimer <jlarimer@google.com>
Tue, 20 Oct 2015 21:19:00 +0000 (21:19 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Tue, 20 Oct 2015 21:19:00 +0000 (21:19 +0000)
am: 781cd4f37d

* commit '781cd4f37d4b81a8e5af45a3ba6cdd4cdd209a3e':
  stagefright: MPEG4Extractor: allow 'hdlr' box before first track

1  2 
media/libstagefright/MPEG4Extractor.cpp

@@@ -1870,29 -1733,12 +1870,31 @@@ status_t MPEG4Extractor::parseChunk(off
              // shall be 'text'. We also want to support 'sbtl' handler type
              // for a practical reason as various MPEG4 containers use it.
              if (type == FOURCC('t', 'e', 'x', 't') || type == FOURCC('s', 'b', 't', 'l')) {
-                 mLastTrack->meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_TEXT_3GPP);
+                 if (mLastTrack != NULL) {
+                     mLastTrack->meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_TEXT_3GPP);
+                 }
              }
  
 +            break;
 +        }
 +
 +        case FOURCC('t', 'r', 'e', 'x'):
 +        {
              *offset += chunk_size;
 +
 +            if (chunk_data_size < 24) {
 +                return ERROR_IO;
 +            }
 +            uint32_t duration;
 +            Trex trex;
 +            if (!mDataSource->getUInt32(data_offset + 4, &trex.track_ID) ||
 +                !mDataSource->getUInt32(data_offset + 8, &trex.default_sample_description_index) ||
 +                !mDataSource->getUInt32(data_offset + 12, &trex.default_sample_duration) ||
 +                !mDataSource->getUInt32(data_offset + 16, &trex.default_sample_size) ||
 +                !mDataSource->getUInt32(data_offset + 20, &trex.default_sample_flags)) {
 +                return ERROR_IO;
 +            }
 +            mTrex.add(trex);
              break;
          }