[mythtv-commits] [MythTV/mythtv] 3ef960: avformatdecoder: stylistic change to switch-case t...

Scott Theisen noreply at github.com
Mon Jun 20 16:40:42 UTC 2022


  Branch: refs/heads/devel/ffmpeg-resync
  Home:   https://github.com/MythTV/mythtv
  Commit: 3ef960c03bbabd1bdcb2fb53e913e3deada96335
      https://github.com/MythTV/mythtv/commit/3ef960c03bbabd1bdcb2fb53e913e3deada96335
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  avformatdecoder: stylistic change to switch-case to default return


  Commit: 3732da08117e3519524a3cad8d900973a171aa79
      https://github.com/MythTV/mythtv/commit/3732da08117e3519524a3cad8d900973a171aa79
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/avcodec.h
    M mythtv/external/FFmpeg/libavcodec/libavcodec.v
    M mythtv/external/FFmpeg/libavcodec/utils-mythtv.c
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  remove FFmpeg addition ff_codec_type_string()

replace with av_get_media_type_string in ffmpeg and copy to only
user as AVMediaTypeToString: libs/libmythtv/decoders/avformatdecoder.cpp


  Commit: f5c7eeea4bac513133ebdbe234588b427e5c9dc0
      https://github.com/MythTV/mythtv/commit/f5c7eeea4bac513133ebdbe234588b427e5c9dc0
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/codec_desc.c

  Log Message:
  -----------
  add MPEG2VBI and DVB_VBI to codec_desc.c

This enables removing libavcodec/utils-mythtv.c


  Commit: 835f002b199e709b41e7666fb890a39c4cc1b1ba
      https://github.com/MythTV/mythtv/commit/835f002b199e709b41e7666fb890a39c4cc1b1ba
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/libs/libmyth/audio/audiooutputbase.cpp
    M mythtv/libs/libmyth/audio/audiooutputdigitalencoder.cpp
    M mythtv/libs/libmyth/audio/spdifencoder.cpp
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/decoders/avformatdecoder.h
    M mythtv/libs/libmythtv/decoders/mythcodeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythnvdeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythvaapicontext.cpp
    M mythtv/libs/libmythtv/decoders/mythvdpaucontext.cpp
    M mythtv/libs/libmythtv/decoders/mythvtbcontext.cpp
    M mythtv/libs/libmythtv/mythplayerui.cpp
    M mythtv/libs/libmythtv/recorders/recorderbase.cpp
    M mythtv/libs/libmythtv/recordingfile.h

  Log Message:
  -----------
  replace ff_codec_id_string() with avcodec_get_name()

This enables removing libavcodec/utils-mythtv.c

The returned string is now lower case, instead of all capital letters; however, I don't anticipate that being an issue.


  Commit: f9b03645cfbd050c48a05716720971a041cda9cf
      https://github.com/MythTV/mythtv/commit/f9b03645cfbd050c48a05716720971a041cda9cf
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/Makefile
    M mythtv/external/FFmpeg/libavcodec/avcodec.h
    M mythtv/external/FFmpeg/libavcodec/libavcodec.v
    R mythtv/external/FFmpeg/libavcodec/utils-mythtv.c

  Log Message:
  -----------
  remove (now unused) FFmpeg/libavcodec/utils-mythtv.c


  Commit: cebfba2ecc33a5807abd59f1ef6d2119768c7e64
      https://github.com/MythTV/mythtv/commit/cebfba2ecc33a5807abd59f1ef6d2119768c7e64
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/codec_desc.c

  Log Message:
  -----------
  ffmpeg codec_desc.c: remove duplicate dvd nav packet


  Commit: b99ff3b55798905e0107937c312a542867894f4a
      https://github.com/MythTV/mythtv/commit/b99ff3b55798905e0107937c312a542867894f4a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/io/mythavformatbuffer.cpp

  Log Message:
  -----------
  mythavformatbuffer.cpp: remove unused include


  Commit: 71e60e7175174b0552780bc5c3c84358628e5131
      https://github.com/MythTV/mythtv/commit/71e60e7175174b0552780bc5c3c84358628e5131
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/mpeg/H2645Parser.cpp

  Log Message:
  -----------
  H2645Parser.cpp: remove unnecessary float -> double casts


  Commit: 4fad41e5f617a71710a3f455997fecaa36d57b80
      https://github.com/MythTV/mythtv/commit/4fad41e5f617a71710a3f455997fecaa36d57b80
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  remove vestiges of ffmpeg addition build_index

