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

Scott Theisen noreply at github.com
Mon Jul 18 15:34:05 UTC 2022


  Branch: refs/heads/devel/ffmpeg-resync
  Home:   https://github.com/MythTV/mythtv
  Commit: 6b5b86734b59a746610912273e1e684c3ee724d0
      https://github.com/MythTV/mythtv/commit/6b5b86734b59a746610912273e1e684c3ee724d0
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: ca799c34baf684ef96d0e48380f61786fa5ad17f
      https://github.com/MythTV/mythtv/commit/ca799c34baf684ef96d0e48380f61786fa5ad17f
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 77d08733983f879a38f603b6ed7aab3807da5a8a
      https://github.com/MythTV/mythtv/commit/77d08733983f879a38f603b6ed7aab3807da5a8a
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 8cb2003b8e22a098e23f213d39eb43e5c9df92fd
      https://github.com/MythTV/mythtv/commit/8cb2003b8e22a098e23f213d39eb43e5c9df92fd
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 08f49882aa92f1171cfb407a2585d0912e3f8be2
      https://github.com/MythTV/mythtv/commit/08f49882aa92f1171cfb407a2585d0912e3f8be2
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: ed065d5f8c49467df86512e63601f66038773877
      https://github.com/MythTV/mythtv/commit/ed065d5f8c49467df86512e63601f66038773877
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 6de9a082096beb2b16b452ccc44a0e62d322bdff
      https://github.com/MythTV/mythtv/commit/6de9a082096beb2b16b452ccc44a0e62d322bdff
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: b7804838b5451f056b479baab4d6e6c5364fa38d
      https://github.com/MythTV/mythtv/commit/b7804838b5451f056b479baab4d6e6c5364fa38d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 4d559a0e4bbda5b87733783e502335195435fc50
      https://github.com/MythTV/mythtv/commit/4d559a0e4bbda5b87733783e502335195435fc50
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 74eaf9126b4fe1f85243b59363eeaffa38dee902
      https://github.com/MythTV/mythtv/commit/74eaf9126b4fe1f85243b59363eeaffa38dee902
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 40fb3cd09d3e0636cb010981132269b240d26f00
      https://github.com/MythTV/mythtv/commit/40fb3cd09d3e0636cb010981132269b240d26f00
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: db930473990e24d57c7c35f095f854c983da7002
      https://github.com/MythTV/mythtv/commit/db930473990e24d57c7c35f095f854c983da7002
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: f5858a99acb1835d7000dd060b6b9aca7359f0f2
      https://github.com/MythTV/mythtv/commit/f5858a99acb1835d7000dd060b6b9aca7359f0f2
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 8f383d8dabeabf541bb294dabd72d8d993caf9c8
      https://github.com/MythTV/mythtv/commit/8f383d8dabeabf541bb294dabd72d8d993caf9c8
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: dc8160f085c037b507b479aa281cd9d6d71bebac
      https://github.com/MythTV/mythtv/commit/dc8160f085c037b507b479aa281cd9d6d71bebac
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 86ca83d1e85b6da5628073ccc6e4d25cd56665c6
      https://github.com/MythTV/mythtv/commit/86ca83d1e85b6da5628073ccc6e4d25cd56665c6
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 5a271a017a913447c25d3c0cab378ea3e3fcd29a
      https://github.com/MythTV/mythtv/commit/5a271a017a913447c25d3c0cab378ea3e3fcd29a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 2e2b72a59f5c8e75787cace8192f86b8e309665c
      https://github.com/MythTV/mythtv/commit/2e2b72a59f5c8e75787cace8192f86b8e309665c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: a7f85e0d6c354eb05e08d426ba41494e4e610276
      https://github.com/MythTV/mythtv/commit/a7f85e0d6c354eb05e08d426ba41494e4e610276
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 0408127a649b19820cf7d66fa0a4d1a4e76b39ba
      https://github.com/MythTV/mythtv/commit/0408127a649b19820cf7d66fa0a4d1a4e76b39ba
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: a0f653a2cce0416c1d7d4c1ba22dd1ffb37b315e
      https://github.com/MythTV/mythtv/commit/a0f653a2cce0416c1d7d4c1ba22dd1ffb37b315e
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 7b2ac1eeb593c0da760cf637a07536f874dce19b
      https://github.com/MythTV/mythtv/commit/7b2ac1eeb593c0da760cf637a07536f874dce19b
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: f736c623451e622ea32b3fe080ff81380cbd9eef
      https://github.com/MythTV/mythtv/commit/f736c623451e622ea32b3fe080ff81380cbd9eef
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 551553db75c9524352dfe57bd3a17c8afd37be8d
      https://github.com/MythTV/mythtv/commit/551553db75c9524352dfe57bd3a17c8afd37be8d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 57f22f0805f91840cb467eebe05df3c679e445a5
      https://github.com/MythTV/mythtv/commit/57f22f0805f91840cb467eebe05df3c679e445a5
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 8713aab1a470a295e426368caf1280d0755d61aa
      https://github.com/MythTV/mythtv/commit/8713aab1a470a295e426368caf1280d0755d61aa
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: d4bb47da34518175ece96aa4e4ec69e673899d65
      https://github.com/MythTV/mythtv/commit/d4bb47da34518175ece96aa4e4ec69e673899d65
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 66df1e9328b4fb88e68e0dbe339c4094d8b092d2
      https://github.com/MythTV/mythtv/commit/66df1e9328b4fb88e68e0dbe339c4094d8b092d2
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: f0cd8b6743e81945787da9682ade041c4b2f7973
      https://github.com/MythTV/mythtv/commit/f0cd8b6743e81945787da9682ade041c4b2f7973
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 4d6239d45f6469b3499738a77d2d4b5778e86639
      https://github.com/MythTV/mythtv/commit/4d6239d45f6469b3499738a77d2d4b5778e86639
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 9b11c8fe0c94e3fc0eca4f189a928a7bb08badf0
      https://github.com/MythTV/mythtv/commit/9b11c8fe0c94e3fc0eca4f189a928a7bb08badf0
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 764f6a1ea956d99c21d245d141fb4fcdbc6bba96
      https://github.com/MythTV/mythtv/commit/764f6a1ea956d99c21d245d141fb4fcdbc6bba96
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 08864fd5196b8004a05b9f0a133633b3f7ae4bc9
      https://github.com/MythTV/mythtv/commit/08864fd5196b8004a05b9f0a133633b3f7ae4bc9
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 84e884fbcd415efd1cd49d8c379e2fd1c1a55d03
      https://github.com/MythTV/mythtv/commit/84e884fbcd415efd1cd49d8c379e2fd1c1a55d03
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 68ffbbf428cdcae5edda34f2b38f79ba8e878033
      https://github.com/MythTV/mythtv/commit/68ffbbf428cdcae5edda34f2b38f79ba8e878033
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 13db2fe3881615af354dde61db1efa322ea51d19
      https://github.com/MythTV/mythtv/commit/13db2fe3881615af354dde61db1efa322ea51d19
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 4865a1e4a4a9df9456c276ac7bd40ed1c0fe3653
      https://github.com/MythTV/mythtv/commit/4865a1e4a4a9df9456c276ac7bd40ed1c0fe3653
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: e97b05769b8bd78ea8e6fb2acf6cdfb1f6ce0170
      https://github.com/MythTV/mythtv/commit/e97b05769b8bd78ea8e6fb2acf6cdfb1f6ce0170
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 1f6215758f8ad7b8c9b1f9fcf853d91e0701e3bd
      https://github.com/MythTV/mythtv/commit/1f6215758f8ad7b8c9b1f9fcf853d91e0701e3bd
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 7c32120ba9743abc9c9c68b65e7aaf678577c646
      https://github.com/MythTV/mythtv/commit/7c32120ba9743abc9c9c68b65e7aaf678577c646
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: da2a353f8fea05c052037cefd8fa56501d2b22ee
      https://github.com/MythTV/mythtv/commit/da2a353f8fea05c052037cefd8fa56501d2b22ee
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 0d3662e840373f4af8ae7575242ce348202e724b
      https://github.com/MythTV/mythtv/commit/0d3662e840373f4af8ae7575242ce348202e724b
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: e1db8d350ab0796f42a7b694a0eb1e6a62e94ce9
      https://github.com/MythTV/mythtv/commit/e1db8d350ab0796f42a7b694a0eb1e6a62e94ce9
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 3106c3beb096760a8fdf5865df9ff735f0552d5e
      https://github.com/MythTV/mythtv/commit/3106c3beb096760a8fdf5865df9ff735f0552d5e
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: c5b0e244e4d34993c894ed16d49f3c379d5ffe8a
      https://github.com/MythTV/mythtv/commit/c5b0e244e4d34993c894ed16d49f3c379d5ffe8a
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: eeee0b3718760b838867e1a92c57dbb6a9073bdc
      https://github.com/MythTV/mythtv/commit/eeee0b3718760b838867e1a92c57dbb6a9073bdc
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: b9244d2ce8eee0fc14c60e896f454cc7b5ed357d
      https://github.com/MythTV/mythtv/commit/b9244d2ce8eee0fc14c60e896f454cc7b5ed357d
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 08d7655dcdebef72dd703c19491938b086e9bee4
      https://github.com/MythTV/mythtv/commit/08d7655dcdebef72dd703c19491938b086e9bee4
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 5349a5587b1ec29a3c6d85f31467d824cfb978bb
      https://github.com/MythTV/mythtv/commit/5349a5587b1ec29a3c6d85f31467d824cfb978bb
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: a812eeca01b5e04a5861e8380a7bb279e083395f
      https://github.com/MythTV/mythtv/commit/a812eeca01b5e04a5861e8380a7bb279e083395f
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 04044bd0090aa436579c3de5386195dbe78004e4
      https://github.com/MythTV/mythtv/commit/04044bd0090aa436579c3de5386195dbe78004e4
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: e656bdc2f9a506243f9341213cc96479f191d63b
      https://github.com/MythTV/mythtv/commit/e656bdc2f9a506243f9341213cc96479f191d63b
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: b20cb873ad2eb62409e0f8fd93a0f1183206d3d3
      https://github.com/MythTV/mythtv/commit/b20cb873ad2eb62409e0f8fd93a0f1183206d3d3
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: ddd9083f8c8b717d3ae4a5036075da8b6f1dd959
      https://github.com/MythTV/mythtv/commit/ddd9083f8c8b717d3ae4a5036075da8b6f1dd959
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: db8a9d6942463e3da0d272ff22c521fe99d60399
      https://github.com/MythTV/mythtv/commit/db8a9d6942463e3da0d272ff22c521fe99d60399
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: d28a554137593ef55ccca8e68883513a2dfc8a2f
      https://github.com/MythTV/mythtv/commit/d28a554137593ef55ccca8e68883513a2dfc8a2f
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: f814d5aa45c090f3a93523edbad81697328eb608
      https://github.com/MythTV/mythtv/commit/f814d5aa45c090f3a93523edbad81697328eb608
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 16a1cb5c8ff5b1434be55502a1b75e833e9f893e
      https://github.com/MythTV/mythtv/commit/16a1cb5c8ff5b1434be55502a1b75e833e9f893e
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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


  Commit: 103f54e0c68f6c7a419bc2891d0b8dd96817eabc
      https://github.com/MythTV/mythtv/commit/103f54e0c68f6c7a419bc2891d0b8dd96817eabc
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: ff2480243f101f6b894e3d8766f71057d10291f1
      https://github.com/MythTV/mythtv/commit/ff2480243f101f6b894e3d8766f71057d10291f1
  Author: ulmus-scott <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 4e5b66eaab3936c90f4de1d2e8318f024c771f0b
      https://github.com/MythTV/mythtv/commit/4e5b66eaab3936c90f4de1d2e8318f024c771f0b
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: a2099bd66ea17e4a45e462c23143b45581403b29
      https://github.com/MythTV/mythtv/commit/a2099bd66ea17e4a45e462c23143b45581403b29
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: e82dce8e594d419004260ae68e03707886548017
      https://github.com/MythTV/mythtv/commit/e82dce8e594d419004260ae68e03707886548017
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 9e8507d374c3550ed6d7888ec5484e3a0f1ee0c4
      https://github.com/MythTV/mythtv/commit/9e8507d374c3550ed6d7888ec5484e3a0f1ee0c4
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: b96b398b66fb3984ec27d8c165abd745198abbff
      https://github.com/MythTV/mythtv/commit/b96b398b66fb3984ec27d8c165abd745198abbff
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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: 8da3be28c047825b6d9092e38c1b5c5a1aeadc14
      https://github.com/MythTV/mythtv/commit/8da3be28c047825b6d9092e38c1b5c5a1aeadc14
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 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.


  Commit: b105b07df41e2744365ddfeee1342f9afc5aa149
      https://github.com/MythTV/mythtv/commit/b105b07df41e2744365ddfeee1342f9afc5aa149
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

  Log Message:
  -----------
  libavformat/utils.c: fixup create mythtv custom mpegts demuxer

Since MythTV now allows forcing the use of FFmpeg's demuxer,
these comparisons need an additional comparison against
"mpegts-ffmpeg" for the behavior of both to be the same.

This bug presented itself as incorrect durations of files
when using the mpegts-ffmpeg demuxer.


  Commit: 3512e42641f4bd9232272134f7cd4ced72acfe50
      https://github.com/MythTV/mythtv/commit/3512e42641f4bd9232272134f7cd4ced72acfe50
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

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

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

This reverts commit 50155e4d1b76a9457a91630efb96ef920ccf81ae.

These checks are necessary to ensure hardware decoders are properly initialized.

FindStreamInfo() may be clobbering the return value of avformat_find_stream_info()
so my interpretation of the code may have been incorrect.


Compare: https://github.com/MythTV/mythtv/compare/c72662299737...3512e42641f4



More information about the mythtv-commits mailing list