diff --git a/mythtv/external/FFmpeg/libavformat/Makefile b/mythtv/external/FFmpeg/libavformat/Makefile index 00fb41e62dc..22470f8bce5 100644 --- a/mythtv/external/FFmpeg/libavformat/Makefile +++ b/mythtv/external/FFmpeg/libavformat/Makefile @@ -221,8 +221,8 @@ OBJS-$(CONFIG_MPEG2SVCD_MUXER) += mpegenc.o OBJS-$(CONFIG_MPEG1VIDEO_MUXER) += rawenc.o OBJS-$(CONFIG_MPEG2VIDEO_MUXER) += rawenc.o OBJS-$(CONFIG_MPEGPS_DEMUXER) += mpeg.o -OBJS-$(CONFIG_MPEGTSORIG_DEMUXER) += mpegts.o isom.o OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpegts-mythtv.o isom.o +OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpegts.o isom.o OBJS-$(CONFIG_MPEGTS_MUXER) += mpegtsenc.o OBJS-$(CONFIG_MPEGVIDEO_DEMUXER) += mpegvideodec.o rawdec.o OBJS-$(CONFIG_MPJPEG_MUXER) += mpjpeg.o diff --git a/mythtv/external/FFmpeg/libavformat/allformats.c b/mythtv/external/FFmpeg/libavformat/allformats.c index 3d5cca9e765..d83a173674b 100644 --- a/mythtv/external/FFmpeg/libavformat/allformats.c +++ b/mythtv/external/FFmpeg/libavformat/allformats.c @@ -179,11 +179,10 @@ void av_register_all(void) REGISTER_MUXER (MPEG2VIDEO, mpeg2video); REGISTER_MUXER (MPEG2VOB, mpeg2vob); REGISTER_DEMUXER (MPEGPS, mpegps); -// REGISTER_MUXDEMUX(MPEGTS, mpegts); - REGISTER_MUXER (MPEGTS, mpegts); REGISTER_DEMUXER (MPEGTS, mythtv_mpegts); -// REGISTER_DEMUXER (MPEGTSRAW, mpegtsraw); REGISTER_DEMUXER (MPEGTSRAW, mythtv_mpegtsraw); + REGISTER_MUXDEMUX(MPEGTS, mpegts); + REGISTER_DEMUXER (MPEGTSRAW, mpegtsraw); REGISTER_DEMUXER (MPEGVIDEO, mpegvideo); REGISTER_MUXER (MPJPEG, mpjpeg); REGISTER_DEMUXER (MPL2, mpl2); diff --git a/mythtv/external/FFmpeg/libavformat/utils.c b/mythtv/external/FFmpeg/libavformat/utils.c index 7fc68a6127e..8fd0d2e3427 100644 --- a/mythtv/external/FFmpeg/libavformat/utils.c +++ b/mythtv/external/FFmpeg/libavformat/utils.c @@ -50,6 +50,13 @@ #undef NDEBUG #include +/* MYTHTV CHANGES */ +extern AVInputFormat ff_mythtv_mpegts_demuxer; +extern AVInputFormat ff_mythtv_mpegtsraw_demuxer; +extern AVInputFormat ff_mpegts_demuxer; +extern AVInputFormat ff_mpegtsraw_demuxer; +/* END MYTHTV CHANGES */ + /** * @file * various utility functions for use within FFmpeg @@ -364,8 +371,19 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score if (score > score_max) { score_max = score; fmt = fmt1; - }else if (score == score_max) - fmt = NULL; + }else if (score == score_max){ + // if the conflict is between Myth MPEGTS demux and FFMPEG's original one + // use mythtv's one + if ((fmt1 == &ff_mpegts_demuxer && fmt == &ff_mythtv_mpegts_demuxer) || + (fmt == &ff_mpegts_demuxer && fmt1 == &ff_mythtv_mpegts_demuxer)){ + fmt = &ff_mythtv_mpegts_demuxer; + }else if ((fmt1 == &ff_mpegts_demuxer && fmt == &ff_mythtv_mpegtsraw_demuxer) || + (fmt == &ff_mpegts_demuxer && fmt1 == &ff_mythtv_mpegtsraw_demuxer)){ + fmt = &ff_mythtv_mpegtsraw_demuxer; + }else{ + fmt = NULL; + } + } } *score_ret= score_max;