Commit e4edf220 authored by Anton Khirnov's avatar Anton Khirnov

doc/examples/demuxing_decoding: drop -refcount

Non-refcounted frames are deprecated and there is no good reason to use
them.
parent 876cfa67
...@@ -55,12 +55,6 @@ static AVPacket pkt; ...@@ -55,12 +55,6 @@ static AVPacket pkt;
static int video_frame_count = 0; static int video_frame_count = 0;
static int audio_frame_count = 0; static int audio_frame_count = 0;
/* Enable or disable frame reference counting. You are not supposed to support
* both paths in your application but pick the one most appropriate to your
* needs. Look for the use of refcount in this example to see what are the
* differences of API usage between them. */
static int refcount = 0;
static int decode_packet(int *got_frame, int cached) static int decode_packet(int *got_frame, int cached)
{ {
int ret = 0; int ret = 0;
...@@ -138,9 +132,7 @@ static int decode_packet(int *got_frame, int cached) ...@@ -138,9 +132,7 @@ static int decode_packet(int *got_frame, int cached)
} }
} }
/* If we use frame reference counting, we own the data and need if (*got_frame)
* to de-reference it when we don't use it anymore */
if (*got_frame && refcount)
av_frame_unref(frame); av_frame_unref(frame);
return decoded; return decoded;
...@@ -186,8 +178,7 @@ static int open_codec_context(int *stream_idx, ...@@ -186,8 +178,7 @@ static int open_codec_context(int *stream_idx,
return ret; return ret;
} }
/* Init the decoders, with or without reference counting */ /* Init the decoders */
av_dict_set(&opts, "refcounted_frames", refcount ? "1" : "0", 0);
if ((ret = avcodec_open2(*dec_ctx, dec, &opts)) < 0) { if ((ret = avcodec_open2(*dec_ctx, dec, &opts)) < 0) {
fprintf(stderr, "Failed to open %s codec\n", fprintf(stderr, "Failed to open %s codec\n",
av_get_media_type_string(type)); av_get_media_type_string(type));
...@@ -232,22 +223,15 @@ int main (int argc, char **argv) ...@@ -232,22 +223,15 @@ int main (int argc, char **argv)
{ {
int ret = 0, got_frame; int ret = 0, got_frame;
if (argc != 4 && argc != 5) { if (argc != 4) {
fprintf(stderr, "usage: %s [-refcount] input_file video_output_file audio_output_file\n" fprintf(stderr, "usage: %s input_file video_output_file audio_output_file\n"
"API example program to show how to read frames from an input file.\n" "API example program to show how to read frames from an input file.\n"
"This program reads frames from a file, decodes them, and writes decoded\n" "This program reads frames from a file, decodes them, and writes decoded\n"
"video frames to a rawvideo file named video_output_file, and decoded\n" "video frames to a rawvideo file named video_output_file, and decoded\n"
"audio frames to a rawaudio file named audio_output_file.\n\n" "audio frames to a rawaudio file named audio_output_file.\n",
"If the -refcount option is specified, the program use the\n" argv[0]);
"reference counting frame system which allows keeping a copy of\n"
"the data for longer than one decode call.\n"
"\n", argv[0]);
exit(1); exit(1);
} }
if (argc == 5 && !strcmp(argv[1], "-refcount")) {
refcount = 1;
argv++;
}
src_filename = argv[1]; src_filename = argv[1];
video_dst_filename = argv[2]; video_dst_filename = argv[2];
audio_dst_filename = argv[3]; audio_dst_filename = argv[3];
......
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