From 9d85c0c3975a8d5385510a6fca48cc8d38fd78e6 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Mon, 1 Apr 2013 21:54:42 +0300 Subject: [PATCH] Added FFPlay app to test FFMPEG --- .../application/ffplay/AndroidAppSettings.cfg | 62 + .../application/ffplay/AndroidData/video.zip | Bin 0 -> 381800 bytes project/jni/application/ffplay/cmdutils.c | 1983 ++++++++++ project/jni/application/ffplay/cmdutils.h | 579 +++ project/jni/application/ffplay/config.h | 33 + project/jni/application/ffplay/ffplay.c | 3406 +++++++++++++++++ project/jni/application/ffplay/icon.png | Bin 0 -> 42504 bytes project/jni/application/ffplay/version.h | 1 + 8 files changed, 6064 insertions(+) create mode 100644 project/jni/application/ffplay/AndroidAppSettings.cfg create mode 100644 project/jni/application/ffplay/AndroidData/video.zip create mode 100644 project/jni/application/ffplay/cmdutils.c create mode 100644 project/jni/application/ffplay/cmdutils.h create mode 100644 project/jni/application/ffplay/config.h create mode 100644 project/jni/application/ffplay/ffplay.c create mode 100644 project/jni/application/ffplay/icon.png create mode 100644 project/jni/application/ffplay/version.h diff --git a/project/jni/application/ffplay/AndroidAppSettings.cfg b/project/jni/application/ffplay/AndroidAppSettings.cfg new file mode 100644 index 000000000..d9201c2aa --- /dev/null +++ b/project/jni/application/ffplay/AndroidAppSettings.cfg @@ -0,0 +1,62 @@ +# The application settings for Android libSDL port +AppSettingVersion=17 +LibSdlVersion=1.2 +AppName="FFPlay test" +AppFullName=org.ffmpeg.ffplay.test +ScreenOrientation=h +InhibitSuspend=y +AppDataDownloadUrl="!!Data|video.zip" +VideoDepthBpp=24 +NeedDepthBuffer=n +NeedStencilBuffer=n +NeedGles2=n +SwVideoMode=y +SdlVideoResize=y +SdlVideoResizeKeepAspect=n +CompatibilityHacks=n +CompatibilityHacksStaticInit=n +CompatibilityHacksTextInputEmulatesHwKeyboard=n +CompatibilityHacksPreventAudioChopping=n +CompatibilityHacksAppIgnoresAudioBufferSize=n +CompatibilityHacksAdditionalPreloadedSharedLibraries="" +CompatibilityHacksSlowCompatibleEventQueue=n +CompatibilityHacksTouchscreenKeyboardSaveRestoreOpenGLState=n +AppUsesMouse=n +AppNeedsTwoButtonMouse=n +ShowMouseCursor=n +ForceRelativeMouseMode=n +AppNeedsArrowKeys=y +AppNeedsTextInput=n +AppUsesJoystick=n +AppUsesAccelerometer=n +AppUsesGyroscope=n +AppUsesMultitouch=n +AppRecordsAudio=n +NonBlockingSwapBuffers=n +RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP SPACE ESCAPE" +AppTouchscreenKeyboardKeysAmount=0 +AppTouchscreenKeyboardKeysAmountAutoFire=0 +RedefinedKeysScreenKb="0 1 2 3 4 5 6 7 8 9" +RedefinedKeysScreenKbNames="0 1 2 3 4 5 6 7 8 9" +StartupMenuButtonTimeout=0 +HiddenMenuOptions='OptionalDownloadConfig' +FirstStartMenuOptions='' +MultiABI=y +AppMinimumRAM=0 +AppVersionCode=100 +AppVersionName="1.00" +ResetSdlConfigForThisVersion=n +DeleteFilesOnUpgrade="%" +CompiledLibraries="avutil avcodec avformat avdevice swscale swresample avresample avfilter" +CustomBuildScript=n +AppCflags='-O3 -Ijni/ffmpeg' +AppLdflags='' +AppOverlapsSystemHeaders=n +AppSubdirsBuild='' +AppBuildExclude='' +AppCmdline='ffplay -loglevel verbose -nostats small.mp4' # http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi +ReadmeText='^Readme text' +MinimumScreenSize=s +AdmobPublisherId=n +AdmobTestDeviceId= +AdmobBannerSize= diff --git a/project/jni/application/ffplay/AndroidData/video.zip b/project/jni/application/ffplay/AndroidData/video.zip new file mode 100644 index 0000000000000000000000000000000000000000..ca8214069f78a7514e7ad22740f596f6e26d6be0 GIT binary patch literal 381800 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%0ALi|SRNNzY<(S))lbPm|?@C^3@_Dx)qWayEEh@^E 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 US +#include +#include +#include + +/* Include only the enabled headers since some compilers (namely, Sun + Studio) will not omit unused inline functions and create undefined + references to libraries that are not being built. */ + +#include "config.h" +#include "compat/va_copy.h" +#include "libavformat/avformat.h" +#include "libavfilter/avfilter.h" +#include "libavdevice/avdevice.h" +#include "libavresample/avresample.h" +#include "libswscale/swscale.h" +#include "libswresample/swresample.h" +#if CONFIG_POSTPROC +#include "libpostproc/postprocess.h" +#endif +#include "libavutil/avassert.h" +#include "libavutil/avstring.h" +#include "libavutil/bprint.h" +#include "libavutil/mathematics.h" +#include "libavutil/imgutils.h" +#include "libavutil/parseutils.h" +#include "libavutil/pixdesc.h" +#include "libavutil/eval.h" +#include "libavutil/dict.h" +#include "libavutil/opt.h" +#include "cmdutils.h" +#include "version.h" +#if CONFIG_NETWORK +#include "libavformat/network.h" +#endif +#if HAVE_SYS_RESOURCE_H +#include +#include +#endif + +#include +#define fprintf(X, ...) __android_log_print(ANDROID_LOG_INFO, "FFplay", __VA_ARGS__) +#define printf(...) __android_log_print(ANDROID_LOG_INFO, "FFplay", __VA_ARGS__) + +static int init_report(const char *env); + +struct SwsContext *sws_opts; +SwrContext *swr_opts; +AVDictionary *format_opts, *codec_opts; + +const int this_year = 2013; + +static FILE *report_file; + +void init_opts(void) +{ + + if(CONFIG_SWSCALE) + sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, + NULL, NULL, NULL); + + if(CONFIG_SWRESAMPLE) + swr_opts = swr_alloc(); +} + +void uninit_opts(void) +{ +#if CONFIG_SWSCALE + sws_freeContext(sws_opts); + sws_opts = NULL; +#endif + + if(CONFIG_SWRESAMPLE) + swr_free(&swr_opts); + + av_dict_free(&format_opts); + av_dict_free(&codec_opts); +} + +void log_callback_help(void *ptr, int level, const char *fmt, va_list vl) +{ + vfprintf(stdout, fmt, vl); +} + +static void log_callback_report(void *ptr, int level, const char *fmt, va_list vl) +{ + va_list vl2; + char line[1024]; + static int print_prefix = 1; + + va_copy(vl2, vl); + av_log_default_callback(ptr, level, fmt, vl); + av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); + va_end(vl2); + fputs(line, report_file); + fflush(report_file); +} + +static void log_callback_android(void *ptr, int level, const char *fmt, va_list vl) +{ + va_list vl2; + char line[1024]; + static int print_prefix = 1; + + va_copy(vl2, vl); + av_log_default_callback(ptr, level, fmt, vl); + av_log_format_line(ptr, level, fmt, vl2, line, sizeof(line), &print_prefix); + va_end(vl2); + printf("%s", line); +} + +double parse_number_or_die(const char *context, const char *numstr, int type, + double min, double max) +{ + char *tail; + const char *error; + double d = av_strtod(numstr, &tail); + if (*tail) + error = "Expected number for %s but found: %s\n"; + else if (d < min || d > max) + error = "The value for %s was %s which is not within %f - %f\n"; + else if (type == OPT_INT64 && (int64_t)d != d) + error = "Expected int64 for %s but found %s\n"; + else if (type == OPT_INT && (int)d != d) + error = "Expected int for %s but found %s\n"; + else + return d; + av_log(NULL, AV_LOG_FATAL, error, context, numstr, min, max); + exit(1); + return 0; +} + +int64_t parse_time_or_die(const char *context, const char *timestr, + int is_duration) +{ + int64_t us; + if (av_parse_time(&us, timestr, is_duration) < 0) { + av_log(NULL, AV_LOG_FATAL, "Invalid %s specification for %s: %s\n", + is_duration ? "duration" : "date", context, timestr); + exit(1); + } + return us; +} + +void show_help_options(const OptionDef *options, const char *msg, int req_flags, + int rej_flags, int alt_flags) +{ + const OptionDef *po; + int first; + + first = 1; + for (po = options; po->name != NULL; po++) { + char buf[64]; + + if (((po->flags & req_flags) != req_flags) || + (alt_flags && !(po->flags & alt_flags)) || + (po->flags & rej_flags)) + continue; + + if (first) { + printf("%s\n", msg); + first = 0; + } + av_strlcpy(buf, po->name, sizeof(buf)); + if (po->argname) { + av_strlcat(buf, " ", sizeof(buf)); + av_strlcat(buf, po->argname, sizeof(buf)); + } + printf("-%-17s %s\n", buf, po->help); + } + printf("\n"); +} + +void show_help_children(const AVClass *class, int flags) +{ + const AVClass *child = NULL; + if (class->option) { + av_opt_show2(&class, NULL, flags, 0); + printf("\n"); + } + + while (child = av_opt_child_class_next(class, child)) + show_help_children(child, flags); +} + +static const OptionDef *find_option(const OptionDef *po, const char *name) +{ + const char *p = strchr(name, ':'); + int len = p ? p - name : strlen(name); + + while (po->name != NULL) { + if (!strncmp(name, po->name, len) && strlen(po->name) == len) + break; + po++; + } + return po; +} + +#if HAVE_COMMANDLINETOARGVW +#include +#include +/* Will be leaked on exit */ +static char** win32_argv_utf8 = NULL; +static int win32_argc = 0; + +/** + * Prepare command line arguments for executable. + * For Windows - perform wide-char to UTF-8 conversion. + * Input arguments should be main() function arguments. + * @param argc_ptr Arguments number (including executable) + * @param argv_ptr Arguments list. + */ +static void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) +{ + char *argstr_flat; + wchar_t **argv_w; + int i, buffsize = 0, offset = 0; + + if (win32_argv_utf8) { + *argc_ptr = win32_argc; + *argv_ptr = win32_argv_utf8; + return; + } + + win32_argc = 0; + argv_w = CommandLineToArgvW(GetCommandLineW(), &win32_argc); + if (win32_argc <= 0 || !argv_w) + return; + + /* determine the UTF-8 buffer size (including NULL-termination symbols) */ + for (i = 0; i < win32_argc; i++) + buffsize += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, + NULL, 0, NULL, NULL); + + win32_argv_utf8 = av_mallocz(sizeof(char *) * (win32_argc + 1) + buffsize); + argstr_flat = (char *)win32_argv_utf8 + sizeof(char *) * (win32_argc + 1); + if (win32_argv_utf8 == NULL) { + LocalFree(argv_w); + return; + } + + for (i = 0; i < win32_argc; i++) { + win32_argv_utf8[i] = &argstr_flat[offset]; + offset += WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, + &argstr_flat[offset], + buffsize - offset, NULL, NULL); + } + win32_argv_utf8[i] = NULL; + LocalFree(argv_w); + + *argc_ptr = win32_argc; + *argv_ptr = win32_argv_utf8; +} +#else +static inline void prepare_app_arguments(int *argc_ptr, char ***argv_ptr) +{ + /* nothing to do */ +} +#endif /* HAVE_COMMANDLINETOARGVW */ + +static int write_option(void *optctx, const OptionDef *po, const char *opt, + const char *arg) +{ + /* new-style options contain an offset into optctx, old-style address of + * a global var*/ + void *dst = po->flags & (OPT_OFFSET | OPT_SPEC) ? + (uint8_t *)optctx + po->u.off : po->u.dst_ptr; + int *dstcount; + + if (po->flags & OPT_SPEC) { + SpecifierOpt **so = dst; + char *p = strchr(opt, ':'); + + dstcount = (int *)(so + 1); + *so = grow_array(*so, sizeof(**so), dstcount, *dstcount + 1); + (*so)[*dstcount - 1].specifier = av_strdup(p ? p + 1 : ""); + dst = &(*so)[*dstcount - 1].u; + } + + if (po->flags & OPT_STRING) { + char *str; + str = av_strdup(arg); +// av_freep(dst); + *(char **)dst = str; + } else if (po->flags & OPT_BOOL || po->flags & OPT_INT) { + *(int *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT_MIN, INT_MAX); + } else if (po->flags & OPT_INT64) { + *(int64_t *)dst = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX); + } else if (po->flags & OPT_TIME) { + *(int64_t *)dst = parse_time_or_die(opt, arg, 1); + } else if (po->flags & OPT_FLOAT) { + *(float *)dst = parse_number_or_die(opt, arg, OPT_FLOAT, -INFINITY, INFINITY); + } else if (po->flags & OPT_DOUBLE) { + *(double *)dst = parse_number_or_die(opt, arg, OPT_DOUBLE, -INFINITY, INFINITY); + } else if (po->u.func_arg) { + int ret = po->u.func_arg(optctx, opt, arg); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, + "Failed to set value '%s' for option '%s'\n", arg, opt); + return ret; + } + } + if (po->flags & OPT_EXIT) + exit(0); + + return 0; +} + +int parse_option(void *optctx, const char *opt, const char *arg, + const OptionDef *options) +{ + const OptionDef *po; + int ret; + + po = find_option(options, opt); + if (!po->name && opt[0] == 'n' && opt[1] == 'o') { + /* handle 'no' bool option */ + po = find_option(options, opt + 2); + if ((po->name && (po->flags & OPT_BOOL))) + arg = "0"; + } else if (po->flags & OPT_BOOL) + arg = "1"; + + if (!po->name) + po = find_option(options, "default"); + if (!po->name) { + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'\n", opt); + return AVERROR(EINVAL); + } + if (po->flags & HAS_ARG && !arg) { + av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'\n", opt); + return AVERROR(EINVAL); + } + + ret = write_option(optctx, po, opt, arg); + if (ret < 0) + return ret; + + return !!(po->flags & HAS_ARG); +} + +void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, + void (*parse_arg_function)(void *, const char*)) +{ + const char *opt; + int optindex, handleoptions = 1, ret; + + /* perform system-dependent conversions for arguments list */ + prepare_app_arguments(&argc, &argv); + + /* parse options */ + optindex = 1; + while (optindex < argc) { + opt = argv[optindex++]; + + if (handleoptions && opt[0] == '-' && opt[1] != '\0') { + if (opt[1] == '-' && opt[2] == '\0') { + handleoptions = 0; + continue; + } + opt++; + + if ((ret = parse_option(optctx, opt, argv[optindex], options)) < 0) + exit(1); + optindex += ret; + } else { + if (parse_arg_function) + parse_arg_function(optctx, opt); + } + } +} + +int parse_optgroup(void *optctx, OptionGroup *g) +{ + int i, ret; + + av_log(NULL, AV_LOG_DEBUG, "Parsing a group of options: %s %s.\n", + g->group_def->name, g->arg); + + for (i = 0; i < g->nb_opts; i++) { + Option *o = &g->opts[i]; + + av_log(NULL, AV_LOG_DEBUG, "Applying option %s (%s) with argument %s.\n", + o->key, o->opt->help, o->val); + + ret = write_option(optctx, o->opt, o->key, o->val); + if (ret < 0) + return ret; + } + + av_log(NULL, AV_LOG_DEBUG, "Successfully parsed a group of options.\n"); + + return 0; +} + +int locate_option(int argc, char **argv, const OptionDef *options, + const char *optname) +{ + const OptionDef *po; + int i; + + for (i = 1; i < argc; i++) { + const char *cur_opt = argv[i]; + + if (*cur_opt++ != '-') + continue; + + po = find_option(options, cur_opt); + if (!po->name && cur_opt[0] == 'n' && cur_opt[1] == 'o') + po = find_option(options, cur_opt + 2); + + if ((!po->name && !strcmp(cur_opt, optname)) || + (po->name && !strcmp(optname, po->name))) + return i; + + if (po->flags & HAS_ARG) + i++; + } + return 0; +} + +static void dump_argument(const char *a) +{ + const unsigned char *p; + + for (p = a; *p; p++) + if (!((*p >= '+' && *p <= ':') || (*p >= '@' && *p <= 'Z') || + *p == '_' || (*p >= 'a' && *p <= 'z'))) + break; + if (!*p) { + fputs(a, report_file); + return; + } + fputc('"', report_file); + for (p = a; *p; p++) { + if (*p == '\\' || *p == '"' || *p == '$' || *p == '`') + fprintf(report_file, "\\%c", *p); + else if (*p < ' ' || *p > '~') + fprintf(report_file, "\\x%02x", *p); + else + fputc(*p, report_file); + } + fputc('"', report_file); +} + +void parse_loglevel(int argc, char **argv, const OptionDef *options) +{ + int idx = locate_option(argc, argv, options, "loglevel"); + const char *env; + if (!idx) + idx = locate_option(argc, argv, options, "v"); + if (idx && argv[idx + 1]) + opt_loglevel(NULL, "loglevel", argv[idx + 1]); + idx = locate_option(argc, argv, options, "report"); + if ((env = getenv("FFREPORT")) || idx) { + init_report(env); + if (report_file) { + int i; + fprintf(report_file, "Command line:\n"); + for (i = 0; i < argc; i++) { + dump_argument(argv[i]); + fputc(i < argc - 1 ? ' ' : '\n', report_file); + } + fflush(report_file); + } + } + av_log_set_callback(log_callback_android); +} + +#define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0 +int opt_default(void *optctx, const char *opt, const char *arg) +{ + const AVOption *o; + int consumed = 0; + char opt_stripped[128]; + const char *p; + const AVClass *cc = avcodec_get_class(), *fc = avformat_get_class(); + const AVClass *sc, *swr_class; + + if (!strcmp(opt, "debug") || !strcmp(opt, "fdebug")) + av_log_set_level(AV_LOG_DEBUG); + + if (!(p = strchr(opt, ':'))) + p = opt + strlen(opt); + av_strlcpy(opt_stripped, opt, FFMIN(sizeof(opt_stripped), p - opt + 1)); + + if ((o = av_opt_find(&cc, opt_stripped, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) || + ((opt[0] == 'v' || opt[0] == 'a' || opt[0] == 's') && + (o = av_opt_find(&cc, opt + 1, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ)))) { + av_dict_set(&codec_opts, opt, arg, FLAGS); + consumed = 1; + } + if ((o = av_opt_find(&fc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ))) { + av_dict_set(&format_opts, opt, arg, FLAGS); + if(consumed) + av_log(NULL, AV_LOG_VERBOSE, "Routing %s to codec and muxer layer\n", opt); + consumed = 1; + } +#if CONFIG_SWSCALE + sc = sws_get_class(); + if (!consumed && av_opt_find(&sc, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) { + // XXX we only support sws_flags, not arbitrary sws options + int ret = av_opt_set(sws_opts, opt, arg, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); + return ret; + } + consumed = 1; + } +#endif +#if CONFIG_SWRESAMPLE + swr_class = swr_get_class(); + if (!consumed && av_opt_find(&swr_class, opt, NULL, 0, + AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ)) { + int ret = av_opt_set(swr_opts, opt, arg, 0); + if (ret < 0) { + av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); + return ret; + } + consumed = 1; + } +#endif + + if (consumed) + return 0; + return AVERROR_OPTION_NOT_FOUND; +} + +/* + * Check whether given option is a group separator. + * + * @return index of the group definition that matched or -1 if none + */ +static int match_group_separator(const OptionGroupDef *groups, int nb_groups, + const char *opt) +{ + int i; + + for (i = 0; i < nb_groups; i++) { + const OptionGroupDef *p = &groups[i]; + if (p->sep && !strcmp(p->sep, opt)) + return i; + } + + return -1; +} + +/* + * Finish parsing an option group. + * + * @param group_idx which group definition should this group belong to + * @param arg argument of the group delimiting option + */ +static void finish_group(OptionParseContext *octx, int group_idx, + const char *arg) +{ + OptionGroupList *l = &octx->groups[group_idx]; + OptionGroup *g; + + GROW_ARRAY(l->groups, l->nb_groups); + g = &l->groups[l->nb_groups - 1]; + + *g = octx->cur_group; + g->arg = arg; + g->group_def = l->group_def; +#if CONFIG_SWSCALE + g->sws_opts = sws_opts; +#endif + g->swr_opts = swr_opts; + g->codec_opts = codec_opts; + g->format_opts = format_opts; + + codec_opts = NULL; + format_opts = NULL; +#if CONFIG_SWSCALE + sws_opts = NULL; +#endif + swr_opts = NULL; + init_opts(); + + memset(&octx->cur_group, 0, sizeof(octx->cur_group)); +} + +/* + * Add an option instance to currently parsed group. + */ +static void add_opt(OptionParseContext *octx, const OptionDef *opt, + const char *key, const char *val) +{ + int global = !(opt->flags & (OPT_PERFILE | OPT_SPEC | OPT_OFFSET)); + OptionGroup *g = global ? &octx->global_opts : &octx->cur_group; + + GROW_ARRAY(g->opts, g->nb_opts); + g->opts[g->nb_opts - 1].opt = opt; + g->opts[g->nb_opts - 1].key = key; + g->opts[g->nb_opts - 1].val = val; +} + +static void init_parse_context(OptionParseContext *octx, + const OptionGroupDef *groups, int nb_groups) +{ + static const OptionGroupDef global_group = { "global" }; + int i; + + memset(octx, 0, sizeof(*octx)); + + octx->nb_groups = nb_groups; + octx->groups = av_mallocz(sizeof(*octx->groups) * octx->nb_groups); + if (!octx->groups) + exit(1); + + for (i = 0; i < octx->nb_groups; i++) + octx->groups[i].group_def = &groups[i]; + + octx->global_opts.group_def = &global_group; + octx->global_opts.arg = ""; + + init_opts(); +} + +void uninit_parse_context(OptionParseContext *octx) +{ + int i, j; + + for (i = 0; i < octx->nb_groups; i++) { + OptionGroupList *l = &octx->groups[i]; + + for (j = 0; j < l->nb_groups; j++) { + av_freep(&l->groups[j].opts); + av_dict_free(&l->groups[j].codec_opts); + av_dict_free(&l->groups[j].format_opts); +#if CONFIG_SWSCALE + sws_freeContext(l->groups[j].sws_opts); +#endif + if(CONFIG_SWRESAMPLE) + swr_free(&l->groups[j].swr_opts); + } + av_freep(&l->groups); + } + av_freep(&octx->groups); + + av_freep(&octx->cur_group.opts); + av_freep(&octx->global_opts.opts); + + uninit_opts(); +} + +int split_commandline(OptionParseContext *octx, int argc, char *argv[], + const OptionDef *options, + const OptionGroupDef *groups, int nb_groups) +{ + int optindex = 1; + + /* perform system-dependent conversions for arguments list */ + prepare_app_arguments(&argc, &argv); + + init_parse_context(octx, groups, nb_groups); + av_log(NULL, AV_LOG_DEBUG, "Splitting the commandline.\n"); + + while (optindex < argc) { + const char *opt = argv[optindex++], *arg; + const OptionDef *po; + int ret; + + av_log(NULL, AV_LOG_DEBUG, "Reading option '%s' ...", opt); + + /* unnamed group separators, e.g. output filename */ + if (opt[0] != '-' || !opt[1]) { + finish_group(octx, 0, opt); + av_log(NULL, AV_LOG_DEBUG, " matched as %s.\n", groups[0].name); + continue; + } + opt++; + +#define GET_ARG(arg) \ +do { \ + arg = argv[optindex++]; \ + if (!arg) { \ + av_log(NULL, AV_LOG_ERROR, "Missing argument for option '%s'.\n", opt);\ + return AVERROR(EINVAL); \ + } \ +} while (0) + + /* named group separators, e.g. -i */ + if ((ret = match_group_separator(groups, nb_groups, opt)) >= 0) { + GET_ARG(arg); + finish_group(octx, ret, arg); + av_log(NULL, AV_LOG_DEBUG, " matched as %s with argument '%s'.\n", + groups[ret].name, arg); + continue; + } + + /* normal options */ + po = find_option(options, opt); + if (po->name) { + if (po->flags & OPT_EXIT) { + /* optional argument, e.g. -h */ + arg = argv[optindex++]; + } else if (po->flags & HAS_ARG) { + GET_ARG(arg); + } else { + arg = "1"; + } + + add_opt(octx, po, opt, arg); + av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " + "argument '%s'.\n", po->name, po->help, arg); + continue; + } + + /* AVOptions */ + if (argv[optindex]) { + ret = opt_default(NULL, opt, argv[optindex]); + if (ret >= 0) { + av_log(NULL, AV_LOG_DEBUG, " matched as AVOption '%s' with " + "argument '%s'.\n", opt, argv[optindex]); + optindex++; + continue; + } else if (ret != AVERROR_OPTION_NOT_FOUND) { + av_log(NULL, AV_LOG_ERROR, "Error parsing option '%s' " + "with argument '%s'.\n", opt, argv[optindex]); + return ret; + } + } + + /* boolean -nofoo options */ + if (opt[0] == 'n' && opt[1] == 'o' && + (po = find_option(options, opt + 2)) && + po->name && po->flags & OPT_BOOL) { + add_opt(octx, po, opt, "0"); + av_log(NULL, AV_LOG_DEBUG, " matched as option '%s' (%s) with " + "argument 0.\n", po->name, po->help); + continue; + } + + av_log(NULL, AV_LOG_ERROR, "Unrecognized option '%s'.\n", opt); + return AVERROR_OPTION_NOT_FOUND; + } + + if (octx->cur_group.nb_opts || codec_opts || format_opts) + av_log(NULL, AV_LOG_WARNING, "Trailing options were found on the " + "commandline.\n"); + + av_log(NULL, AV_LOG_DEBUG, "Finished splitting the commandline.\n"); + + return 0; +} + +int opt_loglevel(void *optctx, const char *opt, const char *arg) +{ + const struct { const char *name; int level; } log_levels[] = { + { "quiet" , AV_LOG_QUIET }, + { "panic" , AV_LOG_PANIC }, + { "fatal" , AV_LOG_FATAL }, + { "error" , AV_LOG_ERROR }, + { "warning", AV_LOG_WARNING }, + { "info" , AV_LOG_INFO }, + { "verbose", AV_LOG_VERBOSE }, + { "debug" , AV_LOG_DEBUG }, + }; + char *tail; + int level; + int i; + + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { + if (!strcmp(log_levels[i].name, arg)) { + av_log_set_level(log_levels[i].level); + return 0; + } + } + + level = strtol(arg, &tail, 10); + if (*tail) { + av_log(NULL, AV_LOG_FATAL, "Invalid loglevel \"%s\". " + "Possible levels are numbers or:\n", arg); + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) + av_log(NULL, AV_LOG_FATAL, "\"%s\"\n", log_levels[i].name); + exit(1); + } + av_log_set_level(level); + return 0; +} + +static void expand_filename_template(AVBPrint *bp, const char *template, + struct tm *tm) +{ + int c; + + while ((c = *(template++))) { + if (c == '%') { + if (!(c = *(template++))) + break; + switch (c) { + case 'p': + av_bprintf(bp, "%s", program_name); + break; + case 't': + av_bprintf(bp, "%04d%02d%02d-%02d%02d%02d", + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec); + break; + case '%': + av_bprint_chars(bp, c, 1); + break; + } + } else { + av_bprint_chars(bp, c, 1); + } + } +} + +static int init_report(const char *env) +{ + char *filename_template = NULL; + char *key, *val; + int ret, count = 0; + time_t now; + struct tm *tm; + AVBPrint filename; + + if (report_file) /* already opened */ + return 0; + time(&now); + tm = localtime(&now); + + while (env && *env) { + if ((ret = av_opt_get_key_value(&env, "=", ":", 0, &key, &val)) < 0) { + if (count) + av_log(NULL, AV_LOG_ERROR, + "Failed to parse FFREPORT environment variable: %s\n", + av_err2str(ret)); + break; + } + if (*env) + env++; + count++; + if (!strcmp(key, "file")) { + av_free(filename_template); + filename_template = val; + val = NULL; + } else { + av_log(NULL, AV_LOG_ERROR, "Unknown key '%s' in FFREPORT\n", key); + } + av_free(val); + av_free(key); + } + + av_bprint_init(&filename, 0, 1); + expand_filename_template(&filename, + av_x_if_null(filename_template, "%p-%t.log"), tm); + av_free(filename_template); + if (!av_bprint_is_complete(&filename)) { + av_log(NULL, AV_LOG_ERROR, "Out of memory building report file name\n"); + return AVERROR(ENOMEM); + } + + report_file = fopen(filename.str, "w"); + if (!report_file) { + av_log(NULL, AV_LOG_ERROR, "Failed to open report \"%s\": %s\n", + filename.str, strerror(errno)); + return AVERROR(errno); + } + av_log_set_callback(log_callback_report); + av_log(NULL, AV_LOG_INFO, + "%s started on %04d-%02d-%02d at %02d:%02d:%02d\n" + "Report written to \"%s\"\n", + program_name, + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, + filename.str); + av_log_set_level(FFMAX(av_log_get_level(), AV_LOG_VERBOSE)); + av_bprint_finalize(&filename, NULL); + return 0; +} + +int opt_report(const char *opt) +{ + return init_report(NULL); +} + +int opt_max_alloc(void *optctx, const char *opt, const char *arg) +{ + char *tail; + size_t max; + + max = strtol(arg, &tail, 10); + if (*tail) { + av_log(NULL, AV_LOG_FATAL, "Invalid max_alloc \"%s\".\n", arg); + exit(1); + } + av_max_alloc(max); + return 0; +} + +int opt_cpuflags(void *optctx, const char *opt, const char *arg) +{ + int ret; + unsigned flags = av_get_cpu_flags(); + + if ((ret = av_parse_cpu_caps(&flags, arg)) < 0) + return ret; + + av_force_cpu_flags(flags); + return 0; +} + +int opt_timelimit(void *optctx, const char *opt, const char *arg) +{ +#if HAVE_SETRLIMIT + int lim = parse_number_or_die(opt, arg, OPT_INT64, 0, INT_MAX); + struct rlimit rl = { lim, lim + 1 }; + if (setrlimit(RLIMIT_CPU, &rl)) + perror("setrlimit"); +#else + av_log(NULL, AV_LOG_WARNING, "-%s not implemented on this OS\n", opt); +#endif + return 0; +} + +void print_error(const char *filename, int err) +{ + char errbuf[128]; + const char *errbuf_ptr = errbuf; + + if (av_strerror(err, errbuf, sizeof(errbuf)) < 0) + errbuf_ptr = strerror(AVUNERROR(err)); + av_log(NULL, AV_LOG_ERROR, "%s: %s\n", filename, errbuf_ptr); +} + +static int warned_cfg = 0; + +#define INDENT 1 +#define SHOW_VERSION 2 +#define SHOW_CONFIG 4 +#define SHOW_COPYRIGHT 8 + +#define PRINT_LIB_INFO(libname, LIBNAME, flags, level) \ + if (CONFIG_##LIBNAME) { \ + const char *indent = flags & INDENT? " " : ""; \ + if (flags & SHOW_VERSION) { \ + unsigned int version = libname##_version(); \ + av_log(NULL, level, \ + "%slib%-11s %2d.%3d.%3d / %2d.%3d.%3d\n", \ + indent, #libname, \ + LIB##LIBNAME##_VERSION_MAJOR, \ + LIB##LIBNAME##_VERSION_MINOR, \ + LIB##LIBNAME##_VERSION_MICRO, \ + version >> 16, version >> 8 & 0xff, version & 0xff); \ + } \ + if (flags & SHOW_CONFIG) { \ + const char *cfg = libname##_configuration(); \ + if (strcmp(FFMPEG_CONFIGURATION, cfg)) { \ + if (!warned_cfg) { \ + av_log(NULL, level, \ + "%sWARNING: library configuration mismatch\n", \ + indent); \ + warned_cfg = 1; \ + } \ + av_log(NULL, level, "%s%-11s configuration: %s\n", \ + indent, #libname, cfg); \ + } \ + } \ + } \ + +static void print_all_libs_info(int flags, int level) +{ + PRINT_LIB_INFO(avutil, AVUTIL, flags, level); + PRINT_LIB_INFO(avcodec, AVCODEC, flags, level); + PRINT_LIB_INFO(avformat, AVFORMAT, flags, level); + PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level); + PRINT_LIB_INFO(avfilter, AVFILTER, flags, level); +// PRINT_LIB_INFO(avresample, AVRESAMPLE, flags, level); + PRINT_LIB_INFO(swscale, SWSCALE, flags, level); + PRINT_LIB_INFO(swresample,SWRESAMPLE, flags, level); +#if CONFIG_POSTPROC + PRINT_LIB_INFO(postproc, POSTPROC, flags, level); +#endif +} + +static void print_program_info(int flags, int level) +{ + const char *indent = flags & INDENT? " " : ""; + + av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name); + if (flags & SHOW_COPYRIGHT) + av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers", + program_birth_year, this_year); + av_log(NULL, level, "\n"); + av_log(NULL, level, "%sbuilt on %s %s with %s\n", + indent, __DATE__, __TIME__, CC_IDENT); + + av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent); +} + +void show_banner(int argc, char **argv, const OptionDef *options) +{ + int idx = locate_option(argc, argv, options, "version"); + if (idx) + return; + + print_program_info (INDENT|SHOW_COPYRIGHT, AV_LOG_INFO); + print_all_libs_info(INDENT|SHOW_CONFIG, AV_LOG_INFO); + print_all_libs_info(INDENT|SHOW_VERSION, AV_LOG_INFO); +} + +int show_version(void *optctx, const char *opt, const char *arg) +{ + av_log_set_callback(log_callback_help); + print_program_info (0 , AV_LOG_INFO); + print_all_libs_info(SHOW_VERSION, AV_LOG_INFO); + + return 0; +} + +int show_license(void *optctx, const char *opt, const char *arg) +{ +#if CONFIG_NONFREE + printf( + "This version of %s has nonfree parts compiled in.\n" + "Therefore it is not legally redistributable.\n", + program_name ); +#elif CONFIG_GPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); +#elif CONFIG_GPL + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); +#elif CONFIG_LGPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU Lesser General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); +#else + printf( + "%s is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU Lesser General Public\n" + "License as published by the Free Software Foundation; either\n" + "version 2.1 of the License, or (at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" + "Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public\n" + "License along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); +#endif + + return 0; +} + +int show_formats(void *optctx, const char *opt, const char *arg) +{ + AVInputFormat *ifmt = NULL; + AVOutputFormat *ofmt = NULL; + const char *last_name; + + printf("File formats:\n" + " D. = Demuxing supported\n" + " .E = Muxing supported\n" + " --\n"); + last_name = "000"; + for (;;) { + int decode = 0; + int encode = 0; + const char *name = NULL; + const char *long_name = NULL; + + while ((ofmt = av_oformat_next(ofmt))) { + if ((name == NULL || strcmp(ofmt->name, name) < 0) && + strcmp(ofmt->name, last_name) > 0) { + name = ofmt->name; + long_name = ofmt->long_name; + encode = 1; + } + } + while ((ifmt = av_iformat_next(ifmt))) { + if ((name == NULL || strcmp(ifmt->name, name) < 0) && + strcmp(ifmt->name, last_name) > 0) { + name = ifmt->name; + long_name = ifmt->long_name; + encode = 0; + } + if (name && strcmp(ifmt->name, name) == 0) + decode = 1; + } + if (name == NULL) + break; + last_name = name; + + printf(" %s%s %-15s %s\n", + decode ? "D" : " ", + encode ? "E" : " ", + name, + long_name ? long_name:" "); + } + return 0; +} + +#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \ + if (codec->field) { \ + const type *p = codec->field; \ + \ + printf(" Supported " list_name ":"); \ + while (*p != term) { \ + get_name(*p); \ + printf(" %s", name); \ + p++; \ + } \ + printf("\n"); \ + } \ + +static void print_codec(const AVCodec *c) +{ + int encoder = av_codec_is_encoder(c); + + printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name, + c->long_name ? c->long_name : ""); + + if (c->type == AVMEDIA_TYPE_VIDEO) { + printf(" Threading capabilities: "); + switch (c->capabilities & (CODEC_CAP_FRAME_THREADS | + CODEC_CAP_SLICE_THREADS)) { + case CODEC_CAP_FRAME_THREADS | + CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break; + case CODEC_CAP_FRAME_THREADS: printf("frame"); break; + case CODEC_CAP_SLICE_THREADS: printf("slice"); break; + default: printf("no"); break; + } + printf("\n"); + } + + if (c->supported_framerates) { + const AVRational *fps = c->supported_framerates; + + printf(" Supported framerates:"); + while (fps->num) { + printf(" %d/%d", fps->num, fps->den); + fps++; + } + printf("\n"); + } + PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats", + AV_PIX_FMT_NONE, GET_PIX_FMT_NAME); + PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0, + GET_SAMPLE_RATE_NAME); + PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats", + AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); + PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts", + 0, GET_CH_LAYOUT_DESC); + + if (c->priv_class) { + show_help_children(c->priv_class, + AV_OPT_FLAG_ENCODING_PARAM | + AV_OPT_FLAG_DECODING_PARAM); + } +} + +static char get_media_type_char(enum AVMediaType type) +{ + switch (type) { + case AVMEDIA_TYPE_VIDEO: return 'V'; + case AVMEDIA_TYPE_AUDIO: return 'A'; + case AVMEDIA_TYPE_DATA: return 'D'; + case AVMEDIA_TYPE_SUBTITLE: return 'S'; + case AVMEDIA_TYPE_ATTACHMENT:return 'T'; + default: return '?'; + } +} + +static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev, + int encoder) +{ + while ((prev = av_codec_next(prev))) { + if (prev->id == id && + (encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev))) + return prev; + } + return NULL; +} + +static int compare_codec_desc(const void *a, const void *b) +{ + const AVCodecDescriptor * const *da = a; + const AVCodecDescriptor * const *db = b; + + return (*da)->type != (*db)->type ? (*da)->type - (*db)->type : + strcmp((*da)->name, (*db)->name); +} + +static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs) +{ + const AVCodecDescriptor *desc = NULL; + const AVCodecDescriptor **codecs; + unsigned nb_codecs = 0, i = 0; + + while ((desc = avcodec_descriptor_next(desc))) + nb_codecs++; + if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) { + av_log(NULL, AV_LOG_ERROR, "Out of memory\n"); + exit(1); + } + desc = NULL; + while ((desc = avcodec_descriptor_next(desc))) + codecs[i++] = desc; + av_assert0(i == nb_codecs); + qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc); + *rcodecs = codecs; + return nb_codecs; +} + +static void print_codecs_for_id(enum AVCodecID id, int encoder) +{ + const AVCodec *codec = NULL; + + printf(" (%s: ", encoder ? "encoders" : "decoders"); + + while ((codec = next_codec_for_id(id, codec, encoder))) + printf("%s ", codec->name); + + printf(")"); +} + +int show_codecs(void *optctx, const char *opt, const char *arg) +{ + const AVCodecDescriptor **codecs; + unsigned i, nb_codecs = get_codecs_sorted(&codecs); + + printf("Codecs:\n" + " D..... = Decoding supported\n" + " .E.... = Encoding supported\n" + " ..V... = Video codec\n" + " ..A... = Audio codec\n" + " ..S... = Subtitle codec\n" + " ...I.. = Intra frame-only codec\n" + " ....L. = Lossy compression\n" + " .....S = Lossless compression\n" + " -------\n"); + for (i = 0; i < nb_codecs; i++) { + const AVCodecDescriptor *desc = codecs[i]; + const AVCodec *codec = NULL; + + printf(" "); + printf(avcodec_find_decoder(desc->id) ? "D" : "."); + printf(avcodec_find_encoder(desc->id) ? "E" : "."); + + printf("%c", get_media_type_char(desc->type)); + printf((desc->props & AV_CODEC_PROP_INTRA_ONLY) ? "I" : "."); + printf((desc->props & AV_CODEC_PROP_LOSSY) ? "L" : "."); + printf((desc->props & AV_CODEC_PROP_LOSSLESS) ? "S" : "."); + + printf(" %-20s %s", desc->name, desc->long_name ? desc->long_name : ""); + + /* print decoders/encoders when there's more than one or their + * names are different from codec name */ + while ((codec = next_codec_for_id(desc->id, codec, 0))) { + if (strcmp(codec->name, desc->name)) { + print_codecs_for_id(desc->id, 0); + break; + } + } + codec = NULL; + while ((codec = next_codec_for_id(desc->id, codec, 1))) { + if (strcmp(codec->name, desc->name)) { + print_codecs_for_id(desc->id, 1); + break; + } + } + + printf("\n"); + } + av_free(codecs); + return 0; +} + +static void print_codecs(int encoder) +{ + const AVCodecDescriptor **codecs; + unsigned i, nb_codecs = get_codecs_sorted(&codecs); + + printf("%s:\n" + " V..... = Video\n" + " A..... = Audio\n" + " S..... = Subtitle\n" + " .F.... = Frame-level multithreading\n" + " ..S... = Slice-level multithreading\n" + " ...X.. = Codec is experimental\n" + " ....B. = Supports draw_horiz_band\n" + " .....D = Supports direct rendering method 1\n" + " ------\n", + encoder ? "Encoders" : "Decoders"); + for (i = 0; i < nb_codecs; i++) { + const AVCodecDescriptor *desc = codecs[i]; + const AVCodec *codec = NULL; + + while ((codec = next_codec_for_id(desc->id, codec, encoder))) { + printf(" %c", get_media_type_char(desc->type)); + printf((codec->capabilities & CODEC_CAP_FRAME_THREADS) ? "F" : "."); + printf((codec->capabilities & CODEC_CAP_SLICE_THREADS) ? "S" : "."); + printf((codec->capabilities & CODEC_CAP_EXPERIMENTAL) ? "X" : "."); + printf((codec->capabilities & CODEC_CAP_DRAW_HORIZ_BAND)?"B" : "."); + printf((codec->capabilities & CODEC_CAP_DR1) ? "D" : "."); + + printf(" %-20s %s", codec->name, codec->long_name ? codec->long_name : ""); + if (strcmp(codec->name, desc->name)) + printf(" (codec %s)", desc->name); + + printf("\n"); + } + } + av_free(codecs); +} + +int show_decoders(void *optctx, const char *opt, const char *arg) +{ + print_codecs(0); + return 0; +} + +int show_encoders(void *optctx, const char *opt, const char *arg) +{ + print_codecs(1); + return 0; +} + +int show_bsfs(void *optctx, const char *opt, const char *arg) +{ + AVBitStreamFilter *bsf = NULL; + + printf("Bitstream filters:\n"); + while ((bsf = av_bitstream_filter_next(bsf))) + printf("%s\n", bsf->name); + printf("\n"); + return 0; +} + +int show_protocols(void *optctx, const char *opt, const char *arg) +{ + void *opaque = NULL; + const char *name; + + printf("Supported file protocols:\n" + "Input:\n"); + while ((name = avio_enum_protocols(&opaque, 0))) + printf("%s\n", name); + printf("Output:\n"); + while ((name = avio_enum_protocols(&opaque, 1))) + printf("%s\n", name); + return 0; +} + +int show_filters(void *optctx, const char *opt, const char *arg) +{ + AVFilter av_unused(**filter) = NULL; + char descr[64], *descr_cur; + int i, j; + const AVFilterPad *pad; + + printf("Filters:\n"); +#if CONFIG_AVFILTER + while ((filter = av_filter_next(filter)) && *filter) { + descr_cur = descr; + for (i = 0; i < 2; i++) { + if (i) { + *(descr_cur++) = '-'; + *(descr_cur++) = '>'; + } + pad = i ? (*filter)->outputs : (*filter)->inputs; + for (j = 0; pad && pad[j].name; j++) { + if (descr_cur >= descr + sizeof(descr) - 4) + break; + *(descr_cur++) = get_media_type_char(pad[j].type); + } + if (!j) + *(descr_cur++) = '|'; + } + *descr_cur = 0; + printf("%-16s %-10s %s\n", (*filter)->name, descr, (*filter)->description); + } +#endif + return 0; +} + +int show_pix_fmts(void *optctx, const char *opt, const char *arg) +{ + const AVPixFmtDescriptor *pix_desc = NULL; + + printf("Pixel formats:\n" + "I.... = Supported Input format for conversion\n" + ".O... = Supported Output format for conversion\n" + "..H.. = Hardware accelerated format\n" + "...P. = Paletted format\n" + "....B = Bitstream format\n" + "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n" + "-----\n"); + +#if !CONFIG_SWSCALE +# define sws_isSupportedInput(x) 0 +# define sws_isSupportedOutput(x) 0 +#endif + + while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { + enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); + printf("%c%c%c%c%c %-16s %d %2d\n", + sws_isSupportedInput (pix_fmt) ? 'I' : '.', + sws_isSupportedOutput(pix_fmt) ? 'O' : '.', + pix_desc->flags & PIX_FMT_HWACCEL ? 'H' : '.', + pix_desc->flags & PIX_FMT_PAL ? 'P' : '.', + pix_desc->flags & PIX_FMT_BITSTREAM ? 'B' : '.', + pix_desc->name, + pix_desc->nb_components, + av_get_bits_per_pixel(pix_desc)); + } + return 0; +} + +int show_layouts(void *optctx, const char *opt, const char *arg) +{ + int i = 0; + uint64_t layout, j; + const char *name, *descr; + + printf("Individual channels:\n" + "NAME DESCRIPTION\n"); + for (i = 0; i < 63; i++) { + name = av_get_channel_name((uint64_t)1 << i); + if (!name) + continue; + descr = av_get_channel_description((uint64_t)1 << i); + printf("%-12s%s\n", name, descr); + } + printf("\nStandard channel layouts:\n" + "NAME DECOMPOSITION\n"); + for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) { + if (name) { + printf("%-12s", name); + for (j = 1; j; j <<= 1) + if ((layout & j)) + printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j)); + printf("\n"); + } + } + return 0; +} + +int show_sample_fmts(void *optctx, const char *opt, const char *arg) +{ + int i; + char fmt_str[128]; + for (i = -1; i < AV_SAMPLE_FMT_NB; i++) + printf("%s\n", av_get_sample_fmt_string(fmt_str, sizeof(fmt_str), i)); + return 0; +} + +static void show_help_codec(const char *name, int encoder) +{ + const AVCodecDescriptor *desc; + const AVCodec *codec; + + if (!name) { + av_log(NULL, AV_LOG_ERROR, "No codec name specified.\n"); + return; + } + + codec = encoder ? avcodec_find_encoder_by_name(name) : + avcodec_find_decoder_by_name(name); + + if (codec) + print_codec(codec); + else if ((desc = avcodec_descriptor_get_by_name(name))) { + int printed = 0; + + while ((codec = next_codec_for_id(desc->id, codec, encoder))) { + printed = 1; + print_codec(codec); + } + + if (!printed) { + av_log(NULL, AV_LOG_ERROR, "Codec '%s' is known to FFmpeg, " + "but no %s for it are available. FFmpeg might need to be " + "recompiled with additional external libraries.\n", + name, encoder ? "encoders" : "decoders"); + } + } else { + av_log(NULL, AV_LOG_ERROR, "Codec '%s' is not recognized by FFmpeg.\n", + name); + } +} + +static void show_help_demuxer(const char *name) +{ + const AVInputFormat *fmt = av_find_input_format(name); + + if (!fmt) { + av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); + return; + } + + printf("Demuxer %s [%s]:\n", fmt->name, fmt->long_name); + + if (fmt->extensions) + printf(" Common extensions: %s.\n", fmt->extensions); + + if (fmt->priv_class) + show_help_children(fmt->priv_class, AV_OPT_FLAG_DECODING_PARAM); +} + +static void show_help_muxer(const char *name) +{ + const AVCodecDescriptor *desc; + const AVOutputFormat *fmt = av_guess_format(name, NULL, NULL); + + if (!fmt) { + av_log(NULL, AV_LOG_ERROR, "Unknown format '%s'.\n", name); + return; + } + + printf("Muxer %s [%s]:\n", fmt->name, fmt->long_name); + + if (fmt->extensions) + printf(" Common extensions: %s.\n", fmt->extensions); + if (fmt->mime_type) + printf(" Mime type: %s.\n", fmt->mime_type); + if (fmt->video_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->video_codec))) { + printf(" Default video codec: %s.\n", desc->name); + } + if (fmt->audio_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->audio_codec))) { + printf(" Default audio codec: %s.\n", desc->name); + } + if (fmt->subtitle_codec != AV_CODEC_ID_NONE && + (desc = avcodec_descriptor_get(fmt->subtitle_codec))) { + printf(" Default subtitle codec: %s.\n", desc->name); + } + + if (fmt->priv_class) + show_help_children(fmt->priv_class, AV_OPT_FLAG_ENCODING_PARAM); +} + +int show_help(void *optctx, const char *opt, const char *arg) +{ + char *topic, *par; + av_log_set_callback(log_callback_help); + + topic = av_strdup(arg ? arg : ""); + par = strchr(topic, '='); + if (par) + *par++ = 0; + + if (!*topic) { + show_help_default(topic, par); + } else if (!strcmp(topic, "decoder")) { + show_help_codec(par, 0); + } else if (!strcmp(topic, "encoder")) { + show_help_codec(par, 1); + } else if (!strcmp(topic, "demuxer")) { + show_help_demuxer(par); + } else if (!strcmp(topic, "muxer")) { + show_help_muxer(par); + } else { + show_help_default(topic, par); + } + + av_freep(&topic); + return 0; +} + +int read_yesno(void) +{ + int c = getchar(); + int yesno = (toupper(c) == 'Y'); + + while (c != '\n' && c != EOF) + c = getchar(); + + return yesno; +} + +int cmdutils_read_file(const char *filename, char **bufptr, size_t *size) +{ + int ret; + FILE *f = fopen(filename, "rb"); + + if (!f) { + av_log(NULL, AV_LOG_ERROR, "Cannot read file '%s': %s\n", filename, + strerror(errno)); + return AVERROR(errno); + } + fseek(f, 0, SEEK_END); + *size = ftell(f); + fseek(f, 0, SEEK_SET); + if (*size == (size_t)-1) { + av_log(NULL, AV_LOG_ERROR, "IO error: %s\n", strerror(errno)); + fclose(f); + return AVERROR(errno); + } + *bufptr = av_malloc(*size + 1); + if (!*bufptr) { + av_log(NULL, AV_LOG_ERROR, "Could not allocate file buffer\n"); + fclose(f); + return AVERROR(ENOMEM); + } + ret = fread(*bufptr, 1, *size, f); + if (ret < *size) { + av_free(*bufptr); + if (ferror(f)) { + av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n", + filename, strerror(errno)); + ret = AVERROR(errno); + } else + ret = AVERROR_EOF; + } else { + ret = 0; + (*bufptr)[(*size)++] = '\0'; + } + + fclose(f); + return ret; +} + +FILE *get_preset_file(char *filename, size_t filename_size, + const char *preset_name, int is_path, + const char *codec_name) +{ + FILE *f = NULL; + int i; + const char *base[3] = { getenv("FFMPEG_DATADIR"), + getenv("HOME"), + FFMPEG_DATADIR, }; + + if (is_path) { + av_strlcpy(filename, preset_name, filename_size); + f = fopen(filename, "r"); + } else { +#ifdef _WIN32 + char datadir[MAX_PATH], *ls; + base[2] = NULL; + + if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1)) + { + for (ls = datadir; ls < datadir + strlen(datadir); ls++) + if (*ls == '\\') *ls = '/'; + + if (ls = strrchr(datadir, '/')) + { + *ls = 0; + strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir)); + base[2] = datadir; + } + } +#endif + for (i = 0; i < 3 && !f; i++) { + if (!base[i]) + continue; + snprintf(filename, filename_size, "%s%s/%s.ffpreset", base[i], + i != 1 ? "" : "/.ffmpeg", preset_name); + f = fopen(filename, "r"); + if (!f && codec_name) { + snprintf(filename, filename_size, + "%s%s/%s-%s.ffpreset", + base[i], i != 1 ? "" : "/.ffmpeg", codec_name, + preset_name); + f = fopen(filename, "r"); + } + } + } + + return f; +} + +int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) +{ + int ret = avformat_match_stream_specifier(s, st, spec); + if (ret < 0) + av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); + return ret; +} + +AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, + AVFormatContext *s, AVStream *st, AVCodec *codec) +{ + AVDictionary *ret = NULL; + AVDictionaryEntry *t = NULL; + int flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM + : AV_OPT_FLAG_DECODING_PARAM; + char prefix = 0; + const AVClass *cc = avcodec_get_class(); + + if (!codec) + codec = s->oformat ? avcodec_find_encoder(codec_id) + : avcodec_find_decoder(codec_id); + if (!codec) + return NULL; + + switch (codec->type) { + case AVMEDIA_TYPE_VIDEO: + prefix = 'v'; + flags |= AV_OPT_FLAG_VIDEO_PARAM; + break; + case AVMEDIA_TYPE_AUDIO: + prefix = 'a'; + flags |= AV_OPT_FLAG_AUDIO_PARAM; + break; + case AVMEDIA_TYPE_SUBTITLE: + prefix = 's'; + flags |= AV_OPT_FLAG_SUBTITLE_PARAM; + break; + } + + while (t = av_dict_get(opts, "", t, AV_DICT_IGNORE_SUFFIX)) { + char *p = strchr(t->key, ':'); + + /* check stream specification in opt name */ + if (p) + switch (check_stream_specifier(s, st, p + 1)) { + case 1: *p = 0; break; + case 0: continue; + default: return NULL; + } + + if (av_opt_find(&cc, t->key, NULL, flags, AV_OPT_SEARCH_FAKE_OBJ) || + (codec && codec->priv_class && + av_opt_find(&codec->priv_class, t->key, NULL, flags, + AV_OPT_SEARCH_FAKE_OBJ))) + av_dict_set(&ret, t->key, t->value, 0); + else if (t->key[0] == prefix && + av_opt_find(&cc, t->key + 1, NULL, flags, + AV_OPT_SEARCH_FAKE_OBJ)) + av_dict_set(&ret, t->key + 1, t->value, 0); + + if (p) + *p = ':'; + } + return ret; +} + +AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, + AVDictionary *codec_opts) +{ + int i; + AVDictionary **opts; + + if (!s->nb_streams) + return NULL; + opts = av_mallocz(s->nb_streams * sizeof(*opts)); + if (!opts) { + av_log(NULL, AV_LOG_ERROR, + "Could not alloc memory for stream options.\n"); + return NULL; + } + for (i = 0; i < s->nb_streams; i++) + opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id, + s, s->streams[i], NULL); + return opts; +} + +void *grow_array(void *array, int elem_size, int *size, int new_size) +{ + if (new_size >= INT_MAX / elem_size) { + av_log(NULL, AV_LOG_ERROR, "Array too big.\n"); + exit(1); + } + if (*size < new_size) { + uint8_t *tmp = av_realloc(array, new_size*elem_size); + if (!tmp) { + av_log(NULL, AV_LOG_ERROR, "Could not alloc buffer.\n"); + exit(1); + } + memset(tmp + *size*elem_size, 0, (new_size-*size) * elem_size); + *size = new_size; + return tmp; + } + return array; +} + +static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbuf) +{ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->pix_fmt); + FrameBuffer *buf; + int i, ret; + int pixel_size; + int h_chroma_shift, v_chroma_shift; + int edge = 32; // XXX should be avcodec_get_edge_width(), but that fails on svq1 + int w = s->width, h = s->height; + + if (!desc) + return AVERROR(EINVAL); + pixel_size = desc->comp[0].step_minus1 + 1; + + buf = av_mallocz(sizeof(*buf)); + if (!buf) + return AVERROR(ENOMEM); + + avcodec_align_dimensions(s, &w, &h); + + if (!(s->flags & CODEC_FLAG_EMU_EDGE)) { + w += 2*edge; + h += 2*edge; + } + + if ((ret = av_image_alloc(buf->base, buf->linesize, w, h, + s->pix_fmt, 32)) < 0) { + av_freep(&buf); + av_log(s, AV_LOG_ERROR, "alloc_buffer: av_image_alloc() failed\n"); + return ret; + } + /* XXX this shouldn't be needed, but some tests break without this line + * those decoders are buggy and need to be fixed. + * the following tests fail: + * cdgraphics, ansi, aasc, fraps-v1, qtrle-1bit + */ + memset(buf->base[0], 128, ret); + + avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift); + for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) { + const int h_shift = i==0 ? 0 : h_chroma_shift; + const int v_shift = i==0 ? 0 : v_chroma_shift; + if ((s->flags & CODEC_FLAG_EMU_EDGE) || !buf->linesize[i] || !buf->base[i]) + buf->data[i] = buf->base[i]; + else + buf->data[i] = buf->base[i] + + FFALIGN((buf->linesize[i]*edge >> v_shift) + + (pixel_size*edge >> h_shift), 32); + } + buf->w = s->width; + buf->h = s->height; + buf->pix_fmt = s->pix_fmt; + buf->pool = pool; + + *pbuf = buf; + return 0; +} + +int codec_get_buffer(AVCodecContext *s, AVFrame *frame) +{ + FrameBuffer **pool = s->opaque; + FrameBuffer *buf; + int ret, i; + + if(av_image_check_size(s->width, s->height, 0, s) || s->pix_fmt<0) { + av_log(s, AV_LOG_ERROR, "codec_get_buffer: image parameters invalid\n"); + return -1; + } + + if (!*pool && (ret = alloc_buffer(pool, s, pool)) < 0) + return ret; + + buf = *pool; + *pool = buf->next; + buf->next = NULL; + if (buf->w != s->width || buf->h != s->height || buf->pix_fmt != s->pix_fmt) { + av_freep(&buf->base[0]); + av_free(buf); + if ((ret = alloc_buffer(pool, s, &buf)) < 0) + return ret; + } + av_assert0(!buf->refcount); + buf->refcount++; + + frame->opaque = buf; + frame->type = FF_BUFFER_TYPE_USER; + frame->extended_data = frame->data; + + for (i = 0; i < FF_ARRAY_ELEMS(buf->data); i++) { + frame->base[i] = buf->base[i]; // XXX h264.c uses base though it shouldn't + frame->data[i] = buf->data[i]; + frame->linesize[i] = buf->linesize[i]; + } + + return 0; +} + +static void unref_buffer(FrameBuffer *buf) +{ + FrameBuffer **pool = buf->pool; + + av_assert0(buf->refcount > 0); + buf->refcount--; + if (!buf->refcount) { + FrameBuffer *tmp; + for(tmp= *pool; tmp; tmp= tmp->next) + av_assert1(tmp != buf); + + buf->next = *pool; + *pool = buf; + } +} + +void codec_release_buffer(AVCodecContext *s, AVFrame *frame) +{ + FrameBuffer *buf = frame->opaque; + int i; + + if(frame->type!=FF_BUFFER_TYPE_USER) { + avcodec_default_release_buffer(s, frame); + return; + } + + for (i = 0; i < FF_ARRAY_ELEMS(frame->data); i++) + frame->data[i] = NULL; + + unref_buffer(buf); +} + +void filter_release_buffer(AVFilterBuffer *fb) +{ + FrameBuffer *buf = fb->priv; + av_free(fb); + unref_buffer(buf); +} + +void free_buffer_pool(FrameBuffer **pool) +{ + FrameBuffer *buf = *pool; + while (buf) { + *pool = buf->next; + av_freep(&buf->base[0]); + av_free(buf); + buf = *pool; + } +} diff --git a/project/jni/application/ffplay/cmdutils.h b/project/jni/application/ffplay/cmdutils.h new file mode 100644 index 000000000..a731ac8e2 --- /dev/null +++ b/project/jni/application/ffplay/cmdutils.h @@ -0,0 +1,579 @@ +/* + * Various utilities for command line tools + * copyright (c) 2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef FFMPEG_CMDUTILS_H +#define FFMPEG_CMDUTILS_H + +#include + +#include "libavcodec/avcodec.h" +#include "libavfilter/avfilter.h" +#include "libavformat/avformat.h" +#include "libswscale/swscale.h" + +/** + * program name, defined by the program for show_version(). + */ +extern const char program_name[]; + +/** + * program birth year, defined by the program for show_banner() + */ +extern const int program_birth_year; + +/** + * this year, defined by the program for show_banner() + */ +extern const int this_year; + +extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; +extern AVFormatContext *avformat_opts; +extern struct SwsContext *sws_opts; +extern struct SwrContext *swr_opts; +extern AVDictionary *format_opts, *codec_opts; + +/** + * Initialize the cmdutils option system, in particular + * allocate the *_opts contexts. + */ +void init_opts(void); +/** + * Uninitialize the cmdutils option system, in particular + * free the *_opts contexts and their contents. + */ +void uninit_opts(void); + +/** + * Trivial log callback. + * Only suitable for opt_help and similar since it lacks prefix handling. + */ +void log_callback_help(void* ptr, int level, const char* fmt, va_list vl); + +/** + * Fallback for options that are not explicitly handled, these will be + * parsed through AVOptions. + */ +int opt_default(void *optctx, const char *opt, const char *arg); + +/** + * Set the libav* libraries log level. + */ +int opt_loglevel(void *optctx, const char *opt, const char *arg); + +int opt_report(const char *opt); + +int opt_max_alloc(void *optctx, const char *opt, const char *arg); + +int opt_cpuflags(void *optctx, const char *opt, const char *arg); + +int opt_codec_debug(void *optctx, const char *opt, const char *arg); + +/** + * Limit the execution time. + */ +int opt_timelimit(void *optctx, const char *opt, const char *arg); + +/** + * Parse a string and return its corresponding value as a double. + * Exit from the application if the string cannot be correctly + * parsed or the corresponding value is invalid. + * + * @param context the context of the value to be set (e.g. the + * corresponding command line option name) + * @param numstr the string to be parsed + * @param type the type (OPT_INT64 or OPT_FLOAT) as which the + * string should be parsed + * @param min the minimum valid accepted value + * @param max the maximum valid accepted value + */ +double parse_number_or_die(const char *context, const char *numstr, int type, + double min, double max); + +/** + * Parse a string specifying a time and return its corresponding + * value as a number of microseconds. Exit from the application if + * the string cannot be correctly parsed. + * + * @param context the context of the value to be set (e.g. the + * corresponding command line option name) + * @param timestr the string to be parsed + * @param is_duration a flag which tells how to interpret timestr, if + * not zero timestr is interpreted as a duration, otherwise as a + * date + * + * @see parse_date() + */ +int64_t parse_time_or_die(const char *context, const char *timestr, + int is_duration); + +typedef struct SpecifierOpt { + char *specifier; /**< stream/chapter/program/... specifier */ + union { + uint8_t *str; + int i; + int64_t i64; + float f; + double dbl; + } u; +} SpecifierOpt; + +typedef struct OptionDef { + const char *name; + int flags; +#define HAS_ARG 0x0001 +#define OPT_BOOL 0x0002 +#define OPT_EXPERT 0x0004 +#define OPT_STRING 0x0008 +#define OPT_VIDEO 0x0010 +#define OPT_AUDIO 0x0020 +#define OPT_INT 0x0080 +#define OPT_FLOAT 0x0100 +#define OPT_SUBTITLE 0x0200 +#define OPT_INT64 0x0400 +#define OPT_EXIT 0x0800 +#define OPT_DATA 0x1000 +#define OPT_PERFILE 0x2000 /* the option is per-file (currently ffmpeg-only). + implied by OPT_OFFSET or OPT_SPEC */ +#define OPT_OFFSET 0x4000 /* option is specified as an offset in a passed optctx */ +#define OPT_SPEC 0x8000 /* option is to be stored in an array of SpecifierOpt. + Implies OPT_OFFSET. Next element after the offset is + an int containing element count in the array. */ +#define OPT_TIME 0x10000 +#define OPT_DOUBLE 0x20000 + union { + void *dst_ptr; + int (*func_arg)(void *, const char *, const char *); + size_t off; + } u; + const char *help; + const char *argname; +} OptionDef; + +/** + * Print help for all options matching specified flags. + * + * @param options a list of options + * @param msg title of this group. Only printed if at least one option matches. + * @param req_flags print only options which have all those flags set. + * @param rej_flags don't print options which have any of those flags set. + * @param alt_flags print only options that have at least one of those flags set + */ +void show_help_options(const OptionDef *options, const char *msg, int req_flags, + int rej_flags, int alt_flags); + +/** + * Show help for all options with given flags in class and all its + * children. + */ +void show_help_children(const AVClass *class, int flags); + +/** + * Per-avtool specific help handler. Implemented in each + * avtool, called by show_help(). + */ +void show_help_default(const char *opt, const char *arg); + +/** + * Generic -h handler common to all avtools. + */ +int show_help(void *optctx, const char *opt, const char *arg); + +/** + * Parse the command line arguments. + * + * @param optctx an opaque options context + * @param argc number of command line arguments + * @param argv values of command line arguments + * @param options Array with the definitions required to interpret every + * option of the form: -option_name [argument] + * @param parse_arg_function Name of the function called to process every + * argument without a leading option name flag. NULL if such arguments do + * not have to be processed. + */ +void parse_options(void *optctx, int argc, char **argv, const OptionDef *options, + void (* parse_arg_function)(void *optctx, const char*)); + +/** + * Parse one given option. + * + * @return on success 1 if arg was consumed, 0 otherwise; negative number on error + */ +int parse_option(void *optctx, const char *opt, const char *arg, + const OptionDef *options); + +/** + * An option extracted from the commandline. + * Cannot use AVDictionary because of options like -map which can be + * used multiple times. + */ +typedef struct Option { + const OptionDef *opt; + const char *key; + const char *val; +} Option; + +typedef struct OptionGroupDef { + /**< group name */ + const char *name; + /** + * Option to be used as group separator. Can be NULL for groups which + * are terminated by a non-option argument (e.g. ffmpeg output files) + */ + const char *sep; +} OptionGroupDef; + +typedef struct OptionGroup { + const OptionGroupDef *group_def; + const char *arg; + + Option *opts; + int nb_opts; + + AVDictionary *codec_opts; + AVDictionary *format_opts; + struct SwsContext *sws_opts; + struct SwrContext *swr_opts; +} OptionGroup; + +/** + * A list of option groups that all have the same group type + * (e.g. input files or output files) + */ +typedef struct OptionGroupList { + const OptionGroupDef *group_def; + + OptionGroup *groups; + int nb_groups; +} OptionGroupList; + +typedef struct OptionParseContext { + OptionGroup global_opts; + + OptionGroupList *groups; + int nb_groups; + + /* parsing state */ + OptionGroup cur_group; +} OptionParseContext; + +/** + * Parse an options group and write results into optctx. + * + * @param optctx an app-specific options context. NULL for global options group + */ +int parse_optgroup(void *optctx, OptionGroup *g); + +/** + * Split the commandline into an intermediate form convenient for further + * processing. + * + * The commandline is assumed to be composed of options which either belong to a + * group (those with OPT_SPEC, OPT_OFFSET or OPT_PERFILE) or are global + * (everything else). + * + * A group (defined by an OptionGroupDef struct) is a sequence of options + * terminated by either a group separator option (e.g. -i) or a parameter that + * is not an option (doesn't start with -). A group without a separator option + * must always be first in the supplied groups list. + * + * All options within the same group are stored in one OptionGroup struct in an + * OptionGroupList, all groups with the same group definition are stored in one + * OptionGroupList in OptionParseContext.groups. The order of group lists is the + * same as the order of group definitions. + */ +int split_commandline(OptionParseContext *octx, int argc, char *argv[], + const OptionDef *options, + const OptionGroupDef *groups, int nb_groups); + +/** + * Free all allocated memory in an OptionParseContext. + */ +void uninit_parse_context(OptionParseContext *octx); + +/** + * Find the '-loglevel' option in the command line args and apply it. + */ +void parse_loglevel(int argc, char **argv, const OptionDef *options); + +/** + * Return index of option opt in argv or 0 if not found. + */ +int locate_option(int argc, char **argv, const OptionDef *options, + const char *optname); + +/** + * Check if the given stream matches a stream specifier. + * + * @param s Corresponding format context. + * @param st Stream from s to be checked. + * @param spec A stream specifier of the [v|a|s|d]:[\] form. + * + * @return 1 if the stream matches, 0 if it doesn't, <0 on error + */ +int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec); + +/** + * Filter out options for given codec. + * + * Create a new options dictionary containing only the options from + * opts which apply to the codec with ID codec_id. + * + * @param opts dictionary to place options in + * @param codec_id ID of the codec that should be filtered for + * @param s Corresponding format context. + * @param st A stream from s for which the options should be filtered. + * @param codec The particular codec for which the options should be filtered. + * If null, the default one is looked up according to the codec id. + * @return a pointer to the created dictionary + */ +AVDictionary *filter_codec_opts(AVDictionary *opts, enum AVCodecID codec_id, + AVFormatContext *s, AVStream *st, AVCodec *codec); + +/** + * Setup AVCodecContext options for avformat_find_stream_info(). + * + * Create an array of dictionaries, one dictionary for each stream + * contained in s. + * Each dictionary will contain the options from codec_opts which can + * be applied to the corresponding stream codec context. + * + * @return pointer to the created array of dictionaries, NULL if it + * cannot be created + */ +AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, + AVDictionary *codec_opts); + +/** + * Print an error message to stderr, indicating filename and a human + * readable description of the error code err. + * + * If strerror_r() is not available the use of this function in a + * multithreaded application may be unsafe. + * + * @see av_strerror() + */ +void print_error(const char *filename, int err); + +/** + * Print the program banner to stderr. The banner contents depend on the + * current version of the repository and of the libav* libraries used by + * the program. + */ +void show_banner(int argc, char **argv, const OptionDef *options); + +/** + * Print the version of the program to stdout. The version message + * depends on the current versions of the repository and of the libav* + * libraries. + * This option processing function does not utilize the arguments. + */ +int show_version(void *optctx, const char *opt, const char *arg); + +/** + * Print the license of the program to stdout. The license depends on + * the license of the libraries compiled into the program. + * This option processing function does not utilize the arguments. + */ +int show_license(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the formats supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_formats(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the codecs supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_codecs(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the decoders supported by the + * program. + */ +int show_decoders(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the encoders supported by the + * program. + */ +int show_encoders(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the filters supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_filters(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the bit stream filters supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_bsfs(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the protocols supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_protocols(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the pixel formats supported by the + * program. + * This option processing function does not utilize the arguments. + */ +int show_pix_fmts(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the standard channel layouts supported by + * the program. + * This option processing function does not utilize the arguments. + */ +int show_layouts(void *optctx, const char *opt, const char *arg); + +/** + * Print a listing containing all the sample formats supported by the + * program. + */ +int show_sample_fmts(void *optctx, const char *opt, const char *arg); + +/** + * Return a positive value if a line read from standard input + * starts with [yY], otherwise return 0. + */ +int read_yesno(void); + +/** + * Read the file with name filename, and put its content in a newly + * allocated 0-terminated buffer. + * + * @param filename file to read from + * @param bufptr location where pointer to buffer is returned + * @param size location where size of buffer is returned + * @return 0 in case of success, a negative value corresponding to an + * AVERROR error code in case of failure. + */ +int cmdutils_read_file(const char *filename, char **bufptr, size_t *size); + +/** + * Get a file corresponding to a preset file. + * + * If is_path is non-zero, look for the file in the path preset_name. + * Otherwise search for a file named arg.ffpreset in the directories + * $FFMPEG_DATADIR (if set), $HOME/.ffmpeg, and in the datadir defined + * at configuration time or in a "ffpresets" folder along the executable + * on win32, in that order. If no such file is found and + * codec_name is defined, then search for a file named + * codec_name-preset_name.avpreset in the above-mentioned directories. + * + * @param filename buffer where the name of the found filename is written + * @param filename_size size in bytes of the filename buffer + * @param preset_name name of the preset to search + * @param is_path tell if preset_name is a filename path + * @param codec_name name of the codec for which to look for the + * preset, may be NULL + */ +FILE *get_preset_file(char *filename, size_t filename_size, + const char *preset_name, int is_path, const char *codec_name); + +/** + * Realloc array to hold new_size elements of elem_size. + * Calls exit() on failure. + * + * @param array array to reallocate + * @param elem_size size in bytes of each element + * @param size new element count will be written here + * @param new_size number of elements to place in reallocated array + * @return reallocated array + */ +void *grow_array(void *array, int elem_size, int *size, int new_size); + +#define GROW_ARRAY(array, nb_elems)\ + array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) + +typedef struct FrameBuffer { + uint8_t *base[4]; + uint8_t *data[4]; + int linesize[4]; + + int h, w; + enum AVPixelFormat pix_fmt; + + int refcount; + struct FrameBuffer **pool; ///< head of the buffer pool + struct FrameBuffer *next; +} FrameBuffer; + +/** + * Get a frame from the pool. This is intended to be used as a callback for + * AVCodecContext.get_buffer. + * + * @param s codec context. s->opaque must be a pointer to the head of the + * buffer pool. + * @param frame frame->opaque will be set to point to the FrameBuffer + * containing the frame data. + */ +int codec_get_buffer(AVCodecContext *s, AVFrame *frame); + +/** + * A callback to be used for AVCodecContext.release_buffer along with + * codec_get_buffer(). + */ +void codec_release_buffer(AVCodecContext *s, AVFrame *frame); + +/** + * A callback to be used for AVFilterBuffer.free. + * @param fb buffer to free. fb->priv must be a pointer to the FrameBuffer + * containing the buffer data. + */ +void filter_release_buffer(AVFilterBuffer *fb); + +/** + * Free all the buffers in the pool. This must be called after all the + * buffers have been released. + */ +void free_buffer_pool(FrameBuffer **pool); + +#define GET_PIX_FMT_NAME(pix_fmt)\ + const char *name = av_get_pix_fmt_name(pix_fmt); + +#define GET_SAMPLE_FMT_NAME(sample_fmt)\ + const char *name = av_get_sample_fmt_name(sample_fmt) + +#define GET_SAMPLE_RATE_NAME(rate)\ + char name[16];\ + snprintf(name, sizeof(name), "%d", rate); + +#define GET_CH_LAYOUT_NAME(ch_layout)\ + char name[16];\ + snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); + +#define GET_CH_LAYOUT_DESC(ch_layout)\ + char name[128];\ + av_get_channel_layout_string(name, sizeof(name), 0, ch_layout); + +#endif /* CMDUTILS_H */ diff --git a/project/jni/application/ffplay/config.h b/project/jni/application/ffplay/config.h new file mode 100644 index 000000000..1083581a4 --- /dev/null +++ b/project/jni/application/ffplay/config.h @@ -0,0 +1,33 @@ +#ifndef __COINFIG_H__ +#define __COINFIG_H__ + +#define CONFIG_AVUTIL 1 +#define CONFIG_AVCODEC 1 +#define CONFIG_AVFORMAT 1 +#define CONFIG_AVDEVICE 1 +#define CONFIG_AVFILTER 1 +#define CONFIG_SWSCALE 1 +#define CONFIG_SWRESAMPLE 1 + +#define CONFIG_RTSP_DEMUXER 1 +#define CONFIG_MMSH_PROTOCOL 1 +#define CONFIG_NETWORK 1 + +#define CONFIG_GPL 1 + +#define FFMPEG_CONFIGURATION "" +#define FFMPEG_DATADIR "." +#define AVCONV_DATADIR "." +#define CC_IDENT "Android NDK r8e" + +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_UNISTD_H 1 +#define HAVE_ARPA_INET_H 1 +#define HAVE_POLL_H 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_SYS_RESOURCE_H 1 + +#define HAVE_SDL_VIDEO_SIZE 1 + +#endif diff --git a/project/jni/application/ffplay/ffplay.c b/project/jni/application/ffplay/ffplay.c new file mode 100644 index 000000000..181aa53f0 --- /dev/null +++ b/project/jni/application/ffplay/ffplay.c @@ -0,0 +1,3406 @@ +/* + * Copyright (c) 2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple media player based on the FFmpeg libraries + */ + +#include "config.h" +#include +#include +#include +#include +#include "libavutil/avstring.h" +#include "libavutil/colorspace.h" +#include "libavutil/mathematics.h" +#include "libavutil/pixdesc.h" +#include "libavutil/imgutils.h" +#include "libavutil/dict.h" +#include "libavutil/parseutils.h" +#include "libavutil/samplefmt.h" +#include "libavutil/avassert.h" +#include "libavutil/time.h" +#include "libavformat/avformat.h" +#include "libavdevice/avdevice.h" +#include "libswscale/swscale.h" +#include "libavutil/opt.h" +#include "libavcodec/avfft.h" +#include "libswresample/swresample.h" + +#if CONFIG_AVFILTER +# include "libavfilter/avcodec.h" +# include "libavfilter/avfilter.h" +# include "libavfilter/avfiltergraph.h" +# include "libavfilter/buffersink.h" +# include "libavfilter/buffersrc.h" +#endif + +#include +#include + +#include "cmdutils.h" + +#include + +#include +#define fprintf(X, ...) __android_log_print(ANDROID_LOG_INFO, "FFplay", __VA_ARGS__) +#define printf(...) __android_log_print(ANDROID_LOG_INFO, "FFplay", __VA_ARGS__) +#define av_log(X, Y, ...) __android_log_print(ANDROID_LOG_INFO, "FFplay", __VA_ARGS__) + + +const char program_name[] = "ffplay"; +const int program_birth_year = 2003; + +#define MAX_QUEUE_SIZE (15 * 1024 * 1024) +#define MIN_FRAMES 5 + +/* SDL audio buffer size, in samples. Should be small to have precise + A/V sync as SDL does not have hardware buffer fullness info. */ +#define SDL_AUDIO_BUFFER_SIZE 1024 + +/* no AV sync correction is done if below the AV sync threshold */ +#define AV_SYNC_THRESHOLD 0.01 +/* no AV correction is done if too big error */ +#define AV_NOSYNC_THRESHOLD 10.0 + +/* maximum audio speed change to get correct sync */ +#define SAMPLE_CORRECTION_PERCENT_MAX 10 + +/* external clock speed adjustment constants for realtime sources based on buffer fullness */ +#define EXTERNAL_CLOCK_SPEED_MIN 0.900 +#define EXTERNAL_CLOCK_SPEED_MAX 1.010 +#define EXTERNAL_CLOCK_SPEED_STEP 0.001 + +/* we use about AUDIO_DIFF_AVG_NB A-V differences to make the average */ +#define AUDIO_DIFF_AVG_NB 20 + +/* NOTE: the size must be big enough to compensate the hardware audio buffersize size */ +/* TODO: We assume that a decoded and resampled frame fits into this buffer */ +#define SAMPLE_ARRAY_SIZE (8 * 65536) + +#define CURSOR_HIDE_DELAY 1000000 + +static int64_t sws_flags = SWS_BICUBIC; + +typedef struct MyAVPacketList { + AVPacket pkt; + struct MyAVPacketList *next; + int serial; +} MyAVPacketList; + +typedef struct PacketQueue { + MyAVPacketList *first_pkt, *last_pkt; + int nb_packets; + int size; + int abort_request; + int serial; + SDL_mutex *mutex; + SDL_cond *cond; +} PacketQueue; + +#define VIDEO_PICTURE_QUEUE_SIZE 4 +#define SUBPICTURE_QUEUE_SIZE 4 + +typedef struct VideoPicture { + double pts; // presentation timestamp for this picture + int64_t pos; // byte position in file + int skip; + SDL_Overlay *bmp; + int width, height; /* source height & width */ + AVRational sample_aspect_ratio; + int allocated; + int reallocate; + int serial; + +#if CONFIG_AVFILTER + AVFilterBufferRef *picref; +#endif +} VideoPicture; + +typedef struct SubPicture { + double pts; /* presentation time stamp for this picture */ + AVSubtitle sub; +} SubPicture; + +typedef struct AudioParams { + int freq; + int channels; + int channel_layout; + enum AVSampleFormat fmt; +} AudioParams; + +enum { + AV_SYNC_AUDIO_MASTER, /* default choice */ + AV_SYNC_VIDEO_MASTER, + AV_SYNC_EXTERNAL_CLOCK, /* synchronize to an external clock */ +}; + +typedef struct VideoState { + SDL_Thread *read_tid; + SDL_Thread *video_tid; + SDL_Thread *refresh_tid; + AVInputFormat *iformat; + int no_background; + int abort_request; + int force_refresh; + int paused; + int last_paused; + int queue_attachments_req; + int seek_req; + int seek_flags; + int64_t seek_pos; + int64_t seek_rel; + int read_pause_return; + AVFormatContext *ic; + int realtime; + + int audio_stream; + + int av_sync_type; + double external_clock; ///< external clock base + double external_clock_drift; ///< external clock base - time (av_gettime) at which we updated external_clock + int64_t external_clock_time; ///< last reference time + double external_clock_speed; ///< speed of the external clock + + double audio_clock; + double audio_diff_cum; /* used for AV difference average computation */ + double audio_diff_avg_coef; + double audio_diff_threshold; + int audio_diff_avg_count; + AVStream *audio_st; + PacketQueue audioq; + int audio_hw_buf_size; + DECLARE_ALIGNED(16,uint8_t,audio_buf2)[AVCODEC_MAX_AUDIO_FRAME_SIZE * 4]; + uint8_t silence_buf[SDL_AUDIO_BUFFER_SIZE]; + uint8_t *audio_buf; + uint8_t *audio_buf1; + unsigned int audio_buf_size; /* in bytes */ + int audio_buf_index; /* in bytes */ + int audio_write_buf_size; + AVPacket audio_pkt_temp; + AVPacket audio_pkt; + int audio_pkt_temp_serial; + struct AudioParams audio_src; + struct AudioParams audio_tgt; + struct SwrContext *swr_ctx; + double audio_current_pts; + double audio_current_pts_drift; + int frame_drops_early; + int frame_drops_late; + AVFrame *frame; + + enum ShowMode { + SHOW_MODE_NONE = -1, SHOW_MODE_VIDEO = 0, SHOW_MODE_WAVES, SHOW_MODE_RDFT, SHOW_MODE_NB + } show_mode; + int16_t sample_array[SAMPLE_ARRAY_SIZE]; + int sample_array_index; + int last_i_start; + RDFTContext *rdft; + int rdft_bits; + FFTSample *rdft_data; + int xpos; + + SDL_Thread *subtitle_tid; + int subtitle_stream; + int subtitle_stream_changed; + AVStream *subtitle_st; + PacketQueue subtitleq; + SubPicture subpq[SUBPICTURE_QUEUE_SIZE]; + int subpq_size, subpq_rindex, subpq_windex; + SDL_mutex *subpq_mutex; + SDL_cond *subpq_cond; + + double frame_timer; + double frame_last_pts; + double frame_last_duration; + double frame_last_dropped_pts; + double frame_last_returned_time; + double frame_last_filter_delay; + int64_t frame_last_dropped_pos; + double video_clock; // pts of last decoded frame / predicted pts of next decoded frame + int video_stream; + AVStream *video_st; + PacketQueue videoq; + double video_current_pts; // current displayed pts (different from video_clock if frame fifos are used) + double video_current_pts_drift; // video_current_pts - time (av_gettime) at which we updated video_current_pts - used to have running video pts + int64_t video_current_pos; // current displayed file pos + double max_frame_duration; // maximum duration of a frame - above this, we consider the jump a timestamp discontinuity + VideoPicture pictq[VIDEO_PICTURE_QUEUE_SIZE]; + int pictq_size, pictq_rindex, pictq_windex; + SDL_mutex *pictq_mutex; + SDL_cond *pictq_cond; +#if !CONFIG_AVFILTER + struct SwsContext *img_convert_ctx; +#endif + SDL_Rect last_display_rect; + + char filename[1024]; + int width, height, xleft, ytop; + int step; + +#if CONFIG_AVFILTER + AVFilterContext *in_video_filter; // the first filter in the video chain + AVFilterContext *out_video_filter; // the last filter in the video chain + int use_dr1; + FrameBuffer *buffer_pool; +#endif + + int refresh; + int last_video_stream, last_audio_stream, last_subtitle_stream; + + SDL_cond *continue_read_thread; +} VideoState; + +/* options specified by the user */ +static AVInputFormat *file_iformat; +static const char *input_filename; +static const char *window_title; +static int fs_screen_width; +static int fs_screen_height; +static int screen_width = 0; +static int screen_height = 0; +static int audio_disable; +static int video_disable; +static int wanted_stream[AVMEDIA_TYPE_NB] = { + [AVMEDIA_TYPE_AUDIO] = -1, + [AVMEDIA_TYPE_VIDEO] = -1, + [AVMEDIA_TYPE_SUBTITLE] = -1, +}; +static int seek_by_bytes = -1; +static int display_disable; +static int show_status = 1; +static int av_sync_type = AV_SYNC_AUDIO_MASTER; +static int64_t start_time = AV_NOPTS_VALUE; +static int64_t duration = AV_NOPTS_VALUE; +static int workaround_bugs = 1; +static int fast = 0; +static int genpts = 0; +static int lowres = 0; +static int idct = FF_IDCT_AUTO; +static enum AVDiscard skip_frame = AVDISCARD_DEFAULT; +static enum AVDiscard skip_idct = AVDISCARD_DEFAULT; +static enum AVDiscard skip_loop_filter = AVDISCARD_DEFAULT; +static int error_concealment = 3; +static int decoder_reorder_pts = -1; +static int autoexit; +static int exit_on_keydown; +static int exit_on_mousedown; +static int loop = 1; +static int framedrop = -1; +static int infinite_buffer = -1; +static enum ShowMode show_mode = SHOW_MODE_NONE; +static const char *audio_codec_name; +static const char *subtitle_codec_name; +static const char *video_codec_name; +static int rdftspeed = 20; +static int64_t cursor_last_shown; +static int cursor_hidden = 0; +#if CONFIG_AVFILTER +static char *vfilters = NULL; +#endif + +/* current context */ +static int is_full_screen = 1; +static int64_t audio_callback_time; + +static AVPacket flush_pkt; + +#define FF_ALLOC_EVENT (SDL_USEREVENT) +#define FF_REFRESH_EVENT (SDL_USEREVENT + 1) +#define FF_QUIT_EVENT (SDL_USEREVENT + 2) + +static SDL_Surface *screen; + +static int packet_queue_put(PacketQueue *q, AVPacket *pkt); + +static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt) +{ + MyAVPacketList *pkt1; + + if (q->abort_request) + return -1; + + pkt1 = av_malloc(sizeof(MyAVPacketList)); + if (!pkt1) + return -1; + pkt1->pkt = *pkt; + pkt1->next = NULL; + if (pkt == &flush_pkt) + q->serial++; + pkt1->serial = q->serial; + + if (!q->last_pkt) + q->first_pkt = pkt1; + else + q->last_pkt->next = pkt1; + q->last_pkt = pkt1; + q->nb_packets++; + q->size += pkt1->pkt.size + sizeof(*pkt1); + /* XXX: should duplicate packet data in DV case */ + SDL_CondSignal(q->cond); + return 0; +} + +static int packet_queue_put(PacketQueue *q, AVPacket *pkt) +{ + int ret; + + /* duplicate the packet */ + if (pkt != &flush_pkt && av_dup_packet(pkt) < 0) + return -1; + + SDL_LockMutex(q->mutex); + ret = packet_queue_put_private(q, pkt); + SDL_UnlockMutex(q->mutex); + + if (pkt != &flush_pkt && ret < 0) + av_free_packet(pkt); + + return ret; +} + +/* packet queue handling */ +static void packet_queue_init(PacketQueue *q) +{ + memset(q, 0, sizeof(PacketQueue)); + q->mutex = SDL_CreateMutex(); + q->cond = SDL_CreateCond(); + q->abort_request = 1; +} + +static void packet_queue_flush(PacketQueue *q) +{ + MyAVPacketList *pkt, *pkt1; + + SDL_LockMutex(q->mutex); + for (pkt = q->first_pkt; pkt != NULL; pkt = pkt1) { + pkt1 = pkt->next; + av_free_packet(&pkt->pkt); + av_freep(&pkt); + } + q->last_pkt = NULL; + q->first_pkt = NULL; + q->nb_packets = 0; + q->size = 0; + SDL_UnlockMutex(q->mutex); +} + +static void packet_queue_destroy(PacketQueue *q) +{ + packet_queue_flush(q); + SDL_DestroyMutex(q->mutex); + SDL_DestroyCond(q->cond); +} + +static void packet_queue_abort(PacketQueue *q) +{ + SDL_LockMutex(q->mutex); + + q->abort_request = 1; + + SDL_CondSignal(q->cond); + + SDL_UnlockMutex(q->mutex); +} + +static void packet_queue_start(PacketQueue *q) +{ + SDL_LockMutex(q->mutex); + q->abort_request = 0; + packet_queue_put_private(q, &flush_pkt); + SDL_UnlockMutex(q->mutex); +} + +/* return < 0 if aborted, 0 if no packet and > 0 if packet. */ +static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block, int *serial) +{ + MyAVPacketList *pkt1; + int ret; + + SDL_LockMutex(q->mutex); + + for (;;) { + if (q->abort_request) { + ret = -1; + break; + } + + pkt1 = q->first_pkt; + if (pkt1) { + q->first_pkt = pkt1->next; + if (!q->first_pkt) + q->last_pkt = NULL; + q->nb_packets--; + q->size -= pkt1->pkt.size + sizeof(*pkt1); + *pkt = pkt1->pkt; + if (serial) + *serial = pkt1->serial; + av_free(pkt1); + ret = 1; + break; + } else if (!block) { + ret = 0; + break; + } else { + SDL_CondWait(q->cond, q->mutex); + } + } + SDL_UnlockMutex(q->mutex); + return ret; +} + +static inline void fill_rectangle(SDL_Surface *screen, + int x, int y, int w, int h, int color, int update) +{ + SDL_Rect rect; + rect.x = x; + rect.y = y; + rect.w = w; + rect.h = h; + SDL_FillRect(screen, &rect, color); + if (update && w > 0 && h > 0) + SDL_UpdateRect(screen, x, y, w, h); +} + +/* draw only the border of a rectangle */ +static void fill_border(int xleft, int ytop, int width, int height, int x, int y, int w, int h, int color, int update) +{ + int w1, w2, h1, h2; + + /* fill the background */ + w1 = x; + if (w1 < 0) + w1 = 0; + w2 = width - (x + w); + if (w2 < 0) + w2 = 0; + h1 = y; + if (h1 < 0) + h1 = 0; + h2 = height - (y + h); + if (h2 < 0) + h2 = 0; + fill_rectangle(screen, + xleft, ytop, + w1, height, + color, update); + fill_rectangle(screen, + xleft + width - w2, ytop, + w2, height, + color, update); + fill_rectangle(screen, + xleft + w1, ytop, + width - w1 - w2, h1, + color, update); + fill_rectangle(screen, + xleft + w1, ytop + height - h2, + width - w1 - w2, h2, + color, update); +} + +#define ALPHA_BLEND(a, oldp, newp, s)\ +((((oldp << s) * (255 - (a))) + (newp * (a))) / (255 << s)) + +#define RGBA_IN(r, g, b, a, s)\ +{\ + unsigned int v = ((const uint32_t *)(s))[0];\ + a = (v >> 24) & 0xff;\ + r = (v >> 16) & 0xff;\ + g = (v >> 8) & 0xff;\ + b = v & 0xff;\ +} + +#define YUVA_IN(y, u, v, a, s, pal)\ +{\ + unsigned int val = ((const uint32_t *)(pal))[*(const uint8_t*)(s)];\ + a = (val >> 24) & 0xff;\ + y = (val >> 16) & 0xff;\ + u = (val >> 8) & 0xff;\ + v = val & 0xff;\ +} + +#define YUVA_OUT(d, y, u, v, a)\ +{\ + ((uint32_t *)(d))[0] = (a << 24) | (y << 16) | (u << 8) | v;\ +} + + +#define BPP 1 + +static void blend_subrect(AVPicture *dst, const AVSubtitleRect *rect, int imgw, int imgh) +{ + int wrap, wrap3, width2, skip2; + int y, u, v, a, u1, v1, a1, w, h; + uint8_t *lum, *cb, *cr; + const uint8_t *p; + const uint32_t *pal; + int dstx, dsty, dstw, dsth; + + dstw = av_clip(rect->w, 0, imgw); + dsth = av_clip(rect->h, 0, imgh); + dstx = av_clip(rect->x, 0, imgw - dstw); + dsty = av_clip(rect->y, 0, imgh - dsth); + lum = dst->data[0] + dsty * dst->linesize[0]; + cb = dst->data[1] + (dsty >> 1) * dst->linesize[1]; + cr = dst->data[2] + (dsty >> 1) * dst->linesize[2]; + + width2 = ((dstw + 1) >> 1) + (dstx & ~dstw & 1); + skip2 = dstx >> 1; + wrap = dst->linesize[0]; + wrap3 = rect->pict.linesize[0]; + p = rect->pict.data[0]; + pal = (const uint32_t *)rect->pict.data[1]; /* Now in YCrCb! */ + + if (dsty & 1) { + lum += dstx; + cb += skip2; + cr += skip2; + + if (dstx & 1) { + YUVA_IN(y, u, v, a, p, pal); + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a >> 2, cb[0], u, 0); + cr[0] = ALPHA_BLEND(a >> 2, cr[0], v, 0); + cb++; + cr++; + lum++; + p += BPP; + } + for (w = dstw - (dstx & 1); w >= 2; w -= 2) { + YUVA_IN(y, u, v, a, p, pal); + u1 = u; + v1 = v; + a1 = a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + + YUVA_IN(y, u, v, a, p + BPP, pal); + u1 += u; + v1 += v; + a1 += a; + lum[1] = ALPHA_BLEND(a, lum[1], y, 0); + cb[0] = ALPHA_BLEND(a1 >> 2, cb[0], u1, 1); + cr[0] = ALPHA_BLEND(a1 >> 2, cr[0], v1, 1); + cb++; + cr++; + p += 2 * BPP; + lum += 2; + } + if (w) { + YUVA_IN(y, u, v, a, p, pal); + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a >> 2, cb[0], u, 0); + cr[0] = ALPHA_BLEND(a >> 2, cr[0], v, 0); + p++; + lum++; + } + p += wrap3 - dstw * BPP; + lum += wrap - dstw - dstx; + cb += dst->linesize[1] - width2 - skip2; + cr += dst->linesize[2] - width2 - skip2; + } + for (h = dsth - (dsty & 1); h >= 2; h -= 2) { + lum += dstx; + cb += skip2; + cr += skip2; + + if (dstx & 1) { + YUVA_IN(y, u, v, a, p, pal); + u1 = u; + v1 = v; + a1 = a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + p += wrap3; + lum += wrap; + YUVA_IN(y, u, v, a, p, pal); + u1 += u; + v1 += v; + a1 += a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a1 >> 2, cb[0], u1, 1); + cr[0] = ALPHA_BLEND(a1 >> 2, cr[0], v1, 1); + cb++; + cr++; + p += -wrap3 + BPP; + lum += -wrap + 1; + } + for (w = dstw - (dstx & 1); w >= 2; w -= 2) { + YUVA_IN(y, u, v, a, p, pal); + u1 = u; + v1 = v; + a1 = a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + + YUVA_IN(y, u, v, a, p + BPP, pal); + u1 += u; + v1 += v; + a1 += a; + lum[1] = ALPHA_BLEND(a, lum[1], y, 0); + p += wrap3; + lum += wrap; + + YUVA_IN(y, u, v, a, p, pal); + u1 += u; + v1 += v; + a1 += a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + + YUVA_IN(y, u, v, a, p + BPP, pal); + u1 += u; + v1 += v; + a1 += a; + lum[1] = ALPHA_BLEND(a, lum[1], y, 0); + + cb[0] = ALPHA_BLEND(a1 >> 2, cb[0], u1, 2); + cr[0] = ALPHA_BLEND(a1 >> 2, cr[0], v1, 2); + + cb++; + cr++; + p += -wrap3 + 2 * BPP; + lum += -wrap + 2; + } + if (w) { + YUVA_IN(y, u, v, a, p, pal); + u1 = u; + v1 = v; + a1 = a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + p += wrap3; + lum += wrap; + YUVA_IN(y, u, v, a, p, pal); + u1 += u; + v1 += v; + a1 += a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a1 >> 2, cb[0], u1, 1); + cr[0] = ALPHA_BLEND(a1 >> 2, cr[0], v1, 1); + cb++; + cr++; + p += -wrap3 + BPP; + lum += -wrap + 1; + } + p += wrap3 + (wrap3 - dstw * BPP); + lum += wrap + (wrap - dstw - dstx); + cb += dst->linesize[1] - width2 - skip2; + cr += dst->linesize[2] - width2 - skip2; + } + /* handle odd height */ + if (h) { + lum += dstx; + cb += skip2; + cr += skip2; + + if (dstx & 1) { + YUVA_IN(y, u, v, a, p, pal); + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a >> 2, cb[0], u, 0); + cr[0] = ALPHA_BLEND(a >> 2, cr[0], v, 0); + cb++; + cr++; + lum++; + p += BPP; + } + for (w = dstw - (dstx & 1); w >= 2; w -= 2) { + YUVA_IN(y, u, v, a, p, pal); + u1 = u; + v1 = v; + a1 = a; + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + + YUVA_IN(y, u, v, a, p + BPP, pal); + u1 += u; + v1 += v; + a1 += a; + lum[1] = ALPHA_BLEND(a, lum[1], y, 0); + cb[0] = ALPHA_BLEND(a1 >> 2, cb[0], u, 1); + cr[0] = ALPHA_BLEND(a1 >> 2, cr[0], v, 1); + cb++; + cr++; + p += 2 * BPP; + lum += 2; + } + if (w) { + YUVA_IN(y, u, v, a, p, pal); + lum[0] = ALPHA_BLEND(a, lum[0], y, 0); + cb[0] = ALPHA_BLEND(a >> 2, cb[0], u, 0); + cr[0] = ALPHA_BLEND(a >> 2, cr[0], v, 0); + } + } +} + +static void free_subpicture(SubPicture *sp) +{ + avsubtitle_free(&sp->sub); +} + +static void calculate_display_rect(SDL_Rect *rect, int scr_xleft, int scr_ytop, int scr_width, int scr_height, VideoPicture *vp) +{ + float aspect_ratio; + int width, height, x, y; + + if (vp->sample_aspect_ratio.num == 0) + aspect_ratio = 0; + else + aspect_ratio = av_q2d(vp->sample_aspect_ratio); + + if (aspect_ratio <= 0.0) + aspect_ratio = 1.0; + aspect_ratio *= (float)vp->width / (float)vp->height; + + /* XXX: we suppose the screen has a 1.0 pixel ratio */ + height = scr_height; + width = ((int)rint(height * aspect_ratio)) & ~1; + if (width > scr_width) { + width = scr_width; + height = ((int)rint(width / aspect_ratio)) & ~1; + } + x = (scr_width - width) / 2; + y = (scr_height - height) / 2; + rect->x = scr_xleft + x; + rect->y = scr_ytop + y; + rect->w = FFMAX(width, 1); + rect->h = FFMAX(height, 1); +} + +static void video_image_display(VideoState *is) +{ + VideoPicture *vp; + SubPicture *sp; + AVPicture pict; + SDL_Rect rect; + int i; + + vp = &is->pictq[is->pictq_rindex]; + if (vp->bmp) { + if (is->subtitle_st) { + if (is->subpq_size > 0) { + sp = &is->subpq[is->subpq_rindex]; + + if (vp->pts >= sp->pts + ((float) sp->sub.start_display_time / 1000)) { + SDL_LockYUVOverlay (vp->bmp); + + pict.data[0] = vp->bmp->pixels[0]; + pict.data[1] = vp->bmp->pixels[2]; + pict.data[2] = vp->bmp->pixels[1]; + + pict.linesize[0] = vp->bmp->pitches[0]; + pict.linesize[1] = vp->bmp->pitches[2]; + pict.linesize[2] = vp->bmp->pitches[1]; + + for (i = 0; i < sp->sub.num_rects; i++) + blend_subrect(&pict, sp->sub.rects[i], + vp->bmp->w, vp->bmp->h); + + SDL_UnlockYUVOverlay (vp->bmp); + } + } + } + + calculate_display_rect(&rect, is->xleft, is->ytop, is->width, is->height, vp); + + SDL_DisplayYUVOverlay(vp->bmp, &rect); + + if (rect.x != is->last_display_rect.x || rect.y != is->last_display_rect.y || rect.w != is->last_display_rect.w || rect.h != is->last_display_rect.h || is->force_refresh) { + int bgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00); + fill_border(is->xleft, is->ytop, is->width, is->height, rect.x, rect.y, rect.w, rect.h, bgcolor, 1); + is->last_display_rect = rect; + } + } +} + +static inline int compute_mod(int a, int b) +{ + return a < 0 ? a%b + b : a%b; +} + +static void video_audio_display(VideoState *s) +{ + int i, i_start, x, y1, y, ys, delay, n, nb_display_channels; + int ch, channels, h, h2, bgcolor, fgcolor; + int64_t time_diff; + int rdft_bits, nb_freq; + + for (rdft_bits = 1; (1 << rdft_bits) < 2 * s->height; rdft_bits++) + ; + nb_freq = 1 << (rdft_bits - 1); + + /* compute display index : center on currently output samples */ + channels = s->audio_tgt.channels; + nb_display_channels = channels; + if (!s->paused) { + int data_used= s->show_mode == SHOW_MODE_WAVES ? s->width : (2*nb_freq); + n = 2 * channels; + delay = s->audio_write_buf_size; + delay /= n; + + /* to be more precise, we take into account the time spent since + the last buffer computation */ + if (audio_callback_time) { + time_diff = av_gettime() - audio_callback_time; + delay -= (time_diff * s->audio_tgt.freq) / 1000000; + } + + delay += 2 * data_used; + if (delay < data_used) + delay = data_used; + + i_start= x = compute_mod(s->sample_array_index - delay * channels, SAMPLE_ARRAY_SIZE); + if (s->show_mode == SHOW_MODE_WAVES) { + h = INT_MIN; + for (i = 0; i < 1000; i += channels) { + int idx = (SAMPLE_ARRAY_SIZE + x - i) % SAMPLE_ARRAY_SIZE; + int a = s->sample_array[idx]; + int b = s->sample_array[(idx + 4 * channels) % SAMPLE_ARRAY_SIZE]; + int c = s->sample_array[(idx + 5 * channels) % SAMPLE_ARRAY_SIZE]; + int d = s->sample_array[(idx + 9 * channels) % SAMPLE_ARRAY_SIZE]; + int score = a - d; + if (h < score && (b ^ c) < 0) { + h = score; + i_start = idx; + } + } + } + + s->last_i_start = i_start; + } else { + i_start = s->last_i_start; + } + + bgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00); + if (s->show_mode == SHOW_MODE_WAVES) { + fill_rectangle(screen, + s->xleft, s->ytop, s->width, s->height, + bgcolor, 0); + + fgcolor = SDL_MapRGB(screen->format, 0xff, 0xff, 0xff); + + /* total height for one channel */ + h = s->height / nb_display_channels; + /* graph height / 2 */ + h2 = (h * 9) / 20; + for (ch = 0; ch < nb_display_channels; ch++) { + i = i_start + ch; + y1 = s->ytop + ch * h + (h / 2); /* position of center line */ + for (x = 0; x < s->width; x++) { + y = (s->sample_array[i] * h2) >> 15; + if (y < 0) { + y = -y; + ys = y1 - y; + } else { + ys = y1; + } + fill_rectangle(screen, + s->xleft + x, ys, 1, y, + fgcolor, 0); + i += channels; + if (i >= SAMPLE_ARRAY_SIZE) + i -= SAMPLE_ARRAY_SIZE; + } + } + + fgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0xff); + + for (ch = 1; ch < nb_display_channels; ch++) { + y = s->ytop + ch * h; + fill_rectangle(screen, + s->xleft, y, s->width, 1, + fgcolor, 0); + } + SDL_UpdateRect(screen, s->xleft, s->ytop, s->width, s->height); + } else { + nb_display_channels= FFMIN(nb_display_channels, 2); + if (rdft_bits != s->rdft_bits) { + av_rdft_end(s->rdft); + av_free(s->rdft_data); + s->rdft = av_rdft_init(rdft_bits, DFT_R2C); + s->rdft_bits = rdft_bits; + s->rdft_data = av_malloc(4 * nb_freq * sizeof(*s->rdft_data)); + } + { + FFTSample *data[2]; + for (ch = 0; ch < nb_display_channels; ch++) { + data[ch] = s->rdft_data + 2 * nb_freq * ch; + i = i_start + ch; + for (x = 0; x < 2 * nb_freq; x++) { + double w = (x-nb_freq) * (1.0 / nb_freq); + data[ch][x] = s->sample_array[i] * (1.0 - w * w); + i += channels; + if (i >= SAMPLE_ARRAY_SIZE) + i -= SAMPLE_ARRAY_SIZE; + } + av_rdft_calc(s->rdft, data[ch]); + } + // least efficient way to do this, we should of course directly access it but its more than fast enough + for (y = 0; y < s->height; y++) { + double w = 1 / sqrt(nb_freq); + int a = sqrt(w * sqrt(data[0][2 * y + 0] * data[0][2 * y + 0] + data[0][2 * y + 1] * data[0][2 * y + 1])); + int b = (nb_display_channels == 2 ) ? sqrt(w * sqrt(data[1][2 * y + 0] * data[1][2 * y + 0] + + data[1][2 * y + 1] * data[1][2 * y + 1])) : a; + a = FFMIN(a, 255); + b = FFMIN(b, 255); + fgcolor = SDL_MapRGB(screen->format, a, b, (a + b) / 2); + + fill_rectangle(screen, + s->xpos, s->height-y, 1, 1, + fgcolor, 0); + } + } + SDL_UpdateRect(screen, s->xpos, s->ytop, 1, s->height); + if (!s->paused) + s->xpos++; + if (s->xpos >= s->width) + s->xpos= s->xleft; + } +} + +static void stream_close(VideoState *is) +{ + VideoPicture *vp; + int i; + /* XXX: use a special url_shutdown call to abort parse cleanly */ + is->abort_request = 1; + SDL_WaitThread(is->read_tid, NULL); + SDL_WaitThread(is->refresh_tid, NULL); + packet_queue_destroy(&is->videoq); + packet_queue_destroy(&is->audioq); + packet_queue_destroy(&is->subtitleq); + + /* free all pictures */ + for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) { + vp = &is->pictq[i]; +#if CONFIG_AVFILTER + avfilter_unref_bufferp(&vp->picref); +#endif + if (vp->bmp) { + SDL_FreeYUVOverlay(vp->bmp); + vp->bmp = NULL; + } + } + SDL_DestroyMutex(is->pictq_mutex); + SDL_DestroyCond(is->pictq_cond); + SDL_DestroyMutex(is->subpq_mutex); + SDL_DestroyCond(is->subpq_cond); + SDL_DestroyCond(is->continue_read_thread); +#if !CONFIG_AVFILTER + if (is->img_convert_ctx) + sws_freeContext(is->img_convert_ctx); +#endif + av_free(is); +} + +static void do_exit(VideoState *is) +{ + if (is) { + stream_close(is); + } + av_lockmgr_register(NULL); + uninit_opts(); +#if CONFIG_AVFILTER + avfilter_uninit(); + av_freep(&vfilters); +#endif + avformat_network_deinit(); + if (show_status) + printf("\n"); + SDL_Quit(); + av_log(NULL, AV_LOG_QUIET, "%s", ""); + exit(0); +} + +static void sigterm_handler(int sig) +{ + exit(123); +} + +static int video_open(VideoState *is, int force_set_video_mode) +{ + int flags = SDL_SWSURFACE; /*SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL*/; + int w,h; + VideoPicture *vp = &is->pictq[is->pictq_rindex]; + SDL_Rect rect; + + if (is_full_screen) flags |= SDL_FULLSCREEN; + else flags |= SDL_RESIZABLE; + + if (is_full_screen && fs_screen_width) { + w = fs_screen_width; + h = fs_screen_height; + } else if (!is_full_screen && screen_width) { + w = screen_width; + h = screen_height; + } else if (vp->width) { + calculate_display_rect(&rect, 0, 0, INT_MAX, vp->height, vp); + w = rect.w; + h = rect.h; + } else { + w = 640; + h = 480; + } + if (screen && is->width == screen->w && screen->w == w + && is->height== screen->h && screen->h == h && !force_set_video_mode) + return 0; + screen = SDL_SetVideoMode(w, h, 0, flags); + if (!screen) { + fprintf(stderr, "SDL: could not set video mode - exiting\n"); + do_exit(is); + } + if (!window_title) + window_title = input_filename; + SDL_WM_SetCaption(window_title, window_title); + + is->width = screen->w; + is->height = screen->h; + + return 0; +} + +/* display the current picture, if any */ +static void video_display(VideoState *is) +{ + if (!screen) + video_open(is, 1); + if (is->audio_st && is->show_mode != SHOW_MODE_VIDEO) + video_audio_display(is); + else if (is->video_st) + video_image_display(is); +} + +static int refresh_thread(void *opaque) +{ + VideoState *is= opaque; + while (!is->abort_request) { + SDL_Event event; + event.type = FF_REFRESH_EVENT; + event.user.data1 = opaque; + if (!is->refresh && (!is->paused || is->force_refresh)) { + is->refresh = 1; + SDL_PushEvent(&event); + } + //FIXME ideally we should wait the correct time but SDLs event passing is so slow it would be silly + av_usleep(is->audio_st && is->show_mode != SHOW_MODE_VIDEO ? rdftspeed*1000 : 5000); + } + return 0; +} + +/* get the current audio clock value */ +static double get_audio_clock(VideoState *is) +{ + if (is->paused) { + return is->audio_current_pts; + } else { + return is->audio_current_pts_drift + av_gettime() / 1000000.0; + } +} + +/* get the current video clock value */ +static double get_video_clock(VideoState *is) +{ + if (is->paused) { + return is->video_current_pts; + } else { + return is->video_current_pts_drift + av_gettime() / 1000000.0; + } +} + +/* get the current external clock value */ +static double get_external_clock(VideoState *is) +{ + if (is->paused) { + return is->external_clock; + } else { + double time = av_gettime() / 1000000.0; + return is->external_clock_drift + time - (time - is->external_clock_time / 1000000.0) * (1.0 - is->external_clock_speed); + } +} + +static int get_master_sync_type(VideoState *is) { + if (is->av_sync_type == AV_SYNC_VIDEO_MASTER) { + if (is->video_st) + return AV_SYNC_VIDEO_MASTER; + else + return AV_SYNC_AUDIO_MASTER; + } else if (is->av_sync_type == AV_SYNC_AUDIO_MASTER) { + if (is->audio_st) + return AV_SYNC_AUDIO_MASTER; + else + return AV_SYNC_EXTERNAL_CLOCK; + } else { + return AV_SYNC_EXTERNAL_CLOCK; + } +} + +/* get the current master clock value */ +static double get_master_clock(VideoState *is) +{ + double val; + + switch (get_master_sync_type(is)) { + case AV_SYNC_VIDEO_MASTER: + val = get_video_clock(is); + break; + case AV_SYNC_AUDIO_MASTER: + val = get_audio_clock(is); + break; + default: + val = get_external_clock(is); + break; + } + return val; +} + +static void update_external_clock_pts(VideoState *is, double pts) +{ + is->external_clock_time = av_gettime(); + is->external_clock = pts; + is->external_clock_drift = pts - is->external_clock_time / 1000000.0; +} + +static void check_external_clock_sync(VideoState *is, double pts) { + if (fabs(get_external_clock(is) - pts) > AV_NOSYNC_THRESHOLD) { + update_external_clock_pts(is, pts); + } +} + +static void update_external_clock_speed(VideoState *is, double speed) { + update_external_clock_pts(is, get_external_clock(is)); + is->external_clock_speed = speed; +} + +static void check_external_clock_speed(VideoState *is) { + if (is->video_stream >= 0 && is->videoq.nb_packets <= MIN_FRAMES / 2 || + is->audio_stream >= 0 && is->audioq.nb_packets <= MIN_FRAMES / 2) { + update_external_clock_speed(is, FFMAX(EXTERNAL_CLOCK_SPEED_MIN, is->external_clock_speed - EXTERNAL_CLOCK_SPEED_STEP)); + } else if ((is->video_stream < 0 || is->videoq.nb_packets > MIN_FRAMES * 2) && + (is->audio_stream < 0 || is->audioq.nb_packets > MIN_FRAMES * 2)) { + update_external_clock_speed(is, FFMIN(EXTERNAL_CLOCK_SPEED_MAX, is->external_clock_speed + EXTERNAL_CLOCK_SPEED_STEP)); + } else { + double speed = is->external_clock_speed; + if (speed != 1.0) + update_external_clock_speed(is, speed + EXTERNAL_CLOCK_SPEED_STEP * (1.0 - speed) / fabs(1.0 - speed)); + } +} + +/* seek in the stream */ +static void stream_seek(VideoState *is, int64_t pos, int64_t rel, int seek_by_bytes) +{ + if (!is->seek_req) { + is->seek_pos = pos; + is->seek_rel = rel; + is->seek_flags &= ~AVSEEK_FLAG_BYTE; + if (seek_by_bytes) + is->seek_flags |= AVSEEK_FLAG_BYTE; + is->seek_req = 1; + } +} + +/* pause or resume the video */ +static void stream_toggle_pause(VideoState *is) +{ + if (is->paused) { + is->frame_timer += av_gettime() / 1000000.0 + is->video_current_pts_drift - is->video_current_pts; + if (is->read_pause_return != AVERROR(ENOSYS)) { + is->video_current_pts = is->video_current_pts_drift + av_gettime() / 1000000.0; + } + is->video_current_pts_drift = is->video_current_pts - av_gettime() / 1000000.0; + } + update_external_clock_pts(is, get_external_clock(is)); + is->paused = !is->paused; +} + +static double compute_target_delay(double delay, VideoState *is) +{ + double sync_threshold, diff; + + /* update delay to follow master synchronisation source */ + if (get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER) { + /* if video is slave, we try to correct big delays by + duplicating or deleting a frame */ + diff = get_video_clock(is) - get_master_clock(is); + + /* skip or repeat frame. We take into account the + delay to compute the threshold. I still don't know + if it is the best guess */ + sync_threshold = FFMAX(AV_SYNC_THRESHOLD, delay); + if (fabs(diff) < AV_NOSYNC_THRESHOLD) { + if (diff <= -sync_threshold) + delay = 0; + else if (diff >= sync_threshold) + delay = 2 * delay; + } + } + + av_dlog(NULL, "video: delay=%0.3f A-V=%f\n", + delay, -diff); + + return delay; +} + +static void pictq_next_picture(VideoState *is) { + /* update queue size and signal for next picture */ + if (++is->pictq_rindex == VIDEO_PICTURE_QUEUE_SIZE) + is->pictq_rindex = 0; + + SDL_LockMutex(is->pictq_mutex); + is->pictq_size--; + SDL_CondSignal(is->pictq_cond); + SDL_UnlockMutex(is->pictq_mutex); +} + +static void pictq_prev_picture(VideoState *is) { + VideoPicture *prevvp; + /* update queue size and signal for the previous picture */ + prevvp = &is->pictq[(is->pictq_rindex + VIDEO_PICTURE_QUEUE_SIZE - 1) % VIDEO_PICTURE_QUEUE_SIZE]; + if (prevvp->allocated && !prevvp->skip) { + SDL_LockMutex(is->pictq_mutex); + if (is->pictq_size < VIDEO_PICTURE_QUEUE_SIZE - 1) { + if (--is->pictq_rindex == -1) + is->pictq_rindex = VIDEO_PICTURE_QUEUE_SIZE - 1; + is->pictq_size++; + } + SDL_CondSignal(is->pictq_cond); + SDL_UnlockMutex(is->pictq_mutex); + } +} + +static void update_video_pts(VideoState *is, double pts, int64_t pos, int serial) { + double time = av_gettime() / 1000000.0; + /* update current video pts */ + is->video_current_pts = pts; + is->video_current_pts_drift = is->video_current_pts - time; + is->video_current_pos = pos; + is->frame_last_pts = pts; + if (is->videoq.serial == serial) + check_external_clock_sync(is, is->video_current_pts); +} + +/* called to display each frame */ +static void video_refresh(void *opaque) +{ + VideoState *is = opaque; + VideoPicture *vp; + double time; + + SubPicture *sp, *sp2; + + if (!is->paused && get_master_sync_type(is) == AV_SYNC_EXTERNAL_CLOCK && is->realtime) + check_external_clock_speed(is); + + if (!display_disable && is->show_mode != SHOW_MODE_VIDEO && is->audio_st) + video_display(is); + + if (is->video_st) { + if (is->force_refresh) + pictq_prev_picture(is); +retry: + if (is->pictq_size == 0) { + SDL_LockMutex(is->pictq_mutex); + if (is->frame_last_dropped_pts != AV_NOPTS_VALUE && is->frame_last_dropped_pts > is->frame_last_pts) { + update_video_pts(is, is->frame_last_dropped_pts, is->frame_last_dropped_pos, 0); + is->frame_last_dropped_pts = AV_NOPTS_VALUE; + } + SDL_UnlockMutex(is->pictq_mutex); + // nothing to do, no picture to display in the queue + } else { + double last_duration, duration, delay; + /* dequeue the picture */ + vp = &is->pictq[is->pictq_rindex]; + + if (vp->skip) { + pictq_next_picture(is); + goto retry; + } + + if (is->paused) + goto display; + + /* compute nominal last_duration */ + last_duration = vp->pts - is->frame_last_pts; + if (last_duration > 0 && last_duration < is->max_frame_duration) { + /* if duration of the last frame was sane, update last_duration in video state */ + is->frame_last_duration = last_duration; + } + delay = compute_target_delay(is->frame_last_duration, is); + + time= av_gettime()/1000000.0; + if (time < is->frame_timer + delay) + return; + + if (delay > 0) + is->frame_timer += delay * FFMAX(1, floor((time-is->frame_timer) / delay)); + + SDL_LockMutex(is->pictq_mutex); + update_video_pts(is, vp->pts, vp->pos, vp->serial); + SDL_UnlockMutex(is->pictq_mutex); + + if (is->pictq_size > 1) { + VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE]; + duration = nextvp->pts - vp->pts; + if(!is->step && (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){ + is->frame_drops_late++; + pictq_next_picture(is); + goto retry; + } + } + + if (is->subtitle_st) { + if (is->subtitle_stream_changed) { + SDL_LockMutex(is->subpq_mutex); + + while (is->subpq_size) { + free_subpicture(&is->subpq[is->subpq_rindex]); + + /* update queue size and signal for next picture */ + if (++is->subpq_rindex == SUBPICTURE_QUEUE_SIZE) + is->subpq_rindex = 0; + + is->subpq_size--; + } + is->subtitle_stream_changed = 0; + + SDL_CondSignal(is->subpq_cond); + SDL_UnlockMutex(is->subpq_mutex); + } else { + if (is->subpq_size > 0) { + sp = &is->subpq[is->subpq_rindex]; + + if (is->subpq_size > 1) + sp2 = &is->subpq[(is->subpq_rindex + 1) % SUBPICTURE_QUEUE_SIZE]; + else + sp2 = NULL; + + if ((is->video_current_pts > (sp->pts + ((float) sp->sub.end_display_time / 1000))) + || (sp2 && is->video_current_pts > (sp2->pts + ((float) sp2->sub.start_display_time / 1000)))) + { + free_subpicture(sp); + + /* update queue size and signal for next picture */ + if (++is->subpq_rindex == SUBPICTURE_QUEUE_SIZE) + is->subpq_rindex = 0; + + SDL_LockMutex(is->subpq_mutex); + is->subpq_size--; + SDL_CondSignal(is->subpq_cond); + SDL_UnlockMutex(is->subpq_mutex); + } + } + } + } + +display: + /* display picture */ + if (!display_disable && is->show_mode == SHOW_MODE_VIDEO) + video_display(is); + + pictq_next_picture(is); + + if (is->step && !is->paused) + stream_toggle_pause(is); + } + } + is->force_refresh = 0; + if (show_status) { + static int64_t last_time; + int64_t cur_time; + int aqsize, vqsize, sqsize; + double av_diff; + + cur_time = av_gettime(); + if (!last_time || (cur_time - last_time) >= 30000) { + aqsize = 0; + vqsize = 0; + sqsize = 0; + if (is->audio_st) + aqsize = is->audioq.size; + if (is->video_st) + vqsize = is->videoq.size; + if (is->subtitle_st) + sqsize = is->subtitleq.size; + av_diff = 0; + if (is->audio_st && is->video_st) + av_diff = get_audio_clock(is) - get_video_clock(is); + printf("%7.2f A-V:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64" \r", + get_master_clock(is), + av_diff, + is->frame_drops_early + is->frame_drops_late, + aqsize / 1024, + vqsize / 1024, + sqsize, + is->video_st ? is->video_st->codec->pts_correction_num_faulty_dts : 0, + is->video_st ? is->video_st->codec->pts_correction_num_faulty_pts : 0); + fflush(stdout); + last_time = cur_time; + } + } +} + +/* allocate a picture (needs to do that in main thread to avoid + potential locking problems */ +static void alloc_picture(VideoState *is) +{ + VideoPicture *vp; + + vp = &is->pictq[is->pictq_windex]; + + if (vp->bmp) + SDL_FreeYUVOverlay(vp->bmp); + +#if CONFIG_AVFILTER + avfilter_unref_bufferp(&vp->picref); +#endif + + video_open(is, 1); + + vp->bmp = SDL_CreateYUVOverlay(vp->width, vp->height, + SDL_YV12_OVERLAY, + screen); + if (!vp->bmp || vp->bmp->pitches[0] < vp->width) { + /* SDL allocates a buffer smaller than requested if the video + * overlay hardware is unable to support the requested size. */ + fprintf(stderr, "Error: the video system does not support an image\n" + "size of %dx%d pixels. Try using -lowres or -vf \"scale=w:h\"\n" + "to reduce the image size.\n", vp->width, vp->height ); + do_exit(is); + } + + SDL_LockMutex(is->pictq_mutex); + vp->allocated = 1; + SDL_CondSignal(is->pictq_cond); + SDL_UnlockMutex(is->pictq_mutex); +} + +static void duplicate_right_border_pixels(SDL_Overlay *bmp) { + int i, width, height; + Uint8 *p, *maxp; + for (i = 0; i < 3; i++) { + width = bmp->w; + height = bmp->h; + if (i > 0) { + width >>= 1; + height >>= 1; + } + if (bmp->pitches[i] > width) { + maxp = bmp->pixels[i] + bmp->pitches[i] * height - 1; + for (p = bmp->pixels[i] + width - 1; p < maxp; p += bmp->pitches[i]) + *(p+1) = *p; + } + } +} + +static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_t pos, int serial) +{ + VideoPicture *vp; + double frame_delay, pts = pts1; + + /* compute the exact PTS for the picture if it is omitted in the stream + * pts1 is the dts of the pkt / pts of the frame */ + if (pts != 0) { + /* update video clock with pts, if present */ + is->video_clock = pts; + } else { + pts = is->video_clock; + } + /* update video clock for next frame */ + frame_delay = av_q2d(is->video_st->codec->time_base); + /* for MPEG2, the frame can be repeated, so we update the + clock accordingly */ + frame_delay += src_frame->repeat_pict * (frame_delay * 0.5); + is->video_clock += frame_delay; + +#if defined(DEBUG_SYNC) && 0 + printf("frame_type=%c clock=%0.3f pts=%0.3f\n", + av_get_picture_type_char(src_frame->pict_type), pts, pts1); +#endif + + /* wait until we have space to put a new picture */ + SDL_LockMutex(is->pictq_mutex); + + /* keep the last already displayed picture in the queue */ + while (is->pictq_size >= VIDEO_PICTURE_QUEUE_SIZE - 2 && + !is->videoq.abort_request) { + SDL_CondWait(is->pictq_cond, is->pictq_mutex); + } + SDL_UnlockMutex(is->pictq_mutex); + + if (is->videoq.abort_request) + return -1; + + vp = &is->pictq[is->pictq_windex]; + +#if CONFIG_AVFILTER + vp->sample_aspect_ratio = ((AVFilterBufferRef *)src_frame->opaque)->video->sample_aspect_ratio; +#else + vp->sample_aspect_ratio = av_guess_sample_aspect_ratio(is->ic, is->video_st, src_frame); +#endif + + /* alloc or resize hardware picture buffer */ + if (!vp->bmp || vp->reallocate || !vp->allocated || + vp->width != src_frame->width || + vp->height != src_frame->height) { + SDL_Event event; + + vp->allocated = 0; + vp->reallocate = 0; + vp->width = src_frame->width; + vp->height = src_frame->height; + + /* the allocation must be done in the main thread to avoid + locking problems. */ + event.type = FF_ALLOC_EVENT; + event.user.data1 = is; + SDL_PushEvent(&event); + + /* wait until the picture is allocated */ + SDL_LockMutex(is->pictq_mutex); + while (!vp->allocated && !is->videoq.abort_request) { + SDL_CondWait(is->pictq_cond, is->pictq_mutex); + } + /* if the queue is aborted, we have to pop the pending ALLOC event or wait for the allocation to complete */ + if (is->videoq.abort_request && SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_EVENTMASK(FF_ALLOC_EVENT)) != 1) { + while (!vp->allocated) { + SDL_CondWait(is->pictq_cond, is->pictq_mutex); + } + } + SDL_UnlockMutex(is->pictq_mutex); + + if (is->videoq.abort_request) + return -1; + } + + /* if the frame is not skipped, then display it */ + if (vp->bmp) { + AVPicture pict = { { 0 } }; +#if CONFIG_AVFILTER + avfilter_unref_bufferp(&vp->picref); + vp->picref = src_frame->opaque; +#endif + + /* get a pointer on the bitmap */ + SDL_LockYUVOverlay (vp->bmp); + + pict.data[0] = vp->bmp->pixels[0]; + pict.data[1] = vp->bmp->pixels[2]; + pict.data[2] = vp->bmp->pixels[1]; + + pict.linesize[0] = vp->bmp->pitches[0]; + pict.linesize[1] = vp->bmp->pitches[2]; + pict.linesize[2] = vp->bmp->pitches[1]; + +#if CONFIG_AVFILTER + // FIXME use direct rendering + av_picture_copy(&pict, (AVPicture *)src_frame, + src_frame->format, vp->width, vp->height); +#else + av_opt_get_int(sws_opts, "sws_flags", 0, &sws_flags); + is->img_convert_ctx = sws_getCachedContext(is->img_convert_ctx, + vp->width, vp->height, src_frame->format, vp->width, vp->height, + AV_PIX_FMT_YUV420P, sws_flags, NULL, NULL, NULL); + if (is->img_convert_ctx == NULL) { + fprintf(stderr, "Cannot initialize the conversion context\n"); + exit(1); + } + sws_scale(is->img_convert_ctx, src_frame->data, src_frame->linesize, + 0, vp->height, pict.data, pict.linesize); +#endif + /* workaround SDL PITCH_WORKAROUND */ + duplicate_right_border_pixels(vp->bmp); + /* update the bitmap content */ + SDL_UnlockYUVOverlay(vp->bmp); + + vp->pts = pts; + vp->pos = pos; + vp->skip = 0; + vp->serial = serial; + + /* now we can update the picture count */ + if (++is->pictq_windex == VIDEO_PICTURE_QUEUE_SIZE) + is->pictq_windex = 0; + SDL_LockMutex(is->pictq_mutex); + is->pictq_size++; + SDL_UnlockMutex(is->pictq_mutex); + } + return 0; +} + +static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacket *pkt, int *serial) +{ + int got_picture, i; + + if (packet_queue_get(&is->videoq, pkt, 1, serial) < 0) + return -1; + + if (pkt->data == flush_pkt.data) { + avcodec_flush_buffers(is->video_st->codec); + + SDL_LockMutex(is->pictq_mutex); + // Make sure there are no long delay timers (ideally we should just flush the queue but that's harder) + for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) { + is->pictq[i].skip = 1; + } + while (is->pictq_size && !is->videoq.abort_request) { + SDL_CondWait(is->pictq_cond, is->pictq_mutex); + } + is->video_current_pos = -1; + is->frame_last_pts = AV_NOPTS_VALUE; + is->frame_last_duration = 0; + is->frame_timer = (double)av_gettime() / 1000000.0; + is->frame_last_dropped_pts = AV_NOPTS_VALUE; + SDL_UnlockMutex(is->pictq_mutex); + + return 0; + } + + if(avcodec_decode_video2(is->video_st->codec, frame, &got_picture, pkt) < 0) + return 0; + + if (got_picture) { + int ret = 1; + + if (decoder_reorder_pts == -1) { + *pts = av_frame_get_best_effort_timestamp(frame); + } else if (decoder_reorder_pts) { + *pts = frame->pkt_pts; + } else { + *pts = frame->pkt_dts; + } + + if (*pts == AV_NOPTS_VALUE) { + *pts = 0; + } + + if (framedrop>0 || (framedrop && get_master_sync_type(is) != AV_SYNC_VIDEO_MASTER)) { + SDL_LockMutex(is->pictq_mutex); + if (is->frame_last_pts != AV_NOPTS_VALUE && *pts) { + double clockdiff = get_video_clock(is) - get_master_clock(is); + double dpts = av_q2d(is->video_st->time_base) * *pts; + double ptsdiff = dpts - is->frame_last_pts; + if (fabs(clockdiff) < AV_NOSYNC_THRESHOLD && + ptsdiff > 0 && ptsdiff < AV_NOSYNC_THRESHOLD && + clockdiff + ptsdiff - is->frame_last_filter_delay < 0) { + is->frame_last_dropped_pos = pkt->pos; + is->frame_last_dropped_pts = dpts; + is->frame_drops_early++; + ret = 0; + } + } + SDL_UnlockMutex(is->pictq_mutex); + } + + return ret; + } + return 0; +} + +#if CONFIG_AVFILTER +static int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph, + AVFilterContext *source_ctx, AVFilterContext *sink_ctx) +{ + int ret; + AVFilterInOut *outputs = NULL, *inputs = NULL; + + if (filtergraph) { + outputs = avfilter_inout_alloc(); + inputs = avfilter_inout_alloc(); + if (!outputs || !inputs) { + ret = AVERROR(ENOMEM); + goto fail; + } + + outputs->name = av_strdup("in"); + outputs->filter_ctx = source_ctx; + outputs->pad_idx = 0; + outputs->next = NULL; + + inputs->name = av_strdup("out"); + inputs->filter_ctx = sink_ctx; + inputs->pad_idx = 0; + inputs->next = NULL; + + if ((ret = avfilter_graph_parse(graph, filtergraph, &inputs, &outputs, NULL)) < 0) + goto fail; + } else { + if ((ret = avfilter_link(source_ctx, 0, sink_ctx, 0)) < 0) + goto fail; + } + + ret = avfilter_graph_config(graph, NULL); +fail: + avfilter_inout_free(&outputs); + avfilter_inout_free(&inputs); + return ret; +} + +static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const char *vfilters, AVFrame *frame) +{ + static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }; + char sws_flags_str[128]; + char buffersrc_args[256]; + int ret; + AVBufferSinkParams *buffersink_params = av_buffersink_params_alloc(); + AVFilterContext *filt_src = NULL, *filt_out = NULL, *filt_crop; + AVCodecContext *codec = is->video_st->codec; + + if (!buffersink_params) + return AVERROR(ENOMEM); + + snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%"PRId64, sws_flags); + graph->scale_sws_opts = av_strdup(sws_flags_str); + + snprintf(buffersrc_args, sizeof(buffersrc_args), + "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", + frame->width, frame->height, frame->format, + is->video_st->time_base.num, is->video_st->time_base.den, + codec->sample_aspect_ratio.num, FFMAX(codec->sample_aspect_ratio.den, 1)); + + if ((ret = avfilter_graph_create_filter(&filt_src, + avfilter_get_by_name("buffer"), + "ffplay_buffer", buffersrc_args, NULL, + graph)) < 0) + goto fail; + + buffersink_params->pixel_fmts = pix_fmts; + ret = avfilter_graph_create_filter(&filt_out, + avfilter_get_by_name("ffbuffersink"), + "ffplay_buffersink", NULL, buffersink_params, graph); + if (ret < 0) + goto fail; + + /* SDL YUV code is not handling odd width/height for some driver + * combinations, therefore we crop the picture to an even width/height. */ + if ((ret = avfilter_graph_create_filter(&filt_crop, + avfilter_get_by_name("crop"), + "ffplay_crop", "floor(in_w/2)*2:floor(in_h/2)*2", NULL, graph)) < 0) + goto fail; + if ((ret = avfilter_link(filt_crop, 0, filt_out, 0)) < 0) + goto fail; + + if ((ret = configure_filtergraph(graph, vfilters, filt_src, filt_crop)) < 0) + goto fail; + + is->in_video_filter = filt_src; + is->out_video_filter = filt_out; + +fail: + av_freep(&buffersink_params); + return ret; +} + +#endif /* CONFIG_AVFILTER */ + +static int video_thread(void *arg) +{ + AVPacket pkt = { 0 }; + VideoState *is = arg; + AVFrame *frame = avcodec_alloc_frame(); + int64_t pts_int = AV_NOPTS_VALUE, pos = -1; + double pts; + int ret; + int serial = 0; + +#if CONFIG_AVFILTER + AVCodecContext *codec = is->video_st->codec; + AVFilterGraph *graph = avfilter_graph_alloc(); + AVFilterContext *filt_out = NULL, *filt_in = NULL; + int last_w = 0; + int last_h = 0; + enum AVPixelFormat last_format = -2; + + if (codec->codec->capabilities & CODEC_CAP_DR1) { + is->use_dr1 = 1; + codec->get_buffer = codec_get_buffer; + codec->release_buffer = codec_release_buffer; + codec->opaque = &is->buffer_pool; + } +#endif + + for (;;) { +#if CONFIG_AVFILTER + AVFilterBufferRef *picref; + AVRational tb; +#endif + while (is->paused && !is->videoq.abort_request) + SDL_Delay(10); + + avcodec_get_frame_defaults(frame); + av_free_packet(&pkt); + + ret = get_video_frame(is, frame, &pts_int, &pkt, &serial); + if (ret < 0) + goto the_end; + + if (!ret) + continue; + +#if CONFIG_AVFILTER + if ( last_w != frame->width + || last_h != frame->height + || last_format != frame->format) { + av_log(NULL, AV_LOG_INFO, "Frame changed from size:%dx%d to size:%dx%d\n", + last_w, last_h, frame->width, frame->height); + avfilter_graph_free(&graph); + graph = avfilter_graph_alloc(); + if ((ret = configure_video_filters(graph, is, vfilters, frame)) < 0) { + SDL_Event event; + event.type = FF_QUIT_EVENT; + event.user.data1 = is; + SDL_PushEvent(&event); + av_free_packet(&pkt); + goto the_end; + } + filt_in = is->in_video_filter; + filt_out = is->out_video_filter; + last_w = frame->width; + last_h = frame->height; + last_format = frame->format; + } + + frame->pts = pts_int; + frame->sample_aspect_ratio = av_guess_sample_aspect_ratio(is->ic, is->video_st, frame); + if (is->use_dr1 && frame->opaque) { + FrameBuffer *buf = frame->opaque; + AVFilterBufferRef *fb = avfilter_get_video_buffer_ref_from_arrays( + frame->data, frame->linesize, + AV_PERM_READ | AV_PERM_PRESERVE, + frame->width, frame->height, + frame->format); + + avfilter_copy_frame_props(fb, frame); + fb->buf->priv = buf; + fb->buf->free = filter_release_buffer; + + buf->refcount++; + av_buffersrc_add_ref(filt_in, fb, AV_BUFFERSRC_FLAG_NO_COPY); + + } else + av_buffersrc_write_frame(filt_in, frame); + + av_free_packet(&pkt); + + while (ret >= 0) { + is->frame_last_returned_time = av_gettime() / 1000000.0; + + ret = av_buffersink_get_buffer_ref(filt_out, &picref, 0); + if (ret < 0) { + ret = 0; + break; + } + + is->frame_last_filter_delay = av_gettime() / 1000000.0 - is->frame_last_returned_time; + if (fabs(is->frame_last_filter_delay) > AV_NOSYNC_THRESHOLD / 10.0) + is->frame_last_filter_delay = 0; + + avfilter_copy_buf_props(frame, picref); + + pts_int = picref->pts; + tb = filt_out->inputs[0]->time_base; + pos = picref->pos; + frame->opaque = picref; + + if (av_cmp_q(tb, is->video_st->time_base)) { + av_unused int64_t pts1 = pts_int; + pts_int = av_rescale_q(pts_int, tb, is->video_st->time_base); + av_dlog(NULL, "video_thread(): " + "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n", + tb.num, tb.den, pts1, + is->video_st->time_base.num, is->video_st->time_base.den, pts_int); + } + pts = pts_int * av_q2d(is->video_st->time_base); + ret = queue_picture(is, frame, pts, pos, serial); + } +#else + pts = pts_int * av_q2d(is->video_st->time_base); + ret = queue_picture(is, frame, pts, pkt.pos, serial); +#endif + + if (ret < 0) + goto the_end; + } + the_end: + avcodec_flush_buffers(is->video_st->codec); +#if CONFIG_AVFILTER + avfilter_graph_free(&graph); +#endif + av_free_packet(&pkt); + avcodec_free_frame(&frame); + return 0; +} + +static int subtitle_thread(void *arg) +{ + VideoState *is = arg; + SubPicture *sp; + AVPacket pkt1, *pkt = &pkt1; + int got_subtitle; + double pts; + int i, j; + int r, g, b, y, u, v, a; + + for (;;) { + while (is->paused && !is->subtitleq.abort_request) { + SDL_Delay(10); + } + if (packet_queue_get(&is->subtitleq, pkt, 1, NULL) < 0) + break; + + if (pkt->data == flush_pkt.data) { + avcodec_flush_buffers(is->subtitle_st->codec); + continue; + } + SDL_LockMutex(is->subpq_mutex); + while (is->subpq_size >= SUBPICTURE_QUEUE_SIZE && + !is->subtitleq.abort_request) { + SDL_CondWait(is->subpq_cond, is->subpq_mutex); + } + SDL_UnlockMutex(is->subpq_mutex); + + if (is->subtitleq.abort_request) + return 0; + + sp = &is->subpq[is->subpq_windex]; + + /* NOTE: ipts is the PTS of the _first_ picture beginning in + this packet, if any */ + pts = 0; + if (pkt->pts != AV_NOPTS_VALUE) + pts = av_q2d(is->subtitle_st->time_base) * pkt->pts; + + avcodec_decode_subtitle2(is->subtitle_st->codec, &sp->sub, + &got_subtitle, pkt); + if (got_subtitle && sp->sub.format == 0) { + if (sp->sub.pts != AV_NOPTS_VALUE) + pts = sp->sub.pts / (double)AV_TIME_BASE; + sp->pts = pts; + + for (i = 0; i < sp->sub.num_rects; i++) + { + for (j = 0; j < sp->sub.rects[i]->nb_colors; j++) + { + RGBA_IN(r, g, b, a, (uint32_t*)sp->sub.rects[i]->pict.data[1] + j); + y = RGB_TO_Y_CCIR(r, g, b); + u = RGB_TO_U_CCIR(r, g, b, 0); + v = RGB_TO_V_CCIR(r, g, b, 0); + YUVA_OUT((uint32_t*)sp->sub.rects[i]->pict.data[1] + j, y, u, v, a); + } + } + + /* now we can update the picture count */ + if (++is->subpq_windex == SUBPICTURE_QUEUE_SIZE) + is->subpq_windex = 0; + SDL_LockMutex(is->subpq_mutex); + is->subpq_size++; + SDL_UnlockMutex(is->subpq_mutex); + } + av_free_packet(pkt); + } + return 0; +} + +/* copy samples for viewing in editor window */ +static void update_sample_display(VideoState *is, short *samples, int samples_size) +{ + int size, len; + + size = samples_size / sizeof(short); + while (size > 0) { + len = SAMPLE_ARRAY_SIZE - is->sample_array_index; + if (len > size) + len = size; + memcpy(is->sample_array + is->sample_array_index, samples, len * sizeof(short)); + samples += len; + is->sample_array_index += len; + if (is->sample_array_index >= SAMPLE_ARRAY_SIZE) + is->sample_array_index = 0; + size -= len; + } +} + +/* return the wanted number of samples to get better sync if sync_type is video + * or external master clock */ +static int synchronize_audio(VideoState *is, int nb_samples) +{ + int wanted_nb_samples = nb_samples; + + /* if not master, then we try to remove or add samples to correct the clock */ + if (get_master_sync_type(is) != AV_SYNC_AUDIO_MASTER) { + double diff, avg_diff; + int min_nb_samples, max_nb_samples; + + diff = get_audio_clock(is) - get_master_clock(is); + + if (fabs(diff) < AV_NOSYNC_THRESHOLD) { + is->audio_diff_cum = diff + is->audio_diff_avg_coef * is->audio_diff_cum; + if (is->audio_diff_avg_count < AUDIO_DIFF_AVG_NB) { + /* not enough measures to have a correct estimate */ + is->audio_diff_avg_count++; + } else { + /* estimate the A-V difference */ + avg_diff = is->audio_diff_cum * (1.0 - is->audio_diff_avg_coef); + + if (fabs(avg_diff) >= is->audio_diff_threshold) { + wanted_nb_samples = nb_samples + (int)(diff * is->audio_src.freq); + min_nb_samples = ((nb_samples * (100 - SAMPLE_CORRECTION_PERCENT_MAX) / 100)); + max_nb_samples = ((nb_samples * (100 + SAMPLE_CORRECTION_PERCENT_MAX) / 100)); + wanted_nb_samples = FFMIN(FFMAX(wanted_nb_samples, min_nb_samples), max_nb_samples); + } + av_dlog(NULL, "diff=%f adiff=%f sample_diff=%d apts=%0.3f vpts=%0.3f %f\n", + diff, avg_diff, wanted_nb_samples - nb_samples, + is->audio_clock, is->video_clock, is->audio_diff_threshold); + } + } else { + /* too big difference : may be initial PTS errors, so + reset A-V filter */ + is->audio_diff_avg_count = 0; + is->audio_diff_cum = 0; + } + } + + return wanted_nb_samples; +} + +/* decode one audio frame and returns its uncompressed size */ +static int audio_decode_frame(VideoState *is, double *pts_ptr) +{ + AVPacket *pkt_temp = &is->audio_pkt_temp; + AVPacket *pkt = &is->audio_pkt; + AVCodecContext *dec = is->audio_st->codec; + int len1, len2, data_size, resampled_data_size; + int64_t dec_channel_layout; + int got_frame; + double pts; + int new_packet = 0; + int flush_complete = 0; + int wanted_nb_samples; + + for (;;) { + /* NOTE: the audio packet can contain several frames */ + while (pkt_temp->size > 0 || (!pkt_temp->data && new_packet)) { + if (!is->frame) { + if (!(is->frame = avcodec_alloc_frame())) + return AVERROR(ENOMEM); + } else + avcodec_get_frame_defaults(is->frame); + + if (is->paused) + return -1; + + if (flush_complete) + break; + new_packet = 0; + len1 = avcodec_decode_audio4(dec, is->frame, &got_frame, pkt_temp); + if (len1 < 0) { + /* if error, we skip the frame */ + pkt_temp->size = 0; + break; + } + + pkt_temp->data += len1; + pkt_temp->size -= len1; + + if (!got_frame) { + /* stop sending empty packets if the decoder is finished */ + if (!pkt_temp->data && dec->codec->capabilities & CODEC_CAP_DELAY) + flush_complete = 1; + continue; + } + data_size = av_samples_get_buffer_size(NULL, is->frame->channels, + is->frame->nb_samples, + is->frame->format, 1); + + dec_channel_layout = + (is->frame->channel_layout && is->frame->channels == av_get_channel_layout_nb_channels(is->frame->channel_layout)) ? + is->frame->channel_layout : av_get_default_channel_layout(is->frame->channels); + wanted_nb_samples = synchronize_audio(is, is->frame->nb_samples); + + if (is->frame->format != is->audio_src.fmt || + dec_channel_layout != is->audio_src.channel_layout || + is->frame->sample_rate != is->audio_src.freq || + (wanted_nb_samples != is->frame->nb_samples && !is->swr_ctx)) { + swr_free(&is->swr_ctx); + is->swr_ctx = swr_alloc_set_opts(NULL, + is->audio_tgt.channel_layout, is->audio_tgt.fmt, is->audio_tgt.freq, + dec_channel_layout, is->frame->format, is->frame->sample_rate, + 0, NULL); + if (!is->swr_ctx || swr_init(is->swr_ctx) < 0) { + fprintf(stderr, "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", + is->frame->sample_rate, av_get_sample_fmt_name(is->frame->format), (int)is->frame->channels, + is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.channels); + break; + } + is->audio_src.channel_layout = dec_channel_layout; + is->audio_src.channels = is->frame->channels; + is->audio_src.freq = is->frame->sample_rate; + is->audio_src.fmt = is->frame->format; + } + + if (is->swr_ctx) { + const uint8_t **in = (const uint8_t **)is->frame->extended_data; + uint8_t *out[] = {is->audio_buf2}; + int out_count = sizeof(is->audio_buf2) / is->audio_tgt.channels / av_get_bytes_per_sample(is->audio_tgt.fmt); + if (wanted_nb_samples != is->frame->nb_samples) { + if (swr_set_compensation(is->swr_ctx, (wanted_nb_samples - is->frame->nb_samples) * is->audio_tgt.freq / is->frame->sample_rate, + wanted_nb_samples * is->audio_tgt.freq / is->frame->sample_rate) < 0) { + fprintf(stderr, "swr_set_compensation() failed\n"); + break; + } + } + len2 = swr_convert(is->swr_ctx, out, out_count, in, is->frame->nb_samples); + if (len2 < 0) { + fprintf(stderr, "swr_convert() failed\n"); + break; + } + if (len2 == out_count) { + fprintf(stderr, "warning: audio buffer is probably too small\n"); + swr_init(is->swr_ctx); + } + is->audio_buf = is->audio_buf2; + resampled_data_size = len2 * is->audio_tgt.channels * av_get_bytes_per_sample(is->audio_tgt.fmt); + } else { + is->audio_buf = is->frame->data[0]; + resampled_data_size = data_size; + } + + /* if no pts, then compute it */ + pts = is->audio_clock; + *pts_ptr = pts; + is->audio_clock += (double)data_size / + (is->frame->channels * is->frame->sample_rate * av_get_bytes_per_sample(is->frame->format)); +#ifdef DEBUG + { + static double last_clock; + printf("audio: delay=%0.3f clock=%0.3f pts=%0.3f\n", + is->audio_clock - last_clock, + is->audio_clock, pts); + last_clock = is->audio_clock; + } +#endif + return resampled_data_size; + } + + /* free the current packet */ + if (pkt->data) + av_free_packet(pkt); + memset(pkt_temp, 0, sizeof(*pkt_temp)); + + if (is->paused || is->audioq.abort_request) { + return -1; + } + + if (is->audioq.nb_packets == 0) + SDL_CondSignal(is->continue_read_thread); + + /* read next packet */ + if ((new_packet = packet_queue_get(&is->audioq, pkt, 1, &is->audio_pkt_temp_serial)) < 0) + return -1; + + if (pkt->data == flush_pkt.data) { + avcodec_flush_buffers(dec); + flush_complete = 0; + } + + *pkt_temp = *pkt; + + /* if update the audio clock with the pts */ + if (pkt->pts != AV_NOPTS_VALUE) { + is->audio_clock = av_q2d(is->audio_st->time_base)*pkt->pts; + } + } +} + +/* prepare a new audio buffer */ +static void sdl_audio_callback(void *opaque, Uint8 *stream, int len) +{ + VideoState *is = opaque; + int audio_size, len1; + int bytes_per_sec; + int frame_size = av_samples_get_buffer_size(NULL, is->audio_tgt.channels, 1, is->audio_tgt.fmt, 1); + double pts; + + audio_callback_time = av_gettime(); + + while (len > 0) { + if (is->audio_buf_index >= is->audio_buf_size) { + audio_size = audio_decode_frame(is, &pts); + if (audio_size < 0) { + /* if error, just output silence */ + is->audio_buf = is->silence_buf; + is->audio_buf_size = sizeof(is->silence_buf) / frame_size * frame_size; + } else { + if (is->show_mode != SHOW_MODE_VIDEO) + update_sample_display(is, (int16_t *)is->audio_buf, audio_size); + is->audio_buf_size = audio_size; + } + is->audio_buf_index = 0; + } + len1 = is->audio_buf_size - is->audio_buf_index; + if (len1 > len) + len1 = len; + memcpy(stream, (uint8_t *)is->audio_buf + is->audio_buf_index, len1); + len -= len1; + stream += len1; + is->audio_buf_index += len1; + } + bytes_per_sec = is->audio_tgt.freq * is->audio_tgt.channels * av_get_bytes_per_sample(is->audio_tgt.fmt); + is->audio_write_buf_size = is->audio_buf_size - is->audio_buf_index; + /* Let's assume the audio driver that is used by SDL has two periods. */ + is->audio_current_pts = is->audio_clock - (double)(2 * is->audio_hw_buf_size + is->audio_write_buf_size) / bytes_per_sec; + is->audio_current_pts_drift = is->audio_current_pts - audio_callback_time / 1000000.0; + if (is->audioq.serial == is->audio_pkt_temp_serial) + check_external_clock_sync(is, is->audio_current_pts); +} + +static int audio_open(void *opaque, int64_t wanted_channel_layout, int wanted_nb_channels, int wanted_sample_rate, struct AudioParams *audio_hw_params) +{ + SDL_AudioSpec wanted_spec, spec; + const char *env; + const int next_nb_channels[] = {0, 0, 1, 6, 2, 6, 4, 6}; + + env = SDL_getenv("SDL_AUDIO_CHANNELS"); + if (env) { + wanted_nb_channels = atoi(env); + wanted_channel_layout = av_get_default_channel_layout(wanted_nb_channels); + } + if (!wanted_channel_layout || wanted_nb_channels != av_get_channel_layout_nb_channels(wanted_channel_layout)) { + wanted_channel_layout = av_get_default_channel_layout(wanted_nb_channels); + wanted_channel_layout &= ~AV_CH_LAYOUT_STEREO_DOWNMIX; + } + wanted_spec.channels = av_get_channel_layout_nb_channels(wanted_channel_layout); + wanted_spec.freq = wanted_sample_rate; + if (wanted_spec.freq <= 0 || wanted_spec.channels <= 0) { + fprintf(stderr, "Invalid sample rate or channel count!\n"); + return -1; + } + wanted_spec.format = AUDIO_S16SYS; + wanted_spec.silence = 0; + wanted_spec.samples = SDL_AUDIO_BUFFER_SIZE; + wanted_spec.callback = sdl_audio_callback; + wanted_spec.userdata = opaque; + while (SDL_OpenAudio(&wanted_spec, &spec) < 0) { + fprintf(stderr, "SDL_OpenAudio (%d channels): %s\n", wanted_spec.channels, SDL_GetError()); + wanted_spec.channels = next_nb_channels[FFMIN(7, wanted_spec.channels)]; + if (!wanted_spec.channels) { + fprintf(stderr, "No more channel combinations to try, audio open failed\n"); + return -1; + } + wanted_channel_layout = av_get_default_channel_layout(wanted_spec.channels); + } + if (spec.format != AUDIO_S16SYS) { + fprintf(stderr, "SDL advised audio format %d is not supported!\n", spec.format); + return -1; + } + if (spec.channels != wanted_spec.channels) { + wanted_channel_layout = av_get_default_channel_layout(spec.channels); + if (!wanted_channel_layout) { + fprintf(stderr, "SDL advised channel count %d is not supported!\n", spec.channels); + return -1; + } + } + + audio_hw_params->fmt = AV_SAMPLE_FMT_S16; + audio_hw_params->freq = spec.freq; + audio_hw_params->channel_layout = wanted_channel_layout; + audio_hw_params->channels = spec.channels; + return spec.size; +} + +/* open a given stream. Return 0 if OK */ +static int stream_component_open(VideoState *is, int stream_index) +{ + AVFormatContext *ic = is->ic; + AVCodecContext *avctx; + AVCodec *codec; + const char *forced_codec_name = NULL; + AVDictionary *opts; + AVDictionaryEntry *t = NULL; + + if (stream_index < 0 || stream_index >= ic->nb_streams) + return -1; + avctx = ic->streams[stream_index]->codec; + + codec = avcodec_find_decoder(avctx->codec_id); + + switch(avctx->codec_type){ + case AVMEDIA_TYPE_AUDIO : is->last_audio_stream = stream_index; forced_codec_name = audio_codec_name; break; + case AVMEDIA_TYPE_SUBTITLE: is->last_subtitle_stream = stream_index; forced_codec_name = subtitle_codec_name; break; + case AVMEDIA_TYPE_VIDEO : is->last_video_stream = stream_index; forced_codec_name = video_codec_name; break; + } + if (forced_codec_name) + codec = avcodec_find_decoder_by_name(forced_codec_name); + if (!codec) { + if (forced_codec_name) fprintf(stderr, "No codec could be found with name '%s'\n", forced_codec_name); + else fprintf(stderr, "No codec could be found with id %d\n", avctx->codec_id); + return -1; + } + + avctx->codec_id = codec->id; + avctx->workaround_bugs = workaround_bugs; + avctx->lowres = lowres; + if(avctx->lowres > codec->max_lowres){ + av_log(avctx, AV_LOG_WARNING, "The maximum value for lowres supported by the decoder is %d\n", + codec->max_lowres); + avctx->lowres= codec->max_lowres; + } + avctx->idct_algo = idct; + avctx->skip_frame = skip_frame; + avctx->skip_idct = skip_idct; + avctx->skip_loop_filter = skip_loop_filter; + avctx->error_concealment = error_concealment; + + if(avctx->lowres) avctx->flags |= CODEC_FLAG_EMU_EDGE; + if (fast) avctx->flags2 |= CODEC_FLAG2_FAST; + if(codec->capabilities & CODEC_CAP_DR1) + avctx->flags |= CODEC_FLAG_EMU_EDGE; + + opts = filter_codec_opts(codec_opts, avctx->codec_id, ic, ic->streams[stream_index], codec); + if (!av_dict_get(opts, "threads", NULL, 0)) + av_dict_set(&opts, "threads", "auto", 0); + if (avcodec_open2(avctx, codec, &opts) < 0) + return -1; + if ((t = av_dict_get(opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key); + return AVERROR_OPTION_NOT_FOUND; + } + + /* prepare audio output */ + if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { + int audio_hw_buf_size = audio_open(is, avctx->channel_layout, avctx->channels, avctx->sample_rate, &is->audio_src); + if (audio_hw_buf_size < 0) + return -1; + is->audio_hw_buf_size = audio_hw_buf_size; + is->audio_tgt = is->audio_src; + } + + ic->streams[stream_index]->discard = AVDISCARD_DEFAULT; + switch (avctx->codec_type) { + case AVMEDIA_TYPE_AUDIO: + is->audio_stream = stream_index; + is->audio_st = ic->streams[stream_index]; + is->audio_buf_size = 0; + is->audio_buf_index = 0; + + /* init averaging filter */ + is->audio_diff_avg_coef = exp(log(0.01) / AUDIO_DIFF_AVG_NB); + is->audio_diff_avg_count = 0; + /* since we do not have a precise anough audio fifo fullness, + we correct audio sync only if larger than this threshold */ + is->audio_diff_threshold = 2.0 * is->audio_hw_buf_size / av_samples_get_buffer_size(NULL, is->audio_tgt.channels, is->audio_tgt.freq, is->audio_tgt.fmt, 1); + + memset(&is->audio_pkt, 0, sizeof(is->audio_pkt)); + memset(&is->audio_pkt_temp, 0, sizeof(is->audio_pkt_temp)); + packet_queue_start(&is->audioq); + SDL_PauseAudio(0); + break; + case AVMEDIA_TYPE_VIDEO: + is->video_stream = stream_index; + is->video_st = ic->streams[stream_index]; + + packet_queue_start(&is->videoq); + is->video_tid = SDL_CreateThread(video_thread, is); + break; + case AVMEDIA_TYPE_SUBTITLE: + is->subtitle_stream = stream_index; + is->subtitle_st = ic->streams[stream_index]; + packet_queue_start(&is->subtitleq); + + is->subtitle_tid = SDL_CreateThread(subtitle_thread, is); + break; + default: + break; + } + return 0; +} + +static void stream_component_close(VideoState *is, int stream_index) +{ + AVFormatContext *ic = is->ic; + AVCodecContext *avctx; + + if (stream_index < 0 || stream_index >= ic->nb_streams) + return; + avctx = ic->streams[stream_index]->codec; + + switch (avctx->codec_type) { + case AVMEDIA_TYPE_AUDIO: + packet_queue_abort(&is->audioq); + + SDL_CloseAudio(); + + packet_queue_flush(&is->audioq); + av_free_packet(&is->audio_pkt); + swr_free(&is->swr_ctx); + av_freep(&is->audio_buf1); + is->audio_buf = NULL; + avcodec_free_frame(&is->frame); + + if (is->rdft) { + av_rdft_end(is->rdft); + av_freep(&is->rdft_data); + is->rdft = NULL; + is->rdft_bits = 0; + } + break; + case AVMEDIA_TYPE_VIDEO: + packet_queue_abort(&is->videoq); + + /* note: we also signal this mutex to make sure we deblock the + video thread in all cases */ + SDL_LockMutex(is->pictq_mutex); + SDL_CondSignal(is->pictq_cond); + SDL_UnlockMutex(is->pictq_mutex); + + SDL_WaitThread(is->video_tid, NULL); + + packet_queue_flush(&is->videoq); + break; + case AVMEDIA_TYPE_SUBTITLE: + packet_queue_abort(&is->subtitleq); + + /* note: we also signal this mutex to make sure we deblock the + video thread in all cases */ + SDL_LockMutex(is->subpq_mutex); + is->subtitle_stream_changed = 1; + + SDL_CondSignal(is->subpq_cond); + SDL_UnlockMutex(is->subpq_mutex); + + SDL_WaitThread(is->subtitle_tid, NULL); + + packet_queue_flush(&is->subtitleq); + break; + default: + break; + } + + ic->streams[stream_index]->discard = AVDISCARD_ALL; + avcodec_close(avctx); +#if CONFIG_AVFILTER + free_buffer_pool(&is->buffer_pool); +#endif + switch (avctx->codec_type) { + case AVMEDIA_TYPE_AUDIO: + is->audio_st = NULL; + is->audio_stream = -1; + break; + case AVMEDIA_TYPE_VIDEO: + is->video_st = NULL; + is->video_stream = -1; + break; + case AVMEDIA_TYPE_SUBTITLE: + is->subtitle_st = NULL; + is->subtitle_stream = -1; + break; + default: + break; + } +} + +static int decode_interrupt_cb(void *ctx) +{ + VideoState *is = ctx; + return is->abort_request; +} + +static int is_realtime(AVFormatContext *s) +{ + if( !strcmp(s->iformat->name, "rtp") + || !strcmp(s->iformat->name, "rtsp") + || !strcmp(s->iformat->name, "sdp") + ) + return 1; + + if(s->pb && ( !strncmp(s->filename, "rtp:", 4) + || !strncmp(s->filename, "udp:", 4) + ) + ) + return 1; + return 0; +} + +/* this thread gets the stream from the disk or the network */ +static int read_thread(void *arg) +{ + VideoState *is = arg; + AVFormatContext *ic = NULL; + int err, i, ret; + int st_index[AVMEDIA_TYPE_NB]; + AVPacket pkt1, *pkt = &pkt1; + int eof = 0; + int pkt_in_play_range = 0; + AVDictionaryEntry *t; + AVDictionary **opts; + int orig_nb_streams; + SDL_mutex *wait_mutex = SDL_CreateMutex(); + + memset(st_index, -1, sizeof(st_index)); + is->last_video_stream = is->video_stream = -1; + is->last_audio_stream = is->audio_stream = -1; + is->last_subtitle_stream = is->subtitle_stream = -1; + + ic = avformat_alloc_context(); + ic->interrupt_callback.callback = decode_interrupt_cb; + ic->interrupt_callback.opaque = is; + err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts); + if (err < 0) { + print_error(is->filename, err); + ret = -1; + goto fail; + } + if ((t = av_dict_get(format_opts, "", NULL, AV_DICT_IGNORE_SUFFIX))) { + av_log(NULL, AV_LOG_ERROR, "Option %s not found.\n", t->key); + ret = AVERROR_OPTION_NOT_FOUND; + goto fail; + } + is->ic = ic; + + if (genpts) + ic->flags |= AVFMT_FLAG_GENPTS; + + opts = setup_find_stream_info_opts(ic, codec_opts); + orig_nb_streams = ic->nb_streams; + + err = avformat_find_stream_info(ic, opts); + if (err < 0) { + fprintf(stderr, "%s: could not find codec parameters\n", is->filename); + ret = -1; + goto fail; + } + for (i = 0; i < orig_nb_streams; i++) + av_dict_free(&opts[i]); + av_freep(&opts); + + if (ic->pb) + ic->pb->eof_reached = 0; // FIXME hack, ffplay maybe should not use url_feof() to test for the end + + if (seek_by_bytes < 0) + seek_by_bytes = !!(ic->iformat->flags & AVFMT_TS_DISCONT); + + is->max_frame_duration = (ic->iformat->flags & AVFMT_TS_DISCONT) ? 10.0 : 3600.0; + + /* if seeking requested, we execute it */ + if (start_time != AV_NOPTS_VALUE) { + int64_t timestamp; + + timestamp = start_time; + /* add the stream start time */ + if (ic->start_time != AV_NOPTS_VALUE) + timestamp += ic->start_time; + ret = avformat_seek_file(ic, -1, INT64_MIN, timestamp, INT64_MAX, 0); + if (ret < 0) { + fprintf(stderr, "%s: could not seek to position %0.3f\n", + is->filename, (double)timestamp / AV_TIME_BASE); + } + } + + is->realtime = is_realtime(ic); + + for (i = 0; i < ic->nb_streams; i++) + ic->streams[i]->discard = AVDISCARD_ALL; + if (!video_disable) + st_index[AVMEDIA_TYPE_VIDEO] = + av_find_best_stream(ic, AVMEDIA_TYPE_VIDEO, + wanted_stream[AVMEDIA_TYPE_VIDEO], -1, NULL, 0); + if (!audio_disable) + st_index[AVMEDIA_TYPE_AUDIO] = + av_find_best_stream(ic, AVMEDIA_TYPE_AUDIO, + wanted_stream[AVMEDIA_TYPE_AUDIO], + st_index[AVMEDIA_TYPE_VIDEO], + NULL, 0); + if (!video_disable) + st_index[AVMEDIA_TYPE_SUBTITLE] = + av_find_best_stream(ic, AVMEDIA_TYPE_SUBTITLE, + wanted_stream[AVMEDIA_TYPE_SUBTITLE], + (st_index[AVMEDIA_TYPE_AUDIO] >= 0 ? + st_index[AVMEDIA_TYPE_AUDIO] : + st_index[AVMEDIA_TYPE_VIDEO]), + NULL, 0); + if (show_status) { + av_dump_format(ic, 0, is->filename, 0); + } + + is->show_mode = show_mode; + + /* open the streams */ + if (st_index[AVMEDIA_TYPE_AUDIO] >= 0) { + stream_component_open(is, st_index[AVMEDIA_TYPE_AUDIO]); + } + + ret = -1; + if (st_index[AVMEDIA_TYPE_VIDEO] >= 0) { + ret = stream_component_open(is, st_index[AVMEDIA_TYPE_VIDEO]); + } + is->refresh_tid = SDL_CreateThread(refresh_thread, is); + if (is->show_mode == SHOW_MODE_NONE) + is->show_mode = ret >= 0 ? SHOW_MODE_VIDEO : SHOW_MODE_RDFT; + + if (st_index[AVMEDIA_TYPE_SUBTITLE] >= 0) { + stream_component_open(is, st_index[AVMEDIA_TYPE_SUBTITLE]); + } + + if (is->video_stream < 0 && is->audio_stream < 0) { + fprintf(stderr, "%s: could not open codecs\n", is->filename); + ret = -1; + goto fail; + } + + if (infinite_buffer < 0 && is->realtime) + infinite_buffer = 1; + + for (;;) { + if (is->abort_request) + break; + if (is->paused != is->last_paused) { + is->last_paused = is->paused; + if (is->paused) + is->read_pause_return = av_read_pause(ic); + else + av_read_play(ic); + } +#if CONFIG_RTSP_DEMUXER || CONFIG_MMSH_PROTOCOL + if (is->paused && + (!strcmp(ic->iformat->name, "rtsp") || + (ic->pb && !strncmp(input_filename, "mmsh:", 5)))) { + /* wait 10 ms to avoid trying to get another packet */ + /* XXX: horrible */ + SDL_Delay(10); + continue; + } +#endif + if (is->seek_req) { + int64_t seek_target = is->seek_pos; + int64_t seek_min = is->seek_rel > 0 ? seek_target - is->seek_rel + 2: INT64_MIN; + int64_t seek_max = is->seek_rel < 0 ? seek_target - is->seek_rel - 2: INT64_MAX; +// FIXME the +-2 is due to rounding being not done in the correct direction in generation +// of the seek_pos/seek_rel variables + + ret = avformat_seek_file(is->ic, -1, seek_min, seek_target, seek_max, is->seek_flags); + if (ret < 0) { + fprintf(stderr, "%s: error while seeking\n", is->ic->filename); + } else { + if (is->audio_stream >= 0) { + packet_queue_flush(&is->audioq); + packet_queue_put(&is->audioq, &flush_pkt); + } + if (is->subtitle_stream >= 0) { + packet_queue_flush(&is->subtitleq); + packet_queue_put(&is->subtitleq, &flush_pkt); + } + if (is->video_stream >= 0) { + packet_queue_flush(&is->videoq); + packet_queue_put(&is->videoq, &flush_pkt); + } + if (is->seek_flags & AVSEEK_FLAG_BYTE) { + //FIXME: use a cleaner way to signal obsolete external clock... + update_external_clock_pts(is, (double)AV_NOPTS_VALUE); + } else { + update_external_clock_pts(is, seek_target / (double)AV_TIME_BASE); + } + } + is->seek_req = 0; + eof = 0; + } + if (is->queue_attachments_req) { + avformat_queue_attached_pictures(ic); + is->queue_attachments_req = 0; + } + + /* if the queue are full, no need to read more */ + if (infinite_buffer<1 && + (is->audioq.size + is->videoq.size + is->subtitleq.size > MAX_QUEUE_SIZE + || ( (is->audioq .nb_packets > MIN_FRAMES || is->audio_stream < 0 || is->audioq.abort_request) + && (is->videoq .nb_packets > MIN_FRAMES || is->video_stream < 0 || is->videoq.abort_request) + && (is->subtitleq.nb_packets > MIN_FRAMES || is->subtitle_stream < 0 || is->subtitleq.abort_request)))) { + /* wait 10 ms */ + SDL_LockMutex(wait_mutex); + SDL_CondWaitTimeout(is->continue_read_thread, wait_mutex, 10); + SDL_UnlockMutex(wait_mutex); + continue; + } + if (eof) { + if (is->video_stream >= 0) { + av_init_packet(pkt); + pkt->data = NULL; + pkt->size = 0; + pkt->stream_index = is->video_stream; + packet_queue_put(&is->videoq, pkt); + } + if (is->audio_stream >= 0 && + is->audio_st->codec->codec->capabilities & CODEC_CAP_DELAY) { + av_init_packet(pkt); + pkt->data = NULL; + pkt->size = 0; + pkt->stream_index = is->audio_stream; + packet_queue_put(&is->audioq, pkt); + } + SDL_Delay(10); + if (is->audioq.size + is->videoq.size + is->subtitleq.size == 0) { + if (loop != 1 && (!loop || --loop)) { + stream_seek(is, start_time != AV_NOPTS_VALUE ? start_time : 0, 0, 0); + } else if (autoexit) { + ret = AVERROR_EOF; + goto fail; + } + } + eof=0; + continue; + } + ret = av_read_frame(ic, pkt); + if (ret < 0) { + if (ret == AVERROR_EOF || url_feof(ic->pb)) + eof = 1; + if (ic->pb && ic->pb->error) + break; + SDL_LockMutex(wait_mutex); + SDL_CondWaitTimeout(is->continue_read_thread, wait_mutex, 10); + SDL_UnlockMutex(wait_mutex); + continue; + } + /* check if packet is in play range specified by user, then queue, otherwise discard */ + pkt_in_play_range = duration == AV_NOPTS_VALUE || + (pkt->pts - ic->streams[pkt->stream_index]->start_time) * + av_q2d(ic->streams[pkt->stream_index]->time_base) - + (double)(start_time != AV_NOPTS_VALUE ? start_time : 0) / 1000000 + <= ((double)duration / 1000000); + if (pkt->stream_index == is->audio_stream && pkt_in_play_range) { + packet_queue_put(&is->audioq, pkt); + } else if (pkt->stream_index == is->video_stream && pkt_in_play_range) { + packet_queue_put(&is->videoq, pkt); + } else if (pkt->stream_index == is->subtitle_stream && pkt_in_play_range) { + packet_queue_put(&is->subtitleq, pkt); + } else { + av_free_packet(pkt); + } + } + /* wait until the end */ + while (!is->abort_request) { + SDL_Delay(100); + } + + ret = 0; + fail: + /* close each stream */ + if (is->audio_stream >= 0) + stream_component_close(is, is->audio_stream); + if (is->video_stream >= 0) + stream_component_close(is, is->video_stream); + if (is->subtitle_stream >= 0) + stream_component_close(is, is->subtitle_stream); + if (is->ic) { + avformat_close_input(&is->ic); + } + + if (ret != 0) { + SDL_Event event; + + event.type = FF_QUIT_EVENT; + event.user.data1 = is; + SDL_PushEvent(&event); + } + SDL_DestroyMutex(wait_mutex); + return 0; +} + +static VideoState *stream_open(const char *filename, AVInputFormat *iformat) +{ + VideoState *is; + + is = av_mallocz(sizeof(VideoState)); + if (!is) + return NULL; + av_strlcpy(is->filename, filename, sizeof(is->filename)); + is->iformat = iformat; + is->ytop = 0; + is->xleft = 0; + + /* start video display */ + is->pictq_mutex = SDL_CreateMutex(); + is->pictq_cond = SDL_CreateCond(); + + is->subpq_mutex = SDL_CreateMutex(); + is->subpq_cond = SDL_CreateCond(); + + packet_queue_init(&is->videoq); + packet_queue_init(&is->audioq); + packet_queue_init(&is->subtitleq); + + is->continue_read_thread = SDL_CreateCond(); + + //FIXME: use a cleaner way to signal obsolete external clock... + update_external_clock_pts(is, (double)AV_NOPTS_VALUE); + update_external_clock_speed(is, 1.0); + is->audio_current_pts_drift = -av_gettime() / 1000000.0; + is->video_current_pts_drift = is->audio_current_pts_drift; + is->av_sync_type = av_sync_type; + is->read_tid = SDL_CreateThread(read_thread, is); + if (!is->read_tid) { + av_free(is); + return NULL; + } + return is; +} + +static void stream_cycle_channel(VideoState *is, int codec_type) +{ + AVFormatContext *ic = is->ic; + int start_index, stream_index; + int old_index; + AVStream *st; + + if (codec_type == AVMEDIA_TYPE_VIDEO) { + start_index = is->last_video_stream; + old_index = is->video_stream; + } else if (codec_type == AVMEDIA_TYPE_AUDIO) { + start_index = is->last_audio_stream; + old_index = is->audio_stream; + } else { + start_index = is->last_subtitle_stream; + old_index = is->subtitle_stream; + } + stream_index = start_index; + for (;;) { + if (++stream_index >= is->ic->nb_streams) + { + if (codec_type == AVMEDIA_TYPE_SUBTITLE) + { + stream_index = -1; + is->last_subtitle_stream = -1; + goto the_end; + } + if (start_index == -1) + return; + stream_index = 0; + } + if (stream_index == start_index) + return; + st = ic->streams[stream_index]; + if (st->codec->codec_type == codec_type) { + /* check that parameters are OK */ + switch (codec_type) { + case AVMEDIA_TYPE_AUDIO: + if (st->codec->sample_rate != 0 && + st->codec->channels != 0) + goto the_end; + break; + case AVMEDIA_TYPE_VIDEO: + case AVMEDIA_TYPE_SUBTITLE: + goto the_end; + default: + break; + } + } + } + the_end: + stream_component_close(is, old_index); + stream_component_open(is, stream_index); + if (codec_type == AVMEDIA_TYPE_VIDEO) + is->queue_attachments_req = 1; +} + + +static void toggle_full_screen(VideoState *is) +{ +#if defined(__APPLE__) && SDL_VERSION_ATLEAST(1, 2, 14) + /* OS X needs to reallocate the SDL overlays */ + int i; + for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) + is->pictq[i].reallocate = 1; +#endif + is_full_screen = !is_full_screen; + video_open(is, 1); +} + +static void toggle_pause(VideoState *is) +{ + stream_toggle_pause(is); + is->step = 0; +} + +static void step_to_next_frame(VideoState *is) +{ + /* if the stream is paused unpause it, then step */ + if (is->paused) + stream_toggle_pause(is); + is->step = 1; +} + +static void toggle_audio_display(VideoState *is) +{ + int bgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00); + is->show_mode = (is->show_mode + 1) % SHOW_MODE_NB; + fill_rectangle(screen, + is->xleft, is->ytop, is->width, is->height, + bgcolor, 1); +} + +/* handle an event sent by the GUI */ +static void event_loop(VideoState *cur_stream) +{ + SDL_Event event; + double incr, pos, frac; + + for (;;) { + double x; + SDL_WaitEvent(&event); + switch (event.type) { + case SDL_KEYDOWN: + if (exit_on_keydown) { + do_exit(cur_stream); + break; + } + switch (event.key.keysym.sym) { + case SDLK_ESCAPE: + case SDLK_q: + do_exit(cur_stream); + break; + case SDLK_f: + toggle_full_screen(cur_stream); + cur_stream->force_refresh = 1; + break; + case SDLK_p: + case SDLK_SPACE: + toggle_pause(cur_stream); + break; + case SDLK_s: // S: Step to next frame + step_to_next_frame(cur_stream); + break; + case SDLK_a: + stream_cycle_channel(cur_stream, AVMEDIA_TYPE_AUDIO); + break; + case SDLK_v: + stream_cycle_channel(cur_stream, AVMEDIA_TYPE_VIDEO); + break; + case SDLK_t: + stream_cycle_channel(cur_stream, AVMEDIA_TYPE_SUBTITLE); + break; + case SDLK_w: + toggle_audio_display(cur_stream); + cur_stream->force_refresh = 1; + break; + case SDLK_PAGEUP: + incr = 600.0; + goto do_seek; + case SDLK_PAGEDOWN: + incr = -600.0; + goto do_seek; + case SDLK_LEFT: + incr = -10.0; + goto do_seek; + case SDLK_RIGHT: + incr = 10.0; + goto do_seek; + case SDLK_UP: + incr = 60.0; + goto do_seek; + case SDLK_DOWN: + incr = -60.0; + do_seek: + if (seek_by_bytes) { + if (cur_stream->video_stream >= 0 && cur_stream->video_current_pos >= 0) { + pos = cur_stream->video_current_pos; + } else if (cur_stream->audio_stream >= 0 && cur_stream->audio_pkt.pos >= 0) { + pos = cur_stream->audio_pkt.pos; + } else + pos = avio_tell(cur_stream->ic->pb); + if (cur_stream->ic->bit_rate) + incr *= cur_stream->ic->bit_rate / 8.0; + else + incr *= 180000.0; + pos += incr; + stream_seek(cur_stream, pos, incr, 1); + } else { + pos = get_master_clock(cur_stream); + pos += incr; + if (cur_stream->ic->start_time != AV_NOPTS_VALUE && pos < cur_stream->ic->start_time / (double)AV_TIME_BASE) + pos = cur_stream->ic->start_time / (double)AV_TIME_BASE; + stream_seek(cur_stream, (int64_t)(pos * AV_TIME_BASE), (int64_t)(incr * AV_TIME_BASE), 0); + } + break; + default: + break; + } + break; + case SDL_VIDEOEXPOSE: + cur_stream->force_refresh = 1; + break; + case SDL_MOUSEBUTTONDOWN: + if (exit_on_mousedown) { + do_exit(cur_stream); + break; + } + case SDL_MOUSEMOTION: + if (cursor_hidden) { + SDL_ShowCursor(1); + cursor_hidden = 0; + } + cursor_last_shown = av_gettime(); + if (event.type == SDL_MOUSEBUTTONDOWN) { + x = event.button.x; + } else { + if (event.motion.state != SDL_PRESSED) + break; + x = event.motion.x; + } + if (seek_by_bytes || cur_stream->ic->duration <= 0) { + uint64_t size = avio_size(cur_stream->ic->pb); + stream_seek(cur_stream, size*x/cur_stream->width, 0, 1); + } else { + int64_t ts; + int ns, hh, mm, ss; + int tns, thh, tmm, tss; + tns = cur_stream->ic->duration / 1000000LL; + thh = tns / 3600; + tmm = (tns % 3600) / 60; + tss = (tns % 60); + frac = x / cur_stream->width; + ns = frac * tns; + hh = ns / 3600; + mm = (ns % 3600) / 60; + ss = (ns % 60); + fprintf(stderr, "Seek to %2.0f%% (%2d:%02d:%02d) of total duration (%2d:%02d:%02d) \n", frac*100, + hh, mm, ss, thh, tmm, tss); + ts = frac * cur_stream->ic->duration; + if (cur_stream->ic->start_time != AV_NOPTS_VALUE) + ts += cur_stream->ic->start_time; + stream_seek(cur_stream, ts, 0, 0); + } + break; + case SDL_VIDEORESIZE: + screen = SDL_SetVideoMode(event.resize.w, event.resize.h, 0, + SDL_SWSURFACE /*SDL_HWSURFACE|SDL_RESIZABLE|SDL_ASYNCBLIT|SDL_HWACCEL*/); + screen_width = cur_stream->width = event.resize.w; + screen_height = cur_stream->height = event.resize.h; + cur_stream->force_refresh = 1; + break; + case SDL_QUIT: + case FF_QUIT_EVENT: + do_exit(cur_stream); + break; + case FF_ALLOC_EVENT: + alloc_picture(event.user.data1); + break; + case FF_REFRESH_EVENT: + if (!cursor_hidden && av_gettime() - cursor_last_shown > CURSOR_HIDE_DELAY) { + SDL_ShowCursor(0); + cursor_hidden = 1; + } + video_refresh(event.user.data1); + cur_stream->refresh = 0; + break; + default: + break; + } + } +} + +static int opt_frame_size(void *optctx, const char *opt, const char *arg) +{ + av_log(NULL, AV_LOG_WARNING, "Option -s is deprecated, use -video_size.\n"); + return opt_default(NULL, "video_size", arg); +} + +static int opt_width(void *optctx, const char *opt, const char *arg) +{ + screen_width = parse_number_or_die(opt, arg, OPT_INT64, 1, INT_MAX); + return 0; +} + +static int opt_height(void *optctx, const char *opt, const char *arg) +{ + screen_height = parse_number_or_die(opt, arg, OPT_INT64, 1, INT_MAX); + return 0; +} + +static int opt_format(void *optctx, const char *opt, const char *arg) +{ + file_iformat = av_find_input_format(arg); + if (!file_iformat) { + fprintf(stderr, "Unknown input format: %s\n", arg); + return AVERROR(EINVAL); + } + return 0; +} + +static int opt_frame_pix_fmt(void *optctx, const char *opt, const char *arg) +{ + av_log(NULL, AV_LOG_WARNING, "Option -pix_fmt is deprecated, use -pixel_format.\n"); + return opt_default(NULL, "pixel_format", arg); +} + +static int opt_sync(void *optctx, const char *opt, const char *arg) +{ + if (!strcmp(arg, "audio")) + av_sync_type = AV_SYNC_AUDIO_MASTER; + else if (!strcmp(arg, "video")) + av_sync_type = AV_SYNC_VIDEO_MASTER; + else if (!strcmp(arg, "ext")) + av_sync_type = AV_SYNC_EXTERNAL_CLOCK; + else { + fprintf(stderr, "Unknown value for %s: %s\n", opt, arg); + exit(1); + } + return 0; +} + +static int opt_seek(void *optctx, const char *opt, const char *arg) +{ + start_time = parse_time_or_die(opt, arg, 1); + return 0; +} + +static int opt_duration(void *optctx, const char *opt, const char *arg) +{ + duration = parse_time_or_die(opt, arg, 1); + return 0; +} + +static int opt_show_mode(void *optctx, const char *opt, const char *arg) +{ + show_mode = !strcmp(arg, "video") ? SHOW_MODE_VIDEO : + !strcmp(arg, "waves") ? SHOW_MODE_WAVES : + !strcmp(arg, "rdft" ) ? SHOW_MODE_RDFT : + parse_number_or_die(opt, arg, OPT_INT, 0, SHOW_MODE_NB-1); + return 0; +} + +static void opt_input_file(void *optctx, const char *filename) +{ + if (input_filename) { + fprintf(stderr, "Argument '%s' provided as input filename, but '%s' was already specified.\n", + filename, input_filename); + exit(1); + } + if (!strcmp(filename, "-")) + filename = "pipe:"; + input_filename = filename; +} + +static int opt_codec(void *optctx, const char *opt, const char *arg) +{ + const char *spec = strchr(opt, ':'); + if (!spec) { + fprintf(stderr, "No media specifier was specified in '%s' in option '%s'\n", + arg, opt); + return AVERROR(EINVAL); + } + spec++; + switch (spec[0]) { + case 'a' : audio_codec_name = arg; break; + case 's' : subtitle_codec_name = arg; break; + case 'v' : video_codec_name = arg; break; + default: + fprintf(stderr, "Invalid media specifier '%s' in option '%s'\n", spec, opt); + return AVERROR(EINVAL); + } + return 0; +} + +static int dummy; + +static const OptionDef options[] = { +#include "cmdutils_common_opts.h" + { "x", HAS_ARG, { .func_arg = opt_width }, "force displayed width", "width" }, + { "y", HAS_ARG, { .func_arg = opt_height }, "force displayed height", "height" }, + { "s", HAS_ARG | OPT_VIDEO, { .func_arg = opt_frame_size }, "set frame size (WxH or abbreviation)", "size" }, + { "fs", OPT_BOOL, { &is_full_screen }, "force full screen" }, + { "an", OPT_BOOL, { &audio_disable }, "disable audio" }, + { "vn", OPT_BOOL, { &video_disable }, "disable video" }, + { "ast", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_AUDIO] }, "select desired audio stream", "stream_number" }, + { "vst", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_VIDEO] }, "select desired video stream", "stream_number" }, + { "sst", OPT_INT | HAS_ARG | OPT_EXPERT, { &wanted_stream[AVMEDIA_TYPE_SUBTITLE] }, "select desired subtitle stream", "stream_number" }, + { "ss", HAS_ARG, { .func_arg = opt_seek }, "seek to a given position in seconds", "pos" }, + { "t", HAS_ARG, { .func_arg = opt_duration }, "play \"duration\" seconds of audio/video", "duration" }, + { "bytes", OPT_INT | HAS_ARG, { &seek_by_bytes }, "seek by bytes 0=off 1=on -1=auto", "val" }, + { "nodisp", OPT_BOOL, { &display_disable }, "disable graphical display" }, + { "f", HAS_ARG, { .func_arg = opt_format }, "force format", "fmt" }, + { "pix_fmt", HAS_ARG | OPT_EXPERT | OPT_VIDEO, { .func_arg = opt_frame_pix_fmt }, "set pixel format", "format" }, + { "stats", OPT_BOOL | OPT_EXPERT, { &show_status }, "show status", "" }, + { "bug", OPT_INT | HAS_ARG | OPT_EXPERT, { &workaround_bugs }, "workaround bugs", "" }, + { "fast", OPT_BOOL | OPT_EXPERT, { &fast }, "non spec compliant optimizations", "" }, + { "genpts", OPT_BOOL | OPT_EXPERT, { &genpts }, "generate pts", "" }, + { "drp", OPT_INT | HAS_ARG | OPT_EXPERT, { &decoder_reorder_pts }, "let decoder reorder pts 0=off 1=on -1=auto", ""}, + { "lowres", OPT_INT | HAS_ARG | OPT_EXPERT, { &lowres }, "", "" }, + { "skiploop", OPT_INT | HAS_ARG | OPT_EXPERT, { &skip_loop_filter }, "", "" }, + { "skipframe", OPT_INT | HAS_ARG | OPT_EXPERT, { &skip_frame }, "", "" }, + { "skipidct", OPT_INT | HAS_ARG | OPT_EXPERT, { &skip_idct }, "", "" }, + { "idct", OPT_INT | HAS_ARG | OPT_EXPERT, { &idct }, "set idct algo", "algo" }, + { "ec", OPT_INT | HAS_ARG | OPT_EXPERT, { &error_concealment }, "set error concealment options", "bit_mask" }, + { "sync", HAS_ARG | OPT_EXPERT, { .func_arg = opt_sync }, "set audio-video sync. type (type=audio/video/ext)", "type" }, + { "autoexit", OPT_BOOL | OPT_EXPERT, { &autoexit }, "exit at the end", "" }, + { "exitonkeydown", OPT_BOOL | OPT_EXPERT, { &exit_on_keydown }, "exit on key down", "" }, + { "exitonmousedown", OPT_BOOL | OPT_EXPERT, { &exit_on_mousedown }, "exit on mouse down", "" }, + { "loop", OPT_INT | HAS_ARG | OPT_EXPERT, { &loop }, "set number of times the playback shall be looped", "loop count" }, + { "framedrop", OPT_BOOL | OPT_EXPERT, { &framedrop }, "drop frames when cpu is too slow", "" }, + { "infbuf", OPT_BOOL | OPT_EXPERT, { &infinite_buffer }, "don't limit the input buffer size (useful with realtime streams)", "" }, + { "window_title", OPT_STRING | HAS_ARG, { &window_title }, "set window title", "window title" }, +#if CONFIG_AVFILTER + { "vf", OPT_STRING | HAS_ARG, { &vfilters }, "video filters", "filter list" }, +#endif + { "rdftspeed", OPT_INT | HAS_ARG| OPT_AUDIO | OPT_EXPERT, { &rdftspeed }, "rdft speed", "msecs" }, + { "showmode", HAS_ARG, { .func_arg = opt_show_mode}, "select show mode (0 = video, 1 = waves, 2 = RDFT)", "mode" }, + { "default", HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT, { .func_arg = opt_default }, "generic catch all option", "" }, + { "i", OPT_BOOL, { &dummy}, "read specified file", "input_file"}, + { "codec", HAS_ARG, { .func_arg = opt_codec}, "force decoder", "decoder_name" }, + { "acodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &audio_codec_name }, "force audio decoder", "decoder_name" }, + { "scodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &subtitle_codec_name }, "force subtitle decoder", "decoder_name" }, + { "vcodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &video_codec_name }, "force video decoder", "decoder_name" }, + { NULL, }, +}; + +static void show_usage(void) +{ + av_log(NULL, AV_LOG_INFO, "Simple media player\n"); + av_log(NULL, AV_LOG_INFO, "usage: %s [options] input_file\n", program_name); + av_log(NULL, AV_LOG_INFO, "\n"); +} + +void show_help_default(const char *opt, const char *arg) +{ + av_log_set_callback(log_callback_help); + show_usage(); + show_help_options(options, "Main options:", 0, OPT_EXPERT, 0); + show_help_options(options, "Advanced options:", OPT_EXPERT, 0, 0); + printf("\n"); + show_help_children(avcodec_get_class(), AV_OPT_FLAG_DECODING_PARAM); + show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM); +#if !CONFIG_AVFILTER + show_help_children(sws_get_class(), AV_OPT_FLAG_ENCODING_PARAM); +#else + show_help_children(avfilter_get_class(), AV_OPT_FLAG_FILTERING_PARAM); +#endif + printf("\nWhile playing:\n" + "q, ESC quit\n" + "f toggle full screen\n" + "p, SPC pause\n" + "a cycle audio channel\n" + "v cycle video channel\n" + "t cycle subtitle channel\n" + "w show audio waves\n" + "s activate frame-step mode\n" + "left/right seek backward/forward 10 seconds\n" + "down/up seek backward/forward 1 minute\n" + "page down/page up seek backward/forward 10 minutes\n" + "mouse click seek to percentage in file corresponding to fraction of width\n" + ); +} + +static int lockmgr(void **mtx, enum AVLockOp op) +{ + switch(op) { + case AV_LOCK_CREATE: + *mtx = SDL_CreateMutex(); + if(!*mtx) + return 1; + return 0; + case AV_LOCK_OBTAIN: + return !!SDL_LockMutex(*mtx); + case AV_LOCK_RELEASE: + return !!SDL_UnlockMutex(*mtx); + case AV_LOCK_DESTROY: + SDL_DestroyMutex(*mtx); + return 0; + } + return 1; +} + +/* Called from the main */ +int main(int argc, char **argv) +{ + int flags; + VideoState *is; + char dummy_videodriver[] = "SDL_VIDEODRIVER=dummy"; + + av_log_set_flags(AV_LOG_SKIP_REPEATED); + parse_loglevel(argc, argv, options); + + /* register all codecs, demux and protocols */ + avcodec_register_all(); +#if CONFIG_AVDEVICE + avdevice_register_all(); +#endif +#if CONFIG_AVFILTER + avfilter_register_all(); +#endif + av_register_all(); + avformat_network_init(); + + init_opts(); + + signal(SIGINT , sigterm_handler); /* Interrupt (ANSI). */ + signal(SIGTERM, sigterm_handler); /* Termination (ANSI). */ + + show_banner(argc, argv, options); + + parse_options(NULL, argc, argv, options, opt_input_file); + + if (!input_filename) { + show_usage(); + fprintf(stderr, "An input file must be specified\n"); + fprintf(stderr, "Use -h to get full help or, even better, run 'man %s'\n", program_name); + exit(1); + } + + if (display_disable) { + video_disable = 1; + } + flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER; + if (audio_disable) + flags &= ~SDL_INIT_AUDIO; + if (display_disable) + SDL_putenv(dummy_videodriver); /* For the event queue, we always need a video driver. */ +#if !defined(__MINGW32__) && !defined(__APPLE__) + flags |= SDL_INIT_EVENTTHREAD; /* Not supported on Windows or Mac OS X */ +#endif + if (SDL_Init (flags)) { + fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError()); + fprintf(stderr, "(Did you set the DISPLAY variable?)\n"); + exit(1); + } + + if (!display_disable) { +#if HAVE_SDL_VIDEO_SIZE + const SDL_VideoInfo *vi = SDL_GetVideoInfo(); + fs_screen_width = vi->current_w; + fs_screen_height = vi->current_h; +#endif + } + + fprintf(stderr, "audio_disable %d display_disable %d w %d h %d\n", audio_disable, display_disable, fs_screen_width, fs_screen_height); + + SDL_EventState(SDL_ACTIVEEVENT, SDL_IGNORE); + SDL_EventState(SDL_SYSWMEVENT, SDL_IGNORE); + SDL_EventState(SDL_USEREVENT, SDL_IGNORE); + + if (av_lockmgr_register(lockmgr)) { + fprintf(stderr, "Could not initialize lock manager!\n"); + do_exit(NULL); + } + + av_init_packet(&flush_pkt); + flush_pkt.data = (char *)(intptr_t)"FLUSH"; + + is = stream_open(input_filename, file_iformat); + if (!is) { + fprintf(stderr, "Failed to initialize VideoState!\n"); + do_exit(NULL); + } + + event_loop(is); + + /* never returns */ + + return 0; +} diff --git a/project/jni/application/ffplay/icon.png b/project/jni/application/ffplay/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb996c7f7bbeceac91530e7f07f66558cdc55a6 GIT binary patch literal 42504 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4mJh`hM1xiX&_#4kh>GZx^prw85kJYlDyqr z82*Fcg1yTpGcYi47I;J!Gca%qgD@k*tT_@43=Hfgp1!W^ci7kkrKLXcJ9sfLC@^@s zIEGZ*db2lkLd^A2wI6q@?^o}<(xsJiM6H2=u^?WxOUSiL=xUVa$tdSdf{#KMUXO{Jv-QdWJ3)hkz5}AC)!>g+{j4yr1)V?)#eOG6^L;eHRNa%4K~Kv{~=W zZ166Sal^YcM=Y(}j-O!s(;>^*z~gY*R_z?;0m<5j=kCm9Z76yo0FvAD$9}n3gCT?L z_dU!D-p*lI+;B;GPPo zyAN~xiVyB8cLYnaQx8mc4AHC{PO$2%gZOezdt^G-&ft5kEi30C7=7@zq9zDWxHxS zhuh18FD#z7OV+Yz*Xao}sMS9W|6n}Z?4k2qz6q&{zoeNn)-K%IbWJSkx-9cw>$%4! zJkHpfke0qN`MKYp$hrz2NlL z>yNGt2!Xd48nd5ZquaA%FbJG~FFvL)Ra=y)D=I)7|$; z_beN42yPITu!NW-_{;xpt@*$8GbPWYNlF&XI(96dF+*bU!mX`Ar>q$rc3yvQ{)VIq z=Y^LFvD^8s-z$^8x2M`XY_45zuzTNu2Ctqs99K95K{0P(Kj(x+!^-$St~Di})Anq> zs^qN7vS4rE^a;coRX%;?x`b13Bfm)6^Vm$%}Ur1Osh%0`de@SZd`#STw>LQ~J z{~CWd^M1R0-K*xTD5D$G6sCeN{BsB4c58Jtga0R#Bg!%qdM_O4 zke85EX8*uc^k1*xW&97;Kj&wgKi(Si*>AiMrDQP&N2s|o!#;Dm~>(7{{Fwk#Tzp8r28&`BiH`PM5Y;U$~OL*`~Jvs zbv2Fe{z8366d!4)%J3^F?-x5Vuk2V(R?7VU2Y8n=9Q-g-r$^Q?ILpAWG1R*J(Yd+S zhNkxY!k<51SiA+CE4i($7?#!lIsWmOxBgLU>$wwt2QLYGchN%5VfXbd{>&V_67z)& zoD%vP_Jwm#S-0pimzI)3@QFKI{Rr3*Cvt8O)E_;1_MyrutL>9P3VMM~EFzdEJnC*=N! zbYp!pV-ru-S*e)v!@N84GC6QrFu`45HTPzo8FP=W3*RSXuEzOneiaw< zao!VC5?a_miQVP@e?x}L<#$`>$8Y6|e)UBD`v2bMPsf%rru^|-Qr^VqsT^HUb|IcSg`r<2%!#>&<5sRu-p!`#x%c~K=GRM~U!bSH&h5?tQ2H!T zVOXZWlSMl2f7PE;HzHR2EuPuuVgHP=r~BWn#Z3+zQtm=h{6ByC2vw*%u;sGUANYUl zT*GDN*Att!hJ|o3nJbvGOv?8NPNmne< z?BkR0we92=j1Cs&*g znE%k0yE)}cx{1Smc7GWor3WDjPyRdV`PevUNC!PJ@3RhABqhK$VS+Hn9f!%n1sMu= zH?gjtHM8;FX7+YjeT8)1o;0C8nFFrHTNr)zJ=LxFyv(>e2_brk6WSiBbymZTR#zXV4lpMh+=;NFC_}$$d&t5M7_~sDP zst#d^w>la7(zjIPSSiZ6^F3htU*FF>W8Y`LKUcn(T;sp~e`-GSv=8&Mf5yD?zMSwU zbJnj{4znhOIb;_p2wAfDI$RLz_%2lN-H?0WohsKQ`Y^6F{j{gyn!~*4eqP;Yh28uKoF8y7f5fObb z>XG>=qb<_hE(!NOiPdDijr#L4{-5eUxx{k~j0H?v_B?U#6rUhC=l}f9iYd#5?jJtC z)q&|Nca(i4Z;akK##hzK-P3<<-aA9qq3Cw*jR~nUrX7=)wmY1i?VEc=+@DqHQQzV% zf{*44oIJdKN^Jd?I3KpCXeCdcQ=5v8`Mr-7Ve^`5;FfHlv9Pq!roEW!VRqGiF0ZK< zX2~*sWcl(vT#nP=;>o^*t6C4Hu0O&)ndRB%`Nzc<&;G}fQP^24DP5EE!pLg*ql+Ea zCx73|f8Ez7Ax3jW=;{LBNegB#YX}P9i_{c1SQE{a+%J2$wvzAb1?P%S_o@poNLotU zkOH+;hJB0t$ZAyC9& zmev&2g^g+|2l~zLwtUa*JvaZayO=%wcb#8 zm@UTGtnI3>@D9b(7jn05nE9UDbKbG})4L2Byf?qwB(~#g*aKyG#wuGGyHc+2=g&WW zd0hVZ_kXX}e^5EJ?}Y1xB8i={t7I%2itC$I7%puz^f7*^F4&NBP_?LcVuM)A>~CkR zS2If*X3X7jCzdVfZU@teWkU6LHNS7au&c#T_0**W8ZRtupGojcY5u*`eO9QepVoQq z|K<}9hHIR@ba%lmWyb%BF6Li&%^$p-Jo(0to97>WKeg%E&c5B!U!Bh0_f7erJMnn> z^!UE7;W3SGr^htiT^;tYEl=Eh`)z}u-xp1)9i^&l_UZoPxygCrd1&j_?CX!tZDLus zPpabc?7}Y(9Bclr|1b6beeL&$3K_~*I2qI(r58<;QIfE1D4xTtCM>*TTV{;;XVWtq zg8#|OFs=UJRNOCQ-uumK-vfqoEldI*^K^ddW*KvIXq=hbtYIke#6zg}AOjQUgeUto zxW3D^$ej2vQ##<@M*~BN`$w$HAMNU|6DhC%b@|8MHv5v7OrGp2iPM$V^wGv^%PeQRdMS6*c%y?c-RtO-GXD(9Z%{BSdmIXOAP*0{Mmu1fP>ufWg9{rP+L z&Hwao$wAH&38~8SL%QCtbjfnK82|c?HRB^zlT$|JHO_qp4;+|rX)c%RLRqN`Cq8pU zgRL%XROgoFCY43GwW;zyH%OW_PJ} z-u!vTRv$Z7P`TSTC?oQ2C-1(KACg@(=C>aR_`jzlb)M@e*gd0_`~(?FRpGl$N5B=z2Kcv`^%Do(wc`Vf2Q*_1~W8WJEhN<_^E$6>*SB8 zyMlaF)Ol5ko;FD=W|%1^FwrNp^#MyypahS|7Ci%rjEuRvk56C|X3|Jl>lE4=v~cTE zb|=@spMSQkdU5Q@<4vavzP8)<^w+#A{;@xBzWM>b2Q^ApMHZ@DXS#521EcZwdtKrA zw_0Y0uRSEaJNC?xz~;@B`eE!-~3PUmziPr1W$Z_^gNZbrl8IZ$(hGJ65vr=uoEO*TI?e3RYRb&WIs(I0ySCOIjoy524=AFW5% zRKy!j9McMP^}4fn!NQPM6H|j_4Th}0{xW%qYIv71F$5ftuvq7?(~EJc!R0MQPhGs& zFHI3(+AerJ`+WJ^L#6L)^}qd{{=aE|dA*C~za0m6?(;kJ;&#E-Z{PQcufM&G_x;Ry z$5!u-O(|+BmU;Qu*C*ZR&xKaa-fKoKzkgVS6)uVAyyx8< zZ~4eOdAq4=>Wo_~AF{SvdFHSL@rdQ}IM=E&wF~X)`S4dLvZp`!kL>#cTjPH)O_O<8 z^{J+SQG7A80mCGd)@gzZZ~A{|;0ylzD@N#vWPO8R)Snq2jJ4;aUz!}Eq&q=FLADAheg5PuRF2}1y9$1FONHL zDC2=hoXpV$Vi)Up9MY?#g6+R0SDbI-{qf+6$hIQC^KJSM|9Vx{+J4H;f3s%GljoDZ zOO|mN{ofw9%Qrq;?``nbDH~U5&DXmWxlm`P%j&zy9@1Obw&fpx${@$8yIi(-K%EQfcG9^YgvJ?y8{?BBw;eu==;%~m-rOhSp(t-o&y zMe$Eaz0+>suz&r+uMB_p30g7f$w%?99osAal8a;4G!LQPO>5e2yk4cGUhufL;(Q~s z#g_xjCuD7&+I;=Oy~A^B%Xfxd*JGN`Zok{czdo+_yRV;8wC1hNnhdnu zU|)FC?M*L#AAZBS>)o;cH3dv+k2<$B|GwhqSg^l{rReFE#n-~)S81*3nk>q)wsEFp z4wC_ER`7cTpF%0i2JxLNE7H?8Xx}>$yq<|?IYZGBbHOYl)(3y=-|=?_I!FmN9ozir zu*L!bjfSN^Enh9#*7)Dbv*`QxiNXv;_ltZkYJ9iUEo7B)c&Ku`A!zCDh1!g%&B`<8 zx)vRm{qf+AOyBwQ$q(v&9{8K+t$*OdafXunKipyp5A*(L4PE`=)<(mqDN@&8{tT4b zXHxZQ#TsdwuQ6A|w|&xSQ+SuOb@^9Yse>PS9Xbv3g)g{;YN~Kb+wS3-+!CIc=KQ#K zWrH8PFoT*TqoPiYrW@abqooXnEK5F?+Z%>AxLulf+Gb{7)L@0*ot#Cmo%n5^Ph(!`(O zry#zfA)qy=R;ANzdGek6M{SNC2shT)wXu2Ol_s9~ml&5a33Xg~%ZY=FgdVFniZsfsf%rudZ;~#qB*e@ot6sf#mClYFHls z);qK*OnRl&>-hG%308N~Cv96L^t?hV%E)35ZJ`j+sluAebrW?9nNmG3?pUQ^ zRlfUxulYmU>hDSKHXh$2oWS||5!d&dGmQUiyuO!jcl_V1KbPL<)4;#508}M15|93P-LB zkC;T>Me{{G`EwY*v#KxHD|{hp@l~lGnTKrBY_9B(y!32?S>smLNh~KmZ#bahsdYWp z!|hfUV{q_=^_9H$KHW&Rc%;S1&BwW+gLP4#J>!Di)#hgVUi$v{`Stb3d7Ye9@++?_ zUZ`DoxFCNc6(Q&EXS;SF{Lsv^o}MZn%HInP3o*@jf^ve-gay}O&)m&e?lwfmMu{L3Aa!k#a$bVbVl>?^!{}&**N{Z9oYwN3*Q+E{lu)KBSc;H&b;HA0Z`S-_(>*F(6 zCbh{Qu9c0wtj3}s+nA-mq8(T^T_r(jf^*|9pYC}DN?*#Ctz3K1Kl}Fzt$m#@Ygfkk zrn;|--E90|zPC`<9bw@Ex!WJEv#mB@7h3<}4a2+@#{X7@Kip*f?!fwWalP5IIQB(s zJ)V7ihQZ|5S6959<-SaM|F+(f{&Gj{=CHL~ck0W}_VO$Gc34#LpMCJIguu|L-i&L^ z|EXvOh8`1KaZ0iClyavHf5802{W(V_X*L8otE%+K9Oy2OFxmdtw!LfW*JJ+uhc`WV zIQ9O<2kN;F44KWz9sg}SS*A7dPiT3-@by}$L0uC-{Sb~dfu;h$yP>s zzU0}sYGFed_l_q*Yj%DOi>WMz~kzUKv-nto!FVt+> z64n`*Sv0%ouHuGdzSXy!xfEPu3}4Il*txt@3EavhVEAiQ+8>seTiuzi@m>E_$>$vW zMV!y!n#9$eWlZ9)9VRI9@4u8Cq%NSw#_G#3m3iw09tAJvkRz;1B<9&%o$}4}CDW3R z;=K0i%lS{v=UuZoD5axh@}-+up>~@t_R6xcUcRv@tD`gB{lZIz>oLvdcZ&Jv71gJF zZrBXwSm)zS%_rUm|{_DLApU2t?$`NY{rlx<1sO zv8Mvm0KC*NtK4pP@deWzVkeZOC$?xQF+Hu=sg|1XM&QTS2$>_94r(%ueT(*GJx~%! z+Nx+OA}AO-?aO!JlSc)nYB9JvUT&Z9@LAfD3Ckx3`uisrUDtb4^+Zsm{9b45_Iq9P z=gnJ|#pwR`VXOAnjj!J@R7{C7sChewQJG<9lWs=|)1T+{;q#s^5L)o*>4B=f^JN?g zeoQ^_l=G4Cb77DBr!1MTgfujM*}Sz{+oG}ROMjq4DC6(%i`%Q*Z=7J<)6s4he0ILR z#{DHak1V9+1KR(qbsae0%IzV&XlECP<4mS0k7_@$?co0?ce?kVe|Brw>0PrYoY<$b zP)+GpR!FDn3K7bExzTq zl}_^0U3+4#2yN4Dwe2?IeXy!0<&Wx5^~8FEq#eKNo`%-2yj;86e$Dj{lOM0JQS^Lj zEBcY`u-kb9`+4FAzTcnhe@&*r_PWM{Mb8;hR*7XZF-^{H=TQ8n8sp5@CN;UyH~Goz zT`aRFG?>&~eZcVOyE!ih1Mhdig`BTs7bGfYW(7>U;u#?#=D8>^^w_~ji;n1n5^p~z z8+jRhS-tMiv(ncZuTJmU7qdmkZPj7-lwaGASTo;SaAddmD?Z2Ff^R+~-&&C)5zd@q zCGeyFg0RBr%0HDVPR|o%8ME&GzrJhAf=}1y%}G@KF+XwH{~SMszJGqo3hhok0tYOe z7*0jyY&!pO@!DdRYtz|Z*ZwU$61P%CLYp~x=Y|pn-;{(m3>Lp$ujtYEKQG9}OFdZ8 zvq;6WYm-hai|X{bC3D(HQNjYDlRC&x6sNC9kpkrY}P^bB$Ra$fA#s4fznzv6Uu(jt+%8w^J zFDf@PzxZl%QTg^-_tXQ$N&m&z*B<4wJk{A7U<z>hUb+4bKi0jfsx7zs#mGCyOYw zH>*g<$q8vQ3ttg!w9*n4JG61iquQW@;w|_6H{4e66gtjq@bmbw_{yURp{CAi+fy}~ z{@z;1pz5}4VqozU{@GJ|x z9Y@0tAG`0OYoge&jPIaY`U2@iyE+#|#_&!sFWj@|n8|`3nZs+3KJm$D%nXb+keZQo zD^4Wu!$UW*ux}eb250iwIeivO-RaibGmppKw^#qUYUfAoYZ)iAZmd}oqSTiEg6*;W z&Juubt8H^mPk9X)=6fk73F&`nRg-^|3E=r?Q^A z6JuJ$aQ^tapPqp%YuVyiZZaH+5AMC5uyj-6ny2foPY$=`uOXhTNUQp2oEma{~+@QZ1$|Ip2Qf5E--iEb;7JG?&S z{7Yf~y4Amvw(Zwr*>rB@wdXn?zVox)`|Sx{FHH&SS z^%loVa5SfZOQwyHmuFWH^x=rtIzL(`j#o4>ViAFUTn_j z`ZMXvWIl%?^-oeB?ki(W5B|8@t<%F~p%79h9c=MBlwl=fMgYU34~cV}X0X_JF`io} zyrHtMeHGX3p5WlJ6oWPqu5HA9~$UxXL9MZ7$H- z;i0kezrmxl(7-QJr_x#$em}DJvbf&@kv&5D-S+n@+dcg+`f1Ohgn)$_T>oc0SLxE^ zdL7dIaM@X-x7J@H?q&BlPTMH#aWPBv#HJ$$|DO@A|6>z%s=F%RIrwymFniImeKTjg zaDKuQ8Mu;V%k=Bra~Y;Ow4bh>I)gEyQZZ1Lan4MJH(vwZ-fmZI={>mksKWCLj8iK4 zM6ds5{>ZNHugYxBTRBh2=l#r{{hC?Fo%DZ}sw!kC?F$o(IeT=k(tAnEMeF+?mVSA7 zZ2c;xX2-@l`{SRA`s(T%>gpR7oiLP`qTzkZB4*lB1-7Z)q7j$nXBDrwsrE5=lID7U z86}0q=QoM04eK)TUAWccpGc`z!KonYK^gYUr;PaBEnNxn*a^SY!jH6;9b_$W+5 zY+6X5mx6L_>%*t=A787Tid^dEB2^K8$M`SX4f)SrUur|Q_B?%RH*Na#ja#N98@yP2 zUE5G1;K=#n?nNtV4hKYrX>dKA>lixmL;EE*u~#Z_OPpVyljKzCois{p);x@Mq=z6xXWHfm{XaJPtffoij}(!6zq>wPBX?jy`FXxo^H|H!94Ub6~^2 zef$0{?^rZRWv;-+3mZLj#E;!?VN224@aCK=gYA@5{=IShr%%`F=<;58&3obfa|xaz z5!Y55ec3PDHBMg&=al#+&T1gR@c8kqY_=7FZHx4@|3;jeovQLQ^@RW0J-X$;x3cW< zU%Wo~vA>~>^Ttm0jl7oj_Rj)O_TO*6yl97T@IpJ`NveAVHq7hUrxW^wBS|G8yV-$h zKg%4e)_J=<_G++#Msy!Abk)gQKHpS$ME=}Ifr-|q4kykMxx7S2TY6Dd&8ea}f|m7X zG*86DXSpo-$lu}|!Irhz>i55m8q+Sm{(ABC*Nt1IEWWNi;ko6fJs*zEf8Hp~F^55h ztHGPwLX|_OCNMx&r;}h8!{N^0UymEZaa|?dy8T!Yx92gJOz0Iz8Qo4R|r1;0Q z>kma5UO$?;{_&}mR$u3A?pfqlDwZC=<*q-y?u7K^F8jS5L5!JSE`7N9V)|d(sn2u% zSXSAd`uW+$eSiF};)c5YLNX2pb?Zbva0+l4sPXWw)O!2$&>q{)wwj3R8A}$1-1$0# zD}4e7`+@Z@JES{I8HyxcdtHdvi@Lg1s_yO&VIFP9QeH!ogLMt2B2(p;37y#gY)<^9 z|E`QS-z1*3GQXJ5&wJo#4BHvTDb0*kp{?%;>5Fck|Rm{;B4_#uw9fzr0|6!v9Z3j{oEG8xA&b z9NeU1C?W7TUgY2p%U8xs8>Y$iu8jG~pEs+Z(?oY->dN<16J~f$KtgruWW# z-+PWaOxoJlY40hc@9vnwkbUw)=ZDwHl{?#?K5cYnnDX8D&GI|@i=NCcJ*?v?7c(v8 zL#5xu`b5Wf547i$&7YRS!zLCPwzE;$>&afDMXT7B+4oj7`Y153?D1I~a==Vtzt3zR zk-x=Ptkt}Ex;H*Ld8X8vKhWN#ejVGyV2xJe16@z|uVV6>cjVH;!x2JqH3fEF4dT0* zPgL9L9NG0op;*t0rCeny4B(H>XRyW){b`D8bUCPv>1?np*zsZJTtz z=m_(Lna^!?^o(x0_y4t%u9Nx5o&KZXr=1PcgUP-7@3Z&GFJEt-zwF$OrArT;u0OrW zVgLGxshpd7-1{QcH*S-No4~|#-Z{fH!$B`>DtGa$2m5_CPEq)sbVL4oz>2mmr;7d! zPs2|wYZiWxxT=u#LC(+re{94S)vT?z(_#>}Wr~P6klf4|ci(1V=%KwVsga7FFWeq= z`-|`Ul4ZGT=S6{!zRYX32)>R6`AdhF0S6f(-B=O=Lo`kwDviFy z#=(E^&-O(c^SRV7TzOuwti+T1`6{WN{U;4?vjv$i*jMm&Z2_Ci-^2UYPWkQ45-{z+ z!Dfq>G7f8)LB+=l2DWy-hlcZR-h0EMwf)b+IMxRpZki0<$;pkLLK{z6?OLX#v?656 z^iv{^UWb1_GL3xpdg1-}W1ouny}fO}R5j0fDDL`@bKjy3e4jR7;=lJ{r|#6nlY9RC zwUhk+^74U=$p?0owy<0h+3`f^S4OYoff-_3^e(;^kBEA;`<8vE$fYeGiod=35bNhZ z&6sD?i^8R4uOc*3T~b}^=K1mlXR%)Lzp7Mg23@4sHGr0bq{rnm04^QSW%xVr-FFs}T@pfEgi-=<5DNonZlt0WS`3%p# z#%b-ksggOvdUknaKz5lvCB^F=Z|Gm zQs(#kI(_=UBc*~r7H=Av17@2YTo=#(^~d8UEZ5exW>1scVRnz{7|(=dw(3k;u~G`5 z>#903*Lydpew^;I{T$Xdq6s8M*L)J6s z=q;-G;CRN}^mZUuf!r#FpThnRPJA+Yc1lS4@xBHNQH5jsog%a5{|=t)!CX63UgI{PH}IVEK|C2rAfmK`;J!o(<@fl{rbD_^n2&L`Oht@_6oTg9!Ln-88hFj z*5wnUYv8pO+nf(In=TgbJ3q0$P|%{3tKt#ooT^8hbK>^PT~1Dx*!@cD!9n(uoM+B4 zd3(QM5vkfM<9W$_TIz{SER}H%uVuVE=V`CI?d_-FS}a{~Nnr0<5B*bZR}|z<2yKtL zt?{XSfA_oAOZSyccr#|O$h>3S;QV^O3X?@)lE;>dhbt#A#Gm17Si6RQLH#ciIc=_- zB_0~VjC#LA*NK|l(U@XA-9zXRtA|1G4$ob;H1GDDaO~DtK84%)EmwV#t=}JCAtJD#?&;#%oG+8^=6C(__P+Pyv~&B1FTwr~6&n79?_)Z1?onxS zvd8v(_IWjv1g=~W`N()hibqHPxk1`VUIx!QF$|iK=M47z<&cQ$I~~9MNV>Q`V| zCJUOjD1KVab|SxhPFK$KX|a?3l%Dt-$t_^UxcCX==bhi8D%@Qz2-+4!bEJO19 zgMV!5COp>`Y+RvxZpqqpTewa|?U1Zm8m*H!@wp4jGRcX0f@y8h9ND&$65?}(0mzEq%{_SK)Wt&DS*+-%VQe(CG_>5Q*E6rM4@nefBisv&*e zLBk6{S6u_oNm@31e!}pp`rCtj+Upo37_U?^Bz0#pt@$JzyRtWIXUF`Gqf)G=F8%lx zF-u;-J3vjVdL^6D1da!*PQ|{PXT6b6(#Ep!kZ=vlf9@xhCq6e{WHGTY{OC=XA8Jcx2Pkf=?-Em%Qmbz{@ub)F)l<-USNuo--^BiJV zDavZzeK6&cHRHLzmcQovGU+U|zn^~kw8s9wx%~`&+$;foG6#10GZr!Ib(cT-@TjXy z{8p~jrzU-h*yrH#FO=`x#kk6Ib2Ba2Vz?3#d>RinESkG@syDw;M(jen$?JRaoPGso zRH$r!Aa-xXO8xn~^Lgw#Dqh@=*yH>`nD3LhwC(e+%l(nq8%$YCzN1lgTxGQL@s3{4API*3^DRHW{OSP48Ae>d4=v`hDgQ-wM999jzyTO%db-k zSfH_G_Ycc0VSd8v143)fAD^=_aqwtZXvul#yvfcZWzi~7BE!%&pVQs{^gU+qn`geHr!xk zc$FQ0IKRLD@%_@>2Uf?gEj({48l}66M@M(6LE3`}4)Vt?#2irZyzo*bVAcC~^*4oL z7Tr5GXI+45W)|bM^n{<`O@Dp=O8fkp>L(Z1mFcn6pw5kH4U>)aAAPO|4;<$dOq?Iw zaPQ};|NSx!87tnOJ^S$g?M zDrk8le}~^R9?uMC%cltr=HgGk+AMLFs(o>dJGN5w)16;Zw(fryEr_YhF!%4y zzgYPrv8Jv@=KbputveNqkJWykD7+w1YG<|}o0xcYol3=|jFg#KD}JA@W4~$AvchT6 zk=IsS^R_YmIC^{1qmF*IAN=M*yiM#J84Az%4*9s=KJlk`>C=-ghVl!qe;6B2wocW43^Ulu8y=e!h=PC0F`Xo+R@iqRl-_C;$*Hez{ zQNI_}^`NHsY2{1l;u|lPy6w;VQm|-V!jC_5daEiWBlb$&*woq+Z}8KikjbJ(;_1Fx zi>em_&-!FPAFDef`P;Bij=jLhsAiw%^t-Ry8B5;nWdC1VC1q_b8?(7IyLGO$sa*A% zL+9o$5wR)FdQkrLW7Ss`!x^(Kc?2u}XxQ=I{+;Lqmh52J_(>hUtM+LbmF(>F_VZmd zdAS2Si$g|3z#`G)t8K;qE1tDz{O6Uc;`sc|IJQFb)Bot62hX2%z73Y$8kB5b4*5Q`=>c!9*ml6p0+Zd`hGY&w^rVAZ+|IAgOZiBtz`K_ z@AA~hsto@_asQcKyCrmSHZt+yQxC-$eJ_z3-;!9yru=%=moBjxRxKtj<~r;w?UY zQh|0;AIZD1*b~JeU=8iL)C(d(nJ(3{k`gd8_+e7EQQWj0`iTY-KCH0Wv_w`wi z=Fj*m{^5T}2;&Mjz6W>Yoo(lzx9iT2E#h4FuI#n;hRP4iuW`9DZe;KKWGlrRYGq+x z5S?|hGh24osTqpTICrOf@Od=#&3n zmwixh{Ufa2;M_jp{r&#O=k2=F{pNfqnAiI^Bjt-at4gh2>dI4hPaJ31^8KA_d6Cfk zxpR)FN3G@BU6xt%dA1Zgf7m>c6uSlw$H(lgJ-r{(#r&CHEwtko;F#QWa|inh@A{`9 zZ>KJ*7X17BgXA)`>CPYa-{Z~5Zqr|Eznmec{^Jp0i)TIaCtm&Zv+tkyZ03X>P2p2| z4V(;*zu#$A*WWMm^M}PHoz>HGIxZ;dEzs~};)>7iej%w9B)MLo zMgDF?Gbvzt0;@cWluGHlW*w0vSyi;rZ2KWTU+&~`v0@n=1nfpa%0?Rydc40$$}z} z1dCtB`%8YAd^nr`sNu(*_(^~MClxSkn!1K{fvo7fX!AP_r`H^vwp2C8rb2){Ep5Zn zt6Yx{bn-tiX$Wb2@^`1}m0d;)%C;7V-WEIE79VO7+n!MC!MMY4`Srz)b7JPFv&}F5 z)ymrR_4fA3AH`W+fBgOZ@?z$f!Y3Tl=2tMW^T`}&e42X3da?aOr7tzj7xgU;zkl57 zyXfW4@43t`YW}|dG5KTRn-?V;HeOv-aF|yr{(n`g&f~MET3?HA*c#%X+3MGRz47GV zdaw0R34YDczcFNZ~mMkeH#s9W~$6cbbik5ws_qmlLJngyBbWi z8TJ`=usR$IsWVV>tj&|))H0g(q;1c>RgQmb_%GDf&AXQO_Qt}Ed9r`+EmeK+A+d<( z%%}6`mFpjI%G}y7&)zTp{o-F2XTN$SqhG0kRaFZwE-!g+$-iLlmX>qn`@8-9{T_vH z;z|3Q_F&g*lW%VngC- zW9smzB00kux2uKJkXw~B37BV!1Qj3 z*VKPa!S^!eMra7Q_`C>A?prJQ_mk1o*L`wJzwh`G)Vq2eQ`A~6Z*S2)d49M0PbvjZ zIJ(m39sKjhhVR|o?!yxo$_ul}OWS^*JHPvGaqDkecUk!hKkt42aPwnf&6caHHWV&C zc5<@R?{A@gnkW1Y{CaB@Bg=4u^Ti3yBa5%z<~_E)^~&OxQ%e6;q&sOo*zX!Crg8d^ zzRSa+gup3r+J`dRMgC7wns)ld{v90E|NmO31V~svdbHGN*7V;8zb-Ts7rJ#lw*Bn& z`2OwdqT9=T{F0W(#QVOUE7`^;y?@QkQ@j?}F7bM2FS==Huu(mIUwhw%Rb0K!f9o_J zZdBWUeQ`}~-MpUaw^0w4%{Ea}TXAOl4v&<3mnNluTz$B`@X^Bd4gX&R%4mA$e<_?Y z-A#Y_**X1{pKZ&Nw=T^;heSf^atdTgOVyM4*r){~H zBX&>Q(RTDGS8?$|$>%2oZyatfO!{9ZV_7A_-VdrWgPwff6sCW2kHn+-{2iHh-`kz@ zdvLG%?NRDODJeT3UMzmY5gIAAB z?av{e+O{9Z`!0T78{K$X|N4ndT+98#Eh-Eo{$5e%1fqALq@r{x~@}_=c>soqJ8)lw#P!7`;HegGG!&C-uw7C<ASk$f?NCL)#dAD z+MhiuxN-3JWTjp6GZNm5FY>s5xH3ZXuS|dA6XtnUT>Sq2kNb}w`|$V)OUIp>Z#TJa zZ!^@4uwp;px9icjO) zEVFy-4H%w1D@aK^7@p?0@5+b&PaiQ<@O{~_`eyn4zj=3xu7>_Nx>EDatCABR!cTo% z`tkBKsn>E-jq4uIbpV-x$scecmebY02c!u|p8 zKxM}Vg=gR2AAiWqUhw0`$EcG0u1`Yu^j+QJV;Zjac{fWod@JAIT|Z;qv2}Uk=4p|w zZ*QCO$t_uROm#Ygx3`#QkmJfj3ma6IuWguqZQJcVOEz~ue5#devi?g~aN|@N2KV~B z)q2?)4Z#eL+SXidD|i?0&am;r^84)X_RF)g#uo=o`Tynw;~Jk2r4sM%*BF=GDU<&9 z^wrfJwK;3@e#m@n-1YJDimcbY^Lb(|*$;H-h2{ws-^-ap+4^lBwXc-f zFYw@h>l=nG#m^rz9NV6I_}2FQvgPZe+xyo=UCsGXy0~3=(i&%ms0rSu)~*cN*V#U& z;gidJ!!;kxG)`Yy%Xr<7-GNu$)2ULEyMRx2QAeKchHCS>XSlf!+>z-le)hbu=)Rpy z)hADxZDQO^r{u-i>b10P9{n&+IJA5E`M@3jPYYg4zEjL^XKUIT?gj~IKf-UdlUX-n6ZkhA{^O+-jhfbKjY!`WTNWn7J(t^?G+nw_CO*Ym~ z{(m)5==t5&s}`vR=Q0eS%euIp>1U5BVS4-rn}Ge)cSD<0S-f_xifv2C0=G)5(R_=NG_-Wdgj~A!=J$T}|<^68{`O?yd zk6#kGv0>q%r_+VyH}>_G6p*C-L}e^HzrR$z+cDk`>Fn7_6Ly+)psAy`TTF=LH&OnF26R*dM|3aT=zuq z&*L{bWo1@7Y<(NU_bfWJ(0Pho;m&IktBzkbUFzwivngre)f*A4OQR&jzNuJz-nF4| z1y9SJ{W`__-?Rod*sO06IN=uBAYfwgYja&o@X@{1g-DH=;GgzY9j|m&qJYHmp)>RZo|C zKk}3L!y#2$Ge^vC!Pl?rANO0!=45T%VC&f+ozJrGi>gy-Nv!t%c!e`D4Koh9`&HHK zDS3N?xn*LKjitm2e(9+i4pQ}f2OHd1K40X$`NQIC6*?w?xELyzQA*!do` z?0!+q$NI)yVwGU|iWnYu)j1B_4!>W=AOCM@+Z*p2tP;t#=T+!|z26VLW?rG?;Ili3 zdHSY6)rPqap`kCzyxZReH8KV9od5N>fA0!@r!hd?PqG5{Asz#Q_|mZN&b6f zOHo1X{zG?U#OBoqu?sBIGW;VS!y*1;X$iwI)$Cw~V|A~Ve@M12dvM>^XMt*QZRQWf zPwY+o%C^q6(Lm4>hLe~Hu;{;k^M?pC|@@Zy#~ zDO*mRpZ+*esHSMj^;yr(s(Lo*T+XvlKl^&|bFL`$b3azfcr?qcoqfjJuOZsz@L9K~ zj_;l>pT9mUrbSuv>=~Y@&!4xpeR-s0UT0Uu$F-bclXLroyXEr#=I4padkG0~zP;~n z#ibUJd7`WErNepG80~AN!M~=ZvSrRv@GUm4XgTUQwSZ;KYyCMNKWlA0#LDpQhjtBX zgOatrf9Ro^``dzGYXKy$EVP%d-w*1*-&5{?Fv0up4MrV{7meK)88yVesx$cPd7HcA zmX?~Zv)Q0dfWSL2IQ zlheA?syiX|%5wehheAUi9dA|d{OD{W!FVEA(~0r(=Q=(|?L$k%KPM`yU%0oKJ$}}# zL*K%<*Lwv&xRu?wzJBhHh6V<2^QAirCbz7X(u|nKdh4y&r7bOnJ9qzMR`Gl#Fh^9l z?%}DLod*Ay{?@(hwLhP$`%C!G^D2A)@>Sda8GVV5V*2*xpj}JmspBqR&g;9eFL15Q zfAd)WxPRXLzW8}F7F6vr`SY-5{^ET?f%04L%u}qJCMhxb2d_yIwh7Y~b{q7hJYisBi!TW@WWMn0nE3~G zVc{DSQ)d{qeG%!m=gYY*7NoP(OPynp;F}s>CzEX+!M7{}M3zQ71pRpHJ7xRj_0O*~ zdhBn!aX6sj$n@t^<5`@N6jVJ9RNeHy_V@ey;}7mtZ@eyPZ`}}l?&Hnwvy3Y15_X@G z@Tq$h{G)ek_Qz!#4YlUmPG52UeDlNh7<x8N$*P6gfVI(MD8-+p1eX359FYrVt9;$_c%Wq}5{rHubh$g21;Y+1#1 zGkkwnytMS;^-|7nFHWAk&?Lg0>6)&DYp!B?=+qY_Q3h?_w3cKx*(`TBsIfq&@^1Lk zR(sdL4mCZw>tP%};(w(YnEbwfEn$DlzwYh>=KDL3J9>xkS+O5@5?`kn+wl1z!;a$o zSJ$F9{yk^?@#W3Pm{TtEQ+~cawqAC#zGU6gJ=O=mn}phJU;g#-E%%=~r!QnJJ+bME zWS!QDbj#Q)3zM z(1&YYiu#6p`AhHXooz5}0roT9`!&s%W=!rpYe$vC~ zE{soD9(e8F8O$hFm#3V`r#1ccZK*Hm?&pu)e?M8~PyHW$n`b=#8@m6+{N4FL=Kszj zhC92gSrh&|mOsv}x0~mGUD2mAR&{zWS)au}`=#!{T9<7?<4iN^@LBw&+FQCYbTgKfc+hrx!rS`LvZRhjcQO-#`K$fUT6Ept8pMXPqhsuP?6 zcjxoY>z!Z0@Q5KoR7&li+0{SQwhu147asB4&(HDg{}OG^aPem5giZNe2W~94YyDq( znC;IIub*`t|D-&V_G>*uk9^^ZCBgVz=1I<7n-X(?Tu^XC#@?}Mi^CMOjc zh)4SHt@WPnp7oGnNAOub#RipyLSfsxH9xYetXRKUR#tm*lV-!4-S>|^-xd2Od#&NV zLgmu%w8**UOj=*6uKb?AOy%3ct8b663RI~~GPl{Dbl5-QyKL2eZ+$Z*=k+yDp7WkE z{PO>q`Ntm@7vE^#;QF(pRI;$|l%R@|;@@ts)&r|vFR5yCT)I}#xev*6S#lTu1%hOK&rKT<5hr9A;6N+z}$xBFud7Yx9B0jdR`~ul#>W=);S}7T@;1f2euD zy1`lR`~C+r{ue)F5HkB`{r*U3`JKk|=guU2_3E{e`TBC_rw#KL%sumcYVhaG@Z0LH z^IQHrdAM2Q()J@WxrFA)HmflFT;uX&`fo#{@1~(_8H;sS^E1v%i$1(*o$n1(_S6;m z%0|kM?O$(vb1IFq;meQ0CHyuG_kD%_eEDLsHKu&G@8!9gvL3y(j#?jutSm zEqN3D_1gAFr*7vTf4+SA?AP+R| zmri_0Ufh3PjchF)F*NUm>?U%97KS7Q2L+C`SsT8cKt2;bMs1w zL7nF{7WM^y|9lU4b$K2;$K0A@+22>bSw1l}BKPO->|!VvX#3Bt$iOScBFOyKo>}y-)6RQoC3Eg_$|S3Nc(M40*Y@t-*Vi6? zdwe|e&8#&FKZT|=IWwB z4_x-Q?_KVAcix?kl~)QSo4Nlw*D3Nf+^$f+|G#d}v#aZmz4!G~dK&p>a*URsg`S2p768o%#Y7Z*VyHcOsxOoZo?$?>(dr*M!wy5{x_-qi{oLRu+!-N zle^`QnZsim{~K6Z?&(;p`6>9z^L@1)>ujE$+~@Fv^>O}Iqr^XjnflR;|I&HSC$k^; z7O8McqVHE%)~~v?!GWw7?lB(8WT@v`8}@}wnf*h}oCBUS`E33e{Cjgsd!yy~jW0hu ztg6zKW$@2lwd$0nk2ANWHDlWUrwxLZHzvRSlk>;s)!&8f1#j~Ii}71LPXF}2LE&GV zm}cB3o8J0MlK`^uGq-gvjVQ$MFVFfF^*EpPSHsdw(|%2&tcTiuw?rJUy~ z(@?_pmV?oQU10fB&R3hCOs%+o=C;AfNu@1mB1&=>>e=3wDYF|CG1%WR6!1Hsqks6# z&F1^N{uKQ=v@!XLr`C5HFZKf~H5~s1XeK;# z=|B8;-l_L<_&>e(%J244hB=@8>%J^b`LkzhtLdMGh3Z@0dTr8|yXw02-;t}oc{lk~ zzmV^_ZxMRktL?rW_s{9B=SxFaALMQdTQWcFPt191J}12>A0a6{NE&py|oPmFzrCLm}_FUQ1`&r^Fp~MJL#W>$tfO zEbf1FMSNd_E#D`5KB@1=cKx3$ZuR=VlZ?Zop88jZ<&W)Nzh_cUeQIgEz^Mz@(=r;` zMSgfZ=GU^%d+f`4Ti>;G($(`}7E9R_vI`iBSWU~Bmo3uC$kJrCWKi}v`eFvOj~ z^N}~VGRucUo(EHpughjwcD?!5X7>M?-}7ozd^bibHI!MeDNk0~wNAmMck@H{zCSUa z9^d=-_;};{TK?wh_g^ReTVVVrUG|IpzoL`B=l3&zDE+tl-Jz@3V}yJ5&-`$C-JL~8 z=h*#tv2)VL;&l1ad{%Y`UzwR5KeXqrJ@F&ezQKiOlWfGTB{9~r!ru?J?G#e@&Uv9| zqLuJluaIpESuBbe&cA=)syuJy+pi7pYx(Ezd?vLgJo}DPdvThiYtcUUt!jto%~){a zUe?Q5d&C!9mo0LB_r$uH(eeN9cZWCq{<~b(@}&0diqq#$``!N-Bh$dx`+ip4@7sk} zU&r^`&!5GWvwu$O@t<~AKL%d@dO3OX$KYIBQ7?PtSO1nxYi3{kCsD>}HKVP^;c3QC zer|d6ed*TsPw&`2V|cPC(9J26Yw|LWPcV2He-aT(vm5zTfS}C}nr^9jQt?P2uZI_FSE8McrXtahl zGwLSY-7(RGIdj#8JoR;#mi$eSjQcFN%4*v-w|UJm%bEXng(sYScGlp$UH9^7(>FH! zDmp*??wRApiVS%#=f>?8GcLc^X+LM?!i#6mF173HIru~Mv3~D-X`>UIOPCl{7PT6e z9-HrGS>3~?GN(V@`{@3om+nhU4PUW-x>?{X0l%`0jeHK*7OQGTg*vl50L_lgVVHi~ zB7OFm;x$!IwGDSBv-b)|Z||E^I7y?#N=5m3nnLoH@ZXY$OaEW;ue!ABlgh#pmhkxA z)#+&lpZWhcoWE1QU%l7jdQ63-VB^V~r)rIjXZ(Gl{_*(g@Z`|ox%NFT<;?2t9a3Iw zzx`qxoBTCK3H#H!r+b2PJsDa-%MAq%e>Wo#EVS1}7&a!5^MS6Im{NrW+PT1I)-BL07aO1;c!+66h*Lf$#*|NI}_)VJnNv6Sp#Y<>| zPIFl7%3HJh1rBsq|L9zoUnLw@elxY==`7O&i~BFdG49GYJ$B4!OH}9M8uJhR~4Cm&4ENASAuhw0+=U3LB&%M%(% zK*s#%o|BGzy{gXi>-e$yWg6#L)(E{!>=DU59O-7C92kFIz5ERO^8=^dBAFfdPFJ}~ zhBMv}bm2=#`J;btBIAshtz56;ziRzC-YcEB$>;HrPOjZ$f{*X#Ntf)_-LKrVja|}S zamT7H(*Jd*&b_7Ey43v{XT=Zg?v5uSFJgBWT=xHOGRePQYJTnsL;Z-%f;S9S3~KB5 z2uZKoE4JUtaN{MbcN=DPUoD9Fm3;X5wYYx{%^Tad#s8aC*S4ql?u%0Am42?rZl-*A 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 YZ)a0IDEwmdKI;Vst0NmOt-2eap literal 0 HcmV?d00001 diff --git a/project/jni/application/ffplay/version.h b/project/jni/application/ffplay/version.h new file mode 100644 index 000000000..cd420eff8 --- /dev/null +++ b/project/jni/application/ffplay/version.h @@ -0,0 +1 @@ +#define FFMPEG_VERSION "1.1.2"