* 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 */
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_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)
{
}
if (argc == 5) {
const char *mode = argv[1] + strlen("-refcount=");
- if (!strcmp(mode, "old")) api_mode = API_MODE_OLD;
- else if (!strcmp(mode, "new_norefcount")) api_mode = API_MODE_NEW_API_NO_REF_COUNT;
+ 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 {
fprintf(stderr, "unknow mode '%s'\n", mode);
goto end;
}
- /* When using the new API, you need to use the libavutil/frame.h API, while
- * the classic frame management is available in libavcodec */
- if (api_mode == API_MODE_OLD)
- frame = avcodec_alloc_frame();
- else
- frame = av_frame_alloc();
+ frame = av_frame_alloc();
if (!frame) {
fprintf(stderr, "Could not allocate frame\n");
ret = AVERROR(ENOMEM);
fclose(video_dst_file);
if (audio_dst_file)
fclose(audio_dst_file);
- if (api_mode == API_MODE_OLD)
- avcodec_free_frame(&frame);
- else
- av_frame_free(&frame);
+ av_frame_free(&frame);
av_free(video_dst_data[0]);
return ret < 0;