Example usage for android.media MediaFormat KEY_MAX_INPUT_SIZE

List of usage examples for android.media MediaFormat KEY_MAX_INPUT_SIZE

Introduction

In this page you can find the example usage for android.media MediaFormat KEY_MAX_INPUT_SIZE.

Prototype

String KEY_MAX_INPUT_SIZE

To view the source code for android.media MediaFormat KEY_MAX_INPUT_SIZE.

Click Source Link

Document

A key describing the maximum size in bytes of a buffer of data described by this MediaFormat.

Usage

From source file:br.com.skylane.voicer.rtp.RtpMediaDecoder.java

/**
 * //from   w ww.ja  v a2  s .  c om
 * @return
 */
public MediaFormat getMediaFormat() {
    String mimeType = "video/avc";

    MediaFormat format = MediaFormat.createVideoFormat(mimeType, SURFACE_WIDTH, SURFACE_HEIGHT);

    // from avconv, when streaming sample.h264.mp4 from disk
    /*byte[] header_sps = {0, 0, 0, 1, // header
        0x67, 0x64, (byte) 0x00, 0x1e, (byte) 0xac, (byte) 0xd9, 0x40, (byte) 0xa0, 0x3d,
        (byte) 0xa1, 0x00, 0x00, (byte) 0x03, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x3C, 0x0F, 0x16, 0x2D, (byte) 0x96}; // sps
    byte[] header_pps = {0, 0, 0, 1, // header
        0x68, (byte) 0xeb, (byte) 0xec, (byte) 0xb2, 0x2C}; // pps
     */

    //byte[] header_sps = {0, 0, 0, 1, 103, 100, 0, 41, -84, 27, 26, -64, -96, 61, -112}; // sps
    //byte[] header_sps = {0, 0, 0, 1, 103, 66, 0, 30, -90, -128, -96, 61, -112}; //-samsung
    byte[] header_sps = { 0, 0, 0, 1, 103, 66, -128, 30, -85, 64, 80, 30, -48, -128, 0, 0, 3, 0, -128, 0, 0, 30,
            112, 32, 0, 122, 18, 0, 15, 66, 86, -79, -80, 16 }; //-asus
    //byte[] header_pps = {0, 0, 0, 1, 104, -22, 67, -53}; // pps
    //byte[] header_pps = {0, 0, 0, 1, 104, -50, 56, -128}; // -samsung
    byte[] header_pps = { 0, 0, 0, 1, 104, -50, 60, -128 }; // -asus

    /*format.setByteBuffer("csd-0", ByteBuffer.wrap(header_sps));
    format.setByteBuffer("csd-1", ByteBuffer.wrap(header_pps));*/

    format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, SURFACE_WIDTH * SURFACE_HEIGHT);
    format.setInteger(MediaFormat.KEY_DURATION, 12600000);

    /*format.setInteger(MediaFormat.KEY_COLOR_FORMAT,
        MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
    format.setInteger(MediaFormat.KEY_BIT_RATE, 1000000);
    format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
    format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);*/

    return format;
}

From source file:com.serenegiant.media.TLMediaEncoder.java

