1 --- sox-14.4.1/src/ffmpeg.c.orig 2013-08-28 21:02:16.835128774 +0200
2 +++ sox-14.4.1/src/ffmpeg.c 2013-08-28 21:17:33.048423663 +0200
4 ic->error_recognition = 1;
7 - if (!codec || avcodec_open(enc, codec) < 0)
8 + if (!codec || avcodec_open2(enc, codec, NULL) < 0)
10 if (enc->codec_type != AVMEDIA_TYPE_AUDIO) {
11 lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type);
16 - ffmpeg->audio_buf_raw = lsx_calloc(1, (size_t)AVCODEC_MAX_AUDIO_FRAME_SIZE + 32);
17 + ffmpeg->audio_buf_raw = lsx_calloc(1, (size_t)192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ + 32);
18 ffmpeg->audio_buf_aligned = ALIGN16(ffmpeg->audio_buf_raw);
20 /* Signal audio stream not found */
22 if ((ret = av_read_frame(ffmpeg->ctxt, pkt)) < 0 &&
23 (ret == AVERROR_EOF || ( ffmpeg->ctxt->pb && ffmpeg->ctxt->pb->error)))
25 - ffmpeg->audio_buf_size = audio_decode_frame(ffmpeg, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE);
26 + ffmpeg->audio_buf_size = audio_decode_frame(ffmpeg, ffmpeg->audio_buf_aligned, 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ );
27 ffmpeg->audio_buf_index = 0;
32 * add an audio output stream
34 -static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum CodecID codec_id)
35 +static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum AVCodecID codec_id)
43 - if (avcodec_open(c, codec) < 0) {
44 + if (avcodec_open2(c, codec, NULL) < 0) {
45 lsx_fail("ffmpeg could not open CODEC");
49 - ffmpeg->audio_buf_raw = lsx_malloc((size_t)AVCODEC_MAX_AUDIO_FRAME_SIZE + 32);
50 + ffmpeg->audio_buf_raw = lsx_malloc((size_t)192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ + 32);
51 ffmpeg->audio_buf_aligned = ALIGN16(ffmpeg->audio_buf_raw);
53 /* ugly hack for PCM codecs (will be removed ASAP with new PCM
54 support to compute the input frame size in samples */
55 if (c->frame_size <= 1) {
56 - ffmpeg->audio_input_frame_size = AVCODEC_MAX_AUDIO_FRAME_SIZE / c->channels;
57 + ffmpeg->audio_input_frame_size = 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */ / c->channels;
58 switch(st->codec->codec_id) {
59 case CODEC_ID_PCM_S16LE:
60 case CODEC_ID_PCM_S16BE:
65 - pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE, ffmpeg->samples);
66 + pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, 192000 /* AVCODEC_MAX_AUDIO_FRAME_SIZE */, ffmpeg->samples);
67 pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, ffmpeg->audio_st->time_base);
68 pkt.flags |= AV_PKT_FLAG_KEY;
69 pkt.stream_index = ffmpeg->audio_st->index;