The change to ffmpeg does nothing and is being removed to reduce MythTV's
downstream changes to FFmpeg, hopefully culminating in an unmodified FFmpeg.

avformatdecoder.cpp probably needs more cleanup, but this is the minimal change
required to enable the removal of build_index from FFmpeg.


  Commit: d7822e344ecd27eaec4f8b8a51a4ef13c4fd9154
      https://github.com/MythTV/mythtv/commit/d7822e344ecd27eaec4f8b8a51a4ef13c4fd9154
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  replace deprecated for decoding AVCodecContex::time_base

decprecated since 2014 https://github.com/FFmpeg/FFmpeg/commit/7ea1b3472a61de4aa4d41b571e99418e4997ad41


  Commit: 4d288a17b381cc36ab997372c7f9f23def22b4a7
      https://github.com/MythTV/mythtv/commit/4d288a17b381cc36ab997372c7f9f23def22b4a7
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  AvFormatDecoder::GetVideoFrameRate initial refactor


  Commit: 2b9b1efd90fe582202e041ac246fed0e97bf4e64
      https://github.com/MythTV/mythtv/commit/2b9b1efd90fe582202e041ac246fed0e97bf4e64
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  AvFormatDecoder::GetVideoFrameRate use std::set

working toward not converting framerates to doubles


  Commit: 4c1fd20ab4f0a5b11ecb6feb9922935c71d078db
      https://github.com/MythTV/mythtv/commit/4c1fd20ab4f0a5b11ecb6feb9922935c71d078db
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  avformatdecoder.cpp: fixup headers

replace unused internal header "libavformat/isom.h" with the used
non-internal header "libavutil/stereo3d.h"


  Commit: def1bfbb7fbd204e734dc986f250f6b981a65c92
      https://github.com/MythTV/mythtv/commit/def1bfbb7fbd204e734dc986f250f6b981a65c92
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  avformatdecoder.cpp: remove '#include "libavformat/internal.h"'

refs: https://github.com/MythTV/mythtv/issues/428

ff_read_frame_flush() is an internal FFmpeg function.

However, in libavformat/utils.c:
int avformat_flush(AVFormatContext *s)
{
    ff_read_frame_flush(s);
    return 0;
}

avformat_flush() is exactly identical and is a public function,
so use it instead.

StreamHasRequiredParameters():
The audio check requiring the internal struct to be defined was disabled.
This should have no effect since these checks are *all* already done via
avformat_find_stream_info() in FindStreamInfo(), which should return < 0
if these checks fail.

This copy of an internal FFmpeg function feels unnecessary and like a bad idea
since FFmpeg already checks this itself.


  Commit: 478f1c236801f7861ec7b046ef740b06936b624c
      https://github.com/MythTV/mythtv/commit/478f1c236801f7861ec7b046ef740b06936b624c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  avformatdecoder.cpp: remove duplicate checks

FFmpeg already checks these in avformat_find_stream_info()
(called via FindStreamInfo() just prior).  FFmpeg should return
<0 if these checks fail, which causes the function to return
before the removed lines are executed.

These checks are copied from libavformat/utils.c and use internal
FFmpeg information (if those checks were enabled).  This is bad
pratice.  Since FFmpeg already checks these, remove our copies.


  Commit: 4a278390f3e0c38d4dbe5c3659f457c5f174440f
      https://github.com/MythTV/mythtv/commit/4a278390f3e0c38d4dbe5c3659f457c5f174440f
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythmetadata/metaiomp4.cpp
    M mythtv/libs/libmythmetadata/metaiomp4.h
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  av_estimate_timings(): remove use of MythTV customization to FFmpeg

