| Index: squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder.c |
| =================================================================== |
| --- squeezeslave-1.1_p381.orig/src/slimaudio/slimaudio_decoder.c |
| +++ squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder.c |
| @@ -69,7 +69,6 @@ void av_lib_setup (void) |
| av_register_all(); |
| DEBUGF("decoder_thread: av_register_all\n"); |
| |
| - avcodec_init(); |
| avcodec_register_all(); |
| DEBUGF("decoder_thread: avcodec_register_all\n"); |
| |
| Index: squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder_aac.c |
| =================================================================== |
| --- squeezeslave-1.1_p381.orig/src/slimaudio/slimaudio_decoder_aac.c |
| +++ squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder_aac.c |
| @@ -47,6 +47,11 @@ |
| |
| #define AUDIO_INBUF_SIZE (AUDIO_CHUNK_SIZE*2) |
| |
| +#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE |
| +#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio |
| +#endif |
| + |
| + |
| int slimaudio_decoder_aac_init(slimaudio_t *audio) |
| { |
| av_lib_setup(); |
| @@ -164,7 +169,7 @@ int slimaudio_decoder_aac_process(slimau |
| } |
| else |
| { |
| - AVIOCtx->is_streamed = 1; |
| + AVIOCtx->seekable = 0; |
| } |
| |
| AVInputFormat* pAVInputFormat = av_find_input_format(streamformat); |
| @@ -199,7 +204,7 @@ int slimaudio_decoder_aac_process(slimau |
| } |
| else |
| { |
| - iRC = av_find_stream_info(pFormatCtx); |
| + iRC = avformat_find_stream_info(pFormatCtx, NULL); |
| if ( iRC < 0 ) |
| { |
| DEBUGF("aac: find stream info failed:%d\n", iRC); |
| @@ -236,7 +241,7 @@ int slimaudio_decoder_aac_process(slimau |
| } |
| |
| /* Open codec */ |
| - iRC = avcodec_open(pCodecCtx, pCodec); |
| + iRC = avcodec_open2(pCodecCtx, pCodec, NULL); |
| if ( iRC < 0) |
| { |
| DEBUGF("aac: could not open codec:%d\n", iRC); |
| @@ -274,7 +279,7 @@ int slimaudio_decoder_aac_process(slimau |
| eos=true; |
| } |
| |
| - if ( url_ferror(pFormatCtx->pb) ) |
| + if ( pFormatCtx->pb && pFormatCtx->pb->error ) |
| { |
| DEBUGF("aac: url_ferror\n"); |
| #if 0 |
| @@ -312,7 +317,7 @@ int slimaudio_decoder_aac_process(slimau |
| |
| /* Close the stream */ |
| DEBUGF ("aac: av_close_input_stream\n"); |
| - av_close_input_stream(pFormatCtx); |
| + avformat_close_input(&pFormatCtx); |
| |
| return 0; |
| } |
| Index: squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder_wma.c |
| =================================================================== |
| --- squeezeslave-1.1_p381.orig/src/slimaudio/slimaudio_decoder_wma.c |
| +++ squeezeslave-1.1_p381/src/slimaudio/slimaudio_decoder_wma.c |
| @@ -47,6 +47,10 @@ |
| |
| #define AUDIO_INBUF_SIZE (AUDIO_CHUNK_SIZE*2) |
| |
| +#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE |
| +#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio |
| +#endif |
| + |
| int slimaudio_decoder_wma_init(slimaudio_t *audio) |
| { |
| av_lib_setup(); |
| @@ -159,7 +163,7 @@ int slimaudio_decoder_wma_process(slimau |
| } |
| else |
| { |
| - AVIOCtx->is_streamed = 1; |
| + AVIOCtx->seekable = 1; |
| } |
| |
| AVInputFormat* pAVInputFormat = av_find_input_format(streamformat); |
| @@ -194,7 +198,7 @@ int slimaudio_decoder_wma_process(slimau |
| } |
| else |
| { |
| - iRC = av_find_stream_info(pFormatCtx); |
| + iRC = avformat_find_stream_info(pFormatCtx,NULL); |
| if ( iRC < 0 ) |
| { |
| DEBUGF("wma: find stream info failed:%d\n", iRC); |
| @@ -231,7 +235,7 @@ int slimaudio_decoder_wma_process(slimau |
| } |
| |
| /* Open codec */ |
| - iRC = avcodec_open(pCodecCtx, pCodec); |
| + iRC = avcodec_open2(pCodecCtx, pCodec, NULL); |
| if ( iRC < 0) |
| { |
| DEBUGF("wma: could not open codec:%d\n", iRC); |
| @@ -270,7 +274,7 @@ int slimaudio_decoder_wma_process(slimau |
| eos=true; |
| } |
| |
| - if ( url_ferror(pFormatCtx->pb) ) |
| + if ( pFormatCtx->pb && pFormatCtx->pb->error ) |
| { |
| DEBUGF("wma: url_ferror\n"); |
| #if 0 |
| @@ -308,7 +312,7 @@ int slimaudio_decoder_wma_process(slimau |
| |
| /* Close the stream */ |
| DEBUGF ("wma: av_close_input_stream\n"); |
| - av_close_input_stream(pFormatCtx); |
| + avformat_close_input(&pFormatCtx); |
| |
| return 0; |
| } |