On 3/16/2020 6:30 PM, James Almer wrote: > +static int encode_send_packet_internal(AVCodecContext *avctx, const AVFrame > *src) > +{ > + AVCodecInternal *avci = avctx->internal; > + AVFrame *dst = avci->buffer_frame; > + int ret; > + > + if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { > + /* extract audio service type metadata */ > + AVFrameSideData *sd = av_frame_get_side_data(src, > AV_FRAME_DATA_AUDIO_SERVICE_TYPE); > + if (sd && sd->size >= sizeof(enum AVAudioServiceType)) > + avctx->audio_service_type = *(enum AVAudioServiceType*)sd->data; > + > + /* check for valid frame size */ > + if (avctx->codec->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME) { > + if (src->nb_samples > avctx->frame_size) { > + av_log(avctx, AV_LOG_ERROR, "more samples than frame > size\n"); > + return AVERROR(EINVAL); > + } > + } else if (!(avctx->codec->capabilities & > AV_CODEC_CAP_VARIABLE_FRAME_SIZE)) { > + /* if we already got an undersized frame, that must have been > the last */ > + if (avctx->internal->last_audio_frame) { > + av_log(avctx, AV_LOG_ERROR, "frame_size (%d) was not > respected for a non-last frame\n", avctx->frame_size); > + return AVERROR(EINVAL); > + } > + > + if (src->nb_samples < avctx->frame_size) { > + ret = pad_last_frame(avctx, &dst, src); > + if (ret < 0) > + return ret; > + > + avctx->internal->last_audio_frame = 1; > + } else if (src->nb_samples > avctx->frame_size) { > + av_log(avctx, AV_LOG_ERROR, "nb_samples (%d) != frame_size > (%d)\n", dst->nb_samples, avctx->frame_size);
Should be src->nb_samples. Changed locally. > + ret = AVERROR(EINVAL); > + goto end; I guess i can remove this and the label below. > + } > + } > + } > + > + if (!dst->data[0]) { > + ret = av_frame_ref(dst, src); > + if (ret < 0) > + return ret; > + } > + > + return 0; > + > +end: > + av_frame_unref(dst); > + > return ret; > } _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".