This calls the supposed to be static estimate_timings(); however
avformat_find_stream_info(), which is called prior to all
calls of av_estimate_timings(), already calls estimate_timings()
since AVFormatContext.probesize defaults to 5 000 000 bytes.

Thus, these calls are redundant duplicates of the call in
avformat_find_stream_info().

This was removed from avformatdecoder.cpp in 3924df87c7691852741b596f50311eac46f930ab
and added back in ebf194444c30eb6c7d1d6d272045674fc45a2e65 .

I'm not sure why it was added back.  If it is necessary, calling
avformat_find_stream_info() again with possibly a larger
probesize or max_analyze_duration, should work as a replacement.


  Commit: fe8a595f82918bc33dd52b4808310af3ce98af84
      https://github.com/MythTV/mythtv/commit/fe8a595f82918bc33dd52b4808310af3ce98af84
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/mythavutil.h

  Log Message:
  -----------
  mythavutil.h: create MythAVBufferRef


  Commit: 426812e9c2de605b17d3effbcd8a27dfe8d360de
      https://github.com/MythTV/mythtv/commit/426812e9c2de605b17d3effbcd8a27dfe8d360de
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    A mythtv/libs/libmythtv/bytereader.cpp
    A mythtv/libs/libmythtv/bytereader.h
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/libmythtv.pro
    M mythtv/libs/libmythtv/mpeg/AVCParser.cpp
    M mythtv/libs/libmythtv/mpeg/HEVCParser.cpp
    M mythtv/libs/libmythtv/recorders/dtvrecorder.cpp
    M mythtv/programs/mythutil/mpegutils.cpp

  Log Message:
  -----------
  create ByteReader to eliminate use of FFmpeg modification

by copying avpriv_find_start_code() into MythTV as ByteReader::find_start_code().

Refs: https://github.com/MythTV/mythtv/issues/428

Note: I have rewritten this function.  The only functional change is
00 00 01 00 01 XX no longer incorrectly returns a start code at
offset 7 that overlaps the start code at offset 4 if the start_code
input is not modified between the two calls.

FFmpeg only has one use that keeps the history,
(ff_)mpeg1_find_frame_end().

So, I have split the truncated start code logic into its own function
as I have now done for FFmpeg, which only used this functionality once.

Determining if it is necessary would require further analysis or
adding logging to see if truncated start codes are detected.


  Commit: 856a9e4c74c9314e3ab14ad00ae0e8586c100afc
      https://github.com/MythTV/mythtv/commit/856a9e4c74c9314e3ab14ad00ae0e8586c100afc
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/avcodec.h

  Log Message:
  -----------
  lavc/avcodec.h: remove no longer used MythTV function export


  Commit: ee16563a4a36d0035fcae45ca91f040d6ab15bb2
      https://github.com/MythTV/mythtv/commit/ee16563a4a36d0035fcae45ca91f040d6ab15bb2
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/mpeg/H2645Parser.h

  Log Message:
  -----------
  H2645Parser.h: remove unused defines


  Commit: 63d2d62fac0ccf7a3f3159771ccecd2074666a5c
      https://github.com/MythTV/mythtv/commit/63d2d62fac0ccf7a3f3159771ccecd2074666a5c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    A mythtv/libs/libmythtv/bitreader.h
    M mythtv/libs/libmythtv/libmythtv.pro
    A mythtv/libs/libmythtv/test/test_bitreader/.gitignore
    A mythtv/libs/libmythtv/test/test_bitreader/test_bitreader.cpp
    A mythtv/libs/libmythtv/test/test_bitreader/test_bitreader.h
    A mythtv/libs/libmythtv/test/test_bitreader/test_bitreader.pro

  Log Message:
  -----------
  create class BitReader to replace internal ffmpeg headers

All inline because that is how FFmpeg's is.

