[mythtv-commits] [MythTV/mythtv] 71228a: mpegts-mythtv.c: harmonize includes

Scott Theisen noreply at github.com
Mon Aug 15 13:12:47 UTC 2022


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 71228ae445b6c0a0de1caf55ffe5f6ddd6f1e888
      https://github.com/MythTV/mythtv/commit/71228ae445b6c0a0de1caf55ffe5f6ddd6f1e888
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize includes


  Commit: 92373b42323d87bd5b6101d643091d54bf66cf3f
      https://github.com/MythTV/mythtv/commit/92373b42323d87bd5b6101d643091d54bf66cf3f
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonization part 1 (mostly whitespace)

No functional change.


  Commit: a9bcbd31437ce6ff866aea98494d4e6e90dc570e
      https://github.com/MythTV/mythtv/commit/a9bcbd31437ce6ff866aea98494d4e6e90dc570e
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize MpegTSContext

Primarily whitespace changes and extra padding from new unused members.

Now a superset of mpegts.c's.

The only functional change (aside from the padding) is the change of
pcr_incr from int to int64_t.


  Commit: a08fc819b7ddc8dc6ccfbe7aa9cb3c2ad69f2049
      https://github.com/MythTV/mythtv/commit/a08fc819b7ddc8dc6ccfbe7aa9cb3c2ad69f2049
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: USE_SYNCPOINT_SEARCH is never defined

so remove the conditional compilation.


  Commit: 88317428fce5f27f85cd30bfabca56c850a7b811
      https://github.com/MythTV/mythtv/commit/88317428fce5f27f85cd30bfabca56c850a7b811
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize AVOptions, AVClasses, and AVInputFormats

The new options probably don't do anything yet.


  Commit: 8eb56f41fa9c74f9f54e8a4ce67fbe697672da72
      https://github.com/MythTV/mythtv/commit/8eb56f41fa9c74f9f54e8a4ce67fbe697672da72
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: move MythTV only functions to first use

add_section_stream()
mpegts_push_section() [forward declared prior to definition already]
mpegts_find_stream_type_pmt()


  Commit: 6fed1f7123adcc492838b4df0872905e066848de
      https://github.com/MythTV/mythtv/commit/6fed1f7123adcc492838b4df0872905e066848de
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1a

now identical to FFmpeg:
struct SectionHeader (no change)
skip_identical (new unused function)
get8
get16
getstr8
parse_section_header


  Commit: 3c2bf012822797c88b2728c6489e656461a54be1
      https://github.com/MythTV/mythtv/commit/3c2bf012822797c88b2728c6489e656461a54be1
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize struct StreamType

StreamType[]s:
ISO_types : superset
HDMV_types: identical
SCTE_types: identical
MISC_types: superset
REGD_types: identical
METADATA_types: identical
DESC_types: superset
COMPONENT_TAG_types: MythTV only


  Commit: e1473e50a5e0fc73570de351d0fcb577f71e9cbc
      https://github.com/MythTV/mythtv/commit/e1473e50a5e0fc73570de351d0fcb577f71e9cbc
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1b

now identical to FFmpeg:
mpegts_find_stream_type
mpegts_set_stream_info


  Commit: b99ad80ae552a1dd76ef54c58c91df5408b2b3c3
      https://github.com/MythTV/mythtv/commit/b99ad80ae552a1dd76ef54c58c91df5408b2b3c3
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1c

Now identical to FFmpeg's:
new_data_packet
eit_cb
sdt_cb
mpegts_free
mpegts_read_close
avpriv_mpegts_parse_open
avpriv_mpegts_parse_close


  Commit: b5da9ef907190760fd2cd0f2b3e5f106d9ef66ae
      https://github.com/MythTV/mythtv/commit/b5da9ef907190760fd2cd0f2b3e5f106d9ef66ae
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1d

