Commit abd19498 authored by Max Kellermann's avatar Max Kellermann

decoder/ffmpeg: support libavformat 0.8

parent 4e6bc77a
...@@ -2,7 +2,7 @@ ver 0.16.7 (2011/??/??) ...@@ -2,7 +2,7 @@ ver 0.16.7 (2011/??/??)
* input: * input:
- ffmpeg: support libavformat 0.7 - ffmpeg: support libavformat 0.7
* decoder: * decoder:
- ffmpeg: support libavformat 0.7, libavcodec 0.8 - ffmpeg: support libavformat 0.8, libavcodec 0.8
* output: * output:
- httpd: fix excessive buffering - httpd: fix excessive buffering
- openal: force 16 bit playback, as 8 bit doesn't work - openal: force 16 bit playback, as 8 bit doesn't work
......
...@@ -443,9 +443,19 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -443,9 +443,19 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
return; return;
} }
if (av_find_stream_info(format_context)<0) { #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,2,0)
const int find_result =
avformat_find_stream_info(format_context, NULL);
#else
const int find_result = av_find_stream_info(format_context);
#endif
if (find_result < 0) {
g_warning("Couldn't find stream info\n"); g_warning("Couldn't find stream info\n");
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return; return;
} }
...@@ -453,7 +463,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -453,7 +463,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
int audio_stream = ffmpeg_find_audio_stream(format_context); int audio_stream = ffmpeg_find_audio_stream(format_context);
if (audio_stream == -1) { if (audio_stream == -1) {
g_warning("No audio stream inside\n"); g_warning("No audio stream inside\n");
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return; return;
} }
...@@ -468,7 +482,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -468,7 +482,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
if (!codec) { if (!codec) {
g_warning("Unsupported audio codec\n"); g_warning("Unsupported audio codec\n");
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return; return;
} }
...@@ -481,7 +499,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -481,7 +499,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
codec_context->channels, &error)) { codec_context->channels, &error)) {
g_warning("%s", error->message); g_warning("%s", error->message);
g_error_free(error); g_error_free(error);
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return; return;
} }
...@@ -498,7 +520,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -498,7 +520,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
#endif #endif
if (open_result < 0) { if (open_result < 0) {
g_warning("Could not open codec\n"); g_warning("Could not open codec\n");
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return; return;
} }
...@@ -542,7 +568,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -542,7 +568,11 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
} while (cmd != DECODE_COMMAND_STOP); } while (cmd != DECODE_COMMAND_STOP);
avcodec_close(codec_context); avcodec_close(codec_context);
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&format_context);
#else
av_close_input_stream(format_context); av_close_input_stream(format_context);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
} }
...@@ -618,8 +648,18 @@ ffmpeg_stream_tag(struct input_stream *is) ...@@ -618,8 +648,18 @@ ffmpeg_stream_tag(struct input_stream *is)
return NULL; return NULL;
} }
if (av_find_stream_info(f) < 0) { #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,2,0)
const int find_result =
avformat_find_stream_info(f, NULL);
#else
const int find_result = av_find_stream_info(f);
#endif
if (find_result < 0) {
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&f);
#else
av_close_input_stream(f); av_close_input_stream(f);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return NULL; return NULL;
} }
...@@ -667,7 +707,11 @@ ffmpeg_stream_tag(struct input_stream *is) ...@@ -667,7 +707,11 @@ ffmpeg_stream_tag(struct input_stream *is)
#endif #endif
#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53,17,0)
avformat_close_input(&f);
#else
av_close_input_stream(f); av_close_input_stream(f);
#endif
mpd_ffmpeg_stream_close(stream); mpd_ffmpeg_stream_close(stream);
return tag; return tag;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment