X-Git-Url: https://git.sesse.net/?p=c64tapwav;a=blobdiff_plain;f=audioreader.cpp;h=1f95f131e495d6020efc7ecd3a0c391a896d952d;hp=172bd31dd72bafe88e558d9cab605a4c8b124ed4;hb=8abf7912f0cc520302437221265484c83bb857e5;hpb=f7a9befb5973e5c2f6f655272e762dedf1808d7f diff --git a/audioreader.cpp b/audioreader.cpp index 172bd31..1f95f13 100644 --- a/audioreader.cpp +++ b/audioreader.cpp @@ -2,6 +2,8 @@ extern "C" { +#define __STDC_CONSTANT_MACROS + #include #include #include @@ -40,11 +42,13 @@ struct AVPacketDeleter { } }; +#if (LIBAVCODEC_VERSION_MAJOR >= 55) struct AVFrameDeleter { void operator() (AVFrame *frame) { av_frame_free(&frame); } }; +#endif struct AVSampleDeleter { void operator() (uint8_t *data) { @@ -153,8 +157,13 @@ bool read_audio_file(const char *filename, std::vector *samples, int *sam } AVPacket packet; - AVFrame* audio_frame = av_frame_alloc(); +#if (LIBAVCODEC_VERSION_MAJOR >= 55) + AVFrame *audio_frame = av_frame_alloc(); std::unique_ptr audio_frame_deleter(audio_frame); +#else + AVFrame frame_holder {}; + AVFrame *audio_frame = &frame_holder; +#endif while (av_read_frame(format_ctx, &packet) >= 0) { std::unique_ptr av_packet_deleter(&packet);