From 1f2ade42c53ee6bc827dea13143d432220f7e027 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Wed, 3 Oct 2012 23:22:52 +0200 Subject: [PATCH] libeplayer3: add hack to decrease libavcodec probe size almost disable the libavcodec format probing when using "myts://" instead of "file://" urls to improve startup speed for timeshift etc Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/4d432131584b6f2b3ac094575fb05fc4c5d0239a Author: Stefan Seyfried Date: 2012-10-03 (Wed, 03 Oct 2012) ------------------ This commit was generated by Migit --- libeplayer3/container/container_ffmpeg.c | 2 ++ libeplayer3/include/playback.h | 1 + libeplayer3/playback/playback.c | 9 ++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libeplayer3/container/container_ffmpeg.c b/libeplayer3/container/container_ffmpeg.c index e5cda8b..31b87e5 100644 --- a/libeplayer3/container/container_ffmpeg.c +++ b/libeplayer3/container/container_ffmpeg.c @@ -809,6 +809,8 @@ int container_ffmpeg_init(Context_t *context, char * filename) } avContext->flags = AVFMT_FLAG_GENPTS; + if (context->playback->noprobe) + avContext->max_analyze_duration = 1; ffmpeg_printf(20, "find_streaminfo\n"); diff --git a/libeplayer3/include/playback.h b/libeplayer3/include/playback.h index 342ecc9..c47d70b 100644 --- a/libeplayer3/include/playback.h +++ b/libeplayer3/include/playback.h @@ -31,6 +31,7 @@ typedef struct PlaybackHandler_s { int (* Command) (/*Context_t*/void *, PlaybackCmd_t, void *); char * uri; off_t size; + unsigned char noprobe; /* hack: only minimal probing in av_find_stream_info */ } PlaybackHandler_t; #endif diff --git a/libeplayer3/playback/playback.c b/libeplayer3/playback/playback.c index de88d92..33ea1da 100644 --- a/libeplayer3/playback/playback.c +++ b/libeplayer3/playback/playback.c @@ -167,11 +167,17 @@ static int PlaybackOpen(Context_t *context, char * uri) { context->playback->uri = strdup(uri); if (!context->playback->isPlaying) { - if (!strncmp("file://", uri, 7)) { + if (!strncmp("file://", uri, 7) || !strncmp("myts://", uri, 7)) { char * extension = NULL; context->playback->isFile = 1; context->playback->isHttp = 0; context->playback->isUPNP = 0; + if (!strncmp("myts://", uri, 7)) { + memcpy(context->playback->uri, "file", 4); + memcpy(uri, "file", 4); + context->playback->noprobe = 1; + } else + context->playback->noprobe = 0; getExtension(uri+7, &extension); @@ -1059,4 +1065,5 @@ PlaybackHandler_t PlaybackHandler = { &Command, "", 0, + 0 };