private static final String asString(final MediaFormat format) {
    final JSONObject map = new JSONObject();
    try {/*from   www .ja  v a  2s  .  c  o m*/
        if (format.containsKey(MediaFormat.KEY_MIME))
            map.put(MediaFormat.KEY_MIME, format.getString(MediaFormat.KEY_MIME));
        if (format.containsKey(MediaFormat.KEY_WIDTH))
            map.put(MediaFormat.KEY_WIDTH, format.getInteger(MediaFormat.KEY_WIDTH));
        if (format.containsKey(MediaFormat.KEY_HEIGHT))
            map.put(MediaFormat.KEY_HEIGHT, format.getInteger(MediaFormat.KEY_HEIGHT));
        if (format.containsKey(MediaFormat.KEY_BIT_RATE))
            map.put(MediaFormat.KEY_BIT_RATE, format.getInteger(MediaFormat.KEY_BIT_RATE));
        if (format.containsKey(MediaFormat.KEY_COLOR_FORMAT))
            map.put(MediaFormat.KEY_COLOR_FORMAT, format.getInteger(MediaFormat.KEY_COLOR_FORMAT));
        if (format.containsKey(MediaFormat.KEY_FRAME_RATE))
            map.put(MediaFormat.KEY_FRAME_RATE, format.getInteger(MediaFormat.KEY_FRAME_RATE));
        if (format.containsKey(MediaFormat.KEY_I_FRAME_INTERVAL))
            map.put(MediaFormat.KEY_I_FRAME_INTERVAL, format.getInteger(MediaFormat.KEY_I_FRAME_INTERVAL));
        if (format.containsKey(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER))
            map.put(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER,
                    format.getLong(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER));
        if (format.containsKey(MediaFormat.KEY_MAX_INPUT_SIZE))
            map.put(MediaFormat.KEY_MAX_INPUT_SIZE, format.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE));
        if (format.containsKey(MediaFormat.KEY_DURATION))
            map.put(MediaFormat.KEY_DURATION, format.getInteger(MediaFormat.KEY_DURATION));
        if (format.containsKey(MediaFormat.KEY_CHANNEL_COUNT))
            map.put(MediaFormat.KEY_CHANNEL_COUNT, format.getInteger(MediaFormat.KEY_CHANNEL_COUNT));
        if (format.containsKey(MediaFormat.KEY_SAMPLE_RATE))
            map.put(MediaFormat.KEY_SAMPLE_RATE, format.getInteger(MediaFormat.KEY_SAMPLE_RATE));
        if (format.containsKey(MediaFormat.KEY_CHANNEL_MASK))
            map.put(MediaFormat.KEY_CHANNEL_MASK, format.getInteger(MediaFormat.KEY_CHANNEL_MASK));
        if (format.containsKey(MediaFormat.KEY_AAC_PROFILE))
            map.put(MediaFormat.KEY_AAC_PROFILE, format.getInteger(MediaFormat.KEY_AAC_PROFILE));
        if (format.containsKey(MediaFormat.KEY_AAC_SBR_MODE))
            map.put(MediaFormat.KEY_AAC_SBR_MODE, format.getInteger(MediaFormat.KEY_AAC_SBR_MODE));
        if (format.containsKey(MediaFormat.KEY_MAX_INPUT_SIZE))
            map.put(MediaFormat.KEY_MAX_INPUT_SIZE, format.getInteger(MediaFormat.KEY_MAX_INPUT_SIZE));
        if (format.containsKey(MediaFormat.KEY_IS_ADTS))
            map.put(MediaFormat.KEY_IS_ADTS, format.getInteger(MediaFormat.KEY_IS_ADTS));
        if (format.containsKey("what"))
            map.put("what", format.getInteger("what"));
        if (format.containsKey("csd-0"))
            map.put("csd-0", asString(format.getByteBuffer("csd-0")));
        if (format.containsKey("csd-1"))
            map.put("csd-1", asString(format.getByteBuffer("csd-1")));
    } catch (JSONException e) {
        Log.e(TAG_STATIC, "writeFormat:", e);
    }

    return map.toString();
}

From source file:com.serenegiant.media.TLMediaEncoder.java