parse_pcr


  Commit: 71c1eba3d000a2a8defcf31071b02438448ff447
      https://github.com/MythTV/mythtv/commit/71c1eba3d000a2a8defcf31071b02438448ff447
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize struct PESContext

also now identical to FFmpeg's:
mpegts_close_filter
reset_pes_packet_state
new_pes_packet
get_ts64
read_sl_header
mpegts_push_data

handle_packets (part 1, read_packet, handle_packet,
and finished_reading_packet have been left for later)


  Commit: 855c49681c0de1447694ca15660ec7086a90462b
      https://github.com/MythTV/mythtv/commit/855c49681c0de1447694ca15660ec7086a90462b
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1e

Now identical to FFmpeg's:
analyze
get_packet_size
mpegts_probe
seek_back

mpegts_read_header (heavy MythTV modification)

needs
read_packet
finished_reading_packet
handle_packets

which required:
mpegts_resync
handle_packet (modified, signature only)
mpegts_raw_read_packet

which required:
avpriv_mpegts_parse_packet


  Commit: 941b0d742b65be660d2bad3267930216162ddad9
      https://github.com/MythTV/mythtv/commit/941b0d742b65be660d2bad3267930216162ddad9
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1f add_pes_stream

(some residual modification)


  Commit: 74e01be149a3964e51b8b51107e8b4f2017d22f3
      https://github.com/MythTV/mythtv/commit/74e01be149a3964e51b8b51107e8b4f2017d22f3
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1g mpegts_get_dts

partial harmonize, pos47 -> pos47_full change not done


  Commit: f6d361ae2ddf489f5f10f470dafb29da25978f30
      https://github.com/MythTV/mythtv/commit/f6d361ae2ddf489f5f10f470dafb29da25978f30
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1h mpegts_read_packet (modified)

The line that was causing MHEG to not work is from:
mpegts: Make sure we don't return uninitialized packets
https://github.com/FFmpeg/FFmpeg/commit/df8aa4598c7cc1c2f863f6fc6b2d4b3e6dc7345e

I will test after further harmonization, but it looks like handle_packets
or something it calls will likely need additional modification.


  Commit: f49fd8e752db3bfbcb14c47d2b1ef8f1b124b571
      https://github.com/MythTV/mythtv/commit/f49fd8e752db3bfbcb14c47d2b1ef8f1b124b571
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions 1i ts->pos47 changes

handle_packet (modified)

write_section_data (modified, change only to signature):
Harmonization doesn't break MHEG but it doesn't start as early,
so I have only modified the signature.

Now identical to FFmpeg's:
mpegts_get_dts
mpegts_get_pcr


  Commit: b011db8009c795c296ee657cb0e2324bd5fa0198
      https://github.com/MythTV/mythtv/commit/b011db8009c795c296ee657cb0e2324bd5fa0198
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize mpegts_read_packet

in order for MHEG to work, mpegts_push_section needs to check for
pkt->size == -1 instead of the former 0.


  Commit: 21dbb395eb67fea8dcfed13476954fe12a8ff2bd
      https://github.com/MythTV/mythtv/commit/21dbb395eb67fea8dcfed13476954fe12a8ff2bd
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions part 3 (MP4)

Mostly whitespace changes.

Now identical to FFmpeg's:
struct MP4DescrParseContext
init_MP4DescrParseContext
update_offsets
parse_mp4_descr_arr
parse_MP4IODescrTag
parse_MP4ODescrTag
parse_MP4ESDescrTag
parse_MP4DecConfigDescrTag
parse_MP4SLDescrTag
parse_mp4_descr
mp4_read_iods
mp4_read_od
m4sl_cb


  Commit: 188da4ad289006ef9adff923e6b942e6cc65ba1d
      https://github.com/MythTV/mythtv/commit/188da4ad289006ef9adff923e6b942e6cc65ba1d
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: copy scte_data_cb() and opus_...[] arrays


  Commit: 178384b92c3e194fd4d8fe2333edbcb9d6572232
      https://github.com/MythTV/mythtv/commit/178384b92c3e194fd4d8fe2333edbcb9d6572232
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: rename clear_program() to clear_program_pid()

