|
|
- --- a/src/ffmpeg.c
- +++ b/src/ffmpeg.c
- @@ -50,6 +50,10 @@
- #include <ctype.h>
- #include "ffmpeg.h"
-
- +#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
- +#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
- +#endif
- +
- #ifndef CODEC_TYPE_AUDIO
- #define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO
- #endif
- @@ -96,7 +100,7 @@ static int stream_component_open(priv_t
- enc->err_recognition = 1;
- #endif
-
- - if (!codec || avcodec_open(enc, codec) < 0)
- + if (!codec || avcodec_open2(enc, codec, NULL) < 0)
- return -1;
- if (enc->codec_type != AVMEDIA_TYPE_AUDIO) {
- lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type);
- @@ -178,7 +182,7 @@ static int startread(sox_format_t * ft)
- }
-
- /* Get CODEC parameters */
- - if ((ret = av_find_stream_info(ffmpeg->ctxt)) < 0) {
- + if ((ret = avformat_find_stream_info(ffmpeg->ctxt, NULL)) < 0) {
- lsx_fail("ffmpeg could not find CODEC parameters for %s", ft->filename);
- return SOX_EOF;
- }
- @@ -256,7 +260,7 @@ static int stopread(sox_format_t * ft)
- if (ffmpeg->audio_stream >= 0)
- stream_component_close(ffmpeg, ffmpeg->audio_stream);
- if (ffmpeg->ctxt) {
- - av_close_input_file(ffmpeg->ctxt);
- + avformat_close_input(&ffmpeg->ctxt);
- ffmpeg->ctxt = NULL; /* safety */
- }
-
- @@ -267,16 +271,21 @@ static int stopread(sox_format_t * ft)
- /*
- * add an audio output stream
- */
- +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54, 28, 0)
- +static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum AVCodecID codec_id)
- +#else
- static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum CodecID codec_id)
- +#endif
- {
- AVCodecContext *c;
- AVStream *st;
-
- - st = av_new_stream(oc, 1);
- + st = avformat_new_stream(oc, NULL);
- if (!st) {
- lsx_fail("ffmpeg could not alloc stream");
- return NULL;
- }
- + st->id = 1;
-
- c = st->codec;
- c->codec_id = codec_id;
- @@ -306,7 +315,7 @@ static int open_audio(priv_t * ffmpeg, A
- }
-
- /* open it */
- - if (avcodec_open(c, codec) < 0) {
- + if (avcodec_open2(c, codec, NULL) < 0) {
- lsx_fail("ffmpeg could not open CODEC");
- return SOX_EOF;
- }
|