| | |
| | | AMediaFormat_setInt32(format, AMEDIAFORMAT_KEY_BIT_RATE, config->ak_bit_rate);
|
| | | AMediaFormat_setInt32(format, AMEDIAFORMAT_KEY_FRAME_RATE, config->ak_frame_rate);
|
| | | AMediaFormat_setInt32(format, AMEDIAFORMAT_KEY_I_FRAME_INTERVAL, config->ak_i_frame_interval);
|
| | | //AMediaFormat_setInt32(format, "profile", 0x00000100);
|
| | |
|
| | | // see: https://developer.android.com/reference/android/media/MediaCodecInfo.CodecCapabilities.html#COLOR_FormatYUV420Flexible
|
| | | #define AMEDIA_COLOR_FormatYUV420Flexible 0x7f420888
|
| | |
| | | pm.buffSize = 0;
|
| | |
|
| | | //static size_t f = 0;
|
| | | //static FILE *pFile = fopen("/sdcard/aa.264", "wb");
|
| | | //static FILE *pFile = fopen("/data/aa.264", "wb");
|
| | | //fwrite(in->buffer, sizeof(char), in->buffSize, pFile);
|
| | | //if (++f > 400){
|
| | | // fclose(pFile);
|
| | |
| | | {
|
| | | auto format = AMediaCodec_getOutputFormat(in->codec);
|
| | | LOGP(INFO, "format changed to: %s", AMediaFormat_toString(format));
|
| | |
|
| | | uint8_t* sps = nullptr;
|
| | | size_t spsSize = 0;
|
| | | uint8_t* pps = nullptr;
|
| | | size_t ppsSize = 0;
|
| | |
|
| | | AMediaFormat_getBuffer(format, "csd-0", (void**)&sps, &spsSize); // sps
|
| | | AMediaFormat_getBuffer(format, "csd-1", (void**)&pps, &ppsSize); // pps
|
| | |
|
| | | if (spsSize != 0)
|
| | | {
|
| | | std::string spsStr = base64_encode(((const char*)sps) + 4, spsSize - 4);//#todo aux
|
| | | std::string ppsStr = base64_encode(((const char*)pps) + 4, ppsSize - 4);
|
| | |
|
| | | this->manager->set_param(PLGP_ENC_SPS_B64, spsStr);
|
| | | this->manager->set_param(PLGP_ENC_PPS_B64, ppsStr);
|
| | | }
|
| | |
|
| | | AMediaFormat_delete(format);
|
| | | }
|
| | | else if (outputBuffIdx == AMEDIACODEC_INFO_TRY_AGAIN_LATER)
|