FFmpeg has a function with the same name that takes different parameters.


  Commit: aac860724d6f292a96ec6628a4906bb3a91639b3
      https://github.com/MythTV/mythtv/commit/aac860724d6f292a96ec6628a4906bb3a91639b3
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: move various functions no longer in upstream

No functional change, only moves.


  Commit: bea0e4e12ef583a8dc811f9d79587b9328711f47
      https://github.com/MythTV/mythtv/commit/bea0e4e12ef583a8dc811f9d79587b9328711f47
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions part 4

No functional change, either new functions or whitespace changes.

Now identical to FFmpeg's:
get_program
clear_avprogram
clear_program
clear_programs
add_program
add_pid_to_program
update_av_program_info
discard_pid


  Commit: b8a4bc7ba0eed3b06949a84179f117e0be033a4c
      https://github.com/MythTV/mythtv/commit/b8a4bc7ba0eed3b06949a84179f117e0be033a4c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: replace last of deprecated packet API

Should be no functional change.


  Commit: d522b318a482dd8ef41d2a3414f19bcea0abb619
      https://github.com/MythTV/mythtv/commit/d522b318a482dd8ef41d2a3414f19bcea0abb619
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: MpegTSContext: remove now unused element

Replaced by pos47_full in code copied from mpegts.c.


  Commit: 92fc49616d1ae34af79a4b346a00f2234da40b27
      https://github.com/MythTV/mythtv/commit/92fc49616d1ae34af79a4b346a00f2234da40b27
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize functions part 5

There should be no functional change.

Now identical to FFmpeg's:
mpegts_open_filter
mpegts_open_section_filter (minor modification)
mpegts_open_pes_filter
mpegts_open_pcr_filter
mpegts_close_filter


  Commit: 65f150d11fa91d5e02ae57d2eda91ceaf915d364
      https://github.com/MythTV/mythtv/commit/65f150d11fa91d5e02ae57d2eda91ceaf915d364
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: remove shim av_set_pts_info()

renamed upstream to avpriv_set_pts_info().

No functional change.


  Commit: 371bdb9a5eeb135d1926d13a5cbb3f85838ca796
      https://github.com/MythTV/mythtv/commit/371bdb9a5eeb135d1926d13a5cbb3f85838ca796
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  libavformat/mpegts-mythtv.c: av_mpegts_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: 68515f99e5ef73e5212da667b31797c0de8e0d9a
      https://github.com/MythTV/mythtv/commit/68515f99e5ef73e5212da667b31797c0de8e0d9a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: av_mpegts_remove_stream() silence 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: ead7151294025aea730e3699360ab471903e2710
      https://github.com/MythTV/mythtv/commit/ead7151294025aea730e3699360ab471903e2710
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: inline av_new_stream()

new_section_av_stream() unconditionally dereferences sect->st,
so I have removed that check for setting AVStream.id.


  Commit: 267d981642de652d072905b5f8664dcd940e7075
      https://github.com/MythTV/mythtv/commit/267d981642de652d072905b5f8664dcd940e7075
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: preprocess MACRO FF_ALLOCZ_OR_GOTO


  Commit: a5ce4ef8277134c6c69e51e67fe6d9c889a87cb8
      https://github.com/MythTV/mythtv/commit/a5ce4ef8277134c6c69e51e67fe6d9c889a87cb8
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: new_section_av_stream() fix memory leak

revealed by preprocessing MACRO FF_ALLOCZ_OR_GOTO