The unit tests are not the most extensive but are sufficient to
convince me that it works properly.


  Commit: 3ed6617e30ffa27e304adc96e43580ce068349c7
      https://github.com/MythTV/mythtv/commit/3ed6617e30ffa27e304adc96e43580ce068349c7
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/mpeg/AVCParser.cpp
    M mythtv/libs/libmythtv/mpeg/AVCParser.h
    M mythtv/libs/libmythtv/mpeg/H2645Parser.cpp
    M mythtv/libs/libmythtv/mpeg/H2645Parser.h
    M mythtv/libs/libmythtv/mpeg/HEVCParser.cpp
    M mythtv/libs/libmythtv/mpeg/HEVCParser.h

  Log Message:
  -----------
  replace internal ffmpeg headers with BitReader

This should have no functional change.

References https://github.com/MythTV/mythtv/issues/428

The hack is no longer necessary since internal FFmpeg headers are no longer
included by the parsers.

avformatdecoder.cpp needed the public FFmpeg header "libavutil/intreadwrite.h".


  Commit: 2b00e8653bc004196f95353def9fcf445def2df8
      https://github.com/MythTV/mythtv/commit/2b00e8653bc004196f95353def9fcf445def2df8
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/get_bits.h
    M mythtv/external/FFmpeg/libavcodec/golomb.h

  Log Message:
  -----------
  lavc/get_bits.h and golomb.h: revert MythTV changes

The changes were to defeat compiler warnings, but MythTV no longer includes
these internal headers.


  Commit: bdd54386484778912418d5505179cb47067e8e4b
      https://github.com/MythTV/mythtv/commit/bdd54386484778912418d5505179cb47067e8e4b
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  lavf/utils.c: remove unused extern declarations


  Commit: c5f37c9c8aa34764dff421fe1bdae2076c44e1f5
      https://github.com/MythTV/mythtv/commit/c5f37c9c8aa34764dff421fe1bdae2076c44e1f5
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/avformat.h
    M mythtv/external/FFmpeg/libavformat/utils-mythtv.c

  Log Message:
  -----------
  lavf: move MythTV added define to the only file using it

this quiets a warning about it being redefined elsewhere in ffmpeg


  Commit: f9784dc8e6189e20ef2dc3c3b4e791ccfce2497d
      https://github.com/MythTV/mythtv/commit/f9784dc8e6189e20ef2dc3c3b4e791ccfce2497d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libpostproc/postprocess.c

  Log Message:
  -----------
  lpp: revert unnecessary added include

seems to have been added during an ffmpeg merge, but is unused


  Commit: 7e6be7310a2c4ef8bece19400b3c858f9b4732af
      https://github.com/MythTV/mythtv/commit/7e6be7310a2c4ef8bece19400b3c858f9b4732af
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libpostproc/postprocess.c

  Log Message:
  -----------
  lpp: revert unnecessary MythTV cpu autodetect

This is from 2010-08-24:
detect available SIMD extensions when runtime-cpudetect is enabled
https://github.com/MythTV/mythtv/commit/206974153a539acd72451512ac6a7aae818d0fe9

but if you look at the following lines, ffmpeg has effectively the same since 2012-11-18:
pp: add auto detection cpu flag.
https://github.com/FFmpeg/FFmpeg/commit/59d686f100863d00b8f171dd891e893c2bfd951e


  Commit: 00b3a942fbab577b9521d3d1c25b47d5a85e7768
      https://github.com/MythTV/mythtv/commit/00b3a942fbab577b9521d3d1c25b47d5a85e7768
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libpostproc/Makefile

  Log Message:
  -----------
  lpp: revert change to Makefile

if ffmpeg doesn't need this, neither do we


  Commit: 0b0efc9385481675aa6e90bf0a82ba44e9260849
      https://github.com/MythTV/mythtv/commit/0b0efc9385481675aa6e90bf0a82ba44e9260849
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/dvbsubdec.c

  Log Message:
  -----------
  lavc/dvbsubdec.c: remove redundant conditional statements

from: https://github.com/MythTV/mythtv/commit/68ca96cfa02b9df406de4ad233fdb395405f6b88

duplicates the condition on line 919, which will catch it and return


  Commit: 62f8ff39df1b8e0f55f4b1e4c2db5c447989765c
      https://github.com/MythTV/mythtv/commit/62f8ff39df1b8e0f55f4b1e4c2db5c447989765c
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/mpegvideo.h

  Log Message:
  -----------
  lavc/mpegvideo.h: revert unnecessary changes

