Skip to content

Commit

Permalink
transcoder - undo promiscuous handle media info
Browse files Browse the repository at this point in the history
  • Loading branch information
igorshevach committed Sep 15, 2024
1 parent fbb7a5d commit 49235cb
Showing 1 changed file with 10 additions and 14 deletions.
24 changes: 10 additions & 14 deletions transcoder/transcode/transcode_session.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,30 +112,26 @@ void transcode_session_get_ack_frame_id(transcode_session_t *ctx,kmp_frame_posit
int transcode_session_set_media_info(transcode_session_t *ctx,transcode_mediaInfo_t* newMediaInfo)
{
if (ctx->currentMediaInfo) {
bool changed = false;
if(ctx->currentMediaInfo != newMediaInfo) {
AVCodecParameters *currentCodecParams=ctx->currentMediaInfo->codecParams;
AVCodecParameters *newCodecParams=newMediaInfo->codecParams;
changed=newCodecParams->width!=currentCodecParams->width ||
newCodecParams->height!=currentCodecParams->height ||
newCodecParams->extradata_size!=currentCodecParams->extradata_size;
AVCodecParameters *currentCodecParams=ctx->currentMediaInfo->codecParams;
AVCodecParameters *newCodecParams=newMediaInfo->codecParams;
bool changed=newCodecParams->width!=currentCodecParams->width ||
newCodecParams->height!=currentCodecParams->height ||
newCodecParams->extradata_size!=currentCodecParams->extradata_size;

if (currentCodecParams->extradata_size>0 &&
newCodecParams->extradata!=NULL &&
currentCodecParams->extradata!=NULL &&
0!=memcmp(newCodecParams->extradata,currentCodecParams->extradata,currentCodecParams->extradata_size))
changed=true;

if (!changed) {
avcodec_parameters_free(&newMediaInfo->codecParams);
av_free(newMediaInfo);

avcodec_parameters_free(&newMediaInfo->codecParams);
av_free(newMediaInfo);
if (!changed) {
LOGGER0(CATEGORY_TRANSCODING_SESSION,AV_LOG_INFO,"transcode_session_set_media_info. media info did not change");
return 0;
} else {

LOGGER0(CATEGORY_TRANSCODING_SESSION,AV_LOG_ERROR,"changing media info on the fly is currently not supported");
avcodec_parameters_free(&newMediaInfo->codecParams);
av_free(newMediaInfo);
LOGGER0(CATEGORY_TRANSCODING_SESSION,AV_LOG_ERROR,"transcode_session_set_media_info, changing media info on the fly is currently not supported");
return -1;
}
}
Expand Down

0 comments on commit 49235cb

Please sign in to comment.