avformat_new_stream() allocates the returned AVStream.


  Commit: 3103c16cb6ae3b16b8ca50e48f6cc8e30b140ea5
      https://github.com/MythTV/mythtv/commit/3103c16cb6ae3b16b8ca50e48f6cc8e30b140ea5
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb() harmonization part 1


  Commit: 4fc7f925ad9f5c228464df51d0158ab153b8b5c2
      https://github.com/MythTV/mythtv/commit/4fc7f925ad9f5c228464df51d0158ab153b8b5c2
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: add/update comments


  Commit: 78f9ff81ab79fda1c56d9322021fc367e5199106
      https://github.com/MythTV/mythtv/commit/78f9ff81ab79fda1c56d9322021fc367e5199106
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: reduce forward declarations part 1

No functional change, just moves.


  Commit: ea3e3a73f97cde655220bcf67c822cac454aafc2
      https://github.com/MythTV/mythtv/commit/ea3e3a73f97cde655220bcf67c822cac454aafc2
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: reduce forward declarations part 2


  Commit: 6d3993da5cfeff28e022da68b9af418772b18552
      https://github.com/MythTV/mythtv/commit/6d3993da5cfeff28e022da68b9af418772b18552
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: reduce forward declarations part 3


  Commit: 8b9bf0d52343feaa002d1b718d1b53862f51456a
      https://github.com/MythTV/mythtv/commit/8b9bf0d52343feaa002d1b718d1b53862f51456a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: remove '#if 0'ed code

AVFormatContext no longer has a member cur_st.


  Commit: cca9a2f0f10f31772c3b73396bee3c57b7621266
      https://github.com/MythTV/mythtv/commit/cca9a2f0f10f31772c3b73396bee3c57b7621266
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: copy functions from mpegts.c

This makes for a better diff:

git diff --no-index --color-moved libavformat/mpegts.c libavformat/mpegts-mythtv.c


  Commit: 2c112aaa960ddb71ed93948b309399c8e16ff0c9
      https://github.com/MythTV/mythtv/commit/2c112aaa960ddb71ed93948b309399c8e16ff0c9
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb() harmonization part 2

The changes are originally from:
https://github.com/MythTV/mythtv/commit/084e3f83557cdd4ba8f86d31173332a1129b1f42
https://github.com/MythTV/mythtv/commit/a1d4d112c3f962a85ddd6248592421171fc8331c

in 2005 and 2006 and referencing
https://code.mythtv.org/trac/ticket/328
https://code.mythtv.org/trac/ticket/1887
, respectively.


  Commit: 82ab1a4e4ba0296f28dcba22d192dda712c2014e
      https://github.com/MythTV/mythtv/commit/82ab1a4e4ba0296f28dcba22d192dda712c2014e
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb() remove buf

No functional change.  Is is a vestigial change that has no effect.


  Commit: 0b0068cb24b6d564cd4ec9ded9502c38f543600a
      https://github.com/MythTV/mythtv/commit/0b0068cb24b6d564cd4ec9ded9502c38f543600a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: remove MpegTSContext.pmt_filter

It is identical to pids[req_sid].

It was assigned in pat_cb() and cleared in mpegts_close_filter(),
but these customizations have been removed.


  Commit: cd89d008a4d402503cb35f540970da0afcb0cecb
      https://github.com/MythTV/mythtv/commit/cd89d008a4d402503cb35f540970da0afcb0cecb
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: remove MpegTSContext.pat_filter

It is identical to pids[PAT_PID].

This filter is never closed: see discard_pid().


  Commit: 3464b16cf596f2ff3f7c7a91d57d32da2e0bd2ed
      https://github.com/MythTV/mythtv/commit/3464b16cf596f2ff3f7c7a91d57d32da2e0bd2ed
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: mpegts_open_section_filter() remove unnecessary addition

In add_section_stream() it is already closed if open.

pat_cb() only calls if it is not open.

mpegts_read_header() only opens filters for fixed PIDs, so the closing to
reopen is unnecessary.  Similarly with avpriv_mpegts_parse_open().


  Commit: 10fe423f2ba4295599a0901a173be97801a59f83
      https://github.com/MythTV/mythtv/commit/10fe423f2ba4295599a0901a173be97801a59f83
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb() use AV_LOG_TRACE

