summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--convert.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/convert.c b/convert.c
index 89adc08..70058f9 100644
--- a/convert.c
+++ b/convert.c
@@ -128,14 +128,25 @@ void cConvert::decode_mpa_frame(mpeg_audio_frame *mpa_frame)
AVCodecContext *decoder_ctx;
- AVFrame *frame = avcodec_alloc_frame(); //av_frame_alloc() # libav10
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
+ AVFrame *frame = avcodec_alloc_frame(); // libav9
+#else
+ AVFrame *frame = av_frame_alloc(); // libav10
+#endif
+
int got_output;
int len = avcodec_decode_audio4(decoder_ctx, frame, &got_output, &avpkt);
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
avcodec_free_frame(&frame); // av_free_frame(&frame); // libav10
// avcodec_close(decoder_ctx); // muss codec hier geschlossen werden?
+#else
+ av_frame_free(&frame); // libav10
+// avcodec_close(decoder_ctx); // muss codec hier geschlossen werden?
#endif
+
+#endif // AVCODEC_NEW
}
@@ -178,7 +189,11 @@ abuffer *cConvert::reencode_mpa_frame(mpeg_audio_frame *mpa_frame,
// https://www.ffmpeg.org/doxygen/1.0/group__lavc__encoding.html#gf12a9da0d33f50ff406e03572fab4763
// https://www.ffmpeg.org/doxygen/1.0/decoding__encoding_8c-source.html#l00102
AVCodecContext *encoder_ctx;
- AVFrame *frame = avcodec_alloc_frame(); // libav10 av_frame_alloc()
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,34,1)
+ AVFrame *frame = avcodec_alloc_frame(); // libav9
+#else
+ AVFrame *frame = av_frame_alloc(); // libav10
+#endif
AVPacket avpkt;
av_init_packet(&avpkt);
avpkt.data = mpa_frame->data;
@@ -187,6 +202,6 @@ abuffer *cConvert::reencode_mpa_frame(mpeg_audio_frame *mpa_frame,
encoder_buf.offset = avcodec_encode_audio2(encoder_ctx, &avpkt, frame, &got_output);
-#endif
+#endif // AVCODEC_NEW
return &encoder_buf;
}