diff options
-rw-r--r-- | src/internal/audio/kitaudio.c | 3 | ||||
-rw-r--r-- | src/internal/video/kitvideo.c | 13 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/internal/audio/kitaudio.c b/src/internal/audio/kitaudio.c index 7a3b0a4..10dcf63 100644 --- a/src/internal/audio/kitaudio.c +++ b/src/internal/audio/kitaudio.c @@ -117,6 +117,7 @@ static void dec_decode_audio_cb(Kit_Decoder *dec, AVPacket *in_packet) { int dst_bufsize;
double pts;
unsigned char **dst_data;
+ Kit_AudioPacket *out_packet;
// Decode as long as there is data
while(in_packet->size > 0) {
@@ -158,7 +159,7 @@ static void dec_decode_audio_cb(Kit_Decoder *dec, AVPacket *in_packet) { pts *= av_q2d(dec->format_ctx->streams[dec->stream_index]->time_base);
// Lock, write to audio buffer, unlock
- Kit_AudioPacket *out_packet = _CreateAudioPacket(
+ out_packet = _CreateAudioPacket(
(char*)dst_data[0], (size_t)dst_bufsize, pts);
Kit_WriteDecoderOutput(dec, out_packet);
diff --git a/src/internal/video/kitvideo.c b/src/internal/video/kitvideo.c index cdbf933..75b2fdd 100644 --- a/src/internal/video/kitvideo.c +++ b/src/internal/video/kitvideo.c @@ -98,18 +98,21 @@ static void dec_decode_video_cb(Kit_Decoder *dec, AVPacket *in_packet) { assert(in_packet != NULL);
Kit_VideoDecoder *video_dec = dec->userdata;
+ AVFrame *out_frame;
int frame_finished;
-
+ int len;
+ double pts;
+ Kit_VideoPacket *out_packet;
while(in_packet->size > 0) {
- int len = avcodec_decode_video2(dec->codec_ctx, video_dec->scratch_frame, &frame_finished, in_packet);
+ len = avcodec_decode_video2(dec->codec_ctx, video_dec->scratch_frame, &frame_finished, in_packet);
if(len < 0) {
return;
}
if(frame_finished) {
// Target frame
- AVFrame *out_frame = av_frame_alloc();
+ out_frame = av_frame_alloc();
av_image_alloc(
out_frame->data,
out_frame->linesize,
@@ -129,11 +132,11 @@ static void dec_decode_video_cb(Kit_Decoder *dec, AVPacket *in_packet) { out_frame->linesize);
// Get presentation timestamp
- double pts = av_frame_get_best_effort_timestamp(video_dec->scratch_frame);
+ pts = av_frame_get_best_effort_timestamp(video_dec->scratch_frame);
pts *= av_q2d(dec->format_ctx->streams[dec->stream_index]->time_base);
// Lock, write to audio buffer, unlock
- Kit_VideoPacket *out_packet = _CreateVideoPacket(out_frame, pts);
+ out_packet = _CreateVideoPacket(out_frame, pts);
Kit_WriteDecoderOutput(dec, out_packet);
}
in_packet->size -= len;
|