From 9026e7f49f11e920eac666bd4159ec459b979623 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 26 Dec 2024 11:25:14 -0500 Subject: Incomplete buffer errored and sink queued Signed-off-by: Andrew Opalach --- src/codec/ffmpeg/decoder.c | 4 ++-- src/codec/ffmpeg/demuxer.c | 4 ++-- src/codec/ffmpeg/encoder.c | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src/codec') diff --git a/src/codec/ffmpeg/decoder.c b/src/codec/ffmpeg/decoder.c index 47fcc0c..3fdb534 100644 --- a/src/codec/ffmpeg/decoder.c +++ b/src/codec/ffmpeg/decoder.c @@ -113,7 +113,7 @@ static void ff_decoder_flush(struct camu_decoder *dec) static s32 receive_frames(struct camu_ff_decoder *av) { s32 ret; - do { + for (;;) { struct camu_codec_frame *frame = al_alloc_object(struct camu_codec_frame); frame->mode = CAMU_FFMPEG_COMPAT; frame->av.frame = av_frame_alloc(); @@ -136,7 +136,7 @@ static s32 receive_frames(struct camu_ff_decoder *av) // / (av->codec_context->sample_rate * av->time_base.num / (f64)av->time_base.den); //} av->callback(av->userdata, frame); - } while (1); + } return ret; } diff --git a/src/codec/ffmpeg/demuxer.c b/src/codec/ffmpeg/demuxer.c index f756168..0184d4d 100644 --- a/src/codec/ffmpeg/demuxer.c +++ b/src/codec/ffmpeg/demuxer.c @@ -128,7 +128,7 @@ static s32 ff_demuxer_get_packet(struct camu_demuxer *demux, struct camu_codec_p struct camu_ff_demuxer *av = (struct camu_ff_demuxer *)demux; packet->mode = CAMU_FFMPEG_COMPAT; s32 ret = 0; - do { + for (;;) { ret = av_read_frame(av->format_context, packet->av.pkt); if (ret == AVERROR_EOF) { av->eof = true; @@ -143,7 +143,7 @@ static s32 ff_demuxer_get_packet(struct camu_demuxer *demux, struct camu_codec_p continue; } break; - } while (1); + } return ret; } diff --git a/src/codec/ffmpeg/encoder.c b/src/codec/ffmpeg/encoder.c index 7c7b010..0577ae9 100644 --- a/src/codec/ffmpeg/encoder.c +++ b/src/codec/ffmpeg/encoder.c @@ -108,6 +108,7 @@ void camu_ff_encoder_push(struct camu_ff_encoder *enc, u8 **data, s32 sample_cou return; } enc->callback(enc->userdata, &pkt); + av_packet_unref(&pkt); enc->frame->pts += SAMPLES_PER_FRAME; } } -- cgit v1.2.3-101-g0448