class: C++ keyword, but MythTV does not include this file

removed parentheses resulted from a complier warning about
"unnecessary parentheses"


  Commit: 6a6f8724f257b477e8f0f5acb5ebbf61354cc502
      https://github.com/MythTV/mythtv/commit/6a6f8724f257b477e8f0f5acb5ebbf61354cc502
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.h

  Log Message:
  -----------
  Initial mpegts-mythtv.h harmonization

Note: most of the defines aren't actually used


  Commit: 9ff30fb9ccb2ef59b50e9093924ef498ba5f0fd1
      https://github.com/MythTV/mythtv/commit/9ff30fb9ccb2ef59b50e9093924ef498ba5f0fd1
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mov.c

  Log Message:
  -----------
  Revert "libavformat/mov.c: increase allowed time error"

This reverts commit 346d4dbbf0babc5b5bc4743afd26ee997667ea7c.

from:
changed: allow 4 second skew between streams in mov before attempting to seek https://github.com/MythTV/mythtv/commit/e4170c604e6a6af969e5de74ac740ac596686da8

No reason given for the change.


  Commit: aef37b33f0d1aab7c474c6c2d5288184c6ff8d71
      https://github.com/MythTV/mythtv/commit/aef37b33f0d1aab7c474c6c2d5288184c6ff8d71
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/mpeg4videodec.c

  Log Message:
  -----------
  Revert "libavcodec/mpeg4videodec.c"

This reverts commit 9632275126d4e6a698569c9d4316a300fe98d18f.

I agree with stuartm’s decade old comment on MythTV ticket 3001: H.263 is not a commonly used codec and if these are still bugs, they should be (re-)opened upstream with FFmpeg.

For frame rate “fix” see: October 2005
Closes #509, by applying patch. https://github.com/MythTV/mythtv/commit/f851316ffc438d3570ee47ab87d4ad961d36bb4e

however, it has been wrong since October 2014:
Merge commit '7ea1b3472a61de4aa4d41b571e99418e4997ad41'
https://github.com/FFmpeg/FFmpeg/commit/17085a0251a1493f6447aa3d2ee06fda2c9402f0

lavc: deprecate the use of AVCodecContext.time_base for decoding
https://github.com/FFmpeg/FFmpeg/commit/7ea1b3472a61de4aa4d41b571e99418e4997ad41

-----
for not compiled section see:
Revert [25805], the fix for our workaround created playback problems https://github.com/MythTV/mythtv/commit/eaa8f0dd129ee1bc6b7be2ba76fb98460bf57ec3

nuv: fix mpeg4 decoding issue in #3001 properly https://github.com/MythTV/mythtv/commit/8082c91bba961af747ecc81a029c6d7bd7eadc4a

MPEG-4 decode errors as of [12645] https://code.mythtv.org/trac/ticket/3001

Trunk unable to playback MPEG4 files created by mythtranscode https://code.mythtv.org/trac/ticket/8927


  Commit: 942e654dc0495d68d94df77ccd44e709cad5d179
      https://github.com/MythTV/mythtv/commit/942e654dc0495d68d94df77ccd44e709cad5d179
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/mpegaudiodec_template.c

  Log Message:
  -----------
  Revert "MythTV: suppress errors from old .nuv files"

This reverts commit 6c8c3809732f9400293b0a5a82bf5f5db71d82c2.

from 2007-05-28: https://github.com/MythTV/mythtv/commit/ef017db37b842417d1a47131df34fbe4e1defd2b
references: https://code.mythtv.org/trac/ticket/2972


  Commit: a20482398df4ca53486dc0fd62543ee633c37a1d
      https://github.com/MythTV/mythtv/commit/a20482398df4ca53486dc0fd62543ee633c37a1d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  silence mpegts-mythtv.c warning: mpegts_probe -Wincompatible-pointer-types


  Commit: eafe9701f0211998cd2c6cefbde42bf1204890ef
      https://github.com/MythTV/mythtv/commit/eafe9701f0211998cd2c6cefbde42bf1204890ef
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  fixup PMT patch lavf/utils.c


  Commit: f509fa7d4625a3ecf5c67bab1f7ba0f8aac20c84
      https://github.com/MythTV/mythtv/commit/f509fa7d4625a3ecf5c67bab1f7ba0f8aac20c84
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  revert unnecessary null check in lavf/utils.c

