Commit a753e6c9 authored by Michael Niedermayer's avatar Michael Niedermayer

doc/examples/demuxing_decoding: Drop old api mode, because the code fails to build otherwise

Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 998fa4fa
...@@ -60,12 +60,11 @@ static int audio_frame_count = 0; ...@@ -60,12 +60,11 @@ static int audio_frame_count = 0;
* appropriate to your needs. Look for the use of api_mode in this example to * appropriate to your needs. Look for the use of api_mode in this example to
* see what are the differences of API usage between them */ * see what are the differences of API usage between them */
enum { enum {
API_MODE_OLD = 0, /* old method, deprecated */
API_MODE_NEW_API_REF_COUNT = 1, /* new method, using the frame reference counting */ API_MODE_NEW_API_REF_COUNT = 1, /* new method, using the frame reference counting */
API_MODE_NEW_API_NO_REF_COUNT = 2, /* new method, without reference counting */ API_MODE_NEW_API_NO_REF_COUNT = 2, /* new method, without reference counting */
}; };
static int api_mode = API_MODE_OLD; static int api_mode = API_MODE_NEW_API_NO_REF_COUNT;
static int decode_packet(int *got_frame, int cached) static int decode_packet(int *got_frame, int cached)
{ {
...@@ -243,8 +242,7 @@ int main (int argc, char **argv) ...@@ -243,8 +242,7 @@ int main (int argc, char **argv)
} }
if (argc == 5) { if (argc == 5) {
const char *mode = argv[1] + strlen("-refcount="); const char *mode = argv[1] + strlen("-refcount=");
if (!strcmp(mode, "old")) api_mode = API_MODE_OLD; if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT;
else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT;
else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT; else if (!strcmp(mode, "new_refcount")) api_mode = API_MODE_NEW_API_REF_COUNT;
else { else {
fprintf(stderr, "unknow mode '%s'\n", mode); fprintf(stderr, "unknow mode '%s'\n", mode);
...@@ -315,12 +313,7 @@ int main (int argc, char **argv) ...@@ -315,12 +313,7 @@ int main (int argc, char **argv)
goto end; goto end;
} }
/* When using the new API, you need to use the libavutil/frame.h API, while frame = av_frame_alloc();
* the classic frame management is available in libavcodec */
if (api_mode == API_MODE_OLD)
frame = avcodec_alloc_frame();
else
frame = av_frame_alloc();
if (!frame) { if (!frame) {
fprintf(stderr, "Could not allocate frame\n"); fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM); ret = AVERROR(ENOMEM);
...@@ -397,10 +390,7 @@ end: ...@@ -397,10 +390,7 @@ end:
fclose(video_dst_file); fclose(video_dst_file);
if (audio_dst_file) if (audio_dst_file)
fclose(audio_dst_file); fclose(audio_dst_file);
if (api_mode == API_MODE_OLD) av_frame_free(&frame);
avcodec_free_frame(&frame);
else
av_frame_free(&frame);
av_free(video_dst_data[0]); av_free(video_dst_data[0]);
return ret < 0; return ret < 0;
......
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