>From doc/APIchanges:
2015-04-20 - 8e8219e / c253340 - lavu 54.23.100 / 54.12.0 - log.h
  Add AV_LOG_TRACE for extremely verbose debugging.

Also use ts->stream (the AVFormatContext) as the context for av_log(), matching
the other calls.


  Commit: ecc58ce795651bcb038424ee2c107547305ae850
      https://github.com/MythTV/mythtv/commit/ecc58ce795651bcb038424ee2c107547305ae850
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 1


  Commit: 3a6728f9d39ebe0ac981ae61456b1895acc68115
      https://github.com/MythTV/mythtv/commit/3a6728f9d39ebe0ac981ae61456b1895acc68115
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 2 (av_log())


  Commit: ee205e5814d51e2f1a89121cde7332cda7764803
      https://github.com/MythTV/mythtv/commit/ee205e5814d51e2f1a89121cde7332cda7764803
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 3

update_av_program_info() is set_pcr_pid() but also sets
AVProgram.pmt_version = version and has some logging.

add_pid_to_pmt() is equivalent to add_pid_to_program() using get_program()
except add_pid_to_program() scans all the pids to ensure no duplicates.
static void add_pid_to_pmt(MpegTSContext *ts, unsigned int programid, unsigned int pid)
{
    struct Program *p = get_program(ts, programid);
    add_pid_to_program(p, pid);
}

clear_program() using get_program() resets nb_pids, nb_streams, and pmt_found.
clear_program_pid() just resets nb_pids:
static void clear_program_pid(MpegTSContext *ts, unsigned int programid)
{
    struct Program *p = get_program(ts, programid);
    if (p)
        p->nb_pids = 0;
}

Thus, AVProgram.pmt_version is now set, and prg now has two pids:
ts->current_pid (new) and pcr_pid.  prg now also has nb_streams and
pmt_found reset to 0.


  Commit: 7ebb93c833ba6a8e5aa88e67a332a8be03937ce0
      https://github.com/MythTV/mythtv/commit/7ebb93c833ba6a8e5aa88e67a332a8be03937ce0
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 4

Mostly whitespace/MACRO use changes.


  Commit: 50de94621459208840202f63e7e9340260f3bcec
      https://github.com/MythTV/mythtv/commit/50de94621459208840202f63e7e9340260f3bcec
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 5

Add comments marking changes.

The for loop still needs harmonization.


  Commit: 343273ab668cad135d6dc38aaaa65253a202f511
      https://github.com/MythTV/mythtv/commit/343273ab668cad135d6dc38aaaa65253a202f511
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): remove unused variable desc_count


  Commit: 424e7e9f1ba9648d4d9d730d70dbda06a14e9b9c
      https://github.com/MythTV/mythtv/commit/424e7e9f1ba9648d4d9d730d70dbda06a14e9b9c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): create export_pmt()

memcpy() with NULL pointers is undefined behavior.  tmp1 would be
NULL if av_malloc() failed.

av_free() explicitly *allows* a NULL pointer as its argument.


  Commit: 261048204f116c6e3ac132d02e46bd3d1783e508
      https://github.com/MythTV/mythtv/commit/261048204f116c6e3ac132d02e46bd3d1783e508
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize ff_parse_mpeg2_descriptor() part 1

This is in preparation of changing its signature.  Most copies are #if 0,
since the parameters have changed.

language is only size 4, so I have corrected writing past its end for
ISO_639_LANGUAGE_DESCRIPTOR.

The language strings will be in the AVDictionary AVStream.metadata under "language".

dvbci->comp_page, dvbci->anc_page, and dvbci->sub_id will become
AVStream->codecpar->extradata: indices mod 5
subtitling_type: 0
comp_page:       RB16(1)
anc_page:        RB16(3)
sub_id:          RB32(1)

