From 545732a12b5bec6d93ffe1889a6b169c91d47d3d Mon Sep 17 00:00:00 2001 From: martii Date: Sun, 27 Jul 2014 10:36:43 +0200 Subject: [PATCH 1/3] libeplayer3/input: don't modify avformat stream id --- libeplayer3/input.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index d1b7ec2..065468c 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -387,7 +387,13 @@ again: avfc->iformat->flags |= AVFMT_SEEK_TO_PTS; avfc->flags = AVFMT_FLAG_GENPTS; if (player->noprobe) { +#if (LIBAVFORMAT_VERSION_MAJOR < 55) || \ + (LIBAVFORMAT_VERSION_MAJOR == 55 && LIBAVFORMAT_VERSION_MINOR < 43) || \ + (LIBAVFORMAT_VERSION_MAJOR == 55 && LIBAVFORMAT_VERSION_MINOR == 43 && LIBAVFORMAT_VERSION_MICRO < 100) avfc->max_analyze_duration = 1; +#else + avfc->max_analyze_duration2 = 1; +#endif avfc->probesize = 131072; } @@ -442,14 +448,13 @@ bool Input::UpdateTracks() for (unsigned int n = 0; n < avfc->nb_streams; n++) { AVStream *stream = avfc->streams[n]; - if (!stream->id) - stream->id = n + 1; - Track track; track.stream = stream; AVDictionaryEntry *lang = av_dict_get(stream->metadata, "language", NULL, 0); track.title = lang ? lang->value : ""; track.pid = stream->id; + if (!track.pid) + track.pid = n + 1; switch (stream->codec->codec_type) { case AVMEDIA_TYPE_VIDEO: { From 409501eaf002e6f28e52e8e3c2bcc6ad8fcbae7a Mon Sep 17 00:00:00 2001 From: martii Date: Sun, 27 Jul 2014 11:09:45 +0200 Subject: [PATCH 2/3] libeplayer3/input: disable avformat logging --- libeplayer3/input.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index 065468c..ab54902 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#define ENABLE_AVLOG 0 + #include #include #include @@ -262,6 +264,7 @@ bool Input::Play() return res; } +#if ENABLE_AVLOG static std::string lastlog_message; static unsigned int lastlog_repeats; @@ -279,6 +282,7 @@ static void log_callback(void *ptr __attribute__ ((unused)), int lvl __attribute lastlog_repeats++; } } +#endif bool Input::ReadSubtitle(const char *filename, const char *format, int pid) { @@ -356,7 +360,9 @@ bool Input::ReadSubtitles(const char *filename) { bool Input::Init(const char *filename) { abortPlayback = false; +#if ENABLE_AVLOG av_log_set_callback(log_callback); +#endif if (!filename) { fprintf(stderr, "filename NULL\n"); From a3511c92194453bd7a967a3685b1c20b8b4cec67 Mon Sep 17 00:00:00 2001 From: martii Date: Mon, 28 Jul 2014 18:02:50 +0200 Subject: [PATCH 3/3] libeplayer3/input: amend 545732a12b5bec6d93ffe1889a6b169c91d47d3d --- libeplayer3/input.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libeplayer3/input.cpp b/libeplayer3/input.cpp index ab54902..5fc48a5 100644 --- a/libeplayer3/input.cpp +++ b/libeplayer3/input.cpp @@ -222,7 +222,7 @@ bool Input::Play() switch (sub.rects[0]->type) { case SUBTITLE_TEXT: // FIXME? case SUBTITLE_ASS: - dvbsub_ass_write(stream->codec, &sub, stream->id); + dvbsub_ass_write(stream->codec, &sub, _subtitleTrack->pid); break; case SUBTITLE_BITMAP: { int64_t pts = calcPts(stream, packet.pts); @@ -237,7 +237,7 @@ bool Input::Play() } } else if (_teletextTrack && (_teletextTrack->stream == stream)) { if (packet.data && packet.size > 1) - teletext_write(stream->id, packet.data + 1, packet.size - 1); + teletext_write(_teletextTrack->pid, packet.data + 1, packet.size - 1); } av_free_packet(&packet);