st->codec is deprecated and appears to be unused in the guarded code

st should be non-null based on the for loop condition


  Commit: 4427f5ae6d38b7025244382597e5f621bb139acd
      https://github.com/MythTV/mythtv/commit/4427f5ae6d38b7025244382597e5f621bb139acd
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  Revert "lavf/utils.c: don't compile some debug log messages"

This reverts commit 1d3e96d200a035334eab79de0f4880453adf219e.

See https://trac.ffmpeg.org/ticket/1344
If this is still an issue, the FFmpeg ticket should be reopened with a sample.


  Commit: cbcc95cb3639346af7f717733b5ea8ad4490865f
      https://github.com/MythTV/mythtv/commit/cbcc95cb3639346af7f717733b5ea8ad4490865f
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/dvbsubdec.c

  Log Message:
  -----------
  fixup dvbsubdec.c: remove unused variables


  Commit: 7a49858ac04bd704850548d674befaa74ecf8aaa
      https://github.com/MythTV/mythtv/commit/7a49858ac04bd704850548d674befaa74ecf8aaa
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/avformat.h
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  fixup lavf MHEG changes: remove unused got_frame


  Commit: e1b81da6614b82e1b8e565dbdaa772b6f7bd71e0
      https://github.com/MythTV/mythtv/commit/e1b81da6614b82e1b8e565dbdaa772b6f7bd71e0
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/avformat.h
    M mythtv/external/FFmpeg/libavformat/libavformat.v
    M mythtv/external/FFmpeg/libavformat/utils-mythtv.c
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  fixup lavf/utils-mythtv.c: remove unused code, don't expose unused symbols


  Commit: 0df6047170cb9b3842f244cb9d3d22a6738f0fad
      https://github.com/MythTV/mythtv/commit/0df6047170cb9b3842f244cb9d3d22a6738f0fad
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpeg.c

  Log Message:
  -----------
  ffmpeg lavf/mpeg.c: fix indentation


  Commit: 74c1e353ce2d652756456b568c60215b65a52c0d
      https://github.com/MythTV/mythtv/commit/74c1e353ce2d652756456b568c60215b65a52c0d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/dvbsubdec.c

  Log Message:
  -----------
  revert MythTV 'DVB Subtitles: Fix display of subs with no display segment.'

from https://github.com/MythTV/mythtv/commit/d27bedf5571bdb80c164ce5d11a8af55f0275b92

Fixed 6 months later in FFmpeg (a decade ago):
Fix dvb subtitle decoding when display segment is missing.
https://github.com/FFmpeg/FFmpeg/commit/7df9937fcc6a91ce4763dfa1ea6fc331f7e77295


  Commit: 95188ca42cde5f213da7c40de2e46ae2dccf2530
      https://github.com/MythTV/mythtv/commit/95188ca42cde5f213da7c40de2e46ae2dccf2530
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/avformat.h
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  lavf: remove unused MythTV addition build_index

originally from https://github.com/MythTV/mythtv/commit/3539d581feeb0cbb9d6b7a3a077b27b9ec7693b9

also fixup comment spacing


  Commit: 037194e20e2ab81a12a5d848784f566ddda4a999
      https://github.com/MythTV/mythtv/commit/037194e20e2ab81a12a5d848784f566ddda4a999
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/dvbsubdec.c
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/external/FFmpeg/libavformat/utils.c
    M mythtv/external/FFmpeg/libavutil/frame.h

  Log Message:
  -----------
  ffmpeg: trim trailing whitespace


  Commit: d9d26eaa5248e13b94571e4ff833f945dd17713e
      https://github.com/MythTV/mythtv/commit/d9d26eaa5248e13b94571e4ff833f945dd17713e
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/internal.h

  Log Message:
  -----------
  Revert "libavcodec/internal.h: fix compilation with MSVC"

