Example #1
0
void
MP4AudioInfo::Update(const MetaData* aMetaData,
                     const char* aMimeType)
{
  UpdateTrackInfo(*this, aMetaData, aMimeType);
  mChannels = FindInt32(aMetaData, kKeyChannelCount);
  mBitDepth = FindInt32(aMetaData, kKeySampleSize);
  mRate = FindInt32(aMetaData, kKeySampleRate);
  mProfile = FindInt32(aMetaData, kKeyAACProfile);

  if (FindData(aMetaData, kKeyESDS, mExtraData)) {
    ESDS esds(mExtraData->Elements(), mExtraData->Length());

    const void* data;
    size_t size;
    if (esds.getCodecSpecificInfo(&data, &size) == OK) {
      const uint8_t* cdata = reinterpret_cast<const uint8_t*>(data);
      mCodecSpecificConfig->AppendElements(cdata, size);
      if (size > 1) {
        ABitReader br(cdata, size);
        mExtendedProfile = br.getBits(5);

        if (mExtendedProfile == 31) {  // AAC-ELD => additional 6 bits
          mExtendedProfile = 32 + br.getBits(6);
        }
      }
    }
  }
}
Example #2
0
void
MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType)
{
  UpdateTrackInfo(*this, aMetaData, aMimeType);
  mDisplay.width = FindInt32(aMetaData, kKeyDisplayWidth);
  mDisplay.height = FindInt32(aMetaData, kKeyDisplayHeight);
  mImage.width = FindInt32(aMetaData, kKeyWidth);
  mImage.height = FindInt32(aMetaData, kKeyHeight);
  mRotation = VideoInfo::ToSupportedRotation(FindInt32(aMetaData, kKeyRotation));

  FindData(aMetaData, kKeyAVCC, mExtraData);
  if (!mExtraData->Length()) {
    if (FindData(aMetaData, kKeyESDS, mExtraData)) {
      ESDS esds(mExtraData->Elements(), mExtraData->Length());

      const void* data;
      size_t size;
      if (esds.getCodecSpecificInfo(&data, &size) == OK) {
        const uint8_t* cdata = reinterpret_cast<const uint8_t*>(data);
        mCodecSpecificConfig->AppendElements(cdata, size);
      }
    }
  }

}
Example #3
0
void
AudioDecoderConfig::Update(sp<MetaData>& aMetaData, const char* aMimeType)
{
  TrackConfig::Update(aMetaData, aMimeType);
  channel_count = FindInt32(aMetaData, kKeyChannelCount);
  bits_per_sample = FindInt32(aMetaData, kKeySampleSize);
  samples_per_second = FindInt32(aMetaData, kKeySampleRate);
  frequency_index = Adts::GetFrequencyIndex(samples_per_second);
  aac_profile = FindInt32(aMetaData, kKeyAACProfile);

  if (FindData(aMetaData, kKeyESDS, extra_data)) {
    ESDS esds(extra_data->Elements(), extra_data->Length());

    const void* data;
    size_t size;
    if (esds.getCodecSpecificInfo(&data, &size) == OK) {
      const uint8_t* cdata = reinterpret_cast<const uint8_t*>(data);
      audio_specific_config->AppendElements(cdata, size);
      if (size > 1) {
        ABitReader br(cdata, size);
        extended_profile = br.getBits(5);

        if (extended_profile == 31) {  // AAC-ELD => additional 6 bits
          extended_profile = 32 + br.getBits(6);
        }
      }
    }
  }
}
Example #4
0
void
MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType)
{
  UpdateTrackInfo(*this, aMetaData, aMimeType);
  mDisplay.width = FindInt32(aMetaData, kKeyDisplayWidth);
  mDisplay.height = FindInt32(aMetaData, kKeyDisplayHeight);
  mImage.width = FindInt32(aMetaData, kKeyWidth);
  mImage.height = FindInt32(aMetaData, kKeyHeight);

  FindData(aMetaData, kKeyAVCC, mExtraData);
}
Example #5
0
void
VideoDecoderConfig::Update(sp<MetaData>& aMetaData, const char* aMimeType)
{
  TrackConfig::Update(aMetaData, aMimeType);
  display_width = FindInt32(aMetaData, kKeyDisplayWidth);
  display_height = FindInt32(aMetaData, kKeyDisplayHeight);
  image_width = FindInt32(aMetaData, kKeyWidth);
  image_height = FindInt32(aMetaData, kKeyHeight);

  FindData(aMetaData, kKeyAVCC, extra_data);
}
Example #6
0
int32		
PSettings::GetInt32(const char *name)
{
	int32	val=0;
	FindInt32(name,&val);
	return val;
}
Example #7
0
void
VideoDecoderConfig::Update(sp<MetaData>& aMetaData, const char* aMimeType)
{
  TrackConfig::Update(aMetaData, aMimeType);
  display_width = FindInt32(aMetaData, kKeyDisplayWidth);
  display_height = FindInt32(aMetaData, kKeyDisplayHeight);
  image_width = FindInt32(aMetaData, kKeyWidth);
  image_height = FindInt32(aMetaData, kKeyHeight);

  if (FindData(aMetaData, kKeyAVCC, &extra_data) && extra_data.length() >= 7) {
    // Set size of the NAL length to 4. The demuxer formats its output with
    // this NAL length size.
    extra_data[4] |= 3;
    annex_b = AnnexB::ConvertExtraDataToAnnexB(extra_data);
  }
}
Example #8
0
int32		
PSettings::GetInt32(const char *name,int32 def)
{
	int32	val=0;
	if(FindInt32(name,&val)==B_OK)return val;
	else
	return def;
}
Example #9
0
uint32
AttributeMessage::GetAttribute(const char* name, uint32 defaultValue) const
{
	int32 value;
	if (FindInt32(name, &value) != B_OK)
		return defaultValue;
	return (uint32)value;
}
Example #10
0
void
PSettings::SetInt32(const char *name,int32 value)
{
	int32	old;
	status_t s=FindInt32(name,&old);
	if(s==B_OK)ReplaceInt32(name,value);
	else AddInt32(name,value);	
}
Example #11
0
int Config::GetInt(const char *name, const int Default)
{
int32 value;

	if (FindInt32(name, &value) == B_OK)
		return value;
	else
		return Default;
}
Example #12
0
myinline int32 ArpMessage::GetInt32(const char *name, int32 def, int32 index) const
{
	if( this ) {
		int32 res;
		if( FindInt32(name, index, &res) != B_NO_ERROR ) return def;
		return res;
	}
	return def;
}
Example #13
0
//------------------------------------------------------------------------------
status_t	TTextData::Unarchive(const BMessage& oArc)
{
	status_t	aResult = B_OK;

	aResult |= SUPER::Unarchive(oArc);
	// bool
	aResult |= FindBool(oArc, ARC_NAME_EXPAND, &mExpand);
	aResult |= FindBool(oArc, ARC_NAME_GROUP, &mGroup);
	aResult |= FindBool(oArc, ARC_NAME_PATTERN_MATCH, &mPatternMatch);
	// int32
	aResult |= FindInt32(oArc, ARC_NAME_ID, &mID);
	// uint32
	aResult |= FindInt32(oArc, ARC_NAME_OUTLINE_LEVEL, reinterpret_cast<int32*>(&mOutlineLevel));
	// string
	aResult |= FindString(oArc, ARC_NAME_TITLE, &mTitle);
	// Message
	aResult |= FindMessage(oArc, ARC_NAME_DATA, &mData);
	return aResult;
}
Example #14
0
void
TrackConfig::Update(sp<MetaData>& aMetaData, const char* aMimeType)
{
  // aMimeType points to a string from MediaDefs.cpp so we don't need to copy it
  mime_type = aMimeType;
  duration = FindInt64(aMetaData, kKeyDuration);
  media_time = FindInt64(aMetaData, kKeyMediaTime);
  mTrackId = FindInt32(aMetaData, kKeyTrackID);
  crypto.Update(aMetaData);
}
bool
Preferences::ReadInt32(int32 &val, const char* name)
{
	Lock();
	int32 readVal;
	bool found = FindInt32(name, &readVal) == B_OK;
	if (found)
		val = readVal;
	Unlock();
	return found;
}
Example #16
0
static void
UpdateTrackInfo(mozilla::TrackInfo& aConfig,
                const MetaData* aMetaData,
                const char* aMimeType)
{
  mozilla::CryptoTrack& crypto = aConfig.mCrypto;
  aConfig.mMimeType = aMimeType;
  aConfig.mDuration = FindInt64(aMetaData, kKeyDuration);
  aConfig.mMediaTime = FindInt64(aMetaData, kKeyMediaTime);
  aConfig.mTrackId = FindInt32(aMetaData, kKeyTrackID);
  aConfig.mCrypto.mValid = aMetaData->findInt32(kKeyCryptoMode, &crypto.mMode) &&
    aMetaData->findInt32(kKeyCryptoDefaultIVSize, &crypto.mIVSize) &&
    FindData(aMetaData, kKeyCryptoKey, &crypto.mKeyId);
}
Example #17
0
void
MP4Sample::Update(int64_t& aMediaTime)
{
  sp<MetaData> m = mMediaBuffer->meta_data();
  decode_timestamp = FindInt64(m, kKeyDecodingTime);
  composition_timestamp = FindInt64(m, kKeyTime) - aMediaTime;
  duration = FindInt64(m, kKeyDuration);
  byte_offset = FindInt64(m, kKey64BitFileOffset);
  is_sync_point = FindInt32(m, kKeyIsSyncFrame);
  data = reinterpret_cast<uint8_t*>(mMediaBuffer->data());
  size = mMediaBuffer->range_length();

  crypto.Update(m);
}
Example #18
0
void
MP4Sample::Update(int64_t& aMediaTime)
{
  sp<MetaData> m = mMediaBuffer->meta_data();
  // XXXbholley - Why don't we adjust decode_timestamp for aMediaTime?
  // According to k17e, this code path is no longer used - we should probably remove it.
  decode_timestamp = FindInt64(m, kKeyDecodingTime);
  composition_timestamp = FindInt64(m, kKeyTime) - aMediaTime;
  duration = FindInt64(m, kKeyDuration);
  byte_offset = FindInt64(m, kKey64BitFileOffset);
  is_sync_point = FindInt32(m, kKeyIsSyncFrame);
  data = reinterpret_cast<uint8_t*>(mMediaBuffer->data());
  size = mMediaBuffer->range_length();

  crypto.Update(m);
}
Example #19
0
int32 Message::FindInt32(const char *name, int32 *anInt32) const
{
  return FindInt32( name, 0, anInt32);
}