private static final MediaFormat asMediaFormat(final String format_str) {
    MediaFormat format = new MediaFormat();
    try {/*from  w  ww.  j  a  va2 s . c om*/
        final JSONObject map = new JSONObject(format_str);
        if (map.has(MediaFormat.KEY_MIME))
            format.setString(MediaFormat.KEY_MIME, (String) map.get(MediaFormat.KEY_MIME));
        if (map.has(MediaFormat.KEY_WIDTH))
            format.setInteger(MediaFormat.KEY_WIDTH, (Integer) map.get(MediaFormat.KEY_WIDTH));
        if (map.has(MediaFormat.KEY_HEIGHT))
            format.setInteger(MediaFormat.KEY_HEIGHT, (Integer) map.get(MediaFormat.KEY_HEIGHT));
        if (map.has(MediaFormat.KEY_BIT_RATE))
            format.setInteger(MediaFormat.KEY_BIT_RATE, (Integer) map.get(MediaFormat.KEY_BIT_RATE));
        if (map.has(MediaFormat.KEY_COLOR_FORMAT))
            format.setInteger(MediaFormat.KEY_COLOR_FORMAT, (Integer) map.get(MediaFormat.KEY_COLOR_FORMAT));
        if (map.has(MediaFormat.KEY_FRAME_RATE))
            format.setInteger(MediaFormat.KEY_FRAME_RATE, (Integer) map.get(MediaFormat.KEY_FRAME_RATE));
        if (map.has(MediaFormat.KEY_I_FRAME_INTERVAL))
            format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,
                    (Integer) map.get(MediaFormat.KEY_I_FRAME_INTERVAL));
        if (map.has(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER))
            format.setLong(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER,
                    (Long) map.get(MediaFormat.KEY_REPEAT_PREVIOUS_FRAME_AFTER));
        if (map.has(MediaFormat.KEY_MAX_INPUT_SIZE))
            format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE,
                    (Integer) map.get(MediaFormat.KEY_MAX_INPUT_SIZE));
        if (map.has(MediaFormat.KEY_DURATION))
            format.setInteger(MediaFormat.KEY_DURATION, (Integer) map.get(MediaFormat.KEY_DURATION));
        if (map.has(MediaFormat.KEY_CHANNEL_COUNT))
            format.setInteger(MediaFormat.KEY_CHANNEL_COUNT, (Integer) map.get(MediaFormat.KEY_CHANNEL_COUNT));
        if (map.has(MediaFormat.KEY_SAMPLE_RATE))
            format.setInteger(MediaFormat.KEY_SAMPLE_RATE, (Integer) map.get(MediaFormat.KEY_SAMPLE_RATE));
        if (map.has(MediaFormat.KEY_CHANNEL_MASK))
            format.setInteger(MediaFormat.KEY_CHANNEL_MASK, (Integer) map.get(MediaFormat.KEY_CHANNEL_MASK));
        if (map.has(MediaFormat.KEY_AAC_PROFILE))
            format.setInteger(MediaFormat.KEY_AAC_PROFILE, (Integer) map.get(MediaFormat.KEY_AAC_PROFILE));
        if (map.has(MediaFormat.KEY_AAC_SBR_MODE))
            format.setInteger(MediaFormat.KEY_AAC_SBR_MODE, (Integer) map.get(MediaFormat.KEY_AAC_SBR_MODE));
        if (map.has(MediaFormat.KEY_MAX_INPUT_SIZE))
            format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE,
                    (Integer) map.get(MediaFormat.KEY_MAX_INPUT_SIZE));
        if (map.has(MediaFormat.KEY_IS_ADTS))
            format.setInteger(MediaFormat.KEY_IS_ADTS, (Integer) map.get(MediaFormat.KEY_IS_ADTS));
        if (map.has("what"))
            format.setInteger("what", (Integer) map.get("what"));
        if (map.has("csd-0"))
            format.setByteBuffer("csd-0", asByteBuffer((String) map.get("csd-0")));
        if (map.has("csd-1"))
            format.setByteBuffer("csd-1", asByteBuffer((String) map.get("csd-1")));
    } catch (JSONException e) {
        Log.e(TAG_STATIC, "writeFormat:" + format_str, e);
        format = null;
    }
    return format;
}

From source file:com.sonymobile.android.media.internal.ISOBMFFParser.java

protected void parseVisualSampleEntry(byte[] data) {
    /*//  w  w w.  j a  va2s. c o  m
     * VisualSampleEntry extends SampleEntry in ISO/IEC 14496 part 12, see
     * section 8.5.2.2 for structure
     */
    mCurrentOffset += data.length;
    // SampleEntry
    // skip 6 for reserved
    // skip 2 for data_reference_index
    // VisualSampleEntry
    // skip 2 for pre_defined
    // skip 2 for reserved
    // skip 12 for pre_defined
    int width = ((data[24] & 0xFF) << 8 | data[25] & 0xFF) & 0x0000FFFF;
    int height = ((data[26] & 0xFF) << 8 | data[27] & 0xFF) & 0x0000FFFF;
    // skip 4 for horizresolution
    // skip 4 for vertresolution
    // skip 4 for reserved
    // skip 2 for frame_count
    // skip 32 for compressorname
    // skip 2 for depth
    // skip 2 for pre_defined
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_WIDTH, width);
    mCurrentTrack.getMetaData().addValue(KEY_WIDTH, width);
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_HEIGHT, height);
    mCurrentTrack.getMetaData().addValue(KEY_HEIGHT, height);
    int maxSize = ((width + 15) / 16) * ((height + 15) / 16) * 192;
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, maxSize);
    addMetaDataValue(KEY_WIDTH, width);
    addMetaDataValue(KEY_HEIGHT, height);
}

From source file:com.sonymobile.android.media.internal.ISOBMFFParser.java

protected void parseAudioSampleEntry(byte[] data) {
    mCurrentOffset += data.length;/* w  w w. j a va 2s  .  c o m*/
    // skip 6 for reserved
    // skip 2 for data_reference_index
    // skip 8 for reserved
    int channelCount = ((data[16] & 0xFF) << 8 | data[17] & 0xFF) & 0x0000FFFF;
    // skip 2 for samplesize
    // skip 2 for pre_defined
    // skip 2 for reserved
    int sampleRate = ((data[24] & 0xFF) << 8 | data[25] & 0xFF) & 0x0000FFFF;
    // skip 2 for sampleRate lower
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_CHANNEL_COUNT, channelCount);
    mCurrentTrack.getMetaData().addValue(MetaData.KEY_CHANNEL_COUNT, channelCount);
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_SAMPLE_RATE, sampleRate);
    int maxSize = 8192 * 4; // aac max size
    mCurrentMediaFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, maxSize);
}