diff --git a/ffplay.c b/ffplay.c index 772845273612f3040a4758bb984a2e2c569c3672..8fa5ca36772e8b95e6b8aa1269d9704e4e943b2d 100644 --- a/ffplay.c +++ b/ffplay.c @@ -546,9 +546,8 @@ static void decoder_init(Decoder *d, AVCodecContext *avctx, PacketQueue *queue, d->start_pts = AV_NOPTS_VALUE; } -static int decoder_decode_frame(Decoder *d, void *fframe) { +static int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) { int got_frame = 0; - AVFrame *frame = fframe; d->flushed = 0; @@ -608,7 +607,7 @@ static int decoder_decode_frame(Decoder *d, void *fframe) { } break; case AVMEDIA_TYPE_SUBTITLE: - ret = avcodec_decode_subtitle2(d->avctx, fframe, &got_frame, &d->pkt_temp); + ret = avcodec_decode_subtitle2(d->avctx, sub, &got_frame, &d->pkt_temp); break; } @@ -1863,7 +1862,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame) { int got_picture; - if ((got_picture = decoder_decode_frame(&is->viddec, frame)) < 0) + if ((got_picture = decoder_decode_frame(&is->viddec, frame, NULL)) < 0) return -1; if (got_picture) { @@ -2219,7 +2218,7 @@ static int subtitle_thread(void *arg) if (!(sp = frame_queue_peek_writable(&is->subpq))) return 0; - if ((got_subtitle = decoder_decode_frame(&is->subdec, &sp->sub)) < 0) + if ((got_subtitle = decoder_decode_frame(&is->subdec, NULL, &sp->sub)) < 0) break; pts = 0; @@ -2483,7 +2482,7 @@ static int audio_decode_frame(VideoState *is) return resampled_data_size; } - if ((got_frame = decoder_decode_frame(&is->auddec, is->frame)) < 0) + if ((got_frame = decoder_decode_frame(&is->auddec, is->frame, NULL)) < 0) return -1; if (is->auddec.flushed)