This reverts commit 066a0866f3cccbde7b65cda0a4b24b3c95ebf3be.


  Commit: a4ba11ea62f1b5d4360e1ec62f454cf2e4ba0223
      https://github.com/MythTV/mythtv/commit/a4ba11ea62f1b5d4360e1ec62f454cf2e4ba0223
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/isom.h

  Log Message:
  -----------
  revert 'MythTV: class is a reserved keyword in C++'

This change has been unnecessary since 3d21dadbc797298df112aa0838125c7b3ab384f9.


  Commit: aeb77e9154f8152ac6108d295fc5cf6d5cca2764
      https://github.com/MythTV/mythtv/commit/aeb77e9154f8152ac6108d295fc5cf6d5cca2764
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/mpegaudio_parser.c

  Log Message:
  -----------
  lavc/mpegaudio_parser.c: revert MythTV workaround

originally from https://github.com/MythTV/mythtv/commit/0bc16040176a1caf61068f42272b63698751d7dc
referencing https://code.mythtv.org/trac/ticket/8260

References https://github.com/MythTV/mythtv/issues/428

If this causes an issue, a new ticket with logs and a sample should be openned.


  Commit: 407c178d35fb27aa9176249e514f8787f8cea73f
      https://github.com/MythTV/mythtv/commit/407c178d35fb27aa9176249e514f8787f8cea73f
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.h
    M mythtv/external/FFmpeg/libavformat/utils-mythtv.c

  Log Message:
  -----------
  mpegts-mythtv.h: don't expose mpegts_remove_stream()

working toward merging utils-mythtv.c back into utils.c


  Commit: 6865029af27b1f935e41ae9244479997b418355a
      https://github.com/MythTV/mythtv/commit/6865029af27b1f935e41ae9244479997b418355a
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/Makefile
    R mythtv/external/FFmpeg/libavformat/utils-mythtv.c
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  lavf: merge utils-mythtv.c back into utils.c


  Commit: 27bd7c5add557ed3496391edfa9cb5f2cc4faa15
      https://github.com/MythTV/mythtv/commit/27bd7c5add557ed3496391edfa9cb5f2cc4faa15
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/avformat.h
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  lavf: export flush_packet_queue() as mythtv_flush_packet_queue()

FFmpeg 5.0 renames and exports this as ff_flush_packet_queue().

This change is intended to make transitioning to FFmpeg 5.0 easier.

Technically, this should be in libavformat/internal.h, but, since it is currently
unmodified, libavformat/avformat.h will work for now.  (MythTV does not directly use
this function.)


  Commit: f0e9f3833c11d9e79f49fa12eb0e3968bd320b93
      https://github.com/MythTV/mythtv/commit/f0e9f3833c11d9e79f49fa12eb0e3968bd320b93
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  lavf/utils.c: silence -Wdeclaration-after-statement


  Commit: 056465ecbeb65048c9c55078c744a361636cffac
      https://github.com/MythTV/mythtv/commit/056465ecbeb65048c9c55078c744a361636cffac
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/mpeg12dec.c

  Log Message:
  -----------
  libavcodec/mpeg12dec.c: silence -Wunused-variable from MythTV modification


  Commit: 551f6d320d65a09fd29ccdea24db0e4a2dc526ae
      https://github.com/MythTV/mythtv/commit/551f6d320d65a09fd29ccdea24db0e4a2dc526ae
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  lavf/mpegts-mythtv.c: silence -Wdeclaration-after-statement


  Commit: 9d39be965c7710f912c37ef9ce16d2d78f2b61cb
      https://github.com/MythTV/mythtv/commit/9d39be965c7710f912c37ef9ce16d2d78f2b61cb
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: silence -Wformat

