summaryrefslogtreecommitdiff
path: root/src/codec
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-12-26 11:25:14 -0500
committerAndrew Opalach <andrew@akon.city> 2024-12-26 11:25:14 -0500
commit9026e7f49f11e920eac666bd4159ec459b979623 (patch)
tree999ae6fdf5ea4dbad5e777818a176a6b2d564553 /src/codec
parent7021f0625cc018af58d61d7875fbeb21b64d99bf (diff)
downloadcamu-9026e7f49f11e920eac666bd4159ec459b979623.tar.gz
camu-9026e7f49f11e920eac666bd4159ec459b979623.tar.bz2
camu-9026e7f49f11e920eac666bd4159ec459b979623.zip
Incomplete buffer errored and sink queued
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/codec')
-rw-r--r--src/codec/ffmpeg/decoder.c4
-rw-r--r--src/codec/ffmpeg/demuxer.c4
-rw-r--r--src/codec/ffmpeg/encoder.c1
3 files changed, 5 insertions, 4 deletions
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;
}
}