List of usage examples for android.media MediaFormat setInteger
public final void setInteger(String name, int value)
From source file:com.serenegiant.media.TLMediaEncoder.java
private static final MediaFormat asMediaFormat(final String format_str) { MediaFormat format = new MediaFormat(); try {//from w w w.ja va2 s. c o m 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.c77.androidstreamingclient.lib.rtp.RtpMediaExtractor.java
/** * Retrieves an Android MediaFormat for H.264, 640x480 video codec. * SPS and PPS are hardcoded to the ones used by libstreaming. * TODO: Think how to get CSD-0/CSD-1 codec-specific data chunks * * @return/* w w w .j a v a 2 s . c o m*/ */ public MediaFormat getMediaFormat() { String mimeType = "video/avc"; int width = 640; int height = 480; MediaFormat format = MediaFormat.createVideoFormat(mimeType, width, 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 format.setByteBuffer(CSD_0, ByteBuffer.wrap(header_sps)); format.setByteBuffer(CSD_1, ByteBuffer.wrap(header_pps)); //format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, width * height); format.setInteger(DURATION_US, 12600000); return format; }
From source file:br.com.skylane.voicer.rtp.RtpMediaDecoder.java
/** * //from w w w .j a va2 s. co m * @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.c77.androidstreamingclient.lib.rtp.OriginalRtpMediaExtractor.java
public MediaFormat getMediaFormat() { String mimeType = "video/avc"; int width = 640; int height = 480; MediaFormat format = MediaFormat.createVideoFormat(mimeType, width, height); /*/*from www . j a v a2s . c om*/ // the one got from internet byte[] header_sps = { 0, 0, 0, 1, // header 0x67, 0x42, 0x00, 0x1f, (byte)0xe9, 0x01, 0x68, 0x7b, (byte) 0x20 }; // sps byte[] header_pps = { 0, 0, 0, 1, // header 0x68, (byte)0xce, 0x06, (byte)0xf2 }; // pps // the one got from libstreaming at HQ byte[] header_sps = { 0, 0, 0, 1, // header 0x67, 0x42, (byte)0x80, 0x14, (byte)0xe4, 0x40, (byte)0xa0, (byte)0xfd, 0x00, (byte)0xda, 0x14, 0x26, (byte)0xa0}; // sps byte[] header_pps = { 0, 0, 0, 1, // header 0x68, (byte)0xce, 0x38, (byte)0x80 }; // pps // the one got from libstreaming at home byte[] header_sps = { 0, 0, 0, 1, // header 0x67, 0x42, (byte) 0xc0, 0x1e, (byte) 0xe9, 0x01, 0x40, 0x7b, 0x40, 0x3c, 0x22, 0x11, (byte) 0xa8}; // sps byte[] header_pps = { 0, 0, 0, 1, // header 0x68, (byte) 0xce, 0x06, (byte) 0xe2}; // pps */ // 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 format.setByteBuffer(CSD_0, ByteBuffer.wrap(header_sps)); format.setByteBuffer(CSD_1, ByteBuffer.wrap(header_pps)); //format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, width * height); format.setInteger(DURATION_US, 12600000); return format; }