[mythtv-commits] [MythTV/mythtv] 0f1ba0: MythCodecMap: Don't use a global, static singleton

Mark Kendall noreply at github.com
Sat Mar 14 08:35:57 UTC 2020

  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 0f1ba0e5b09aef7889bee6e1e37267546086dded
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-14 (Sat, 14 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythtv/avformatwriter.cpp
    M mythtv/libs/libmythtv/avformatwriter.h
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/decoders/avformatdecoder.h
    M mythtv/libs/libmythtv/decoders/mythdrmprimecontext.cpp
    M mythtv/libs/libmythtv/decoders/mythmediacodeccontext.cpp
    M mythtv/libs/libmythtv/decoders/mythmmalcontext.cpp
    M mythtv/libs/libmythtv/decoders/mythnvdeccontext.cpp
    M mythtv/libs/libmythtv/mythavutil.cpp
    M mythtv/libs/libmythtv/mythavutil.h
    M mythtv/programs/mythtranscode/mpeg2fix.h

  Log Message:
  MythCodecMap: Don't use a global, static singleton

- there is no reason to use a global singleton, other than occasional
- it introduces concurrency and locking issues right across any mythtv
application trying to access it from multiple threads

  Commit: 913a8ff5182d13a97d01d013d7cfbf000605883e
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2020-03-14 (Sat, 14 Mar 2020)

  Changed paths:
    M mythtv/libs/libmythbase/mythcorecontext.cpp
    M mythtv/libs/libmythbase/mythcorecontext.h
    M mythtv/libs/libmythtv/Bluray/avformatdecoderbd.cpp
    M mythtv/libs/libmythtv/DVD/avformatdecoderdvd.cpp
    M mythtv/libs/libmythtv/avformatwriter.cpp
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/decoders/nuppeldecoder.cpp
    M mythtv/libs/libmythtv/recorders/NuppelVideoRecorder.cpp

  Log Message:
  Remove global avcodeclock singleton

- this was originally used to protect calls to av_register_all
- av_register_all is no longer required and we don't use it anyway
- over the years it has morphed into a catchall lock around sundry
decoder activities - some of which have been improved in recent commits
- some other FFmpeg calls (e.g. avcode_open2) used to require locking
but this is now handled internally in FFmpeg (as long as pthread support
is available - which it should always be).
- fixes PiP support
- should improve concurrency generally where more than one decoder is

Compare: https://github.com/MythTV/mythtv/compare/405e049c7611...913a8ff5182d

More information about the mythtv-commits mailing list