dvbci->component_tag will become
(st->stream_identifier - 1) [0 is used for unknown]


  Commit: 436f39466b350875b504d9c892dda779f11b3b5e
      https://github.com/MythTV/mythtv/commit/436f39466b350875b504d9c892dda779f11b3b5e
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: convert export_pmt() to AVBufferRef

This is now thread safe and should prevent triggering any use after free
race conditions in MythTV.

avformatdecoder.cpp: convert PMT buffer to MythAVBufferRef


  Commit: 3333a6cd9470b26360f249e22ebfc2e2286a3e2a
      https://github.com/MythTV/mythtv/commit/3333a6cd9470b26360f249e22ebfc2e2286a3e2a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  avformat.h: remove now unused mythtv additions


  Commit: a1dae997e71e1a8e44ca1ba5cbc8db4c3f114c1a
      https://github.com/MythTV/mythtv/commit/a1dae997e71e1a8e44ca1ba5cbc8db4c3f114c1a
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: add a log entry for exporting the PMT


  Commit: d81db0520b27008681e0063293f2cc4ff0d7a957
      https://github.com/MythTV/mythtv/commit/d81db0520b27008681e0063293f2cc4ff0d7a957
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: replace remaining av_dlog()


  Commit: 96abc6d5f5cf6b495c3515d87c273d90a5cbc581
      https://github.com/MythTV/mythtv/commit/96abc6d5f5cf6b495c3515d87c273d90a5cbc581
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: add context for all av_log()s


  Commit: 89c91ee94fc08ad78adc9c274f18d0b1b099675c
      https://github.com/MythTV/mythtv/commit/89c91ee94fc08ad78adc9c274f18d0b1b099675c
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: use AV_LOG_TRACE


  Commit: 4b93ec781ea7a43922fec2c8b14bfc14479d5198
      https://github.com/MythTV/mythtv/commit/4b93ec781ea7a43922fec2c8b14bfc14479d5198
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c:mpegts_add_stream(): add and use local variables

This is to help comparing it with pmt_cb().


  Commit: 5647b20968bad3354dc731d8b4862e94c6c918c1
      https://github.com/MythTV/mythtv/commit/5647b20968bad3354dc731d8b4862e94c6c918c1
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: match some space with ffmpeg


  Commit: 89ebdb8e928b093b057048dd1c25d31b906401ac
      https://github.com/MythTV/mythtv/commit/89ebdb8e928b093b057048dd1c25d31b906401ac
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pmt_cb(): harmonize part 6v2

goto out on errors and whitespace changes.


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

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

  Log Message:
  -----------
  mpegts-mythtv.c: always export the ref-counted PMT

This is in preparation for (temporarily) disabling the streams_changed code.


  Commit: ad9fb22de00f34dc171d5f7815a7b894bf2ab509
      https://github.com/MythTV/mythtv/commit/ad9fb22de00f34dc171d5f7815a7b894bf2ab509
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv: harmonize pmt_cb() part 7

ff_parse_mpeg2_descriptor() is now minimally modified. Yay!
This has enabled removing the struct dvb_caption_info_t,
which was only a shim for copying the values from
ff_parse_mpeg2_descriptor() to the AVStream in mpegts_add_stream().

struct pmt_entry_t is now moved out of the header since it is no
longer used there.

mpegts-mythtv.h is now (ignoring the renamed functions) a superset
of mpegts.h.

PMT_PIDS_MAX was 256, MAX_STREAMS_PER_PROGRAM is 128.
I don't anticipate this being an issue, and if it is, it is an
upstream issue.

mpegts_add_stream() has been merged into pmt_cb() with upstream additions.

The streams_changed callback has been disabled as it is now unnecessary
in my samples from the Finnish YLE that used to trigger it.  It could
be re-enabled if necessary.

The following now unused functions have been removed:
mpegts_find_stream_type_pmt
av_mpegts_remove_stream
mpegts_add_stream