st is a pointer not an unsigned int.


  Commit: a1bb41f3a9c0f9a1a7f167fde031c84cfcac1189
      https://github.com/MythTV/mythtv/commit/a1bb41f3a9c0f9a1a7f167fde031c84cfcac1189
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: silence -Wunused-variable


  Commit: 7898f30dda00969f552f2db7dc92f1e43ac731c5
      https://github.com/MythTV/mythtv/commit/7898f30dda00969f552f2db7dc92f1e43ac731c5
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: silence -Wundef


  Commit: 57528a15fa431457542a0a80e1d91bbe091639c9
      https://github.com/MythTV/mythtv/commit/57528a15fa431457542a0a80e1d91bbe091639c9
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: silence -Wunused-function


  Commit: beacc840656966eb14241058b979c8f858bcc757
      https://github.com/MythTV/mythtv/commit/beacc840656966eb14241058b979c8f858bcc757
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: silence -Wdiscarded-qualifiers

The warning was:

libavformat/mpegts-mythtv.c: In function ‘pmt_cb’:
libavformat/mpegts-mythtv.c:1971:14: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1971 |         tmp0 = avctx->cur_pmt_sect;
      |              ^


  Commit: babd08e75802b40d1182cd49cbdbdf1aad6a5c2e
      https://github.com/MythTV/mythtv/commit/babd08e75802b40d1182cd49cbdbdf1aad6a5c2e
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: move MythTV only stuff first

This is intended to make copying over the current FFmpeg mpegts.c produce a better diff.

No functional change.


  Commit: aeb439b4ac7b74a9c1c5103400fc93c8d02639f5
      https://github.com/MythTV/mythtv/commit/aeb439b4ac7b74a9c1c5103400fc93c8d02639f5
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavcodec/libavcodec.v
    M mythtv/external/FFmpeg/libavformat/libavformat.v

  Log Message:
  -----------
  FFmpeg: remove now unecessary added exports


  Commit: e2981fb7d24ae1e0944afb9ce2218bdf3ea124e2
      https://github.com/MythTV/mythtv/commit/e2981fb7d24ae1e0944afb9ce2218bdf3ea124e2
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  libavformat/utils.c: av_remove_stream() #if 0 the entire if else ladder

This was from https://github.com/MythTV/mythtv/commit/9cb02dee588127240fb8a843ed92347a33c7e0e1

when it was still part of utils.c.


  Commit: 77863ef3d303c0349511ae09e49fed691bd7cf9f
      https://github.com/MythTV/mythtv/commit/77863ef3d303c0349511ae09e49fed691bd7cf9f
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/utils.c

  Log Message:
  -----------
  libavformat/utils.c: silence final MythTV warning

No functional change, but AVStream.codec was removed in FFmpeg 5.0.

This should enable it to compile with FFmpeg 5.0, since it will then be
not compiled.


  Commit: cd735238b49496a50bd89d31544f316eb681263e
      https://github.com/MythTV/mythtv/commit/cd735238b49496a50bd89d31544f316eb681263e
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/os_support.h

  Log Message:
  -----------
  lavf/os_support.h: remove MythTV customization

that silenced a compiler warning, but this file is no longer included
by MythTV, so the change is no longer necessary.


  Commit: 4ae9d07dcbf5124cc912872fb522847b32dbeeb7
      https://github.com/MythTV/mythtv/commit/4ae9d07dcbf5124cc912872fb522847b32dbeeb7
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.h

  Log Message:
  -----------
  mpegts-mythtv.h: harmonize with mpegts.h

Almost a superset.  Different function names and ff_parse_mpeg2_descriptor()
takes an extra parameter.


  Commit: d1a26241dbd992e0caa22a923fdb8ee00fc0aec7
      https://github.com/MythTV/mythtv/commit/d1a26241dbd992e0caa22a923fdb8ee00fc0aec7
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-06-20 (Mon, 20 Jun 2022)

  Changed paths:
    M mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  mpegts-mythtv.c: export disposition from ISO_639_LANGUAGE_DESCRIPTOR

This replaces the use of the MythTV added, exported PMT for detecting
these in AvFormatDecoder::GetAudioTrackType().

disposition is copied over to the AVStream in mpegts_add_stream().

language is only 4 bytes, so don't write past the end.
i.e. the loop is invalid.


Compare: https://github.com/MythTV/mythtv/compare/02441add5956...d1a26241dbd9



More information about the mythtv-commits mailing list