当前位置: 首页>>代码示例>>Java>>正文


Java MediaFormat.NO_VALUE属性代码示例

本文整理汇总了Java中com.google.android.exoplayer.MediaFormat.NO_VALUE属性的典型用法代码示例。如果您正苦于以下问题:Java MediaFormat.NO_VALUE属性的具体用法?Java MediaFormat.NO_VALUE怎么用?Java MediaFormat.NO_VALUE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在com.google.android.exoplayer.MediaFormat的用法示例。


在下文中一共展示了MediaFormat.NO_VALUE属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isPrepared

/**
 * Whether the extractor is prepared.
 *
 * @return True if the extractor is prepared. False otherwise.
 */
public boolean isPrepared() {
  if (!prepared && tracksBuilt) {
    for (int i = 0; i < sampleQueues.size(); i++) {
      if (!sampleQueues.valueAt(i).hasFormat()) {
        return false;
      }
    }
    prepared = true;
    sampleQueueFormats = new MediaFormat[sampleQueues.size()];
    for (int i = 0; i < sampleQueueFormats.length; i++) {
      MediaFormat format = sampleQueues.valueAt(i).getFormat();
      if (MimeTypes.isVideo(format.mimeType) && (adaptiveMaxWidth != MediaFormat.NO_VALUE
          || adaptiveMaxHeight != MediaFormat.NO_VALUE)) {
        format = format.copyWithMaxVideoDimensions(adaptiveMaxWidth, adaptiveMaxHeight);
      }
      sampleQueueFormats[i] = format;
    }
  }
  return prepared;
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:25,代码来源:HlsExtractorWrapper.java

示例2: parseDtsFormat

/**
 * Returns the DTS format given {@code data} containing the DTS frame according to ETSI TS 102 114
 * subsections 5.3/5.4.
 * <p>
 * This method may only be called from one thread at a time.
 *
 * @param frame The DTS frame to parse.
 * @param trackId The track identifier to set on the format, or null.
 * @param durationUs The duration to set on the format, in microseconds.
 * @param language The language to set on the format.
 * @return The DTS format parsed from data in the header.
 */
public static MediaFormat parseDtsFormat(byte[] frame, String trackId, long durationUs,
    String language) {
  ParsableBitArray frameBits = SCRATCH_BITS;
  frameBits.reset(frame);
  frameBits.skipBits(4 * 8 + 1 + 5 + 1 + 7 + 14); // SYNC, FTYPE, SHORT, CPF, NBLKS, FSIZE
  int amode = frameBits.readBits(6);
  int channelCount = CHANNELS_BY_AMODE[amode];
  int sfreq = frameBits.readBits(4);
  int sampleRate = SAMPLE_RATE_BY_SFREQ[sfreq];
  int rate = frameBits.readBits(5);
  int bitrate = rate >= TWICE_BITRATE_KBPS_BY_RATE.length ? MediaFormat.NO_VALUE
      : TWICE_BITRATE_KBPS_BY_RATE[rate] * 1000 / 2;
  frameBits.skipBits(10); // MIX, DYNF, TIMEF, AUXF, HDCD, EXT_AUDIO_ID, EXT_AUDIO, ASPF
  channelCount += frameBits.readBits(2) > 0 ? 1 : 0; // LFF
  return MediaFormat.createAudioFormat(trackId, MimeTypes.AUDIO_DTS, bitrate,
      MediaFormat.NO_VALUE, durationUs, channelCount, sampleRate, null, language);
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:29,代码来源:DtsUtil.java

示例3: onInputFormatChanged

@Override
protected void onInputFormatChanged(MediaFormatHolder holder) throws ExoPlaybackException {
    super.onInputFormatChanged(holder);
    pendingPixelWidthHeightRatio = holder.format.pixelWidthHeightRatio == MediaFormat.NO_VALUE ? 1
            : holder.format.pixelWidthHeightRatio;
    pendingRotationDegrees = holder.format.rotationDegrees == MediaFormat.NO_VALUE ? 0
            : holder.format.rotationDegrees;
}
 
开发者ID:quanhua92,项目名称:GLMediaPlayer,代码行数:8,代码来源:TextureVideoTrackRenderer.java

示例4: parseAvcCodecPrivate

/**
 * Builds initialization data for a {@link MediaFormat} from H.264 (AVC) codec private data.
 *
 * @return The AvcSequenceHeader data needed to initialize the video codec.
 * @throws ParserException If the initialization data could not be built.
 */
private AvcSequenceHeaderData parseAvcCodecPrivate(ParsableByteArray buffer)
    throws ParserException {
  // TODO: Deduplicate with AtomParsers.parseAvcCFromParent.
  buffer.setPosition(4);
  int nalUnitLengthFieldLength = (buffer.readUnsignedByte() & 0x03) + 1;
  Assertions.checkState(nalUnitLengthFieldLength != 3);
  List<byte[]> initializationData = new ArrayList<>();
  int numSequenceParameterSets = buffer.readUnsignedByte() & 0x1F;
  for (int i = 0; i < numSequenceParameterSets; i++) {
    initializationData.add(NalUnitUtil.parseChildNalUnit(buffer));
  }
  int numPictureParameterSets = buffer.readUnsignedByte();
  for (int j = 0; j < numPictureParameterSets; j++) {
    initializationData.add(NalUnitUtil.parseChildNalUnit(buffer));
  }

  float pixelWidthAspectRatio = 1;
  int width = MediaFormat.NO_VALUE;
  int height = MediaFormat.NO_VALUE;
  if (numSequenceParameterSets > 0) {
    // Parse the first sequence parameter set to obtain pixelWidthAspectRatio.
    ParsableBitArray spsDataBitArray = new ParsableBitArray(initializationData.get(0));
    // Skip the NAL header consisting of the nalUnitLengthField and the type (1 byte).
    spsDataBitArray.setPosition(8 * (nalUnitLengthFieldLength + 1));
    NalUnitUtil.SpsData sps = NalUnitUtil.parseSpsNalUnit(spsDataBitArray);
    width = sps.width;
    height = sps.height;
    pixelWidthAspectRatio = sps.pixelWidthAspectRatio;
  }

  return new AvcSequenceHeaderData(initializationData, nalUnitLengthFieldLength,
      width, height, pixelWidthAspectRatio);
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:39,代码来源:VideoTagPayloadReader.java

示例5: getAdjustedMediaFormat

private static MediaFormat getAdjustedMediaFormat(MediaFormat format, long sampleOffsetUs,
    int adaptiveMaxWidth, int adaptiveMaxHeight) {
  if (format == null) {
    return null;
  }
  if (sampleOffsetUs != 0 && format.subsampleOffsetUs != MediaFormat.OFFSET_SAMPLE_RELATIVE) {
    format = format.copyWithSubsampleOffsetUs(format.subsampleOffsetUs + sampleOffsetUs);
  }
  if (adaptiveMaxWidth != MediaFormat.NO_VALUE || adaptiveMaxHeight != MediaFormat.NO_VALUE) {
    format = format.copyWithMaxVideoDimensions(adaptiveMaxWidth, adaptiveMaxHeight);
  }
  return format;
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:13,代码来源:ContainerMediaChunk.java

示例6: ExposedTrack

public ExposedTrack(MediaFormat trackFormat, int elementIndex, Format fixedFormat) {
  this.trackFormat = trackFormat;
  this.elementIndex = elementIndex;
  this.fixedFormat = fixedFormat;
  this.adaptiveFormats = null;
  this.adaptiveMaxWidth = MediaFormat.NO_VALUE;
  this.adaptiveMaxHeight = MediaFormat.NO_VALUE;
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:8,代码来源:SmoothStreamingChunkSource.java

示例7: buildResolutionString

private static String buildResolutionString(MediaFormat format) {
	return format.width == MediaFormat.NO_VALUE || format.height == MediaFormat.NO_VALUE ? ""
			: format.width + "x" + format.height;
}
 
开发者ID:vuthanhict,项目名称:ExoPlayerController,代码行数:4,代码来源:PlayerActivity.java

示例8: buildAudioPropertyString

private static String buildAudioPropertyString(MediaFormat format) {
	return format.channelCount == MediaFormat.NO_VALUE || format.sampleRate == MediaFormat.NO_VALUE ? ""
			: format.channelCount + "ch, " + format.sampleRate + "Hz";
}
 
开发者ID:vuthanhict,项目名称:ExoPlayerController,代码行数:4,代码来源:PlayerActivity.java

示例9: buildBitrateString

private static String buildBitrateString(MediaFormat format) {
	return format.bitrate == MediaFormat.NO_VALUE ? ""
			: String.format(Locale.US, "%.2fMbit", format.bitrate / 1000000f);
}
 
开发者ID:vuthanhict,项目名称:ExoPlayerController,代码行数:4,代码来源:PlayerActivity.java

示例10: buildTrackIdString

private static String buildTrackIdString(MediaFormat format) {
	return format.trackId == MediaFormat.NO_VALUE ? "" : String.format(Locale.US, " (%d)", format.trackId);
}
 
开发者ID:vuthanhict,项目名称:ExoPlayerController,代码行数:3,代码来源:PlayerActivity.java

示例11: buildResolutionString

private static String buildResolutionString(MediaFormat format) {
    return format.width == MediaFormat.NO_VALUE || format.height == MediaFormat.NO_VALUE
            ? "" : format.width + "x" + format.height;
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:4,代码来源:PlayerActivity.java

示例12: buildAudioPropertyString

private static String buildAudioPropertyString(MediaFormat format) {
    return format.channelCount == MediaFormat.NO_VALUE || format.sampleRate == MediaFormat.NO_VALUE
            ? "" : format.channelCount + "ch, " + format.sampleRate + "Hz";
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:4,代码来源:PlayerActivity.java

示例13: buildBitrateString

private static String buildBitrateString(MediaFormat format) {
    return format.bitrate == MediaFormat.NO_VALUE ? ""
            : String.format(Locale.US, "%.2fMbit", format.bitrate / 1000000f);
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:4,代码来源:PlayerActivity.java

示例14: ExposedTrack

public ExposedTrack(Variant fixedVariant) {
  this.variants = new Variant[] {fixedVariant};
  this.defaultVariantIndex = 0;
  this.adaptiveMaxWidth = MediaFormat.NO_VALUE;
  this.adaptiveMaxHeight = MediaFormat.NO_VALUE;
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:6,代码来源:HlsChunkSource.java

示例15: copyWithFixedTrackInfo

/**
 * Copies a provided {@link MediaFormat}, incorporating information from the {@link Format} of
 * a fixed (i.e. non-adaptive) track, as well as a language.
 *
 * @param format The {@link MediaFormat} to copy.
 * @param fixedTrackFormat The {@link Format} to incorporate into the copy.
 * @param language The language to incorporate into the copy.
 * @return The copied {@link MediaFormat}.
 */
private static MediaFormat copyWithFixedTrackInfo(MediaFormat format, Format fixedTrackFormat,
    String language) {
  int width = fixedTrackFormat.width == -1 ? MediaFormat.NO_VALUE : fixedTrackFormat.width;
  int height = fixedTrackFormat.height == -1 ? MediaFormat.NO_VALUE : fixedTrackFormat.height;
  return format.copyWithFixedTrackInfo(fixedTrackFormat.id, fixedTrackFormat.bitrate, width,
      height, language);
}
 
开发者ID:asifkhan11,项目名称:ExoPlayer-Demo,代码行数:16,代码来源:HlsSampleSource.java


注:本文中的com.google.android.exoplayer.MediaFormat.NO_VALUE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。