This needs testing with DSMCC/MHEG streams.


  Commit: 8bc947b3f08964b03b76af4522899a6b18d737d7
      https://github.com/MythTV/mythtv/commit/8bc947b3f08964b03b76af4522899a6b18d737d7
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: fix double free aborts with MHEG streams

add_section_stream reused the SectionContext if it already exists.
However, it is assigned to AVStream.priv_data which then results in
double frees causing aborts since multiple streams are created for
the same PID.

The similar add_pes_stream does not reuse its PESContexts.


  Commit: 91ac7c268e2dde86dcabe3b30454bed715f72b54
      https://github.com/MythTV/mythtv/commit/91ac7c268e2dde86dcabe3b30454bed715f72b54
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: reuse existing streams for MHEG

This should emulate the prior behavior before harmonization of
removing and adding new streams.

My sample now only has two MHEG streams, one for each PID,
as it used to.

In the process, inline new_section_av_stream to ensure the values
are always set correctly.

I don't know if this is the correct way to reuse the streams,
but it appears to work correctly.


  Commit: 6516303e29ca953d329593ff22ff0984f48bc591
      https://github.com/MythTV/mythtv/commit/6516303e29ca953d329593ff22ff0984f48bc591
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb(): move found logic into main loop


  Commit: 9101ba547c5615be24832c71a4315b87c1434915
      https://github.com/MythTV/mythtv/commit/9101ba547c5615be24832c71a4315b87c1434915
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: pat_cb(): harmonize part 3

add_pat_entry() is roughly equivalent to add_program().

ffmpeg doesn't care if is_pat_same() so move it into the main loop
as ffmpeg does.

ffmpeg also doesn't have req_sid, so also move the filter code into
the main loop as ffmpeg does.

remove now unused functions:
add_pat_entry
is_pat_same

Yay!  No more compiler warnings!


  Commit: b424fa1ea0234837c167116c2ec1f131f7581751
      https://github.com/MythTV/mythtv/commit/b424fa1ea0234837c167116c2ec1f131f7581751
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize mpegts_read_header()


  Commit: 4f9e26d0cfffe6068268f7142d3b5dcc14b8cab7
      https://github.com/MythTV/mythtv/commit/4f9e26d0cfffe6068268f7142d3b5dcc14b8cab7
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  libavcodec/codec_desc.c: move AVCodecDescriptors to proper location

I had assumed the DSMCC_B descriptor was in the proper location.
It is not, so neither are the others.  Put them in the correct order,
matching the order of the enum AVCodecID so the binary search finds
them correctly.


  Commit: 45fa26c97b76382708a31ffab06a39ec296a1432
      https://github.com/MythTV/mythtv/commit/45fa26c97b76382708a31ffab06a39ec296a1432
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: harmonize write_section_data

FFmpeg inverted its if logic, so the second MythTV hunk is now following.
That hunk may not be necessary, since the issue did not exist upstream.
It may also be incorrect for the same reason.

This doesn't break MHEG but it doesn't start as early with one of
my samples, increasing from 5 seconds in to 18 seconds in.  I'm
not sure why this changed, however.


  Commit: d2dec3db384f7ca7eef9604967b47a38c1b018f9
      https://github.com/MythTV/mythtv/commit/d2dec3db384f7ca7eef9604967b47a38c1b018f9
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: fix memory leak of SectionContexts

by reusing the existing SectionContext if it was opened by
add_section_stream.


  Commit: dcb64e970605d6b58a6d36da9ea83055fe40dd30
      https://github.com/MythTV/mythtv/commit/dcb64e970605d6b58a6d36da9ea83055fe40dd30
  Author: Scott Theisen <scott.the.elm at gmail.com>
  Date:   2022-08-15 (Mon, 15 Aug 2022)

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

  Log Message:
  -----------
  mpegts-mythtv.c: fix memory leak of exported PMT


Compare: https://github.com/MythTV/mythtv/compare/0c25abf44d37...dcb64e970605



More information about the mythtv-commits mailing list