All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: atexit
    functionSourceFile: /src/ffms2_fuzzer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atexit(void (*function)(void))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Init
      Src: /src/ffms2_fuzzer.cc:26,1
    - Dst: sprintf
      Src: /src/ffms2_fuzzer.cc:36,1
    - Dst: getpid
      Src: /src/ffms2_fuzzer.cc:36,1
    - Dst: fopen
      Src: /src/ffms2_fuzzer.cc:38,1
    - Dst: fwrite
      Src: /src/ffms2_fuzzer.cc:42,1
    - Dst: fclose
      Src: /src/ffms2_fuzzer.cc:43,1
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2_fuzzer.cc:45,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2_fuzzer.cc:47,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2_fuzzer.cc:49,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2_fuzzer.cc:51,1
    - Dst: unlink
      Src: /src/ffms2_fuzzer.cc:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 57
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ffms2_fuzzer.cc
    functionUses: 0
    functionsReached:
    - getpid
    - fopen
    - FFMS_CreateIndexer
    - FFMS_DestroyIndex
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - fwrite
    - FFMS_Init
    - unlink
    - fclose
    - sprintf
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: NULL_CHECK
    functionSourceFile: /src/ffms2/test/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_CHECK(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: EQ_CHECK
    functionSourceFile: /src/ffms2/test/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EQ_CHECK(arg1,arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: STRINGIFY2
    functionSourceFile: /src/ffms2/test/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: STRINGIFY
    functionSourceFile: /src/ffms2/test/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - file
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: TEST_ENTRY
    functionSourceFile: /src/ffms2/test/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ENTRY(file, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: TEST_DOUBLE
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_DOUBLE(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/hdr.cpp:71,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/hdr.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: HDR10Test::SetUp
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void HDR10Test::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/hdr.cpp:77,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/hdr.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: HDR10Test::TearDown
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void HDR10Test::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/hdr.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/hdr.cpp:82,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:83,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/hdr.cpp:84,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/hdr.cpp:86,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:87,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/hdr.cpp:89,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/hdr.cpp:90,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/hdr.cpp:92,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/hdr.cpp:92,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:93,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/hdr.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: HDR10Test::DoIndexing
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool HDR10Test::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:103,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:103,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:105,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:107,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:108,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:108,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:110,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:111,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:111,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:113,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:114,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:114,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:115,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, StreamData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:121,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:121,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:124,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:126,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:126,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:127,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:129,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:129,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:130,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:130,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:132,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:133,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:133,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:134,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, ContainerData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:140,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:140,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:143,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:145,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:145,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:146,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:146,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:148,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:148,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:149,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:149,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:151,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:152,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:152,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:153,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, StreamAndContainerData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/hdr.cpp:71,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/hdr.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: HDR10Test::SetUp
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void HDR10Test::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/hdr.cpp:77,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/hdr.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: HDR10Test::TearDown
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void HDR10Test::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/hdr.cpp:82,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/hdr.cpp:82,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:83,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/hdr.cpp:84,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/hdr.cpp:86,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:87,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/hdr.cpp:89,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/hdr.cpp:90,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/hdr.cpp:92,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/hdr.cpp:92,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/hdr.cpp:93,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/hdr.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: HDR10Test::DoIndexing
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool HDR10Test::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:103,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:103,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:105,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:107,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:107,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:108,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:108,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:110,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:110,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:111,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:111,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:113,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:114,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:114,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:115,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, StreamData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:121,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:121,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:124,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:126,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:126,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:127,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:127,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:129,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:129,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:130,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:130,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:132,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:133,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:133,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:134,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, ContainerData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:140,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/hdr.cpp:140,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:143,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:145,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:145,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:146,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:146,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:148,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:148,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:149,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:149,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:151,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:152,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:152,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/hdr.cpp:153,1
    - Dst: TEST_DOUBLE
      Src: /src/ffms2/test/hdr.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - TEST_DOUBLE
    linkageType: ''
    returnType: void
    signature: void TEST_F(HDR10Test, StreamAndContainerData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::InitGoogleTest
      Src: /src/ffms2/test/hdr.cpp:159,1
    - Dst: RUN_ALL_TESTS
      Src: /src/ffms2/test/hdr.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/ffms2/test/hdr.cpp
    functionUses: 0
    functionsReached:
    - RUN_ALL_TESTS
    - ::testing::InitGoogleTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/display_matrix.cpp:40,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/display_matrix.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: DisplayMatrixTest::SetUp
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void DisplayMatrixTest::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/display_matrix.cpp:46,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/display_matrix.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: DisplayMatrixTest::TearDown
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void DisplayMatrixTest::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/display_matrix.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/display_matrix.cpp:51,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:52,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/display_matrix.cpp:53,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/display_matrix.cpp:55,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:56,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/display_matrix.cpp:58,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/display_matrix.cpp:59,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/display_matrix.cpp:61,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/display_matrix.cpp:61,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:62,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/display_matrix.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: DisplayMatrixTest::DoIndexing
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool DisplayMatrixTest::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:72,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, HFlip270)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:81,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, HFlip90)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:90,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:90,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, VFlip180)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/display_matrix.cpp:40,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/display_matrix.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: DisplayMatrixTest::SetUp
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void DisplayMatrixTest::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/display_matrix.cpp:46,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/display_matrix.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: DisplayMatrixTest::TearDown
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void DisplayMatrixTest::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/display_matrix.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/display_matrix.cpp:51,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:52,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/display_matrix.cpp:53,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/display_matrix.cpp:55,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:56,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/display_matrix.cpp:58,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/display_matrix.cpp:59,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/display_matrix.cpp:61,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/display_matrix.cpp:61,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/display_matrix.cpp:62,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/display_matrix.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: DisplayMatrixTest::DoIndexing
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool DisplayMatrixTest::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:72,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:72,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:74,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, HFlip270)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:81,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:81,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:83,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, HFlip90)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/display_matrix.cpp:90,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/display_matrix.cpp:90,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/display_matrix.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DisplayMatrixTest, VFlip180)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::InitGoogleTest
      Src: /src/ffms2/test/display_matrix.cpp:99,1
    - Dst: RUN_ALL_TESTS
      Src: /src/ffms2/test/display_matrix.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/ffms2/test/display_matrix.cpp
    functionUses: 0
    functionsReached:
    - RUN_ALL_TESTS
    - ::testing::InitGoogleTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/indexer.cpp:66,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/indexer.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: IndexerTest::SetUp
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void IndexerTest::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/indexer.cpp:72,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/indexer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: IndexerTest::TearDown
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void IndexerTest::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/indexer.cpp:77,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/indexer.cpp:77,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:78,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/indexer.cpp:79,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/indexer.cpp:81,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:82,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/indexer.cpp:84,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/indexer.cpp:85,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/indexer.cpp:87,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/indexer.cpp:87,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:88,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/indexer.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: IndexerTest::DoIndexing
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool IndexerTest::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:96,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:99,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/indexer.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, ValidateFrameCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:105,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:108,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:108,1
    - Dst: SCOPED_TRACE
      Src: /src/ffms2/test/indexer.cpp:112,1
    - Dst: std::stringstream::str
      Src: /src/ffms2/test/indexer.cpp:112,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/test/indexer.cpp:114,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/test/indexer.cpp:115,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/test/indexer.cpp:117,1
    - Dst: ASSERT_NE
      Src: /src/ffms2/test/indexer.cpp:118,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:119,1
    - Dst: CheckFrame
      Src: /src/ffms2/test/indexer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - CheckFrame
    - FFMS_GetFrameInfo
    - FFMS_GetTrackFromIndex
    - ASSERT_NE
    - GetParam
    - SCOPED_TRACE
    - DoIndexing
    - std::stringstream::str
    - ASSERT_TRUE
    - FFMS_GetFrame
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, ReverseAccessingFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:124,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:127,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/test/indexer.cpp:131,1
    - Dst: std::shuffle
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: std::vector::end
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: SCOPED_TRACE
      Src: /src/ffms2/test/indexer.cpp:143,1
    - Dst: std::stringstream::str
      Src: /src/ffms2/test/indexer.cpp:143,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/test/indexer.cpp:145,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/test/indexer.cpp:146,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/test/indexer.cpp:148,1
    - Dst: ASSERT_NE
      Src: /src/ffms2/test/indexer.cpp:149,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:150,1
    - Dst: CheckFrame
      Src: /src/ffms2/test/indexer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - CheckFrame
    - FFMS_GetFrameInfo
    - FFMS_GetTrackFromIndex
    - std::shuffle
    - ASSERT_NE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - SCOPED_TRACE
    - DoIndexing
    - std::vector::push_back
    - std::stringstream::str
    - ASSERT_TRUE
    - FFMS_GetFrame
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, RandomAccessingFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ffms2/test/indexer.cpp:66,1
    - Dst: FFMS_Init
      Src: /src/ffms2/test/indexer.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: IndexerTest::SetUp
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - FFMS_Init
    linkageType: ''
    returnType: void
    signature: void IndexerTest::SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/test/indexer.cpp:72,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/test/indexer.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: IndexerTest::TearDown
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyIndex
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void IndexerTest::TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/test/indexer.cpp:77,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/indexer.cpp:77,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:78,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/test/indexer.cpp:79,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/test/indexer.cpp:81,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:82,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/test/indexer.cpp:84,1
    - Dst: EXPECT_GE
      Src: /src/ffms2/test/indexer.cpp:85,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/test/indexer.cpp:87,1
    - Dst: std::string::c_str
      Src: /src/ffms2/test/indexer.cpp:87,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/indexer.cpp:88,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/test/indexer.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: IndexerTest::DoIndexing
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_CreateVideoSource
    - FFMS_CreateIndexer
    - FFMS_GetVideoProperties
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_TrackTypeIndexSettings
    - NULL_CHECK
    - EXPECT_GE
    linkageType: ''
    returnType: bool
    signature: bool IndexerTest::DoIndexing(std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:96,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:99,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/ffms2/test/indexer.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - GetParam
    - ASSERT_TRUE
    - DoIndexing
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, ValidateFrameCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:105,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:108,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:108,1
    - Dst: SCOPED_TRACE
      Src: /src/ffms2/test/indexer.cpp:112,1
    - Dst: std::stringstream::str
      Src: /src/ffms2/test/indexer.cpp:112,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/test/indexer.cpp:114,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/test/indexer.cpp:115,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/test/indexer.cpp:117,1
    - Dst: ASSERT_NE
      Src: /src/ffms2/test/indexer.cpp:118,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:119,1
    - Dst: CheckFrame
      Src: /src/ffms2/test/indexer.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - CheckFrame
    - FFMS_GetFrameInfo
    - FFMS_GetTrackFromIndex
    - ASSERT_NE
    - GetParam
    - SCOPED_TRACE
    - DoIndexing
    - std::stringstream::str
    - ASSERT_TRUE
    - FFMS_GetFrame
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, ReverseAccessingFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/ffms2/test/indexer.cpp:124,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:127,1
    - Dst: DoIndexing
      Src: /src/ffms2/test/indexer.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/test/indexer.cpp:131,1
    - Dst: std::shuffle
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: std::vector::end
      Src: /src/ffms2/test/indexer.cpp:136,1
    - Dst: SCOPED_TRACE
      Src: /src/ffms2/test/indexer.cpp:143,1
    - Dst: std::stringstream::str
      Src: /src/ffms2/test/indexer.cpp:143,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/test/indexer.cpp:145,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/test/indexer.cpp:146,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/test/indexer.cpp:148,1
    - Dst: ASSERT_NE
      Src: /src/ffms2/test/indexer.cpp:149,1
    - Dst: ASSERT_TRUE
      Src: /src/ffms2/test/indexer.cpp:150,1
    - Dst: CheckFrame
      Src: /src/ffms2/test/indexer.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: TEST_P
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - CheckFrame
    - FFMS_GetFrameInfo
    - FFMS_GetTrackFromIndex
    - std::shuffle
    - ASSERT_NE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - SCOPED_TRACE
    - DoIndexing
    - std::vector::push_back
    - std::stringstream::str
    - ASSERT_TRUE
    - FFMS_GetFrame
    linkageType: ''
    returnType: void
    signature: void TEST_P(IndexerTest, RandomAccessingFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::testing::InitGoogleTest
      Src: /src/ffms2/test/indexer.cpp:159,1
    - Dst: RUN_ALL_TESTS
      Src: /src/ffms2/test/indexer.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/ffms2/test/indexer.cpp
    functionUses: 0
    functionsReached:
    - RUN_ALL_TESTS
    - ::testing::InitGoogleTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:16,1
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:17,1
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:18,1
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:19,1
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:20,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/test/tests.cpp:22,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/tests.cpp:23,1
    - Dst: EXPECT_STREQ
      Src: /src/ffms2/test/tests.cpp:25,1
    - Dst: strcmp
      Src: /src/ffms2/test/tests.cpp:26,1
    - Dst: av_sha_alloc
      Src: /src/ffms2/test/tests.cpp:29,1
    - Dst: NULL_CHECK
      Src: /src/ffms2/test/tests.cpp:30,1
    - Dst: av_sha_init
      Src: /src/ffms2/test/tests.cpp:32,1
    - Dst: EQ_CHECK
      Src: /src/ffms2/test/tests.cpp:33,1
    - Dst: av_pix_fmt_count_planes
      Src: /src/ffms2/test/tests.cpp:35,1
    - Dst: av_sha_update
      Src: /src/ffms2/test/tests.cpp:39,1
    - Dst: av_sha_final
      Src: /src/ffms2/test/tests.cpp:43,1
    - Dst: av_free
      Src: /src/ffms2/test/tests.cpp:44,1
    - Dst: EXPECT_TRUE
      Src: /src/ffms2/test/tests.cpp:48,1
    - Dst: memcmp
      Src: /src/ffms2/test/tests.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - Frame
    - info
    - Data
    argTypes:
    - FFMS_Frame*
    - FFMS_FrameInfo*
    - TestFrameData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 51
    functionName: CheckFrame
    functionSourceFile: /src/ffms2/test/tests.cpp
    functionUses: 4
    functionsReached:
    - av_sha_update
    - EXPECT_TRUE
    - av_pix_fmt_count_planes
    - av_sha_final
    - EXPECT_STREQ
    - strcmp
    - av_sha_alloc
    - av_sha_init
    - memcmp
    - NULL_CHECK
    - av_free
    - EQ_CHECK
    - av_pix_fmt_desc_get
    linkageType: ''
    returnType: bool
    signature: bool CheckFrame(const FFMS_Frame *Frame, const FFMS_FrameInfo *info,
      const TestFrameData *Data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Error
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Error(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg::append
      Src: /src/ffms2/src/index/ffmsindex.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - ' e'
    argTypes:
    - char*
    - FFMS_ErrorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Error
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - msg::append
    linkageType: ''
    returnType: void
    signature: void Error(const char *msg, FFMS_ErrorInfo const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: PrintUsage
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrintUsage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/ffms2/src/index/ffmsindex.cpp:94,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/ffms2/src/index/ffmsindex.cpp:95,1
    - Dst: std::chrono::duration_cast<std::chrono::microseconds>
      Src: /src/ffms2/src/index/ffmsindex.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: getTimeInMicroSeconds
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::microseconds>
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: int64_t
    signature: int64_t getTimeInMicroSeconds()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/ffms2/src/index/ffmsindex.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: parseSecondsToMicroseconds
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: int64_t
    signature: int64_t parseSecondsToMicroseconds(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:107,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:107,1
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:108,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:108,1
    - Dst: clear
      Src: /src/ffms2/src/index/ffmsindex.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: freeDemuxerOpts
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - const_cast<char *>
    - free
    - clear
    linkageType: ''
    returnType: void
    signature: void freeDemuxerOpts()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: av_dict_parse_string
      Src: /src/ffms2/src/index/ffmsindex.cpp:115,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:117,1
    - Dst: av_dict_get
      Src: /src/ffms2/src/index/ffmsindex.cpp:120,1
    - Dst: strdup
      Src: /src/ffms2/src/index/ffmsindex.cpp:122,1
    - Dst: strdup
      Src: /src/ffms2/src/index/ffmsindex.cpp:125,1
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:127,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:127,1
    - Dst: push_back
      Src: /src/ffms2/src/index/ffmsindex.cpp:130,1
    - Dst: freeDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:134,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 136
    functionName: parseDemuxerOpts
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - av_dict_parse_string
    - free
    - strdup
    - freeDemuxerOpts
    - const_cast<char *>
    - push_back
    - Error
    - av_dict_get
    linkageType: ''
    returnType: std::vector<FFMS_KeyValuePair>
    signature: std::vector<FFMS_KeyValuePair> parseDemuxerOpts(const char *str)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:143,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:145,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:147,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:149,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:151,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:153,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:154,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:155,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:156,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:157,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:158,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:159,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:160,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:161,1
    - Dst: parseDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:162,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:163,1
    - Dst: parseDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:164,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:165,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:167,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:175,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:176,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:177,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:179,1
    - Dst: append
      Src: /src/ffms2/src/index/ffmsindex.cpp:181,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: ParseCMDLine
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - empty
    - strcmp
    - parseDemuxerOpts
    - OPTION_ARG
    - Error
    - append
    linkageType: ''
    returnType: void
    signature: void ParseCMDLine(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - flag
    - ','
    - parse
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: OPTION_ARG
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTION_ARG(dst, flag, parse)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getTimeInMicroSeconds
      Src: /src/ffms2/src/index/ffmsindex.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - Current
    - Total
    - Private
    argTypes:
    - int64_t
    - int64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: UpdateProgress
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - getTimeInMicroSeconds
    linkageType: ''
    returnType: int
    signature: int UpdateProgress(int64_t Current, int64_t Total, void *Private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetTrackType
      Src: /src/ffms2/src/index/ffmsindex.cpp:206,1
    - Dst: FFMS_GetNumFrames
      Src: /src/ffms2/src/index/ffmsindex.cpp:206,1
    - Dst: snprintf
      Src: /src/ffms2/src/index/ffmsindex.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - Track
    - TrackNum
    - Suffix
    argTypes:
    - FFMS_Track*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: DumpFilename
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - FFMS_GetTrackType
    - FFMS_GetNumFrames
    - snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string DumpFilename(FFMS_Track *Track, int TrackNum, const char
      *Suffix)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getTimeInMicroSeconds
      Src: /src/ffms2/src/index/ffmsindex.cpp:220,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:222,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:222,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:224,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:226,1
    - Dst: UpdateProgress
      Src: /src/ffms2/src/index/ffmsindex.cpp:229,1
    - Dst: FFMS_CreateIndexer2
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: data
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: size
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:233,1
    - Dst: FFMS_SetProgressCallback
      Src: /src/ffms2/src/index/ffmsindex.cpp:235,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/src/index/ffmsindex.cpp:239,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/index/ffmsindex.cpp:242,1
    - Dst: FFMS_TrackIndexSettings
      Src: /src/ffms2/src/index/ffmsindex.cpp:244,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/index/ffmsindex.cpp:247,1
    - Dst: freeDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:252,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:255,1
    - Dst: UpdateProgress
      Src: /src/ffms2/src/index/ffmsindex.cpp:257,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/index/ffmsindex.cpp:264,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:266,1
    - Dst: DumpFilename
      Src: /src/ffms2/src/index/ffmsindex.cpp:267,1
    - Dst: std::string::empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:268,1
    - Dst: FFMS_WriteTimecodes
      Src: /src/ffms2/src/index/ffmsindex.cpp:269,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:269,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/index/ffmsindex.cpp:281,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:283,1
    - Dst: DumpFilename
      Src: /src/ffms2/src/index/ffmsindex.cpp:284,1
    - Dst: std::string::empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:286,1
    - Dst: FFMS_GetNumFrames
      Src: /src/ffms2/src/index/ffmsindex.cpp:290,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/index/ffmsindex.cpp:292,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:304,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:304,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:305,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:307,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 311
    functionName: DoIndexing
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 18
    functionsReached:
    - data
    - FFMS_SetProgressCallback
    - DumpFilename
    - FFMS_CreateIndexer2
    - FFMS_DoIndexing2
    - getTimeInMicroSeconds
    - freeDemuxerOpts
    - UpdateProgress
    - FFMS_GetFrameInfo
    - FFMS_GetNumFrames
    - FFMS_WriteIndex
    - std::string::empty
    - FFMS_TrackIndexSettings
    - std::string::c_str
    - size
    - FFMS_GetTrackFromIndex
    - FFMS_WriteTimecodes
    - FFMS_ReadIndex
    - FFMS_TrackTypeIndexSettings
    - c_str
    - Error
    - FFMS_DestroyIndex
    - static_cast<int>
    - FFMS_GetNumTracks
    linkageType: ''
    returnType: void
    signature: void DoIndexing()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Error
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Error(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msg::append
      Src: /src/ffms2/src/index/ffmsindex.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - ' e'
    argTypes:
    - char*
    - FFMS_ErrorInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Error
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 3
    functionsReached:
    - msg::append
    linkageType: ''
    returnType: void
    signature: void Error(const char *msg, FFMS_ErrorInfo const& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: PrintUsage
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrintUsage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/ffms2/src/index/ffmsindex.cpp:94,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/ffms2/src/index/ffmsindex.cpp:95,1
    - Dst: std::chrono::duration_cast<std::chrono::microseconds>
      Src: /src/ffms2/src/index/ffmsindex.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: getTimeInMicroSeconds
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 2
    functionsReached:
    - std::chrono::duration_cast<std::chrono::microseconds>
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: int64_t
    signature: int64_t getTimeInMicroSeconds()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/ffms2/src/index/ffmsindex.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: parseSecondsToMicroseconds
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: int64_t
    signature: int64_t parseSecondsToMicroseconds(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:107,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:107,1
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:108,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:108,1
    - Dst: clear
      Src: /src/ffms2/src/index/ffmsindex.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: freeDemuxerOpts
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 2
    functionsReached:
    - const_cast<char *>
    - free
    - clear
    linkageType: ''
    returnType: void
    signature: void freeDemuxerOpts()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: av_dict_parse_string
      Src: /src/ffms2/src/index/ffmsindex.cpp:115,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:117,1
    - Dst: av_dict_get
      Src: /src/ffms2/src/index/ffmsindex.cpp:120,1
    - Dst: strdup
      Src: /src/ffms2/src/index/ffmsindex.cpp:122,1
    - Dst: strdup
      Src: /src/ffms2/src/index/ffmsindex.cpp:125,1
    - Dst: free
      Src: /src/ffms2/src/index/ffmsindex.cpp:127,1
    - Dst: const_cast<char *>
      Src: /src/ffms2/src/index/ffmsindex.cpp:127,1
    - Dst: push_back
      Src: /src/ffms2/src/index/ffmsindex.cpp:130,1
    - Dst: freeDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:134,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 136
    functionName: parseDemuxerOpts
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 1
    functionsReached:
    - av_dict_parse_string
    - free
    - strdup
    - freeDemuxerOpts
    - const_cast<char *>
    - push_back
    - Error
    - av_dict_get
    linkageType: ''
    returnType: std::vector<FFMS_KeyValuePair>
    signature: std::vector<FFMS_KeyValuePair> parseDemuxerOpts(const char *str)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:143,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:145,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:147,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:149,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:151,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:153,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:154,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:155,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:156,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:157,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:158,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:159,1
    - Dst: OPTION_ARG
      Src: /src/ffms2/src/index/ffmsindex.cpp:160,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:161,1
    - Dst: parseDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:162,1
    - Dst: strcmp
      Src: /src/ffms2/src/index/ffmsindex.cpp:163,1
    - Dst: parseDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:164,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:165,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:167,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:175,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:176,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:177,1
    - Dst: empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:179,1
    - Dst: append
      Src: /src/ffms2/src/index/ffmsindex.cpp:181,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: ParseCMDLine
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - empty
    - strcmp
    - parseDemuxerOpts
    - OPTION_ARG
    - Error
    - append
    linkageType: ''
    returnType: void
    signature: void ParseCMDLine(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - flag
    - ','
    - parse
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: OPTION_ARG
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTION_ARG(dst, flag, parse)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getTimeInMicroSeconds
      Src: /src/ffms2/src/index/ffmsindex.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - Current
    - Total
    - Private
    argTypes:
    - int64_t
    - int64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: UpdateProgress
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 1
    functionsReached:
    - getTimeInMicroSeconds
    linkageType: ''
    returnType: int
    signature: int UpdateProgress(int64_t Current, int64_t Total, void *Private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetTrackType
      Src: /src/ffms2/src/index/ffmsindex.cpp:206,1
    - Dst: FFMS_GetNumFrames
      Src: /src/ffms2/src/index/ffmsindex.cpp:206,1
    - Dst: snprintf
      Src: /src/ffms2/src/index/ffmsindex.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - Track
    - TrackNum
    - Suffix
    argTypes:
    - FFMS_Track*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: DumpFilename
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 1
    functionsReached:
    - FFMS_GetTrackType
    - FFMS_GetNumFrames
    - snprintf
    linkageType: ''
    returnType: std::string
    signature: std::string DumpFilename(FFMS_Track *Track, int TrackNum, const char
      *Suffix)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getTimeInMicroSeconds
      Src: /src/ffms2/src/index/ffmsindex.cpp:220,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:222,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:222,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:224,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:226,1
    - Dst: UpdateProgress
      Src: /src/ffms2/src/index/ffmsindex.cpp:229,1
    - Dst: FFMS_CreateIndexer2
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: data
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: size
      Src: /src/ffms2/src/index/ffmsindex.cpp:231,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:233,1
    - Dst: FFMS_SetProgressCallback
      Src: /src/ffms2/src/index/ffmsindex.cpp:235,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/src/index/ffmsindex.cpp:239,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/index/ffmsindex.cpp:242,1
    - Dst: FFMS_TrackIndexSettings
      Src: /src/ffms2/src/index/ffmsindex.cpp:244,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/index/ffmsindex.cpp:247,1
    - Dst: freeDemuxerOpts
      Src: /src/ffms2/src/index/ffmsindex.cpp:252,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:255,1
    - Dst: UpdateProgress
      Src: /src/ffms2/src/index/ffmsindex.cpp:257,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/index/ffmsindex.cpp:264,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:266,1
    - Dst: DumpFilename
      Src: /src/ffms2/src/index/ffmsindex.cpp:267,1
    - Dst: std::string::empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:268,1
    - Dst: FFMS_WriteTimecodes
      Src: /src/ffms2/src/index/ffmsindex.cpp:269,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:269,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/index/ffmsindex.cpp:281,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:283,1
    - Dst: DumpFilename
      Src: /src/ffms2/src/index/ffmsindex.cpp:284,1
    - Dst: std::string::empty
      Src: /src/ffms2/src/index/ffmsindex.cpp:285,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:286,1
    - Dst: FFMS_GetNumFrames
      Src: /src/ffms2/src/index/ffmsindex.cpp:290,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/index/ffmsindex.cpp:292,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:304,1
    - Dst: c_str
      Src: /src/ffms2/src/index/ffmsindex.cpp:304,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/index/ffmsindex.cpp:305,1
    - Dst: Error
      Src: /src/ffms2/src/index/ffmsindex.cpp:307,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 311
    functionName: DoIndexing
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 18
    functionsReached:
    - data
    - FFMS_SetProgressCallback
    - DumpFilename
    - FFMS_CreateIndexer2
    - FFMS_DoIndexing2
    - getTimeInMicroSeconds
    - freeDemuxerOpts
    - UpdateProgress
    - FFMS_GetFrameInfo
    - FFMS_GetNumFrames
    - FFMS_WriteIndex
    - std::string::empty
    - FFMS_TrackIndexSettings
    - std::string::c_str
    - size
    - FFMS_GetTrackFromIndex
    - FFMS_WriteTimecodes
    - FFMS_ReadIndex
    - FFMS_TrackTypeIndexSettings
    - c_str
    - Error
    - FFMS_DestroyIndex
    - static_cast<int>
    - FFMS_GetNumTracks
    linkageType: ''
    returnType: void
    signature: void DoIndexing()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PrintUsage
      Src: /src/ffms2/src/index/ffmsindex.cpp:331,1
    - Dst: ParseCMDLine
      Src: /src/ffms2/src/index/ffmsindex.cpp:335,1
    - Dst: FFMS_Init
      Src: /src/ffms2/src/index/ffmsindex.cpp:341,1
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/index/ffmsindex.cpp:344,1
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/index/ffmsindex.cpp:345,1
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/index/ffmsindex.cpp:346,1
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/index/ffmsindex.cpp:347,1
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/index/ffmsindex.cpp:348,1
    - Dst: DoIndexing
      Src: /src/ffms2/src/index/ffmsindex.cpp:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 359
    functionName: main
    functionSourceFile: /src/ffms2/src/index/ffmsindex.cpp
    functionUses: 0
    functionsReached:
    - PrintUsage
    - ParseCMDLine
    - DoIndexing
    - FFMS_Init
    - FFMS_SetLogLevel
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/ffms2/src/index/vsutf16.h:31,1
    - Dst: std::wstring::c_str
      Src: /src/ffms2/src/index/vsutf16.h:31,1
    - Dst: std::string::resize
      Src: /src/ffms2/src/index/vsutf16.h:33,1
    - Dst: WideCharToMultiByte
      Src: /src/ffms2/src/index/vsutf16.h:34,1
    - Dst: std::wstring::c_str
      Src: /src/ffms2/src/index/vsutf16.h:34,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/index/vsutf16.h:34,1
    - Dst: std::wstring::size
      Src: /src/ffms2/src/index/vsutf16.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wstr
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: utf16_to_utf8
    functionSourceFile: /src/ffms2/src/index/vsutf16.h
    functionUses: 0
    functionsReached:
    - WideCharToMultiByte
    - std::wstring::c_str
    - static_cast<int>
    - std::string::resize
    - std::wstring::size
    linkageType: ''
    returnType: std::string
    signature: std::string utf16_to_utf8(const std::wstring &wstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/ffms2/src/index/vsutf16.h:39,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/vsutf16.h:39,1
    - Dst: std::wstring::resize
      Src: /src/ffms2/src/index/vsutf16.h:41,1
    - Dst: MultiByteToWideChar
      Src: /src/ffms2/src/index/vsutf16.h:42,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/index/vsutf16.h:42,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/index/vsutf16.h:42,1
    - Dst: std::string::size
      Src: /src/ffms2/src/index/vsutf16.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: utf16_from_utf8
    functionSourceFile: /src/ffms2/src/index/vsutf16.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string::size
    - MultiByteToWideChar
    - static_cast<int>
    - std::wstring::resize
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring utf16_from_utf8(const std::string &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ErrorType
    - SubType
    - Message
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: FFMS_Exception::FFMS_Exception
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Exception::FFMS_Exception(int ErrorType, int SubType, const
      char *Message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ErrorType
    - SubType
    - Message
    argTypes:
    - int
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: FFMS_Exception::FFMS_Exception
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Exception::FFMS_Exception(int ErrorType, int SubType, const
      std::string &Message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ffms2/src/core/utils.cpp:47,1
    - Dst: copy
      Src: /src/ffms2/src/core/utils.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ErrorInfo
    argTypes:
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: FFMS_Exception::CopyOut
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - memset
    - copy
    linkageType: ''
    returnType: int
    signature: int FFMS_Exception::CopyOut(FFMS_ErrorInfo *ErrorInfo) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ErrorInfo
    argTypes:
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: ClearErrorInfo
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FFMS_SampleFormat>
      Src: /src/ffms2/src/core/utils.cpp:66,1
    - Dst: av_get_packed_sample_fmt
      Src: /src/ffms2/src/core/utils.cpp:66,1
    - Dst: av_get_bytes_per_sample
      Src: /src/ffms2/src/core/utils.cpp:67,1
    - Dst: av_channel_layout_default
      Src: /src/ffms2/src/core/utils.cpp:74,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/utils.cpp:77,1
    - Dst: FFMS_Track::empty
      Src: /src/ffms2/src/core/utils.cpp:81,1
    - Dst: FFMS_Track::back
      Src: /src/ffms2/src/core/utils.cpp:82,1
    - Dst: FFMS_Track::back
      Src: /src/ffms2/src/core/utils.cpp:82,1
    - Dst: FFMS_Track::front
      Src: /src/ffms2/src/core/utils.cpp:83,1
    - Dst: FFMS_Track::back
      Src: /src/ffms2/src/core/utils.cpp:84,1
    - Dst: FFMS_Track::back
      Src: /src/ffms2/src/core/utils.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - AP
    - CTX
    - Frames
    argTypes:
    - FFMS_AudioProperties
    - AVCodecContext*
    - FFMS_Track
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: FillAP
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    - av_get_packed_sample_fmt
    - av_channel_layout_default
    - FFMS_Track::empty
    - FFMS_Track::front
    - FFMS_Track::back
    - av_get_bytes_per_sample
    - static_cast<FFMS_SampleFormat>
    linkageType: ''
    returnType: void
    signature: void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track
      &Frames)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: av_dict_set
      Src: /src/ffms2/src/core/utils.cpp:92,1
    - Dst: first::c_str
      Src: /src/ffms2/src/core/utils.cpp:92,1
    - Dst: second::c_str
      Src: /src/ffms2/src/core/utils.cpp:92,1
    - Dst: avformat_open_input
      Src: /src/ffms2/src/core/utils.cpp:94,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/utils.cpp:95,1
    - Dst: std::string
      Src: /src/ffms2/src/core/utils.cpp:96,1
    - Dst: av_dict_free
      Src: /src/ffms2/src/core/utils.cpp:98,1
    - Dst: avformat_find_stream_info
      Src: /src/ffms2/src/core/utils.cpp:100,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/utils.cpp:101,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/utils.cpp:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - SourceFile
    - FormatContext
    - Track
    - LAVFOpts
    argTypes:
    - char*
    - AVFormatContext*
    - int
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: LAVFOpenFile
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - avformat_close_input
    - first::c_str
    - av_dict_free
    - avformat_find_stream_info
    - FFMS_Exception
    - av_dict_set
    - avformat_open_input
    - std::string
    - second::c_str
    linkageType: ''
    returnType: void
    signature: void LAVFOpenFile(const char *SourceFile, AVFormatContext *&FormatContext,
      int Track, const std::map<std::string, std::string> &LAVFOpts)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/ffms2/src/core/utils.cpp:116,1
    - Dst: std::string::begin
      Src: /src/ffms2/src/core/utils.cpp:116,1
    - Dst: std::string::end
      Src: /src/ffms2/src/core/utils.cpp:116,1
    - Dst: std::string::begin
      Src: /src/ffms2/src/core/utils.cpp:116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - ResizerName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 140
    functionName: ResizerNameToSWSResizer
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - std::string::begin
    - std::transform
    - std::string::end
    linkageType: ''
    returnType: int
    signature: int ResizerNameToSWSResizer(const char *ResizerName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ffms2/src/core/utils.cpp:145,1
    - Dst: _stricmp
      Src: /src/ffms2/src/core/utils.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: IsSamePath
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - _stricmp
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsSamePath(const char *p1, const char *p2)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:153,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:154,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:155,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:156,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:157,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:158,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:159,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:160,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:161,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:162,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:163,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:164,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:166,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/utils.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: IsIOError
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - AVERROR
    linkageType: ''
    returnType: bool
    signature: bool IsIOError(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_strerror
      Src: /src/ffms2/src/core/utils.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: AVErrorToString
    functionSourceFile: /src/ffms2/src/core/utils.cpp
    functionUses: 0
    functionsReached:
    - av_strerror
    linkageType: ''
    returnType: std::string
    signature: std::string AVErrorToString(int ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: av_log_get_level
      Src: /src/ffms2/src/core/ffms.cpp:46,1
    - Dst: static_cast<AVClass **>
      Src: /src/ffms2/src/core/ffms.cpp:52,1
    - Dst: snprintf
      Src: /src/ffms2/src/core/ffms.cpp:56,1
    - Dst: auto::item_name
      Src: /src/ffms2/src/core/ffms.cpp:56,1
    - Dst: vsnprintf
      Src: /src/ffms2/src/core/ffms.cpp:59,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/ffms.cpp:63,1
    - Dst: OutputDebugStringA
      Src: /src/ffms2/src/core/ffms.cpp:70,1
    - Dst: std::stringstream::str
      Src: /src/ffms2/src/core/ffms.cpp:70,1
    - Dst: OutputDebugStringA
      Src: /src/ffms2/src/core/ffms.cpp:73,1
    - Dst: strcpy
      Src: /src/ffms2/src/core/ffms.cpp:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ptr
    - level
    - fmt
    - vl
    argTypes:
    - void*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: av_log_windebug_callback
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - OutputDebugStringA
    - vsnprintf
    - strcpy
    - static_cast<AVClass **>
    - strcmp
    - std::stringstream::str
    - auto::item_name
    - av_log_get_level
    linkageType: ''
    returnType: void
    signature: void av_log_windebug_callback(void* ptr, int level, const char* fmt,
      va_list vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::call_once
      Src: /src/ffms2/src/core/ffms.cpp:80,1
    - Dst: av_log_set_callback
      Src: /src/ffms2/src/core/ffms.cpp:82,1
    - Dst: av_log_set_level
      Src: /src/ffms2/src/core/ffms.cpp:83,1
    - Dst: av_log_set_level
      Src: /src/ffms2/src/core/ffms.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: FFMS_Init
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 8
    functionsReached:
    - av_log_set_callback
    - std::call_once
    - av_log_set_level
    linkageType: ''
    returnType: void
    signature: void FFMS_Init(int, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: FFMS_GetVersion
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_GetVersion()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_log_get_level
      Src: /src/ffms2/src/core/ffms.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: FFMS_GetLogLevel
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - av_log_get_level
    linkageType: ''
    returnType: void
    signature: void FFMS_GetLogLevel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_log_set_level
      Src: /src/ffms2/src/core/ffms.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: FFMS_SetLogLevel
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 1
    functionsReached:
    - av_log_set_level
    linkageType: ''
    returnType: void
    signature: void FFMS_SetLogLevel(int Level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::FFMS_VideoSource
      Src: /src/ffms2/src/core/ffms.cpp:104,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - SourceFile
    - Track
    - Index
    - Threads
    - SeekMode
    - ErrorInfo
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: FFMS_CreateVideoSource
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 6
    functionsReached:
    - CopyOut
    - FFMS_VideoSource::FFMS_VideoSource
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateVideoSource(const char *SourceFile, int Track, FFMS_Index
      *Index, int Threads, int SeekMode, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateAudioSource2
      Src: /src/ffms2/src/core/ffms.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - SourceFile
    - Track
    - Index
    - DelayMode
    - ErrorInfo
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: FFMS_CreateAudioSource
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_CreateAudioSource2
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateAudioSource(const char *SourceFile, int Track, FFMS_Index
      *Index, int DelayMode, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource::FFMS_AudioSource
      Src: /src/ffms2/src/core/ffms.cpp:117,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - SourceFile
    - Track
    - Index
    - DelayMode
    - FillGaps
    - DrcScale
    - ErrorInfo
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - int
    - double
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: FFMS_CreateAudioSource2
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 1
    functionsReached:
    - FFMS_AudioSource::FFMS_AudioSource
    - CopyOut
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateAudioSource2(const char *SourceFile, int Track, FFMS_Index
      *Index, int DelayMode, int FillGaps, double DrcScale, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - V
    argTypes:
    - FFMS_VideoSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: FFMS_DestroyVideoSource
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_DestroyVideoSource(FFMS_VideoSource *V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - A
    argTypes:
    - FFMS_AudioSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: FFMS_DestroyAudioSource
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_DestroyAudioSource(FFMS_AudioSource *A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource*::GetVideoProperties
      Src: /src/ffms2/src/core/ffms.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - V
    argTypes:
    - FFMS_VideoSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: FFMS_GetVideoProperties
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 6
    functionsReached:
    - FFMS_VideoSource*::GetVideoProperties
    linkageType: ''
    returnType: void
    signature: void FFMS_GetVideoProperties(FFMS_VideoSource *V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource*::GetAudioProperties
      Src: /src/ffms2/src/core/ffms.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - A
    argTypes:
    - FFMS_AudioSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: FFMS_GetAudioProperties
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_AudioSource*::GetAudioProperties
    linkageType: ''
    returnType: void
    signature: void FFMS_GetAudioProperties(FFMS_AudioSource *A)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:141,1
    - Dst: FFMS_VideoSource*::GetFrame
      Src: /src/ffms2/src/core/ffms.cpp:143,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - V
    - n
    - ErrorInfo
    argTypes:
    - FFMS_VideoSource*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: FFMS_GetFrame
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 4
    functionsReached:
    - FFMS_VideoSource*::GetFrame
    - CopyOut
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFrame(FFMS_VideoSource *V, int n, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:151,1
    - Dst: FFMS_VideoSource*::GetFrameByTime
      Src: /src/ffms2/src/core/ffms.cpp:153,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - V
    - Time
    - ErrorInfo
    argTypes:
    - FFMS_VideoSource*
    - double
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: FFMS_GetFrameByTime
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - ClearErrorInfo
    - FFMS_VideoSource*::GetFrameByTime
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFrameByTime(FFMS_VideoSource *V, double Time, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:161,1
    - Dst: FFMS_AudioSource*::GetAudio
      Src: /src/ffms2/src/core/ffms.cpp:163,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - A
    - Buf
    - Start
    - Count
    - ErrorInfo
    argTypes:
    - FFMS_AudioSource*
    - void*
    - int64_t
    - int64_t
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: FFMS_GetAudio
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - FFMS_AudioSource*::GetAudio
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_GetAudio(FFMS_AudioSource *A, void *Buf, int64_t Start, int64_t
      Count, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:171,1
    - Dst: FFMS_VideoSource*::SetOutputFormat
      Src: /src/ffms2/src/core/ffms.cpp:173,1
    - Dst: reinterpret_cast<const AVPixelFormat *>
      Src: /src/ffms2/src/core/ffms.cpp:173,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - V
    - TargetFormats
    - Width
    - Height
    - Resizer
    - ErrorInfo
    argTypes:
    - FFMS_VideoSource*
    - int*
    - int
    - int
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: FFMS_SetOutputFormatV2
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const AVPixelFormat *>
    - CopyOut
    - ClearErrorInfo
    - FFMS_VideoSource*::SetOutputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_SetOutputFormatV2(FFMS_VideoSource *V, const int *TargetFormats,
      int Width, int Height, int Resizer, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource*::ResetOutputFormat
      Src: /src/ffms2/src/core/ffms.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - V
    argTypes:
    - FFMS_VideoSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: FFMS_ResetOutputFormatV
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource*::ResetOutputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_ResetOutputFormatV(FFMS_VideoSource *V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:185,1
    - Dst: FFMS_VideoSource*::SetInputFormat
      Src: /src/ffms2/src/core/ffms.cpp:187,1
    - Dst: static_cast<AVPixelFormat>
      Src: /src/ffms2/src/core/ffms.cpp:187,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - V
    - ColorSpace
    - ColorRange
    - Format
    - ErrorInfo
    argTypes:
    - FFMS_VideoSource*
    - int
    - int
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: FFMS_SetInputFormatV
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - FFMS_VideoSource*::SetInputFormat
    - ClearErrorInfo
    - static_cast<AVPixelFormat>
    linkageType: ''
    returnType: void
    signature: void FFMS_SetInputFormatV(FFMS_VideoSource *V, int ColorSpace, int
      ColorRange, int Format, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource*::ResetInputFormat
      Src: /src/ffms2/src/core/ffms.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - V
    argTypes:
    - FFMS_VideoSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: FFMS_ResetInputFormatV
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource*::ResetInputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_ResetInputFormatV(FFMS_VideoSource *V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource*::CreateResampleOptions
      Src: /src/ffms2/src/core/ffms.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - A
    argTypes:
    - FFMS_AudioSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: FFMS_CreateResampleOptions
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_AudioSource*::CreateResampleOptions
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateResampleOptions(FFMS_AudioSource *A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - FFMS_ResampleOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: FFMS_DestroyResampleOptions
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_DestroyResampleOptions(FFMS_ResampleOptions *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:207,1
    - Dst: FFMS_AudioSource*::SetOutputFormat
      Src: /src/ffms2/src/core/ffms.cpp:209,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - A
    - options
    - ErrorInfo
    argTypes:
    - FFMS_AudioSource*
    - FFMS_ResampleOptions*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: FFMS_SetOutputFormatA
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - FFMS_AudioSource*::SetOutputFormat
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_SetOutputFormatA(FFMS_AudioSource *A, const FFMS_ResampleOptions
      *options, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Index
    argTypes:
    - FFMS_Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: FFMS_DestroyIndex
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_DestroyIndex(FFMS_Index *Index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FFMS_IndexErrorHandling>
      Src: /src/ffms2/src/core/ffms.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Index
    argTypes:
    - FFMS_Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: FFMS_GetErrorHandling
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - static_cast<FFMS_IndexErrorHandling>
    linkageType: ''
    returnType: void
    signature: void FFMS_GetErrorHandling(FFMS_Index *Index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:225,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/ffms.cpp:226,1
    - Dst: FFMS_Index*::size
      Src: /src/ffms2/src/core/ffms.cpp:226,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/ffms.cpp:231,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - Index
    - TrackType
    - ErrorInfo
    argTypes:
    - FFMS_Index*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 237
    functionName: FFMS_GetFirstTrackOfType
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 7
    functionsReached:
    - FFMS_Exception
    - ClearErrorInfo
    - FFMS_Index*::size
    - CopyOut
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFirstTrackOfType(FFMS_Index *Index, int TrackType, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:240,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/ffms.cpp:241,1
    - Dst: FFMS_Index*::size
      Src: /src/ffms2/src/core/ffms.cpp:241,1
    - Dst: empty
      Src: /src/ffms2/src/core/ffms.cpp:242,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/ffms.cpp:245,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - Index
    - TrackType
    - ErrorInfo
    argTypes:
    - FFMS_Index*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: FFMS_GetFirstIndexedTrackOfType
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - empty
    - FFMS_Exception
    - ClearErrorInfo
    - FFMS_Index*::size
    - CopyOut
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFirstIndexedTrackOfType(FFMS_Index *Index, int TrackType,
      FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/ffms.cpp:254,1
    - Dst: FFMS_Index*::size
      Src: /src/ffms2/src/core/ffms.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Index
    argTypes:
    - FFMS_Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: FFMS_GetNumTracks
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - FFMS_Index*::size
    linkageType: ''
    returnType: void
    signature: void FFMS_GetNumTracks(FFMS_Index *Index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::GetNumberOfTracks
      Src: /src/ffms2/src/core/ffms.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Indexer
    argTypes:
    - FFMS_Indexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: FFMS_GetNumTracksI
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer*::GetNumberOfTracks
    linkageType: ''
    returnType: void
    signature: void FFMS_GetNumTracksI(FFMS_Indexer *Indexer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - T
    argTypes:
    - FFMS_Track*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: FFMS_GetTrackType
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTrackType(FFMS_Track *T)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::GetTrackType
      Src: /src/ffms2/src/core/ffms.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Indexer
    - Track
    argTypes:
    - FFMS_Indexer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: FFMS_GetTrackTypeI
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer*::GetTrackType
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTrackTypeI(FFMS_Indexer *Indexer, int Track)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::GetTrackCodec
      Src: /src/ffms2/src/core/ffms.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Indexer
    - Track
    argTypes:
    - FFMS_Indexer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: FFMS_GetCodecNameI
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer*::GetTrackCodec
    linkageType: ''
    returnType: void
    signature: void FFMS_GetCodecNameI(FFMS_Indexer *Indexer, int Track)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Track*::VisibleFrameCount
      Src: /src/ffms2/src/core/ffms.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - T
    argTypes:
    - FFMS_Track*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: FFMS_GetNumFrames
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 4
    functionsReached:
    - FFMS_Track*::VisibleFrameCount
    linkageType: ''
    returnType: void
    signature: void FFMS_GetNumFrames(FFMS_Track *T)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Track*::GetFrameInfo
      Src: /src/ffms2/src/core/ffms.cpp:278,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/ffms.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - T
    - Frame
    argTypes:
    - FFMS_Track*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: FFMS_GetFrameInfo
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 6
    functionsReached:
    - static_cast<size_t>
    - FFMS_Track*::GetFrameInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFrameInfo(FFMS_Track *T, int Frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Index
    - Track
    argTypes:
    - FFMS_Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: FFMS_GetTrackFromIndex
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTrackFromIndex(FFMS_Index *Index, int Track)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource*::GetTrack
      Src: /src/ffms2/src/core/ffms.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - V
    argTypes:
    - FFMS_VideoSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: FFMS_GetTrackFromVideo
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource*::GetTrack
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTrackFromVideo(FFMS_VideoSource *V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource*::GetTrack
      Src: /src/ffms2/src/core/ffms.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - A
    argTypes:
    - FFMS_AudioSource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: FFMS_GetTrackFromAudio
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_AudioSource*::GetTrack
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTrackFromAudio(FFMS_AudioSource *A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - T
    argTypes:
    - FFMS_Track*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: FFMS_GetTimeBase
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_GetTimeBase(FFMS_Track *T)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:298,1
    - Dst: FFMS_Track*::WriteTimecodes
      Src: /src/ffms2/src/core/ffms.cpp:300,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - T
    - TimecodeFile
    - ErrorInfo
    argTypes:
    - FFMS_Track*
    - char*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: FFMS_WriteTimecodes
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Track*::WriteTimecodes
    - CopyOut
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_WriteTimecodes(FFMS_Track *T, const char *TimecodeFile, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateIndexer2
      Src: /src/ffms2/src/core/ffms.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - SourceFile
    - ErrorInfo
    argTypes:
    - char*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: FFMS_CreateIndexer
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 7
    functionsReached:
    - FFMS_CreateIndexer2
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateIndexer(const char *SourceFile, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:312,1
    - Dst: FFMS_Indexer::FFMS_Indexer
      Src: /src/ffms2/src/core/ffms.cpp:314,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - SourceFile
    - DemuxerOptions
    - NumOptions
    - ErrorInfo
    argTypes:
    - char*
    - FFMS_KeyValuePair*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: FFMS_CreateIndexer2
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 3
    functionsReached:
    - FFMS_Indexer::FFMS_Indexer
    - CopyOut
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_CreateIndexer2(const char *SourceFile, const FFMS_KeyValuePair
      *DemuxerOptions, int NumOptions, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:322,1
    - Dst: FFMS_Indexer*::SetErrorHandling
      Src: /src/ffms2/src/core/ffms.cpp:324,1
    - Dst: FFMS_Indexer*::DoIndexing
      Src: /src/ffms2/src/core/ffms.cpp:328,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - Indexer
    - ErrorHandling
    - ErrorInfo
    argTypes:
    - FFMS_Indexer*
    - int
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: FFMS_DoIndexing2
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 9
    functionsReached:
    - FFMS_Indexer*::DoIndexing
    - CopyOut
    - ClearErrorInfo
    - FFMS_Indexer*::SetErrorHandling
    linkageType: ''
    returnType: void
    signature: void FFMS_DoIndexing2(FFMS_Indexer *Indexer, int ErrorHandling, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::SetIndexTrack
      Src: /src/ffms2/src/core/ffms.cpp:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Indexer
    - Track
    - Index
    argTypes:
    - FFMS_Indexer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: FFMS_TrackIndexSettings
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Indexer*::SetIndexTrack
    linkageType: ''
    returnType: void
    signature: void FFMS_TrackIndexSettings(FFMS_Indexer *Indexer, int Track, int
      Index, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::SetIndexTrackType
      Src: /src/ffms2/src/core/ffms.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Indexer
    - TrackType
    - Index
    argTypes:
    - FFMS_Indexer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: FFMS_TrackTypeIndexSettings
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 8
    functionsReached:
    - FFMS_Indexer*::SetIndexTrackType
    linkageType: ''
    returnType: void
    signature: void FFMS_TrackTypeIndexSettings(FFMS_Indexer *Indexer, int TrackType,
      int Index, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::SetProgressCallback
      Src: /src/ffms2/src/core/ffms.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Indexer
    - IC
    - ICPrivate
    argTypes:
    - FFMS_Indexer*
    - TIndexCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: FFMS_SetProgressCallback
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Indexer*::SetProgressCallback
    linkageType: ''
    returnType: void
    signature: void FFMS_SetProgressCallback(FFMS_Indexer *Indexer, TIndexCallback
      IC, void *ICPrivate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Indexer
    argTypes:
    - FFMS_Indexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: FFMS_CancelIndexing
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_CancelIndexing(FFMS_Indexer *Indexer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:353,1
    - Dst: FFMS_Index::FFMS_Index
      Src: /src/ffms2/src/core/ffms.cpp:355,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - IndexFile
    - ErrorInfo
    argTypes:
    - char*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: FFMS_ReadIndex
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - CopyOut
    - ClearErrorInfo
    - FFMS_Index::FFMS_Index
    linkageType: ''
    returnType: void
    signature: void FFMS_ReadIndex(const char *IndexFile, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:363,1
    - Dst: FFMS_Index::FFMS_Index
      Src: /src/ffms2/src/core/ffms.cpp:365,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - Buffer
    - Size
    - ErrorInfo
    argTypes:
    - uint8_t*
    - size_t
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: FFMS_ReadIndexFromBuffer
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - ClearErrorInfo
    - FFMS_Index::FFMS_Index
    linkageType: ''
    returnType: void
    signature: void FFMS_ReadIndexFromBuffer(const uint8_t *Buffer, size_t Size, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:373,1
    - Dst: FFMS_Index*::CompareFileSignature
      Src: /src/ffms2/src/core/ffms.cpp:375,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/ffms.cpp:376,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - Index
    - SourceFile
    - ErrorInfo
    argTypes:
    - FFMS_Index*
    - char*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: FFMS_IndexBelongsToFile
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    - CopyOut
    - ClearErrorInfo
    - FFMS_Index*::CompareFileSignature
    linkageType: ''
    returnType: void
    signature: void FFMS_IndexBelongsToFile(FFMS_Index *Index, const char *SourceFile,
      FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:385,1
    - Dst: FFMS_Index*::WriteIndexFile
      Src: /src/ffms2/src/core/ffms.cpp:387,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - IndexFile
    - Index
    - ErrorInfo
    argTypes:
    - char*
    - FFMS_Index*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: FFMS_WriteIndex
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Index*::WriteIndexFile
    - CopyOut
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_WriteIndex(const char *IndexFile, FFMS_Index *Index, FFMS_ErrorInfo
      *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearErrorInfo
      Src: /src/ffms2/src/core/ffms.cpp:395,1
    - Dst: FFMS_Index*::WriteIndexBuffer
      Src: /src/ffms2/src/core/ffms.cpp:399,1
    - Dst: CopyOut
      Src: /src/ffms2/src/core/ffms.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - BufferPtr
    - Size
    - Index
    - ErrorInfo
    argTypes:
    - uint8_t**
    - size_t*
    - FFMS_Index*
    - FFMS_ErrorInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: FFMS_WriteIndexToBuffer
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - CopyOut
    - FFMS_Index*::WriteIndexBuffer
    - ClearErrorInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_WriteIndexToBuffer(uint8_t **BufferPtr, size_t *Size, FFMS_Index
      *Index, FFMS_ErrorInfo *ErrorInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_freep
      Src: /src/ffms2/src/core/ffms.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - BufferPtr
    argTypes:
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: FFMS_FreeIndexBuffer
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - av_freep
    linkageType: ''
    returnType: void
    signature: void FFMS_FreeIndexBuffer(uint8_t **BufferPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_get_pix_fmt
      Src: /src/ffms2/src/core/ffms.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: FFMS_GetPixFmt
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - av_get_pix_fmt
    linkageType: ''
    returnType: void
    signature: void FFMS_GetPixFmt(const char *Name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer*::GetFormatName
      Src: /src/ffms2/src/core/ffms.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Indexer
    argTypes:
    - FFMS_Indexer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: FFMS_GetFormatNameI
    functionSourceFile: /src/ffms2/src/core/ffms.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer*::GetFormatName
    linkageType: ''
    returnType: void
    signature: void FFMS_GetFormatNameI(FFMS_Indexer *Indexer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:40,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:41,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:42,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:43,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:44,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:48,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/track.cpp:50,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/track.cpp:51,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:51,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:52,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - stream
    - ' prev'
    - TT
    argTypes:
    - ZipFile
    - FrameInfo
    - FFMS_TrackType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: ReadFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - ZipFile::Read
    - static_cast<size_t>
    linkageType: ''
    returnType: FrameInfo
    signature: FrameInfo ReadFrame(ZipFile &stream, FrameInfo const& prev, const FFMS_TrackType
      TT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:59,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:60,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:61,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:62,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:63,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:66,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:68,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/track.cpp:68,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/track.cpp:69,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:70,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - stream
    - ' f'
    - ' prev'
    - TT
    argTypes:
    - ZipFile
    - FrameInfo
    - FrameInfo
    - FFMS_TrackType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: WriteFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - ZipFile::Write
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void WriteFrame(ZipFile &stream, FrameInfo const& f, FrameInfo const&
      prev, const FFMS_TrackType TT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:40,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:41,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:42,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:43,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:44,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:48,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/track.cpp:50,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/track.cpp:51,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:51,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:52,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - stream
    - ' prev'
    - TT
    argTypes:
    - ZipFile
    - FrameInfo
    - FFMS_TrackType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: ReadFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - ZipFile::Read
    - static_cast<size_t>
    linkageType: ''
    returnType: FrameInfo
    signature: FrameInfo ReadFrame(ZipFile &stream, FrameInfo const& prev, const FFMS_TrackType
      TT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:59,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:60,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:61,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:62,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:63,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:66,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:68,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/track.cpp:68,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:69,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/track.cpp:69,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:70,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - stream
    - ' f'
    - ' prev'
    - TT
    argTypes:
    - ZipFile
    - FrameInfo
    - FrameInfo
    - FFMS_TrackType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: WriteFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - ZipFile::Write
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void WriteFrame(ZipFile &stream, FrameInfo const& f, FrameInfo const&
      prev, const FFMS_TrackType TT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TrackData>
      Src: /src/ffms2/src/core/track.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: FFMS_Track::FFMS_Track
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<TrackData>
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::FFMS_Track()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TrackData>
      Src: /src/ffms2/src/core/track.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - Num
    - Den
    - TT
    - HasDiscontTS
    - UseDTS
    - HasTS
    argTypes:
    - int64_t
    - int64_t
    - FFMS_TrackType
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: FFMS_Track::FFMS_Track
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<TrackData>
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::FFMS_Track(int64_t Num, int64_t Den, FFMS_TrackType
      TT, bool HasDiscontTS, bool UseDTS, bool HasTS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TrackData>
      Src: /src/ffms2/src/core/track.cpp:92,1
    - Dst: static_cast<FFMS_TrackType>
      Src: /src/ffms2/src/core/track.cpp:94,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:94,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:95,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:96,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:97,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:98,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:99,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:100,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:101,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/track.cpp:102,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/track.cpp:102,1
    - Dst: frame_vec::reserve
      Src: /src/ffms2/src/core/track.cpp:107,1
    - Dst: frame_vec::push_back
      Src: /src/ffms2/src/core/track.cpp:109,1
    - Dst: ReadFrame
      Src: /src/ffms2/src/core/track.cpp:109,1
    - Dst: frame_vec::back
      Src: /src/ffms2/src/core/track.cpp:109,1
    - Dst: FFMS_Track::GeneratePublicInfo
      Src: /src/ffms2/src/core/track.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ZipFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 113
    functionName: FFMS_Track::FFMS_Track
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - frame_vec::push_back
    - frame_vec::back
    - static_cast<size_t>
    - std::make_shared<TrackData>
    - frame_vec::reserve
    - ReadFrame
    - ZipFile::Read
    - static_cast<FFMS_TrackType>
    - FFMS_Track::GeneratePublicInfo
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::FFMS_Track(ZipFile &stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:117,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:118,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:119,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:120,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:121,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:122,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:123,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:124,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/track.cpp:125,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:125,1
    - Dst: empty
      Src: /src/ffms2/src/core/track.cpp:127,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:130,1
    - Dst: WriteFrame
      Src: /src/ffms2/src/core/track.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ZipFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: FFMS_Track::Write
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - empty
    - ZipFile::Write
    - size
    - WriteFrame
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::Write(ZipFile &stream) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::push_back
      Src: /src/ffms2/src/core/track.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - PTS
    - DTS
    - RepeatPict
    - KeyFrame
    - FrameType
    - FilePos
    - MarkedHidden
    - SecondField
    argTypes:
    - int64_t
    - int64_t
    - int
    - bool
    - int
    - int64_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: FFMS_Track::AddVideoFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - Frames::push_back
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::AddVideoFrame(int64_t PTS, int64_t DTS, int RepeatPict,
      bool KeyFrame, int FrameType, int64_t FilePos, bool MarkedHidden, bool SecondField)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Frames::push_back
      Src: /src/ffms2/src/core/track.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - PTS
    - DTS
    - SampleStart
    - SampleCount
    - KeyFrame
    - FilePos
    - MarkedHidden
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - uint32_t
    - bool
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: FFMS_Track::AddAudioFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - Frames::push_back
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::AddAudioFrame(int64_t PTS, int64_t DTS, int64_t SampleStart,
      uint32_t SampleCount, bool KeyFrame, int64_t FilePos, bool MarkedHidden)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FileHandle::Printf
      Src: /src/ffms2/src/core/track.cpp:149,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:150,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/track.cpp:151,1
    - Dst: FileHandle::Printf
      Src: /src/ffms2/src/core/track.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - TimecodeFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: FFMS_Track::WriteTimecodes
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - FileHandle::Printf
    - size
    - Skipped
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::WriteTimecodes(const char *TimecodeFile) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - FI1
    - FI2
    argTypes:
    - FrameInfo
    - FrameInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: PTSComparison
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PTSComparison(FrameInfo FI1, FrameInfo FI2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/ffms2/src/core/track.cpp:164,1
    - Dst: begin
      Src: /src/ffms2/src/core/track.cpp:164,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:164,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:165,1
    - Dst: auto::Skipped
      Src: /src/ffms2/src/core/track.cpp:165,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:168,1
    - Dst: std::distance
      Src: /src/ffms2/src/core/track.cpp:170,1
    - Dst: begin
      Src: /src/ffms2/src/core/track.cpp:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - PTS
    - AllowHidden
    argTypes:
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: FFMS_Track::FrameFromPTS
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::distance
    - std::lower_bound
    - end
    - begin
    - auto::Skipped
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::FrameFromPTS(int64_t PTS, bool AllowHidden) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:174,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/track.cpp:175,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - Pos
    - AllowHidden
    argTypes:
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: FFMS_Track::FrameFromPos
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - size
    - Skipped
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::FrameFromPos(int64_t Pos, bool AllowHidden) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lower_bound
      Src: /src/ffms2/src/core/track.cpp:184,1
    - Dst: begin
      Src: /src/ffms2/src/core/track.cpp:184,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:184,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:185,1
    - Dst: auto::Skipped
      Src: /src/ffms2/src/core/track.cpp:185,1
    - Dst: end
      Src: /src/ffms2/src/core/track.cpp:188,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:189,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:189,1
    - Dst: std::distance
      Src: /src/ffms2/src/core/track.cpp:190,1
    - Dst: begin
      Src: /src/ffms2/src/core/track.cpp:190,1
    - Dst: begin
      Src: /src/ffms2/src/core/track.cpp:191,1
    - Dst: FFABS
      Src: /src/ffms2/src/core/track.cpp:191,1
    - Dst: FFABS
      Src: /src/ffms2/src/core/track.cpp:191,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:192,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - PTS
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: FFMS_Track::ClosestFrameFromPTS
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::distance
    - size
    - std::lower_bound
    - end
    - FFABS
    - begin
    - static_cast<int>
    - auto::Skipped
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::ClosestFrameFromPTS(int64_t PTS) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/ffms2/src/core/track.cpp:198,1
    - Dst: std::max
      Src: /src/ffms2/src/core/track.cpp:198,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:198,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - Frame
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 203
    functionName: FFMS_Track::FindClosestVideoKeyFrame
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - std::max
    - static_cast<int>
    - size
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::FindClosestVideoKeyFrame(int Frame) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Frame
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: FFMS_Track::RealFrameNumber
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::RealFrameNumber(int Frame) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:210,1
    - Dst: Frames::size
      Src: /src/ffms2/src/core/track.cpp:210,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:210,1
    - Dst: RealFrameNumbers::size
      Src: /src/ffms2/src/core/track.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: FFMS_Track::VisibleFrameCount
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - RealFrameNumbers::size
    - Frames::size
    linkageType: ''
    returnType: int
    signature: int FFMS_Track::VisibleFrameCount() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:217,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:245,1
    - Dst: std::swap
      Src: /src/ffms2/src/core/track.cpp:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 249
    functionName: FFMS_Track::MaybeReorderFrames
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::swap
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::MaybeReorderFrames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: FFMS_Track::RevertToDTS
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::RevertToDTS()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:264,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/track.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: FFMS_Track::MaybeHideFrames
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - size
    - Skipped
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::MaybeHideFrames()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:282,1
    - Dst: front
      Src: /src/ffms2/src/core/track.cpp:282,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:282,1
    - Dst: av_rescale
      Src: /src/ffms2/src/core/track.cpp:288,1
    - Dst: av_rescale
      Src: /src/ffms2/src/core/track.cpp:294,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:300,1
    - Dst: SamplesToDuration
      Src: /src/ffms2/src/core/track.cpp:303,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:308,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:308,1
    - Dst: DurationToSamples
      Src: /src/ffms2/src/core/track.cpp:309,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:309,1
    - Dst: front
      Src: /src/ffms2/src/core/track.cpp:309,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:309,1
    - Dst: front
      Src: /src/ffms2/src/core/track.cpp:315,1
    - Dst: front
      Src: /src/ffms2/src/core/track.cpp:324,1
    - Dst: frame_vec::front
      Src: /src/ffms2/src/core/track.cpp:325,1
    - Dst: DurationToSamples
      Src: /src/ffms2/src/core/track.cpp:331,1
    - Dst: static_cast<int32_t>
      Src: /src/ffms2/src/core/track.cpp:332,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 340
    functionName: FFMS_Track::FillAudioGaps
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - SamplesToDuration
    - frame_vec::front
    - DurationToSamples
    - size
    - static_cast<int32_t>
    - av_rescale
    - back
    - front
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::FillAudioGaps()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:346,1
    - Dst: front
      Src: /src/ffms2/src/core/track.cpp:346,1
    - Dst: back
      Src: /src/ffms2/src/core/track.cpp:346,1
    - Dst: frame_vec::pop_back
      Src: /src/ffms2/src/core/track.cpp:347,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:352,1
    - Dst: FFMS_Track::MaybeReorderFrames
      Src: /src/ffms2/src/core/track.cpp:357,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:359,1
    - Dst: std::abs
      Src: /src/ffms2/src/core/track.cpp:363,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:364,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:365,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/core/track.cpp:366,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/track.cpp:373,1
    - Dst: sort
      Src: /src/ffms2/src/core/track.cpp:374,1
    - Dst: frame_vec::begin
      Src: /src/ffms2/src/core/track.cpp:374,1
    - Dst: frame_vec::begin
      Src: /src/ffms2/src/core/track.cpp:374,1
    - Dst: sort
      Src: /src/ffms2/src/core/track.cpp:375,1
    - Dst: frame_vec::begin
      Src: /src/ffms2/src/core/track.cpp:375,1
    - Dst: std::vector::back
      Src: /src/ffms2/src/core/track.cpp:375,1
    - Dst: frame_vec::end
      Src: /src/ffms2/src/core/track.cpp:375,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/track.cpp:379,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/track.cpp:382,1
    - Dst: frame_vec::size
      Src: /src/ffms2/src/core/track.cpp:383,1
    - Dst: sort
      Src: /src/ffms2/src/core/track.cpp:390,1
    - Dst: frame_vec::begin
      Src: /src/ffms2/src/core/track.cpp:390,1
    - Dst: frame_vec::end
      Src: /src/ffms2/src/core/track.cpp:390,1
    - Dst: std::vector::reserve
      Src: /src/ffms2/src/core/track.cpp:394,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:394,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:396,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/core/track.cpp:397,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:399,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:402,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/track.cpp:405,1
    - Dst: FFMS_Track::GeneratePublicInfo
      Src: /src/ffms2/src/core/track.cpp:408,1
    - Dst: PublicFrameInfo::size
      Src: /src/ffms2/src/core/track.cpp:413,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 417
    functionName: FFMS_Track::FinalizeTrack
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - PublicFrameInfo::size
    - std::vector::size
    - size
    - std::vector::back
    - FFMS_Exception
    - std::abs
    - frame_vec::size
    - back
    - std::vector::push_back
    - front
    - frame_vec::begin
    - FFMS_Track::MaybeReorderFrames
    - sort
    - std::vector::reserve
    - frame_vec::end
    - FFMS_Track::GeneratePublicInfo
    - frame_vec::pop_back
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::FinalizeTrack()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/ffms2/src/core/track.cpp:423,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:423,1
    - Dst: std::vector::reserve
      Src: /src/ffms2/src/core/track.cpp:424,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:424,1
    - Dst: size
      Src: /src/ffms2/src/core/track.cpp:425,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/track.cpp:426,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/core/track.cpp:428,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/track.cpp:428,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/core/track.cpp:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: FFMS_Track::GeneratePublicInfo
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 2
    functionsReached:
    - size
    - std::vector::push_back
    - Skipped
    - static_cast<int>
    - std::vector::reserve
    linkageType: ''
    returnType: void
    signature: void FFMS_Track::GeneratePublicInfo()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/track.cpp:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: FFMS_Track::GetFrameInfo
    functionSourceFile: /src/ffms2/src/core/track.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    linkageType: ''
    returnType: FFMS_FrameInfo
    signature: FFMS_FrameInfo *FFMS_Track::GetFrameInfo(size_t N) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ffms2/src/core/audiosource.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: operator()(uint8_t *ptr) const
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void operator()(uint8_t *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Start
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: AudioBlock
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AudioBlock(int64_t Start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t *>
      Src: /src/ffms2/src/core/audiosource.h:52,1
    - Dst: realloc
      Src: /src/ffms2/src/core/audiosource.h:52,1
    - Dst: get
      Src: /src/ffms2/src/core/audiosource.h:52,1
    - Dst: std::bad_alloc
      Src: /src/ffms2/src/core/audiosource.h:54,1
    - Dst: release
      Src: /src/ffms2/src/core/audiosource.h:55,1
    - Dst: reset
      Src: /src/ffms2/src/core/audiosource.h:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: Grow
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t *>
    - get
    - std::bad_alloc
    - reset
    - release
    - realloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *Grow(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swr_free
      Src: /src/ffms2/src/core/audiosource.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SwrContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: operator()(SwrContext *c) const
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 0
    functionsReached:
    - swr_free
    linkageType: ''
    returnType: void
    signature: void operator()(SwrContext *c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: GetTrack
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FFMS_Track
    signature: FFMS_Track *GetTrack()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& GetAudioProperties() const'
    functionSourceFile: /src/ffms2/src/core/audiosource.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFMS_AudioProperties
    signature: FFMS_AudioProperties & GetAudioProperties() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: DecoderDelay::Reset
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecoderDelay::Reset()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - MarkedHidden
    - SecondField
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: DecoderDelay::Increment
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecoderDelay::Increment(bool MarkedHidden, bool SecondField)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: DecoderDelay::Decrement
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DecoderDelay::Decrement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: DecoderDelay::IsExceeded
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DecoderDelay::IsExceeded()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - Frame
    argTypes:
    - AVFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: FFMS_VideoSource::SanityCheckFrameForData
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::SanityCheckFrameForData(AVFrame *Frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: FFMS_VideoSource::GetFrameCheck
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::GetFrameCheck(int n)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::SanityCheckFrameForData
      Src: /src/ffms2/src/core/videosource.cpp:70,1
    - Dst: empty
      Src: /src/ffms2/src/core/videosource.cpp:73,1
    - Dst: FFMS_VideoSource::ReAdjustOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:80,1
    - Dst: sws_scale
      Src: /src/ffms2/src/core/videosource.cpp:87,1
    - Dst: std::swap
      Src: /src/ffms2/src/core/videosource.cpp:120,1
    - Dst: std::swap
      Src: /src/ffms2/src/core/videosource.cpp:121,1
    - Dst: av_get_picture_type_char
      Src: /src/ffms2/src/core/videosource.cpp:133,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:143,1
    - Dst: reinterpret_cast<const AVMasteringDisplayMetadata *>
      Src: /src/ffms2/src/core/videosource.cpp:145,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:149,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:150,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:152,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:153,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:157,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:158,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:168,1
    - Dst: av_realloc
      Src: /src/ffms2/src/core/videosource.cpp:171,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:173,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/ffms2/src/core/videosource.cpp:175,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/videosource.cpp:179,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:185,1
    - Dst: av_dynamic_hdr_plus_to_t35
      Src: /src/ffms2/src/core/videosource.cpp:189,1
    - Dst: reinterpret_cast<const AVDynamicHDRPlus *>
      Src: /src/ffms2/src/core/videosource.cpp:189,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:191,1
    - Dst: av_realloc
      Src: /src/ffms2/src/core/videosource.cpp:194,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:196,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/ffms2/src/core/videosource.cpp:198,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/videosource.cpp:202,1
    - Dst: av_free
      Src: /src/ffms2/src/core/videosource.cpp:203,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:209,1
    - Dst: reinterpret_cast<const AVContentLightMetadata *>
      Src: /src/ffms2/src/core/videosource.cpp:211,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 119
    argCount: 1
    argNames:
    - Frame
    argTypes:
    - AVFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 223
    functionName: FFMS_VideoSource::OutputFrame
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const AVContentLightMetadata *>
    - empty
    - av_dynamic_hdr_plus_to_t35
    - av_get_picture_type_char
    - av_realloc
    - FFMS_VideoSource::SanityCheckFrameForData
    - av_frame_get_side_data
    - FFMS_Exception
    - sws_scale
    - reinterpret_cast<const AVMasteringDisplayMetadata *>
    - reinterpret_cast<uint8_t *>
    - memcpy
    - reinterpret_cast<const AVDynamicHDRPlus *>
    - av_free
    - FFMS_VideoSource::ReAdjustOutputFormat
    - av_q2d
    - std::swap
    linkageType: ''
    returnType: FFMS_Frame
    signature: FFMS_Frame *FFMS_VideoSource::OutputFrame(AVFrame *Frame)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/videosource.cpp:229,1
    - Dst: FFMS_Index::size
      Src: /src/ffms2/src/core/videosource.cpp:229,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:230,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:234,1
    - Dst: empty
      Src: /src/ffms2/src/core/videosource.cpp:237,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:238,1
    - Dst: FFMS_Index::CompareFileSignature
      Src: /src/ffms2/src/core/videosource.cpp:241,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:242,1
    - Dst: std::thread::hardware_concurrency
      Src: /src/ffms2/src/core/videosource.cpp:249,1
    - Dst: av_frame_alloc
      Src: /src/ffms2/src/core/videosource.cpp:253,1
    - Dst: av_frame_alloc
      Src: /src/ffms2/src/core/videosource.cpp:254,1
    - Dst: av_packet_alloc
      Src: /src/ffms2/src/core/videosource.cpp:255,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:258,1
    - Dst: av_image_alloc
      Src: /src/ffms2/src/core/videosource.cpp:262,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:263,1
    - Dst: LAVFOpenFile
      Src: /src/ffms2/src/core/videosource.cpp:266,1
    - Dst: avcodec_find_decoder
      Src: /src/ffms2/src/core/videosource.cpp:268,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:270,1
    - Dst: avcodec_alloc_context3
      Src: /src/ffms2/src/core/videosource.cpp:273,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:275,1
    - Dst: avcodec_parameters_to_context
      Src: /src/ffms2/src/core/videosource.cpp:277,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:278,1
    - Dst: av_dict_set
      Src: /src/ffms2/src/core/videosource.cpp:304,1
    - Dst: avcodec_open2
      Src: /src/ffms2/src/core/videosource.cpp:306,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:307,1
    - Dst: av_dict_free
      Src: /src/ffms2/src/core/videosource.cpp:310,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/videosource.cpp:329,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/videosource.cpp:329,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/videosource.cpp:329,1
    - Dst: FFMS_VideoSource::DecodeNextFrame
      Src: /src/ffms2/src/core/videosource.cpp:333,1
    - Dst: size
      Src: /src/ffms2/src/core/videosource.cpp:347,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/videosource.cpp:348,1
    - Dst: back
      Src: /src/ffms2/src/core/videosource.cpp:352,1
    - Dst: front
      Src: /src/ffms2/src/core/videosource.cpp:352,1
    - Dst: FFMS_VideoSource::SetVideoProperties
      Src: /src/ffms2/src/core/videosource.cpp:362,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:384,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:385,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:387,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:388,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:392,1
    - Dst: av_q2d
      Src: /src/ffms2/src/core/videosource.cpp:393,1
    - Dst: av_packet_side_data_get
      Src: /src/ffms2/src/core/videosource.cpp:416,1
    - Dst: reinterpret_cast<const int32_t *>
      Src: /src/ffms2/src/core/videosource.cpp:417,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/videosource.cpp:420,1
    - Dst: av_display_matrix_flip
      Src: /src/ffms2/src/core/videosource.cpp:427,1
    - Dst: lround
      Src: /src/ffms2/src/core/videosource.cpp:430,1
    - Dst: av_display_rotation_get
      Src: /src/ffms2/src/core/videosource.cpp:430,1
    - Dst: size
      Src: /src/ffms2/src/core/videosource.cpp:451,1
    - Dst: FFMS_VideoSource::Seek
      Src: /src/ffms2/src/core/videosource.cpp:452,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:453,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:465,1
    - Dst: FFMS_VideoSource::Free
      Src: /src/ffms2/src/core/videosource.cpp:489,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 162
    argCount: 5
    argNames:
    - SourceFile
    - Index
    - Track
    - Threads
    - SeekMode
    argTypes:
    - char*
    - FFMS_Index
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 492
    functionName: FFMS_VideoSource::FFMS_VideoSource
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - av_image_alloc
    - std::thread::hardware_concurrency
    - av_frame_alloc
    - FFMS_Exception
    - avcodec_open2
    - back
    - avcodec_alloc_context3
    - Skipped
    - FFMS_VideoSource::SetVideoProperties
    - av_q2d
    - avcodec_parameters_to_context
    - FFMS_VideoSource::OutputFrame
    - reinterpret_cast<const int32_t *>
    - front
    - av_packet_side_data_get
    - lround
    - FFMS_VideoSource::Free
    - av_display_rotation_get
    - FFMS_VideoSource::DecodeNextFrame
    - FFMS_VideoSource::Seek
    - size
    - strcmp
    - FFMS_Index::CompareFileSignature
    - av_packet_alloc
    - av_dict_set
    - LAVFOpenFile
    - memcpy
    - empty
    - av_dict_free
    - av_display_matrix_flip
    - FFMS_Index::size
    - static_cast<int>
    - avcodec_find_decoder
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::FFMS_VideoSource(const char *SourceFile, FFMS_Index
      &Index, int Track, int Threads, int SeekMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::Free
      Src: /src/ffms2/src/core/videosource.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: FFMS_VideoSource::~FFMS_VideoSource()
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource::Free
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::~FFMS_VideoSource()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClosestFrameFromPTS
      Src: /src/ffms2/src/core/videosource.cpp:501,1
    - Dst: static_cast<int64_t>
      Src: /src/ffms2/src/core/videosource.cpp:501,1
    - Dst: FFMS_VideoSource::GetFrame
      Src: /src/ffms2/src/core/videosource.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Time
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: FFMS_VideoSource::GetFrameByTime
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - FFMS_VideoSource::GetFrame
    - ClosestFrameFromPTS
    linkageType: ''
    returnType: FFMS_Frame
    signature: FFMS_Frame *FFMS_VideoSource::GetFrameByTime(double Time)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - format
    argTypes:
    - AVPixelFormat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: handle_jpeg
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AVColorRange
    signature: AVColorRange handle_jpeg(AVPixelFormat *format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/ffms2/src/core/videosource.cpp:519,1
    - Dst: push_back
      Src: /src/ffms2/src/core/videosource.cpp:521,1
    - Dst: FFMS_VideoSource::ReAdjustOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:526,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - TargetFormats
    - Width
    - Height
    - Resizer
    argTypes:
    - AVPixelFormat*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: FFMS_VideoSource::SetOutputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource::ReAdjustOutputFormat
    - clear
    - push_back
    - FFMS_VideoSource::OutputFrame
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::SetOutputFormat(const AVPixelFormat *TargetFormats,
      int Width, int Height, int Resizer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/videosource.cpp:540,1
    - Dst: FFMS_VideoSource::ReAdjustOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:541,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ColorSpace
    - ColorRange
    - Format
    argTypes:
    - int
    - int
    - AVPixelFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 544
    functionName: FFMS_VideoSource::SetInputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource::OutputFrame
    - FFMS_VideoSource::ReAdjustOutputFormat
    - size
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::SetInputFormat(int ColorSpace, int ColorRange,
      AVPixelFormat Format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: handle_jpeg
      Src: /src/ffms2/src/core/videosource.cpp:550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 559
    functionName: FFMS_VideoSource::DetectInputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - handle_jpeg
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::DetectInputFormat()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sws_freeContext
      Src: /src/ffms2/src/core/videosource.cpp:563,1
    - Dst: FFMS_VideoSource::DetectInputFormat
      Src: /src/ffms2/src/core/videosource.cpp:567,1
    - Dst: FindBestPixelFormat
      Src: /src/ffms2/src/core/videosource.cpp:569,1
    - Dst: FFMS_VideoSource::ResetOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:571,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:572,1
    - Dst: handle_jpeg
      Src: /src/ffms2/src/core/videosource.cpp:576,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videosource.cpp:586,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videosource.cpp:587,1
    - Dst: GetSwsContext
      Src: /src/ffms2/src/core/videosource.cpp:620,1
    - Dst: FFMS_VideoSource::ResetOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:626,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:627,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:632,1
    - Dst: av_image_alloc
      Src: /src/ffms2/src/core/videosource.cpp:633,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:634,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - Frame
    argTypes:
    - AVFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 636
    functionName: FFMS_VideoSource::ReAdjustOutputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 3
    functionsReached:
    - GetSwsContext
    - av_image_alloc
    - av_freep
    - FindBestPixelFormat
    - handle_jpeg
    - FFMS_Exception
    - FFMS_VideoSource::ResetOutputFormat
    - GuessCSType
    - sws_freeContext
    - FFMS_VideoSource::DetectInputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::ReAdjustOutputFormat(AVFrame *Frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sws_freeContext
      Src: /src/ffms2/src/core/videosource.cpp:640,1
    - Dst: clear
      Src: /src/ffms2/src/core/videosource.cpp:646,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 655
    functionName: FFMS_VideoSource::ResetOutputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - clear
    - sws_freeContext
    - FFMS_VideoSource::OutputFrame
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::ResetOutputFormat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::ReAdjustOutputFormat
      Src: /src/ffms2/src/core/videosource.cpp:663,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: FFMS_VideoSource::ResetInputFormat
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource::ReAdjustOutputFormat
    - FFMS_VideoSource::OutputFrame
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::ResetInputFormat()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VisibleFrameCount
      Src: /src/ffms2/src/core/videosource.cpp:676,1
    - Dst: RealFrameNumber
      Src: /src/ffms2/src/core/videosource.cpp:688,1
    - Dst: RealFrameNumber
      Src: /src/ffms2/src/core/videosource.cpp:689,1
    - Dst: VisibleFrameCount
      Src: /src/ffms2/src/core/videosource.cpp:689,1
    - Dst: RealFrameNumber
      Src: /src/ffms2/src/core/videosource.cpp:690,1
    - Dst: VisibleFrameCount
      Src: /src/ffms2/src/core/videosource.cpp:690,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:693,1
    - Dst: CorrectRationalFramerate
      Src: /src/ffms2/src/core/videosource.cpp:697,1
    - Dst: CorrectTimebase
      Src: /src/ffms2/src/core/videosource.cpp:699,1
    - Dst: FFMS_VideoSource::DetectInputFormat
      Src: /src/ffms2/src/core/videosource.cpp:706,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 711
    functionName: FFMS_VideoSource::SetVideoProperties
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - CorrectRationalFramerate
    - FFMS_Exception
    - CorrectTimebase
    - RealFrameNumber
    - VisibleFrameCount
    - FFMS_VideoSource::DetectInputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::SetVideoProperties()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsExceeded
      Src: /src/ffms2/src/core/videosource.cpp:715,1
    - Dst: Decrement
      Src: /src/ffms2/src/core/videosource.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 722
    functionName: FFMS_VideoSource::HasPendingDelayedFrames
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - Decrement
    - IsExceeded
    linkageType: ''
    returnType: bool
    signature: bool FFMS_VideoSource::HasPendingDelayedFrames()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:726,1
    - Dst: av_image_alloc
      Src: /src/ffms2/src/core/videosource.cpp:727,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:728,1
    - Dst: av_image_copy
      Src: /src/ffms2/src/core/videosource.cpp:730,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:732,1
    - Dst: av_image_alloc
      Src: /src/ffms2/src/core/videosource.cpp:733,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:734,1
    - Dst: av_image_copy
      Src: /src/ffms2/src/core/videosource.cpp:736,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - view
    argTypes:
    - AVStereo3DView
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 740
    functionName: FFMS_VideoSource::CopyEye
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - av_image_alloc
    - FFMS_Exception
    - av_freep
    - av_image_copy
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::CopyEye(AVStereo3DView view)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::swap
      Src: /src/ffms2/src/core/videosource.cpp:743,1
    - Dst: FrameFromPTS
      Src: /src/ffms2/src/core/videosource.cpp:746,1
    - Dst: avcodec_send_packet
      Src: /src/ffms2/src/core/videosource.cpp:750,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/videosource.cpp:751,1
    - Dst: Increment
      Src: /src/ffms2/src/core/videosource.cpp:755,1
    - Dst: avcodec_receive_frame
      Src: /src/ffms2/src/core/videosource.cpp:758,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:761,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:763,1
    - Dst: FFMS_VideoSource::CopyEye
      Src: /src/ffms2/src/core/videosource.cpp:768,1
    - Dst: avcodec_receive_frame
      Src: /src/ffms2/src/core/videosource.cpp:770,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:772,1
    - Dst: av_frame_get_side_data
      Src: /src/ffms2/src/core/videosource.cpp:775,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:777,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:783,1
    - Dst: FFMS_VideoSource::CopyEye
      Src: /src/ffms2/src/core/videosource.cpp:785,1
    - Dst: Decrement
      Src: /src/ffms2/src/core/videosource.cpp:787,1
    - Dst: std::swap
      Src: /src/ffms2/src/core/videosource.cpp:789,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 1
    argNames:
    - Packet
    argTypes:
    - AVPacket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 796
    functionName: FFMS_VideoSource::DecodePacket
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_VideoSource::CopyEye
    - AVERROR
    - FFMS_Exception
    - Decrement
    - avcodec_send_packet
    - av_frame_get_side_data
    - avcodec_receive_frame
    - FrameFromPTS
    - Increment
    - std::swap
    linkageType: ''
    returnType: bool
    signature: bool FFMS_VideoSource::DecodePacket(AVPacket *Packet)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/ffms2/src/core/videosource.cpp:801,1
    - Dst: av_seek_frame
      Src: /src/ffms2/src/core/videosource.cpp:806,1
    - Dst: av_seek_frame
      Src: /src/ffms2/src/core/videosource.cpp:810,1
    - Dst: avcodec_flush_buffers
      Src: /src/ffms2/src/core/videosource.cpp:816,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/videosource.cpp:818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 825
    functionName: FFMS_VideoSource::Seek
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - avcodec_flush_buffers
    - Reset
    - av_packet_unref
    - av_seek_frame
    linkageType: ''
    returnType: int
    signature: int FFMS_VideoSource::Seek(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:828,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:829,1
    - Dst: avcodec_free_context
      Src: /src/ffms2/src/core/videosource.cpp:830,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/videosource.cpp:831,1
    - Dst: sws_freeContext
      Src: /src/ffms2/src/core/videosource.cpp:833,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:834,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:835,1
    - Dst: av_freep
      Src: /src/ffms2/src/core/videosource.cpp:836,1
    - Dst: av_frame_free
      Src: /src/ffms2/src/core/videosource.cpp:837,1
    - Dst: av_frame_free
      Src: /src/ffms2/src/core/videosource.cpp:838,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/videosource.cpp:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: FFMS_VideoSource::Free
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 2
    functionsReached:
    - avformat_close_input
    - av_frame_free
    - sws_freeContext
    - av_packet_free
    - avcodec_free_context
    - av_freep
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::Free()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::HasPendingDelayedFrames
      Src: /src/ffms2/src/core/videosource.cpp:845,1
    - Dst: av_packet_alloc
      Src: /src/ffms2/src/core/videosource.cpp:848,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:850,1
    - Dst: av_packet_ref
      Src: /src/ffms2/src/core/videosource.cpp:858,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/videosource.cpp:859,1
    - Dst: av_read_frame
      Src: /src/ffms2/src/core/videosource.cpp:861,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/videosource.cpp:865,1
    - Dst: av_read_frame
      Src: /src/ffms2/src/core/videosource.cpp:866,1
    - Dst: FFMS_VideoSource::DecodePacket
      Src: /src/ffms2/src/core/videosource.cpp:876,1
    - Dst: av_packet_ref
      Src: /src/ffms2/src/core/videosource.cpp:878,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/videosource.cpp:879,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/videosource.cpp:881,1
    - Dst: av_packet_ref
      Src: /src/ffms2/src/core/videosource.cpp:887,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/videosource.cpp:888,1
    - Dst: av_read_frame
      Src: /src/ffms2/src/core/videosource.cpp:890,1
    - Dst: IsIOError
      Src: /src/ffms2/src/core/videosource.cpp:893,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:894,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/videosource.cpp:895,1
    - Dst: FFMS_VideoSource::DecodePacket
      Src: /src/ffms2/src/core/videosource.cpp:898,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/videosource.cpp:899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - AStartTime
    - Pos
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 900
    functionName: FFMS_VideoSource::DecodeNextFrame
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - av_packet_ref
    - av_packet_unref
    - av_read_frame
    - FFMS_Exception
    - FFMS_VideoSource::DecodePacket
    - av_packet_alloc
    - AVErrorToString
    - FFMS_VideoSource::HasPendingDelayedFrames
    - IsIOError
    - av_packet_free
    linkageType: ''
    returnType: void
    signature: void FFMS_VideoSource::DecodeNextFrame(int64_t &AStartTime, int64_t
      &Pos)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:913,1
    - Dst: std::min
      Src: /src/ffms2/src/core/videosource.cpp:926,1
    - Dst: RealFrameNumber
      Src: /src/ffms2/src/core/videosource.cpp:926,1
    - Dst: std::max
      Src: /src/ffms2/src/core/videosource.cpp:926,1
    - Dst: FindClosestVideoKeyFrame
      Src: /src/ffms2/src/core/videosource.cpp:929,1
    - Dst: FFMS_VideoSource::Seek
      Src: /src/ffms2/src/core/videosource.cpp:933,1
    - Dst: FFMS_VideoSource::Seek
      Src: /src/ffms2/src/core/videosource.cpp:938,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/videosource.cpp:943,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - n
    - SeekOffset
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 947
    functionName: FFMS_VideoSource::SeekTo
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - std::max
    - FindClosestVideoKeyFrame
    - FFMS_VideoSource::Seek
    - FFMS_Exception
    - RealFrameNumber
    linkageType: ''
    returnType: bool
    signature: bool FFMS_VideoSource::SeekTo(int n, int SeekOffset)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_VideoSource::GetFrameCheck
      Src: /src/ffms2/src/core/videosource.cpp:950,1
    - Dst: RealFrameNumber
      Src: /src/ffms2/src/core/videosource.cpp:951,1
    - Dst: FFMS_VideoSource::SeekTo
      Src: /src/ffms2/src/core/videosource.cpp:963,1
    - Dst: size
      Src: /src/ffms2/src/core/videosource.cpp:969,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/videosource.cpp:969,1
    - Dst: FFMS_VideoSource::DecodeNextFrame
      Src: /src/ffms2/src/core/videosource.cpp:974,1
    - Dst: FrameFromPos
      Src: /src/ffms2/src/core/videosource.cpp:982,1
    - Dst: FrameFromPTS
      Src: /src/ffms2/src/core/videosource.cpp:995,1
    - Dst: ClosestFrameFromPTS
      Src: /src/ffms2/src/core/videosource.cpp:1005,1
    - Dst: Skipped
      Src: /src/ffms2/src/core/videosource.cpp:1026,1
    - Dst: FFMS_VideoSource::OutputFrame
      Src: /src/ffms2/src/core/videosource.cpp:1043,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 52
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 1044
    functionName: FFMS_VideoSource::GetFrame
    functionSourceFile: /src/ffms2/src/core/videosource.cpp
    functionUses: 1
    functionsReached:
    - FFMS_VideoSource::DecodeNextFrame
    - size
    - FFMS_VideoSource::OutputFrame
    - FFMS_VideoSource::SeekTo
    - FFMS_VideoSource::GetFrameCheck
    - ClosestFrameFromPTS
    - RealFrameNumber
    - FrameFromPTS
    - Skipped
    - FrameFromPos
    linkageType: ''
    returnType: FFMS_Frame
    signature: FFMS_Frame *FFMS_VideoSource::GetFrame(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/ffms2/src/core/zipfile.h:54,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/zipfile.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: ZipFile::Read
    functionSourceFile: /src/ffms2/src/core/zipfile.h
    functionUses: 4
    functionsReached:
    - ZipFile::Read
    - T
    linkageType: ''
    returnType: T
    signature: T Read()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/zipfile.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: ZipFile::Write
    functionSourceFile: /src/ffms2/src/core/zipfile.h
    functionUses: 4
    functionsReached:
    - ZipFile::Write
    linkageType: ''
    returnType: void
    signature: void Write(T const& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: '&GetErrorMessage() const'
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetErrorMessage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<T>
      Src: /src/ffms2/src/core/utils.h:58,1
    - Dst: std::forward<Args>
      Src: /src/ffms2/src/core/utils.h:58,1
    - Dst: T::T
      Src: /src/ffms2/src/core/utils.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: make_unique
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<T>
    - T::T
    - std::forward<Args>
    linkageType: ''
    returnType: std::unique_ptr<T>
    signature: std::unique_ptr<T> make_unique(Args&&... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_get_int
      Src: /src/ffms2/src/core/utils.h:70,1
    - Dst: static_cast<T>
      Src: /src/ffms2/src/core/utils.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: optdetail::get_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_get_int
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T get_av_opt(void *v, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_get_double
      Src: /src/ffms2/src/core/utils.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: optdetail::get_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_get_double
    linkageType: ''
    returnType: double
    signature: double get_av_opt<double>(void *v, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/utils.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: optdetail::set_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_set_int
    linkageType: ''
    returnType: void
    signature: void set_av_opt(void *v, const char *name, T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_set_double
      Src: /src/ffms2/src/core/utils.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - void*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: optdetail::set_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_set_double
    linkageType: ''
    returnType: void
    signature: void set_av_opt<double>(void *v, const char *name, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_get_int
      Src: /src/ffms2/src/core/utils.h:70,1
    - Dst: static_cast<T>
      Src: /src/ffms2/src/core/utils.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: optdetail::get_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_get_int
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T get_av_opt(void *v, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_get_double
      Src: /src/ffms2/src/core/utils.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: optdetail::get_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_get_double
    linkageType: ''
    returnType: double
    signature: double get_av_opt<double>(void *v, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/utils.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - void*
    - char*
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: optdetail::set_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_set_int
    linkageType: ''
    returnType: void
    signature: void set_av_opt(void *v, const char *name, T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_opt_set_double
      Src: /src/ffms2/src/core/utils.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - void*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: optdetail::set_av_opt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - av_opt_set_double
    linkageType: ''
    returnType: void
    signature: void set_av_opt<double>(void *v, const char *name, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ~OptionMapperBase()
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~OptionMapperBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: OptionMapper::OptionMapperImpl::OptionMapperImpl
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OptionMapperImpl(T(FFMS_Struct::*ptr), const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: optdetail::set_av_opt
      Src: /src/ffms2/src/core/utils.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' src'
    - dst
    argTypes:
    - FFMS_Struct
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: OptionMapper::OptionMapperImpl::ToOpt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - optdetail::set_av_opt
    linkageType: ''
    returnType: void
    signature: void ToOpt(FFMS_Struct const& src, void *dst) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: optdetail::get_av_opt<T>
      Src: /src/ffms2/src/core/utils.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - FFMS_Struct
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: OptionMapper::OptionMapperImpl::FromOpt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - optdetail::get_av_opt<T>
    linkageType: ''
    returnType: void
    signature: void FromOpt(FFMS_Struct &dst, void *src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OptionMapperImpl<T>::OptionMapperImpl<T>
      Src: /src/ffms2/src/core/utils.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - opt_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: OptionMapper::OptionMapper
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - OptionMapperImpl<T>::OptionMapperImpl<T>
    linkageType: ''
    returnType: void
    signature: void OptionMapper(const char *opt_name, T(FFMS_Struct::*member))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OptionMapper::ToOpt
      Src: /src/ffms2/src/core/utils.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' src'
    - dst
    argTypes:
    - FFMS_Struct
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: OptionMapper::ToOpt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 1
    functionsReached:
    - OptionMapper::ToOpt
    linkageType: ''
    returnType: void
    signature: void ToOpt(FFMS_Struct const& src, void *dst) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OptionMapper::FromOpt
      Src: /src/ffms2/src/core/utils.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - FFMS_Struct
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: OptionMapper::FromOpt
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 1
    functionsReached:
    - OptionMapper::FromOpt
    linkageType: ''
    returnType: void
    signature: void FromOpt(FFMS_Struct &dst, void *src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_unique
      Src: /src/ffms2/src/core/utils.h:123,1
    - Dst: FromOpt
      Src: /src/ffms2/src/core/utils.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opt
    - (options)
    argTypes:
    - void*
    - OptionMapper<T>[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: ReadOptions
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - make_unique
    - FromOpt
    linkageType: ''
    returnType: std::unique_ptr<T>
    signature: std::unique_ptr<T> ReadOptions(void *opt, OptionMapper<T>(&options)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToOpt
      Src: /src/ffms2/src/core/utils.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ' src'
    - opt
    - (options)
    argTypes:
    - T
    - void*
    - OptionMapper<T>[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: SetOptions
    functionSourceFile: /src/ffms2/src/core/utils.h
    functionUses: 0
    functionsReached:
    - ToOpt
    linkageType: ''
    returnType: void
    signature: void SetOptions(T const& src, void *opt, OptionMapper<T>(&options)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& GetVideoProperties()'
    functionSourceFile: /src/ffms2/src/core/videosource.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFMS_VideoProperties
    signature: FFMS_VideoProperties & GetVideoProperties()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: GetTrack
    functionSourceFile: /src/ffms2/src/core/videosource.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FFMS_Track
    signature: FFMS_Track *GetTrack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/ffms2/src/core/zipfile.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ZipFile::ZipFile
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void ZipFile::ZipFile(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/ffms2/src/core/zipfile.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: ZipFile::ZipFile
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void ZipFile::ZipFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in_buffer
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: ZipFile::ZipFile
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZipFile::ZipFile(const uint8_t *in_buffer, const size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/ffms2/src/core/zipfile.cpp:53,1
    - Dst: deflateEnd
      Src: /src/ffms2/src/core/zipfile.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: ZipFile::~ZipFile()
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached:
    - deflateEnd
    - inflateEnd
    linkageType: ''
    returnType: void
    signature: void ZipFile::~ZipFile()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/ffms2/src/core/zipfile.cpp:60,1
    - Dst: inflateInit
      Src: /src/ffms2/src/core/zipfile.cpp:64,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:65,1
    - Dst: static_cast<unsigned char *>
      Src: /src/ffms2/src/core/zipfile.cpp:69,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/ffms2/src/core/zipfile.cpp:72,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:73,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/ffms2/src/core/zipfile.cpp:77,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/zipfile.cpp:78,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:78,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:82,1
    - Dst: Tell
      Src: /src/ffms2/src/core/zipfile.cpp:83,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:84,1
    - Dst: inflate
      Src: /src/ffms2/src/core/zipfile.cpp:87,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:89,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:91,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:93,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:96,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 99
    functionName: ZipFile::Read
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 5
    functionsReached:
    - deflateEnd
    - inflateInit
    - size
    - inflate
    - FFMS_Exception
    - static_cast<unsigned char *>
    - ZipFile::Read
    - Tell
    - reinterpret_cast<Bytef*>
    linkageType: ''
    returnType: void
    signature: void ZipFile::Read(void *data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/ffms2/src/core/zipfile.cpp:103,1
    - Dst: deflateInit
      Src: /src/ffms2/src/core/zipfile.cpp:107,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:108,1
    - Dst: static_cast<unsigned char *>
      Src: /src/ffms2/src/core/zipfile.cpp:112,1
    - Dst: const_cast<void *>
      Src: /src/ffms2/src/core/zipfile.cpp:112,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:116,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/ffms2/src/core/zipfile.cpp:117,1
    - Dst: deflate
      Src: /src/ffms2/src/core/zipfile.cpp:118,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:119,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/zipfile.cpp:122,1
    - Dst: insert
      Src: /src/ffms2/src/core/zipfile.cpp:124,1
    - Dst: end
      Src: /src/ffms2/src/core/zipfile.cpp:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 128
    functionName: ZipFile::Write
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 5
    functionsReached:
    - deflateInit
    - size
    - FFMS_Exception
    - deflate
    - const_cast<void *>
    - inflateEnd
    - end
    - static_cast<unsigned char *>
    - ZipFile::Write
    - insert
    - reinterpret_cast<Bytef*>
    linkageType: ''
    returnType: int
    signature: int ZipFile::Write(const void *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/zipfile.cpp:131,1
    - Dst: deflateEnd
      Src: /src/ffms2/src/core/zipfile.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: ZipFile::Finish
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached:
    - ZipFile::Write
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void ZipFile::Finish()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: av_malloc
      Src: /src/ffms2/src/core/zipfile.cpp:137,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:137,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/zipfile.cpp:139,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/zipfile.cpp:141,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/ffms2/src/core/zipfile.cpp:141,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:141,1
    - Dst: size
      Src: /src/ffms2/src/core/zipfile.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: ZipFile::GetBuffer
    functionSourceFile: /src/ffms2/src/core/zipfile.cpp
    functionUses: 0
    functionsReached:
    - size
    - reinterpret_cast<uint8_t *>
    - av_malloc
    - FFMS_Exception
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *ZipFile::GetBuffer(size_t *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sws_alloc_context
      Src: /src/ffms2/src/core/videoutils.cpp:34,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videoutils.cpp:40,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videoutils.cpp:43,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:45,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:46,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:47,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:48,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:49,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:50,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:51,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:52,1
    - Dst: av_opt_set_int
      Src: /src/ffms2/src/core/videoutils.cpp:53,1
    - Dst: sws_setColorspaceDetails
      Src: /src/ffms2/src/core/videoutils.cpp:55,1
    - Dst: sws_getCoefficients
      Src: /src/ffms2/src/core/videoutils.cpp:56,1
    - Dst: sws_getCoefficients
      Src: /src/ffms2/src/core/videoutils.cpp:57,1
    - Dst: sws_init_context
      Src: /src/ffms2/src/core/videoutils.cpp:60,1
    - Dst: sws_freeContext
      Src: /src/ffms2/src/core/videoutils.cpp:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 11
    argNames:
    - SrcW
    - SrcH
    - SrcFormat
    - SrcColorSpace
    - SrcColorRange
    - DstW
    - DstH
    - DstFormat
    - DstColorSpace
    - DstColorRange
    - Flags
    argTypes:
    - int
    - int
    - AVPixelFormat
    - int
    - int
    - int
    - int
    - AVPixelFormat
    - int
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 66
    functionName: GetSwsContext
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 1
    functionsReached:
    - sws_getCoefficients
    - sws_setColorspaceDetails
    - av_opt_set_int
    - sws_alloc_context
    - GuessCSType
    - sws_init_context
    - sws_freeContext
    linkageType: ''
    returnType: SwsContext
    signature: SwsContext *GetSwsContext(int SrcW, int SrcH, AVPixelFormat SrcFormat,
      int SrcColorSpace, int SrcColorRange, int DstW, int DstH, AVPixelFormat DstFormat,
      int DstColorSpace, int DstColorRange, int64_t Flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: av_reduce
      Src: /src/ffms2/src/core/videoutils.cpp:78,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/core/videoutils.cpp:80,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/core/videoutils.cpp:84,1
    - Dst: fabs
      Src: /src/ffms2/src/core/videoutils.cpp:85,1
    - Dst: fabs
      Src: /src/ffms2/src/core/videoutils.cpp:89,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/core/videoutils.cpp:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - Num
    - Den
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: CorrectRationalFramerate
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 1
    functionsReached:
    - fabs
    - static_cast<double>
    - av_reduce
    linkageType: ''
    returnType: void
    signature: void CorrectRationalFramerate(int *Num, int *Den)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - VP
    - TTimebase
    argTypes:
    - FFMS_VideoProperties*
    - FFMS_TrackTimeBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: CorrectTimebase
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CorrectTimebase(FFMS_VideoProperties *VP, FFMS_TrackTimeBase *TTimebase)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:118,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:120,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:122,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:124,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - AVPixelFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: GuessCSType
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 2
    functionsReached:
    - av_pix_fmt_desc_get
    linkageType: ''
    returnType: BCSType
    signature: BCSType GuessCSType(AVPixelFormat p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMAX
      Src: /src/ffms2/src/core/videoutils.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - Desc
    argTypes:
    - AVPixFmtDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: GetPseudoDepth
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 0
    functionsReached:
    - FFMAX
    linkageType: ''
    returnType: int
    signature: int GetPseudoDepth(const AVPixFmtDescriptor &Desc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:149,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/core/videoutils.cpp:150,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videoutils.cpp:151,1
    - Dst: GuessCSType
      Src: /src/ffms2/src/core/videoutils.cpp:152,1
    - Dst: GetPseudoDepth
      Src: /src/ffms2/src/core/videoutils.cpp:156,1
    - Dst: GetPseudoDepth
      Src: /src/ffms2/src/core/videoutils.cpp:156,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/videoutils.cpp:157,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/videoutils.cpp:157,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/videoutils.cpp:158,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/videoutils.cpp:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - Dst
    - Src
    argTypes:
    - AVPixelFormat
    - AVPixelFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 189
    functionName: CalculateLoss
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 0
    functionsReached:
    - FFMAX
    - GetPseudoDepth
    - av_pix_fmt_desc_get
    - GuessCSType
    linkageType: ''
    returnType: LossAttributes
    signature: LossAttributes CalculateLoss(AVPixelFormat Dst, AVPixelFormat Src)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<AVPixelFormat>::empty
      Src: /src/ffms2/src/core/videoutils.cpp:193,1
    - Dst: std::vector<AVPixelFormat>::size
      Src: /src/ffms2/src/core/videoutils.cpp:195,1
    - Dst: std::find
      Src: /src/ffms2/src/core/videoutils.cpp:199,1
    - Dst: std::vector<AVPixelFormat>::begin
      Src: /src/ffms2/src/core/videoutils.cpp:199,1
    - Dst: std::vector<AVPixelFormat>::end
      Src: /src/ffms2/src/core/videoutils.cpp:199,1
    - Dst: std::vector<AVPixelFormat>::end
      Src: /src/ffms2/src/core/videoutils.cpp:200,1
    - Dst: std::vector<AVPixelFormat>::begin
      Src: /src/ffms2/src/core/videoutils.cpp:208,1
    - Dst: std::vector<AVPixelFormat>::end
      Src: /src/ffms2/src/core/videoutils.cpp:208,1
    - Dst: sws_isSupportedOutput
      Src: /src/ffms2/src/core/videoutils.cpp:210,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/core/videoutils.cpp:211,1
    - Dst: std::vector::empty
      Src: /src/ffms2/src/core/videoutils.cpp:214,1
    - Dst: std::vector::begin
      Src: /src/ffms2/src/core/videoutils.cpp:217,1
    - Dst: CalculateLoss
      Src: /src/ffms2/src/core/videoutils.cpp:218,1
    - Dst: std::vector::end
      Src: /src/ffms2/src/core/videoutils.cpp:219,1
    - Dst: CalculateLoss
      Src: /src/ffms2/src/core/videoutils.cpp:220,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 31
    argCount: 2
    argNames:
    - Dsts
    - Src
    argTypes:
    - std::vector<AVPixelFormat>
    - AVPixelFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 244
    functionName: FindBestPixelFormat
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 1
    functionsReached:
    - std::vector<AVPixelFormat>::begin
    - std::vector::empty
    - std::find
    - std::vector::end
    - std::vector::begin
    - std::vector<AVPixelFormat>::end
    - std::vector<AVPixelFormat>::size
    - std::vector::push_back
    - CalculateLoss
    - std::vector<AVPixelFormat>::empty
    - sws_isSupportedOutput
    linkageType: ''
    returnType: AVPixelFormat
    signature: AVPixelFormat FindBestPixelFormat(const std::vector<AVPixelFormat>
      &Dsts, AVPixelFormat Src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - Buf
    - Invisible
    - PictType
    argTypes:
    - uint8_t
    - bool*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: ParseVP8
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParseVP8(const uint8_t Buf, bool *Invisible, int *PictType)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - Buf
    - PictType
    argTypes:
    - uint8_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: ParseVP9
    functionSourceFile: /src/ffms2/src/core/videoutils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParseVP9(const uint8_t Buf, int *PictType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: FFMS_Index
    functionSourceFile: /src/ffms2/src/core/indexing.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Index(FFMS_Index const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: '& operator=(FFMS_Index const&)'
    functionSourceFile: /src/ffms2/src/core/indexing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFMS_Index
    signature: FFMS_Index & operator=(FFMS_Index const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: FFMS_Indexer
    functionSourceFile: /src/ffms2/src/core/indexing.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer(FFMS_Indexer const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: '& operator=(FFMS_Indexer const&)'
    functionSourceFile: /src/ffms2/src/core/indexing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFMS_Indexer
    signature: FFMS_Indexer & operator=(FFMS_Indexer const&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avcodec_free_context
      Src: /src/ffms2/src/core/indexing.cpp:41,1
    - Dst: av_parser_close
      Src: /src/ffms2/src/core/indexing.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: SharedAVContext::~SharedAVContext()
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - av_parser_close
    - avcodec_free_context
    linkageType: ''
    returnType: void
    signature: void SharedAVContext::~SharedAVContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: av_sha_alloc
      Src: /src/ffms2/src/core/indexing.cpp:49,1
    - Dst: av_sha_init
      Src: /src/ffms2/src/core/indexing.cpp:50,1
    - Dst: std::unique_ptr::get
      Src: /src/ffms2/src/core/indexing.cpp:50,1
    - Dst: FileHandle::Size
      Src: /src/ffms2/src/core/indexing.cpp:53,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/indexing.cpp:54,1
    - Dst: std::min<int64_t>
      Src: /src/ffms2/src/core/indexing.cpp:54,1
    - Dst: FileHandle::Read
      Src: /src/ffms2/src/core/indexing.cpp:55,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:55,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/indexing.cpp:55,1
    - Dst: av_sha_update
      Src: /src/ffms2/src/core/indexing.cpp:56,1
    - Dst: std::unique_ptr::get
      Src: /src/ffms2/src/core/indexing.cpp:56,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/ffms2/src/core/indexing.cpp:56,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:56,1
    - Dst: static_cast<int64_t>
      Src: /src/ffms2/src/core/indexing.cpp:58,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/indexing.cpp:58,1
    - Dst: FileHandle::Seek
      Src: /src/ffms2/src/core/indexing.cpp:59,1
    - Dst: static_cast<int64_t>
      Src: /src/ffms2/src/core/indexing.cpp:59,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/indexing.cpp:59,1
    - Dst: FileHandle::Read
      Src: /src/ffms2/src/core/indexing.cpp:60,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:60,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/indexing.cpp:60,1
    - Dst: av_sha_update
      Src: /src/ffms2/src/core/indexing.cpp:61,1
    - Dst: std::unique_ptr::get
      Src: /src/ffms2/src/core/indexing.cpp:61,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/ffms2/src/core/indexing.cpp:61,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:61,1
    - Dst: av_sha_final
      Src: /src/ffms2/src/core/indexing.cpp:64,1
    - Dst: std::unique_ptr::get
      Src: /src/ffms2/src/core/indexing.cpp:64,1
    - Dst: av_sha_final
      Src: /src/ffms2/src/core/indexing.cpp:67,1
    - Dst: std::unique_ptr::get
      Src: /src/ffms2/src/core/indexing.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - Filename
    - Filesize
    - Digest
    argTypes:
    - char*
    - int64_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: FFMS_Index::CalculateFileSignature
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - av_sha_update
    - std::unique_ptr::get
    - std::vector::size
    - static_cast<size_t>
    - std::vector::data
    - static_cast<int64_t>
    - reinterpret_cast<const uint8_t*>
    - FileHandle::Size
    - av_sha_alloc
    - av_sha_final
    - av_sha_init
    - FileHandle::Seek
    - FileHandle::Read
    - std::min<int64_t>
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::CalculateFileSignature(const char *Filename, int64_t
      *Filesize, uint8_t Digest[20])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:71,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:74,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:74,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:74,1
    - Dst: std::any_of
      Src: /src/ffms2/src/core/indexing.cpp:75,1
    - Dst: begin
      Src: /src/ffms2/src/core/indexing.cpp:75,1
    - Dst: end
      Src: /src/ffms2/src/core/indexing.cpp:75,1
    - Dst: RevertToDTS
      Src: /src/ffms2/src/core/indexing.cpp:76,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:82,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:82,1
    - Dst: clear
      Src: /src/ffms2/src/core/indexing.cpp:83,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:90,1
    - Dst: MaybeHideFrames
      Src: /src/ffms2/src/core/indexing.cpp:91,1
    - Dst: FinalizeTrack
      Src: /src/ffms2/src/core/indexing.cpp:93,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:105,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 27
    argCount: 2
    argNames:
    - ' video_contexts'
    - Format
    argTypes:
    - std::vector<SharedAVContext>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: FFMS_Index::Finalize
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FinalizeTrack
    - size
    - strcmp
    - std::any_of
    - end
    - clear
    - begin
    - MaybeHideFrames
    - RevertToDTS
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::Finalize(std::vector<SharedAVContext> const& video_contexts,
      const char *Format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Index::CalculateFileSignature
      Src: /src/ffms2/src/core/indexing.cpp:117,1
    - Dst: memcmp
      Src: /src/ffms2/src/core/indexing.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: FFMS_Index::CompareFileSignature
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - FFMS_Index::CalculateFileSignature
    linkageType: ''
    returnType: bool
    signature: bool FFMS_Index::CompareFileSignature(const char *Filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:123,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:124,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:125,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:126,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:126,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:127,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:128,1
    - Dst: avutil_version
      Src: /src/ffms2/src/core/indexing.cpp:128,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:129,1
    - Dst: avformat_version
      Src: /src/ffms2/src/core/indexing.cpp:129,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:130,1
    - Dst: avcodec_version
      Src: /src/ffms2/src/core/indexing.cpp:130,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:131,1
    - Dst: swscale_version
      Src: /src/ffms2/src/core/indexing.cpp:131,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:132,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:133,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:135,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:135,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:137,1
    - Dst: first::length
      Src: /src/ffms2/src/core/indexing.cpp:137,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:138,1
    - Dst: first::data
      Src: /src/ffms2/src/core/indexing.cpp:138,1
    - Dst: first::length
      Src: /src/ffms2/src/core/indexing.cpp:138,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:139,1
    - Dst: second::length
      Src: /src/ffms2/src/core/indexing.cpp:139,1
    - Dst: ZipFile::Write
      Src: /src/ffms2/src/core/indexing.cpp:140,1
    - Dst: second::data
      Src: /src/ffms2/src/core/indexing.cpp:140,1
    - Dst: second::length
      Src: /src/ffms2/src/core/indexing.cpp:140,1
    - Dst: size
      Src: /src/ffms2/src/core/indexing.cpp:143,1
    - Dst: at
      Src: /src/ffms2/src/core/indexing.cpp:144,1
    - Dst: ZipFile::Finish
      Src: /src/ffms2/src/core/indexing.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - zf
    argTypes:
    - ZipFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: FFMS_Index::WriteIndex
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - avutil_version
    - second::length
    - avcodec_version
    - size
    - at
    - ZipFile::Finish
    - second::data
    - first::data
    - swscale_version
    - first::length
    - ZipFile::Write
    - avformat_version
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::WriteIndex(ZipFile &zf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Index::WriteIndex
      Src: /src/ffms2/src/core/indexing.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - IndexFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: FFMS_Index::WriteIndexFile
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Index::WriteIndex
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::WriteIndexFile(const char *IndexFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::ZipFile
      Src: /src/ffms2/src/core/indexing.cpp:156,1
    - Dst: FFMS_Index::WriteIndex
      Src: /src/ffms2/src/core/indexing.cpp:158,1
    - Dst: ZipFile::GetBuffer
      Src: /src/ffms2/src/core/indexing.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: FFMS_Index::WriteIndexBuffer
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Index::WriteIndex
    - ZipFile::ZipFile
    - ZipFile::GetBuffer
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *FFMS_Index::WriteIndexBuffer(size_t *Size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:165,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:166,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:167,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:169,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:170,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:171,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:173,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:174,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:175,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:177,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:178,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:180,1
    - Dst: avutil_version
      Src: /src/ffms2/src/core/indexing.cpp:180,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:181,1
    - Dst: avformat_version
      Src: /src/ffms2/src/core/indexing.cpp:181,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:182,1
    - Dst: avcodec_version
      Src: /src/ffms2/src/core/indexing.cpp:182,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:183,1
    - Dst: swscale_version
      Src: /src/ffms2/src/core/indexing.cpp:183,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:184,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:185,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:187,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:188,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:190,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:194,1
    - Dst: std::vector::resize
      Src: /src/ffms2/src/core/indexing.cpp:195,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:196,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:196,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:198,1
    - Dst: std::vector::resize
      Src: /src/ffms2/src/core/indexing.cpp:199,1
    - Dst: ZipFile::Read
      Src: /src/ffms2/src/core/indexing.cpp:200,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:200,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:202,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:202,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:202,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/indexing.cpp:202,1
    - Dst: reserve
      Src: /src/ffms2/src/core/indexing.cpp:205,1
    - Dst: emplace_back
      Src: /src/ffms2/src/core/indexing.cpp:208,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:212,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:213,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 2
    argNames:
    - zf
    - IndexFile
    argTypes:
    - ZipFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 215
    functionName: FFMS_Index::ReadIndex
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - avutil_version
    - avcodec_version
    - std::vector::data
    - FFMS_Exception
    - reserve
    - emplace_back
    - swscale_version
    - ZipFile::Read
    - avformat_version
    - std::string
    - std::vector::resize
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::ReadIndex(ZipFile &zf, const char *IndexFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Index::ReadIndex
      Src: /src/ffms2/src/core/indexing.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - IndexFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: FFMS_Index::FFMS_Index
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Index::ReadIndex
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::FFMS_Index(const char *IndexFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Index::ReadIndex
      Src: /src/ffms2/src/core/indexing.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Buffer
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: FFMS_Index::FFMS_Index
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 2
    functionsReached:
    - FFMS_Index::ReadIndex
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::FFMS_Index(const uint8_t *Buffer, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ffms2/src/core/indexing.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - Filesize
    - Digest
    - ErrorHandling
    - LAVFOpts
    argTypes:
    - int64_t
    - uint8_t[]
    - int
    - std::map<std::string, std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: FFMS_Index::FFMS_Index
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void FFMS_Index::FFMS_Index(int64_t Filesize, uint8_t Digest[20], int
      ErrorHandling, const std::map<std::string, std::string> &LAVFOpts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer::GetNumberOfTracks
      Src: /src/ffms2/src/core/indexing.cpp:236,1
    - Dst: insert
      Src: /src/ffms2/src/core/indexing.cpp:239,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - Track
    - Index
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: FFMS_Indexer::SetIndexTrack
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer::GetNumberOfTracks
    - erase
    - insert
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::SetIndexTrack(int Track, bool Index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer::GetNumberOfTracks
      Src: /src/ffms2/src/core/indexing.cpp:245,1
    - Dst: FFMS_Indexer::GetTrackType
      Src: /src/ffms2/src/core/indexing.cpp:246,1
    - Dst: insert
      Src: /src/ffms2/src/core/indexing.cpp:248,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - TrackType
    - Index
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: FFMS_Indexer::SetIndexTrackType
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer::GetNumberOfTracks
    - erase
    - insert
    - FFMS_Indexer::GetTrackType
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::SetIndexTrackType(int TrackType, bool Index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - ErrorHandling_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: FFMS_Indexer::SetErrorHandling
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::SetErrorHandling(int ErrorHandling_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - IC_
    - ICPrivate_
    argTypes:
    - TIndexCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: FFMS_Indexer::SetProgressCallback
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::SetProgressCallback(TIndexCallback IC_, void *ICPrivate_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:274,1
    - Dst: av_dict_set
      Src: /src/ffms2/src/core/indexing.cpp:277,1
    - Dst: avformat_open_input
      Src: /src/ffms2/src/core/indexing.cpp:280,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:281,1
    - Dst: std::string
      Src: /src/ffms2/src/core/indexing.cpp:282,1
    - Dst: av_dict_free
      Src: /src/ffms2/src/core/indexing.cpp:284,1
    - Dst: FFMS_Index::CalculateFileSignature
      Src: /src/ffms2/src/core/indexing.cpp:286,1
    - Dst: avformat_find_stream_info
      Src: /src/ffms2/src/core/indexing.cpp:288,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/indexing.cpp:289,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:290,1
    - Dst: insert
      Src: /src/ffms2/src/core/indexing.cpp:296,1
    - Dst: av_frame_alloc
      Src: /src/ffms2/src/core/indexing.cpp:298,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:300,1
    - Dst: FFMS_Indexer::Free
      Src: /src/ffms2/src/core/indexing.cpp:303,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 3
    argNames:
    - Filename
    - DemuxerOptions
    - NumOptions
    argTypes:
    - char*
    - FFMS_KeyValuePair*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 306
    functionName: FFMS_Indexer::FFMS_Indexer
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached:
    - av_frame_alloc
    - avformat_close_input
    - av_dict_free
    - avformat_find_stream_info
    - FFMS_Exception
    - FFMS_Index::CalculateFileSignature
    - av_dict_set
    - insert
    - FFMS_Indexer::Free
    - avformat_open_input
    - std::string
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::FFMS_Indexer(const char *Filename, const FFMS_KeyValuePair
      *DemuxerOptions, int NumOptions)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: avcodec_send_packet
      Src: /src/ffms2/src/core/indexing.cpp:311,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:314,1
    - Dst: clear
      Src: /src/ffms2/src/core/indexing.cpp:316,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:317,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:319,1
    - Dst: av_frame_unref
      Src: /src/ffms2/src/core/indexing.cpp:324,1
    - Dst: avcodec_receive_frame
      Src: /src/ffms2/src/core/indexing.cpp:325,1
    - Dst: FFMS_Indexer::CheckAudioProperties
      Src: /src/ffms2/src/core/indexing.cpp:327,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/indexing.cpp:329,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:333,1
    - Dst: clear
      Src: /src/ffms2/src/core/indexing.cpp:335,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:336,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:338,1
    - Dst: static_cast<uint32_t>
      Src: /src/ffms2/src/core/indexing.cpp:343,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - Track
    - Packet
    - Context
    - TrackIndices
    argTypes:
    - int
    - AVPacket*
    - SharedAVContext
    - FFMS_Index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 344
    functionName: FFMS_Indexer::IndexAudioPacket
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - erase
    - static_cast<uint32_t>
    - AVERROR
    - FFMS_Exception
    - avcodec_send_packet
    - avcodec_receive_frame
    - av_frame_unref
    - clear
    - FFMS_Indexer::CheckAudioProperties
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t FFMS_Indexer::IndexAudioPacket(int Track, AVPacket *Packet,
      SharedAVContext &Context, FFMS_Index &TrackIndices)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/ffms2/src/core/indexing.cpp:347,1
    - Dst: end
      Src: /src/ffms2/src/core/indexing.cpp:348,1
    - Dst: av_get_sample_fmt_name
      Src: /src/ffms2/src/core/indexing.cpp:361,1
    - Dst: av_get_sample_fmt_name
      Src: /src/ffms2/src/core/indexing.cpp:362,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:363,1
    - Dst: std::ostringstream::str
      Src: /src/ffms2/src/core/indexing.cpp:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - Track
    - Context
    argTypes:
    - int
    - AVCodecContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: FFMS_Indexer::CheckAudioProperties
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - FFMS_Exception
    - av_get_sample_fmt_name
    - find
    - end
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::CheckAudioProperties(int Track, AVCodecContext *Context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: av_parser_parse2
      Src: /src/ffms2/src/core/indexing.cpp:373,1
    - Dst: ParseVP8
      Src: /src/ffms2/src/core/indexing.cpp:403,1
    - Dst: ParseVP9
      Src: /src/ffms2/src/core/indexing.cpp:405,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 7
    argNames:
    - VideoContext
    - pkt
    - RepeatPict
    - FrameType
    - Invisible
    - SecondField
    - LastPicStruct
    argTypes:
    - SharedAVContext
    - AVPacket*
    - int*
    - int*
    - bool*
    - bool*
    - enum AVPictureStructure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 406
    functionName: FFMS_Indexer::ParseVideoPacket
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - ParseVP9
    - av_parser_parse2
    - ParseVP8
    linkageType: ''
    returnType: void
    signature: "void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext,
      AVPacket *pkt, int *RepeatPict,\n                                    int *FrameType,
      bool *Invisible, bool *SecondField, enum AVPictureStructure *LastPicStruct)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_frame_free
      Src: /src/ffms2/src/core/indexing.cpp:409,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/indexing.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: FFMS_Indexer::Free
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached:
    - av_frame_free
    - avformat_close_input
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Indexer::Free
      Src: /src/ffms2/src/core/indexing.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: FFMS_Indexer::~FFMS_Indexer()
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Indexer::Free
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::~FFMS_Indexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: FFMS_Indexer::GetNumberOfTracks
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FFMS_Indexer::GetNumberOfTracks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: FFMS_Indexer::GetFormatName
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *FFMS_Indexer::GetFormatName()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FFMS_TrackType>
      Src: /src/ffms2/src/core/indexing.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Track
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: FFMS_Indexer::GetTrackType
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached:
    - static_cast<FFMS_TrackType>
    linkageType: ''
    returnType: FFMS_TrackType
    signature: FFMS_TrackType FFMS_Indexer::GetTrackType(int Track)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avcodec_find_decoder
      Src: /src/ffms2/src/core/indexing.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Track
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: FFMS_Indexer::GetTrackCodec
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - avcodec_find_decoder
    linkageType: ''
    returnType: char
    signature: char *FFMS_Indexer::GetTrackCodec(int Track)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<FFMS_Index>
      Src: /src/ffms2/src/core/indexing.cpp:437,1
    - Dst: FFMS_Index::FFMS_Index
      Src: /src/ffms2/src/core/indexing.cpp:437,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:438,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:439,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:439,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/indexing.cpp:439,1
    - Dst: auto::emplace_back
      Src: /src/ffms2/src/core/indexing.cpp:442,1
    - Dst: static_cast<FFMS_TrackType>
      Src: /src/ffms2/src/core/indexing.cpp:444,1
    - Dst: count
      Src: /src/ffms2/src/core/indexing.cpp:448,1
    - Dst: avcodec_find_decoder
      Src: /src/ffms2/src/core/indexing.cpp:449,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:452,1
    - Dst: avcodec_alloc_context3
      Src: /src/ffms2/src/core/indexing.cpp:456,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:458,1
    - Dst: avcodec_parameters_to_context
      Src: /src/ffms2/src/core/indexing.cpp:461,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:462,1
    - Dst: avcodec_open2
      Src: /src/ffms2/src/core/indexing.cpp:465,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:466,1
    - Dst: av_parser_init
      Src: /src/ffms2/src/core/indexing.cpp:469,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:475,1
    - Dst: insert
      Src: /src/ffms2/src/core/indexing.cpp:477,1
    - Dst: count
      Src: /src/ffms2/src/core/indexing.cpp:479,1
    - Dst: avcodec_find_decoder
      Src: /src/ffms2/src/core/indexing.cpp:480,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:482,1
    - Dst: avcodec_alloc_context3
      Src: /src/ffms2/src/core/indexing.cpp:485,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:487,1
    - Dst: avcodec_parameters_to_context
      Src: /src/ffms2/src/core/indexing.cpp:490,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:491,1
    - Dst: avcodec_open2
      Src: /src/ffms2/src/core/indexing.cpp:494,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:495,1
    - Dst: erase
      Src: /src/ffms2/src/core/indexing.cpp:501,1
    - Dst: av_packet_alloc
      Src: /src/ffms2/src/core/indexing.cpp:505,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:507,1
    - Dst: avio_size
      Src: /src/ffms2/src/core/indexing.cpp:511,1
    - Dst: av_read_frame
      Src: /src/ffms2/src/core/indexing.cpp:514,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/indexing.cpp:519,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:520,1
    - Dst: count
      Src: /src/ffms2/src/core/indexing.cpp:524,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/indexing.cpp:525,1
    - Dst: FFMS_Indexer::ReadTS
      Src: /src/ffms2/src/core/indexing.cpp:532,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/indexing.cpp:548,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:549,1
    - Dst: FFMS_Track::empty
      Src: /src/ffms2/src/core/indexing.cpp:553,1
    - Dst: FFMS_Track::back
      Src: /src/ffms2/src/core/indexing.cpp:556,1
    - Dst: FFMS_Indexer::ParseVideoPacket
      Src: /src/ffms2/src/core/indexing.cpp:565,1
    - Dst: FFMS_Track::AddVideoFrame
      Src: /src/ffms2/src/core/indexing.cpp:567,1
    - Dst: FFMS_Indexer::IndexAudioPacket
      Src: /src/ffms2/src/core/indexing.cpp:577,1
    - Dst: FFMS_Track::AddAudioFrame
      Src: /src/ffms2/src/core/indexing.cpp:580,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/indexing.cpp:587,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/indexing.cpp:589,1
    - Dst: IsIOError
      Src: /src/ffms2/src/core/indexing.cpp:590,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/indexing.cpp:591,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/indexing.cpp:592,1
    - Dst: auto::Finalize
      Src: /src/ffms2/src/core/indexing.cpp:594,1
    - Dst: auto::release
      Src: /src/ffms2/src/core/indexing.cpp:595,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 596
    functionName: FFMS_Indexer::DoIndexing
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 0
    functionsReached:
    - av_read_frame
    - FFMS_Exception
    - avcodec_open2
    - FFMS_Track::empty
    - avio_size
    - FFMS_Indexer::IndexAudioPacket
    - FFMS_Index::FFMS_Index
    - avcodec_alloc_context3
    - std::unique_ptr<FFMS_Index>
    - auto::release
    - FFMS_Track::AddVideoFrame
    - avcodec_parameters_to_context
    - FFMS_Track::back
    - auto::emplace_back
    - IsIOError
    - strcmp
    - av_parser_init
    - FFMS_Track::AddAudioFrame
    - av_packet_alloc
    - FFMS_Indexer::ReadTS
    - av_packet_free
    - static_cast<FFMS_TrackType>
    - FFMS_Indexer::ParseVideoPacket
    - erase
    - av_packet_unref
    - insert
    - AVErrorToString
    - count
    - auto::Finalize
    - avcodec_find_decoder
    linkageType: ''
    returnType: FFMS_Index
    signature: FFMS_Index *FFMS_Indexer::DoIndexing()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - Packet
    - TS
    - UseDTS
    argTypes:
    - AVPacket*
    - int64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 605
    functionName: FFMS_Indexer::ReadTS
    functionSourceFile: /src/ffms2/src/core/indexing.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFMS_Indexer::ReadTS(const AVPacket *Packet, int64_t &TS, bool
      &UseDTS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Skipped
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Skipped() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<TrackData>
      Src: /src/ffms2/src/core/track.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: clear
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 6
    functionsReached:
    - std::make_shared<TrackData>
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::empty
      Src: /src/ffms2/src/core/track.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: empty
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 12
    functionsReached:
    - Frames::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::size
      Src: /src/ffms2/src/core/track.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: size
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 35
    functionsReached:
    - Frames::size
    linkageType: ''
    returnType: size_type
    signature: size_type size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: operator[](size_type pos) const
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](size_type pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::front
      Src: /src/ffms2/src/core/track.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: front
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 5
    functionsReached:
    - Frames::front
    linkageType: ''
    returnType: reference
    signature: reference front() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::back
      Src: /src/ffms2/src/core/track.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: back
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 21
    functionsReached:
    - Frames::back
    linkageType: ''
    returnType: reference
    signature: reference back() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::begin
      Src: /src/ffms2/src/core/track.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: begin
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 9
    functionsReached:
    - Frames::begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Frames::end
      Src: /src/ffms2/src/core/track.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: end
    functionSourceFile: /src/ffms2/src/core/track.h
    functionUses: 15
    functionsReached:
    - Frames::end
    linkageType: ''
    returnType: iterator
    signature: iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MAPPER
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPER(m, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MAPPER
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPER(m, n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: swr_alloc
      Src: /src/ffms2/src/core/audiosource.cpp:57,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:60,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/audiosource.cpp:63,1
    - Dst: FFMS_Index::size
      Src: /src/ffms2/src/core/audiosource.cpp:63,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:64,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:68,1
    - Dst: empty
      Src: /src/ffms2/src/core/audiosource.cpp:71,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:72,1
    - Dst: FFMS_Index::CompareFileSignature
      Src: /src/ffms2/src/core/audiosource.cpp:75,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:76,1
    - Dst: av_frame_alloc
      Src: /src/ffms2/src/core/audiosource.cpp:82,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:84,1
    - Dst: FFMS_AudioSource::OpenFile
      Src: /src/ffms2/src/core/audiosource.cpp:86,1
    - Dst: strcmp
      Src: /src/ffms2/src/core/audiosource.cpp:88,1
    - Dst: FillAudioGaps
      Src: /src/ffms2/src/core/audiosource.cpp:89,1
    - Dst: back
      Src: /src/ffms2/src/core/audiosource.cpp:91,1
    - Dst: front
      Src: /src/ffms2/src/core/audiosource.cpp:91,1
    - Dst: FFMS_AudioSource::Init
      Src: /src/ffms2/src/core/audiosource.cpp:96,1
    - Dst: FFMS_AudioSource::Free
      Src: /src/ffms2/src/core/audiosource.cpp:98,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 6
    argNames:
    - SourceFile
    - Index
    - Track
    - DelayMode
    - FillGaps
    - DrcScale
    argTypes:
    - char*
    - FFMS_Index
    - int
    - int
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 101
    functionName: FFMS_AudioSource::FFMS_AudioSource
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - av_frame_alloc
    - empty
    - swr_alloc
    - FFMS_AudioSource::OpenFile
    - strcmp
    - FFMS_Exception
    - FFMS_AudioSource::Init
    - FFMS_Index::CompareFileSignature
    - back
    - FillAudioGaps
    - front
    - FFMS_Index::size
    - static_cast<int>
    - FFMS_AudioSource::Free
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::FFMS_AudioSource(const char *SourceFile, FFMS_Index
      &Index, int Track, int DelayMode, int FillGaps, double DrcScale)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:109,1
    - Dst: FFMS_AudioSource::DecodeNextBlock
      Src: /src/ffms2/src/core/audiosource.cpp:110,1
    - Dst: FillAP
      Src: /src/ffms2/src/core/audiosource.cpp:116,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:119,1
    - Dst: FFMS_AudioSource::CreateResampleOptions
      Src: /src/ffms2/src/core/audiosource.cpp:122,1
    - Dst: FFMS_AudioSource::SetOutputFormat
      Src: /src/ffms2/src/core/audiosource.cpp:123,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:126,1
    - Dst: FFMS_Index::size
      Src: /src/ffms2/src/core/audiosource.cpp:131,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:132,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:136,1
    - Dst: FFMS_Index::size
      Src: /src/ffms2/src/core/audiosource.cpp:140,1
    - Dst: empty
      Src: /src/ffms2/src/core/audiosource.cpp:141,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/core/audiosource.cpp:142,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 2
    argNames:
    - Index
    - DelayMode
    argTypes:
    - FFMS_Index
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 162
    functionName: FFMS_AudioSource::Init
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - size
    - empty
    - FFMS_Exception
    - FFMS_AudioSource::DecodeNextBlock
    - FFMS_AudioSource::CreateResampleOptions
    - FFMS_Index::size
    - FillAP
    - static_cast<int>
    - FFMS_AudioSource::SetOutputFormat
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::Init(const FFMS_Index &Index, int DelayMode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/ffms2/src/core/audiosource.cpp:166,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:180,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:181,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:183,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:190,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:192,1
    - Dst: FFMS_AudioSource::DecodeNextBlock
      Src: /src/ffms2/src/core/audiosource.cpp:197,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 204
    functionName: FFMS_AudioSource::CacheBeginning
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - size
    - empty
    - FFMS_Exception
    - FFMS_AudioSource::DecodeNextBlock
    - end
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::CacheBeginning()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: PopCount
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PopCount(int64_t v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:218,1
    - Dst: clear
      Src: /src/ffms2/src/core/audiosource.cpp:222,1
    - Dst: FFMS_AudioSource::OpenFile
      Src: /src/ffms2/src/core/audiosource.cpp:224,1
    - Dst: avcodec_flush_buffers
      Src: /src/ffms2/src/core/audiosource.cpp:225,1
    - Dst: av_get_bytes_per_sample
      Src: /src/ffms2/src/core/audiosource.cpp:227,1
    - Dst: static_cast<AVSampleFormat>
      Src: /src/ffms2/src/core/audiosource.cpp:227,1
    - Dst: PopCount
      Src: /src/ffms2/src/core/audiosource.cpp:227,1
    - Dst: swr_alloc
      Src: /src/ffms2/src/core/audiosource.cpp:236,1
    - Dst: PopCount
      Src: /src/ffms2/src/core/audiosource.cpp:238,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/audiosource.cpp:238,1
    - Dst: PopCount
      Src: /src/ffms2/src/core/audiosource.cpp:239,1
    - Dst: static_cast<uint64_t>
      Src: /src/ffms2/src/core/audiosource.cpp:239,1
    - Dst: swr_alloc_set_opts2
      Src: /src/ffms2/src/core/audiosource.cpp:240,1
    - Dst: SetOptions
      Src: /src/ffms2/src/core/audiosource.cpp:244,1
    - Dst: FFResampleContext::get
      Src: /src/ffms2/src/core/audiosource.cpp:244,1
    - Dst: swr_init
      Src: /src/ffms2/src/core/audiosource.cpp:246,1
    - Dst: FFResampleContext::get
      Src: /src/ffms2/src/core/audiosource.cpp:246,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:247,1
    - Dst: FFResampleContext::swap
      Src: /src/ffms2/src/core/audiosource.cpp:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - FFMS_ResampleOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 250
    functionName: FFMS_AudioSource::SetOutputFormat
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - PopCount
    - swr_alloc_set_opts2
    - avcodec_flush_buffers
    - swr_alloc
    - FFMS_AudioSource::OpenFile
    - FFMS_Exception
    - FFResampleContext::get
    - SetOptions
    - swr_init
    - FFResampleContext::swap
    - clear
    - static_cast<AVSampleFormat>
    - av_get_bytes_per_sample
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::SetOutputFormat(FFMS_ResampleOptions const&
      opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadOptions
      Src: /src/ffms2/src/core/audiosource.cpp:253,1
    - Dst: get
      Src: /src/ffms2/src/core/audiosource.cpp:253,1
    - Dst: static_cast<FFMS_SampleFormat>
      Src: /src/ffms2/src/core/audiosource.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: FFMS_AudioSource::CreateResampleOptions
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - static_cast<FFMS_SampleFormat>
    - ReadOptions
    - get
    linkageType: ''
    returnType: std::unique_ptr<FFMS_ResampleOptions>
    signature: std::unique_ptr<FFMS_ResampleOptions> FFMS_AudioSource::CreateResampleOptions()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Grow
      Src: /src/ffms2/src/core/audiosource.cpp:264,1
    - Dst: swr_convert
      Src: /src/ffms2/src/core/audiosource.cpp:268,1
    - Dst: get
      Src: /src/ffms2/src/core/audiosource.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - CacheIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: FFMS_AudioSource::ResampleAndCache
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - get
    - Grow
    - swr_convert
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::ResampleAndCache(CacheIterator pos)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/ffms2/src/core/audiosource.cpp:276,1
    - Dst: emplace
      Src: /src/ffms2/src/core/audiosource.cpp:277,1
    - Dst: FFMS_AudioSource::ResampleAndCache
      Src: /src/ffms2/src/core/audiosource.cpp:282,1
    - Dst: auto::Grow
      Src: /src/ffms2/src/core/audiosource.cpp:285,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/audiosource.cpp:286,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:289,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:295,1
    - Dst: erase
      Src: /src/ffms2/src/core/audiosource.cpp:298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - pos
    argTypes:
    - CacheIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 301
    functionName: FFMS_AudioSource::CacheBlock
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - erase
    - auto::Grow
    - size
    - emplace
    - FFMS_AudioSource::ResampleAndCache
    - end
    - begin
    - memcpy
    linkageType: ''
    returnType: FFMS_AudioSource::AudioBlock
    signature: FFMS_AudioSource::AudioBlock *FFMS_AudioSource::CacheBlock(CacheIterator
      &pos)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: av_packet_alloc
      Src: /src/ffms2/src/core/audiosource.cpp:304,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:306,1
    - Dst: FFMS_AudioSource::ReadPacket
      Src: /src/ffms2/src/core/audiosource.cpp:308,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/audiosource.cpp:309,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:310,1
    - Dst: avcodec_send_packet
      Src: /src/ffms2/src/core/audiosource.cpp:318,1
    - Dst: av_frame_unref
      Src: /src/ffms2/src/core/audiosource.cpp:324,1
    - Dst: avcodec_receive_frame
      Src: /src/ffms2/src/core/audiosource.cpp:325,1
    - Dst: FFMS_AudioSource::CacheBlock
      Src: /src/ffms2/src/core/audiosource.cpp:330,1
    - Dst: AVERROR
      Src: /src/ffms2/src/core/audiosource.cpp:333,1
    - Dst: FFMS_AudioSource::ReadPacket
      Src: /src/ffms2/src/core/audiosource.cpp:334,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/audiosource.cpp:335,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:336,1
    - Dst: avcodec_send_packet
      Src: /src/ffms2/src/core/audiosource.cpp:339,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:343,1
    - Dst: av_packet_free
      Src: /src/ffms2/src/core/audiosource.cpp:347,1
    - Dst: static_cast<int64_t>
      Src: /src/ffms2/src/core/audiosource.cpp:358,1
    - Dst: memset
      Src: /src/ffms2/src/core/audiosource.cpp:365,1
    - Dst: AudioBlock*::Grow
      Src: /src/ffms2/src/core/audiosource.cpp:365,1
    - Dst: AudioBlock*::Grow
      Src: /src/ffms2/src/core/audiosource.cpp:367,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/audiosource.cpp:368,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 1
    argNames:
    - pos
    argTypes:
    - CacheIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 371
    functionName: FFMS_AudioSource::DecodeNextBlock
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 2
    functionsReached:
    - FFMS_AudioSource::CacheBlock
    - AVERROR
    - static_cast<int64_t>
    - FFMS_Exception
    - avcodec_send_packet
    - avcodec_receive_frame
    - av_packet_alloc
    - av_frame_unref
    - memset
    - FFMS_AudioSource::ReadPacket
    - memcpy
    - AudioBlock*::Grow
    - av_packet_free
    linkageType: ''
    returnType: int
    signature: int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FrameInfo
    - FrameInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: SampleStartComp
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SampleStartComp(const FrameInfo &a, const FrameInfo &b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:379,1
    - Dst: FFMS_AudioSource::CacheBeginning
      Src: /src/ffms2/src/core/audiosource.cpp:382,1
    - Dst: static_cast<uint8_t*>
      Src: /src/ffms2/src/core/audiosource.cpp:384,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/audiosource.cpp:389,1
    - Dst: FFMIN
      Src: /src/ffms2/src/core/audiosource.cpp:389,1
    - Dst: memset
      Src: /src/ffms2/src/core/audiosource.cpp:390,1
    - Dst: begin
      Src: /src/ffms2/src/core/audiosource.cpp:400,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:404,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:407,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/audiosource.cpp:408,1
    - Dst: FFMAX
      Src: /src/ffms2/src/core/audiosource.cpp:409,1
    - Dst: FFMIN
      Src: /src/ffms2/src/core/audiosource.cpp:410,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/audiosource.cpp:411,1
    - Dst: memcpy
      Src: /src/ffms2/src/core/audiosource.cpp:413,1
    - Dst: auto::Data::get
      Src: /src/ffms2/src/core/audiosource.cpp:413,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:422,1
    - Dst: std::distance
      Src: /src/ffms2/src/core/audiosource.cpp:427,1
    - Dst: begin
      Src: /src/ffms2/src/core/audiosource.cpp:428,1
    - Dst: std::lower_bound
      Src: /src/ffms2/src/core/audiosource.cpp:429,1
    - Dst: begin
      Src: /src/ffms2/src/core/audiosource.cpp:429,1
    - Dst: end
      Src: /src/ffms2/src/core/audiosource.cpp:429,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/audiosource.cpp:430,1
    - Dst: static_cast<size_t>
      Src: /src/ffms2/src/core/audiosource.cpp:436,1
    - Dst: av_frame_unref
      Src: /src/ffms2/src/core/audiosource.cpp:439,1
    - Dst: avcodec_flush_buffers
      Src: /src/ffms2/src/core/audiosource.cpp:440,1
    - Dst: FFMS_AudioSource::Seek
      Src: /src/ffms2/src/core/audiosource.cpp:441,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:446,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:447,1
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:448,1
    - Dst: FFMS_AudioSource::DecodeNextBlock
      Src: /src/ffms2/src/core/audiosource.cpp:449,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:451,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 47
    argCount: 3
    argNames:
    - Buf
    - Start
    - Count
    argTypes:
    - void*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 457
    functionName: FFMS_AudioSource::GetAudio
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t*>
    - avcodec_flush_buffers
    - std::distance
    - static_cast<size_t>
    - FFMS_AudioSource::Seek
    - std::lower_bound
    - size
    - FFMS_Exception
    - FFMS_AudioSource::CacheBeginning
    - auto::Data::get
    - FFMIN
    - end
    - FFMS_AudioSource::DecodeNextBlock
    - memset
    - av_frame_unref
    - FFMAX
    - begin
    - memcpy
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::GetAudio(void *Buf, int64_t Start, int64_t Count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/ffms2/src/core/audiosource.cpp:475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ' Frames'
    - PacketNumber
    argTypes:
    - FFMS_Track
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 493
    functionName: FFMS_AudioSource::GetSeekablePacketNumber
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t FFMS_AudioSource::GetSeekablePacketNumber(FFMS_Track const&
      Frames, size_t PacketNumber)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avcodec_free_context
      Src: /src/ffms2/src/core/audiosource.cpp:496,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/audiosource.cpp:497,1
    - Dst: LAVFOpenFile
      Src: /src/ffms2/src/core/audiosource.cpp:499,1
    - Dst: c_str
      Src: /src/ffms2/src/core/audiosource.cpp:499,1
    - Dst: avcodec_find_decoder
      Src: /src/ffms2/src/core/audiosource.cpp:501,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:503,1
    - Dst: avcodec_alloc_context3
      Src: /src/ffms2/src/core/audiosource.cpp:506,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:508,1
    - Dst: avcodec_parameters_to_context
      Src: /src/ffms2/src/core/audiosource.cpp:511,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:512,1
    - Dst: av_dict_set
      Src: /src/ffms2/src/core/audiosource.cpp:517,1
    - Dst: std::to_string
      Src: /src/ffms2/src/core/audiosource.cpp:517,1
    - Dst: avcodec_open2
      Src: /src/ffms2/src/core/audiosource.cpp:519,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/audiosource.cpp:520,1
    - Dst: av_dict_free
      Src: /src/ffms2/src/core/audiosource.cpp:523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 524
    functionName: FFMS_AudioSource::OpenFile
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 2
    functionsReached:
    - avcodec_parameters_to_context
    - avformat_close_input
    - av_dict_free
    - FFMS_Exception
    - avcodec_open2
    - av_dict_set
    - LAVFOpenFile
    - avcodec_alloc_context3
    - c_str
    - avcodec_free_context
    - avcodec_find_decoder
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::OpenFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_frame_free
      Src: /src/ffms2/src/core/audiosource.cpp:527,1
    - Dst: avcodec_free_context
      Src: /src/ffms2/src/core/audiosource.cpp:528,1
    - Dst: avformat_close_input
      Src: /src/ffms2/src/core/audiosource.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: FFMS_AudioSource::Free
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - av_frame_free
    - avcodec_free_context
    - avformat_close_input
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource::Free
      Src: /src/ffms2/src/core/audiosource.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: FFMS_AudioSource::~FFMS_AudioSource()
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached:
    - FFMS_AudioSource::Free
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::~FFMS_AudioSource()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Packet
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: FFMS_AudioSource::FrameTS
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t FFMS_AudioSource::FrameTS(size_t Packet) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_AudioSource::GetSeekablePacketNumber
      Src: /src/ffms2/src/core/audiosource.cpp:541,1
    - Dst: av_seek_frame
      Src: /src/ffms2/src/core/audiosource.cpp:546,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:546,1
    - Dst: av_seek_frame
      Src: /src/ffms2/src/core/audiosource.cpp:547,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:547,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:551,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:552,1
    - Dst: FFMS_AudioSource::DecodeNextBlock
      Src: /src/ffms2/src/core/audiosource.cpp:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 554
    functionName: FFMS_AudioSource::Seek
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - FFMS_AudioSource::GetSeekablePacketNumber
    - FFMS_AudioSource::DecodeNextBlock
    - av_seek_frame
    - FFMS_AudioSource::FrameTS
    linkageType: ''
    returnType: void
    signature: void FFMS_AudioSource::Seek()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: av_read_frame
      Src: /src/ffms2/src/core/audiosource.cpp:557,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:568,1
    - Dst: FFMS_AudioSource::FrameTS
      Src: /src/ffms2/src/core/audiosource.cpp:569,1
    - Dst: av_packet_unref
      Src: /src/ffms2/src/core/audiosource.cpp:573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - Packet
    argTypes:
    - AVPacket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 576
    functionName: FFMS_AudioSource::ReadPacket
    functionSourceFile: /src/ffms2/src/core/audiosource.cpp
    functionUses: 1
    functionsReached:
    - av_packet_unref
    - av_read_frame
    - FFMS_AudioSource::FrameTS
    linkageType: ''
    returnType: bool
    signature: bool FFMS_AudioSource::ReadPacket(AVPacket *Packet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ffms2/src/core/filehandle.cpp:33,1
    - Dst: strchr
      Src: /src/ffms2/src/core/filehandle.cpp:35,1
    - Dst: avio_open2
      Src: /src/ffms2/src/core/filehandle.cpp:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: ffms_fopen
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 0
    functionsReached:
    - strchr
    - avio_open2
    linkageType: ''
    returnType: AVIOContext
    signature: AVIOContext *ffms_fopen(const char *filename, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffms_fopen
      Src: /src/ffms2/src/core/filehandle.cpp:46,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - filename
    - mode
    - error_source
    - error_cause
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: FileHandle::FileHandle
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 0
    functionsReached:
    - ffms_fopen
    - FFMS_Exception
    linkageType: ''
    returnType: void
    signature: void FileHandle::FileHandle(const char *filename, const char *mode,
      int error_source, int error_cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avio_close
      Src: /src/ffms2/src/core/filehandle.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: FileHandle::~FileHandle()
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 0
    functionsReached:
    - avio_close
    linkageType: ''
    returnType: void
    signature: void FileHandle::~FileHandle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avio_seek
      Src: /src/ffms2/src/core/filehandle.cpp:60,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:62,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - offset
    - origin
    argTypes:
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: FileHandle::Seek
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 1
    functionsReached:
    - FFMS_Exception
    - avio_seek
    - AVErrorToString
    linkageType: ''
    returnType: void
    signature: void FileHandle::Seek(int64_t offset, int origin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avio_tell
      Src: /src/ffms2/src/core/filehandle.cpp:67,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:69,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: FileHandle::Tell
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    - avio_tell
    - AVErrorToString
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileHandle::Tell()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avio_read
      Src: /src/ffms2/src/core/filehandle.cpp:75,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:77,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:78,1
    - Dst: avio_feof
      Src: /src/ffms2/src/core/filehandle.cpp:79,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:82,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: FileHandle::Read
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 1
    functionsReached:
    - FFMS_Exception
    - avio_feof
    - AVErrorToString
    - avio_read
    linkageType: ''
    returnType: size_t
    signature: size_t FileHandle::Read(char *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avio_write
      Src: /src/ffms2/src/core/filehandle.cpp:90,1
    - Dst: avio_flush
      Src: /src/ffms2/src/core/filehandle.cpp:91,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:93,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: FileHandle::Write
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 0
    functionsReached:
    - FFMS_Exception
    - avio_flush
    - avio_write
    - AVErrorToString
    linkageType: ''
    returnType: size_t
    signature: size_t FileHandle::Write(const char *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avio_size
      Src: /src/ffms2/src/core/filehandle.cpp:99,1
    - Dst: FFMS_Exception
      Src: /src/ffms2/src/core/filehandle.cpp:101,1
    - Dst: AVErrorToString
      Src: /src/ffms2/src/core/filehandle.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: FileHandle::Size
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 1
    functionsReached:
    - avio_size
    - FFMS_Exception
    - AVErrorToString
    linkageType: ''
    returnType: int64_t
    signature: int64_t FileHandle::Size()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/ffms2/src/core/filehandle.cpp:108,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/filehandle.cpp:112,1
    - Dst: vsnprintf
      Src: /src/ffms2/src/core/filehandle.cpp:113,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/filehandle.cpp:113,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/filehandle.cpp:113,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/filehandle.cpp:114,1
    - Dst: std::vector::resize
      Src: /src/ffms2/src/core/filehandle.cpp:116,1
    - Dst: std::vector::size
      Src: /src/ffms2/src/core/filehandle.cpp:116,1
    - Dst: va_end
      Src: /src/ffms2/src/core/filehandle.cpp:119,1
    - Dst: avio_write
      Src: /src/ffms2/src/core/filehandle.cpp:121,1
    - Dst: reinterpret_cast<const unsigned char *>
      Src: /src/ffms2/src/core/filehandle.cpp:121,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/core/filehandle.cpp:121,1
    - Dst: avio_flush
      Src: /src/ffms2/src/core/filehandle.cpp:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: FileHandle::Printf
    functionSourceFile: /src/ffms2/src/core/filehandle.cpp
    functionUses: 1
    functionsReached:
    - vsnprintf
    - va_start
    - std::vector::size
    - std::vector::data
    - va_end
    - avio_flush
    - avio_write
    - reinterpret_cast<const unsigned char *>
    - std::vector::resize
    linkageType: ''
    returnType: int
    signature: int FileHandle::Printf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: FileHandle::FileHandle
    functionSourceFile: /src/ffms2/src/core/filehandle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileHandle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: VS_MAKE_VERSION
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_MAKE_VERSION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: VS_EXTERNAL_API
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_EXTERNAL_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: VS_EXTERNAL_API
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_EXTERNAL_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: VS_EXTERNAL_API
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_EXTERNAL_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: VS_API
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: VS_API
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - colorFamily
    - ','
    - sampleType
    - ','
    - bitsPerSample
    - ','
    - subSamplingW
    - ','
    - subSamplingH
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: VS_MAKE_VIDEO_ID
    functionSourceFile: /src/ffms2/src/vapoursynth/VapourSynth4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VS_MAKE_VIDEO_ID(colorFamily, sampleType, bitsPerSample, subSamplingW,
      subSamplingH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_get_pix_fmt_name
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: GetNumPixFmts
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - av_get_pix_fmt_name
    linkageType: ''
    returnType: int
    signature: int GetNumPixFmts()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - AVPixFmtDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: IsRealNativeEndianPlanar
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: bool
    signature: bool IsRealNativeEndianPlanar(const AVPixFmtDescriptor &desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - AVPixFmtDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: GetSampleType
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSampleType(const AVPixFmtDescriptor &desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - AVPixFmtDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: HasAlpha
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasAlpha(const AVPixFmtDescriptor &desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - desc
    argTypes:
    - AVPixFmtDescriptor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: GetColorFamily
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetColorFamily(const AVPixFmtDescriptor &desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VSAPI*::getVideoFormatByID
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:74,1
    - Dst: GetNumPixFmts
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:75,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:79,1
    - Dst: IsRealNativeEndianPlanar
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:80,1
    - Dst: HasAlpha
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:80,1
    - Dst: GetColorFamily
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:81,1
    - Dst: GetSampleType
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:85,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:91,1
    - Dst: IsRealNativeEndianPlanar
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:92,1
    - Dst: HasAlpha
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:92,1
    - Dst: GetColorFamily
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:93,1
    - Dst: GetSampleType
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:97,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 13
    argCount: 4
    argNames:
    - id
    - alpha
    - core
    - vsapi
    argTypes:
    - int
    - bool
    - VSCore*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: FormatConversionToPixelFormat
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - IsRealNativeEndianPlanar
    - GetColorFamily
    - GetNumPixFmts
    - HasAlpha
    - VSAPI*::getVideoFormatByID
    - GetSampleType
    - av_pix_fmt_desc_get
    linkageType: ''
    returnType: int
    signature: int FormatConversionToPixelFormat(int id, bool alpha, VSCore *core,
      const VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:104,1
    - Dst: VSAPI*::queryVideoFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:105,1
    - Dst: GetColorFamily
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:106,1
    - Dst: GetSampleType
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - f
    - id
    - core
    - vsapi
    argTypes:
    - VSVideoFormat
    - int
    - VSCore*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: FormatConversionToVS
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - GetColorFamily
    - VSAPI*::queryVideoFormat
    - av_pix_fmt_desc_get
    - GetSampleType
    linkageType: ''
    returnType: void
    signature: void FormatConversionToVS(VSVideoFormat &f, int id, VSCore *core, const
      VSAPI *vsapi)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: VSAPI*::newVideoFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:119,1
    - Dst: VSAPI*::getFramePropertiesRW
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:120,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:125,1
    - Dst: FFMS_GetFrameByTime
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:127,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:128,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:129,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:130,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:132,1
    - Dst: FFMS_GetTrackFromVideo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:133,1
    - Dst: FFMS_GetTimeBase
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:134,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:137,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:137,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:139,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:139,1
    - Dst: vsh::reduceRational
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:144,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:145,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:146,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:147,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:147,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:147,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:151,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:155,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:156,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:159,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:160,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:161,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:163,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:166,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:168,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:169,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:175,1
    - Dst: VSAPI*::mapSetFloatArray
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:178,1
    - Dst: VSAPI*::mapSetFloatArray
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:179,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:180,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:181,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:185,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:186,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:190,1
    - Dst: VSAPI*::mapSetFloat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:191,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:195,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:195,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:199,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:199,1
    - Dst: VSVideoSource4::OutputFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:202,1
    - Dst: VSAPI*::newVideoFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:204,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:205,1
    - Dst: VSAPI*::getFramePropertiesRW
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:205,1
    - Dst: VSVideoSource4::OutputAlphaFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:206,1
    - Dst: VSAPI*::mapConsumeFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:207,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:210,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:211,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:212,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 3
    argNames:
    - n
    - core
    - vsapi
    argTypes:
    - int
    - VSCore*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 215
    functionName: VSVideoSource4::GetVSFrame
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - VSAPI*::mapSetInt
    - FFMS_GetVideoProperties
    - VSAPI*::getFramePropertiesRW
    - FFMS_GetTrackFromVideo
    - FFMS_GetFrameInfo
    - reinterpret_cast<const char *>
    - FFMS_GetFrameByTime
    - VSVideoSource4::OutputAlphaFrame
    - vsh::reduceRational
    - VSAPI*::mapConsumeFrame
    - VSAPI*::mapSetFloat
    - VSVideoSource4::OutputFrame
    - static_cast<double>
    - VSAPI*::mapSetFloatArray
    - FFMS_GetTimeBase
    - FFMS_GetFrame
    - VSAPI*::mapSetData
    - VSAPI*::newVideoFrame
    - std::runtime_error
    linkageType: ''
    returnType: VSFrame
    signature: VSFrame *VS_CC VSVideoSource4::GetVSFrame(int n, VSCore *core, const
      VSAPI *vsapi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSVideoSource4 *>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:218,1
    - Dst: VSVideoSource4*::GetVSFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:223,1
    - Dst: VSAPI*::cacheFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:224,1
    - Dst: VSAPI*::freeFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:225,1
    - Dst: VSVideoSource4*::GetVSFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:233,1
    - Dst: VSAPI*::setFilterError
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:237,1
    - Dst: what
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - n
    - activationReason
    - instanceData
    - frameCtx
    - core
    - vsapi
    argTypes:
    - int
    - int
    - void*
    - VSFrameContext*
    - VSCore*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 243
    functionName: VSVideoSource4::GetFrame
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - VSAPI*::freeFrame
    - VSAPI*::cacheFrame
    - what
    - VSAPI*::setFilterError
    - static_cast<VSVideoSource4 *>
    - VSVideoSource4*::GetVSFrame
    linkageType: ''
    returnType: VSFrame
    signature: VSFrame *VS_CC VSVideoSource4::GetFrame(int n, int activationReason,
      void *instanceData, void **, VSFrameContext *frameCtx, VSCore *core, const VSAPI
      *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<VSVideoSource4 *>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - instanceData
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: VSVideoSource4::Free
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - static_cast<VSVideoSource4 *>
    linkageType: ''
    returnType: void
    signature: void VSVideoSource4::Free(void *instanceData, VSCore *, const VSAPI
      *)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:263,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:265,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:265,1
    - Dst: VSVideoSource4::InitOutputFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:268,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:270,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:274,1
    - Dst: vsh::reduceRational
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:279,1
    - Dst: vsh::reduceRational
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:282,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:286,1
    - Dst: VSAPI*::queryVideoFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 14
    argNames:
    - SourceFile
    - Track
    - Index
    - AFPSNum
    - AFPSDen
    - Threads
    - SeekMode
    - ResizeToWidth
    - ResizeToHeight
    - ResizerName
    - Format
    - OutputAlpha
    - vsapi
    - core
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - int
    - int
    - int
    - int
    - int
    - char*
    - int
    - bool
    - VSAPI*
    - VSCore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 301
    functionName: VSVideoSource4::VSVideoSource4
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - VSAPI*::queryVideoFormat
    - FFMS_CreateVideoSource
    - FFMS_GetVideoProperties
    - std::runtime_error
    - vsh::reduceRational
    - FFMS_DestroyVideoSource
    - static_cast<int>
    - VSVideoSource4::InitOutputFormat
    - std::string
    linkageType: ''
    returnType: void
    signature: "void VSVideoSource4::VSVideoSource4(const char *SourceFile, int Track,
      FFMS_Index *Index,\n    int AFPSNum, int AFPSDen, int Threads, int SeekMode,\n
      \   int ResizeToWidth, int ResizeToHeight, const char *ResizerName,\n    int
      Format, bool OutputAlpha, const VSAPI *vsapi, VSCore *core)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: VSVideoSource4::~VSVideoSource4()
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void VSVideoSource4::~VSVideoSource4()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: VSVideoSource4::GetVideoInfo
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSVideoInfo
    signature: VSVideoInfo *VSVideoSource4::GetVideoInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - threshold
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: VSVideoSource4::SetCacheThreshold
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VSVideoSource4::SetCacheThreshold(int threshold)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:323,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:327,1
    - Dst: GetNumPixFmts
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:331,1
    - Dst: IsRealNativeEndianPlanar
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:333,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:335,1
    - Dst: FormatConversionToPixelFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:339,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:341,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:341,1
    - Dst: std::vector::clear
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:343,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:344,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:345,1
    - Dst: ResizerNameToSWSResizer
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:354,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:356,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:356,1
    - Dst: FFMS_SetOutputFormatV2
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:358,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:360,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:360,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:362,1
    - Dst: std::vector::clear
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:363,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:364,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:365,1
    - Dst: FFMS_SetOutputFormatV2
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:368,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:368,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:369,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:369,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:371,1
    - Dst: HasAlpha
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:374,1
    - Dst: av_pix_fmt_desc_get
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:374,1
    - Dst: FormatConversionToVS
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:377,1
    - Dst: std::runtime_error
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:379,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:379,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 6
    argNames:
    - ResizeToWidth
    - ResizeToHeight
    - ResizerName
    - ConvertToFormat
    - vsapi
    - core
    argTypes:
    - int
    - int
    - char*
    - int
    - VSAPI*
    - VSCore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 387
    functionName: VSVideoSource4::InitOutputFormat
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 1
    functionsReached:
    - IsRealNativeEndianPlanar
    - GetNumPixFmts
    - ResizerNameToSWSResizer
    - std::vector::data
    - std::runtime_error
    - std::vector::push_back
    - FormatConversionToVS
    - HasAlpha
    - av_pix_fmt_desc_get
    - std::vector::clear
    - FormatConversionToPixelFormat
    - FFMS_GetFrame
    - std::string
    - FFMS_SetOutputFormatV2
    linkageType: ''
    returnType: void
    signature: "void VSVideoSource4::InitOutputFormat(int ResizeToWidth, int ResizeToHeight,\n
      \   const char *ResizerName, int ConvertToFormat, const VSAPI *vsapi, VSCore
      *core)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSAPI*::getVideoFrameFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:391,1
    - Dst: vsh::bitblt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:394,1
    - Dst: VSAPI*::getWritePtr
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:394,1
    - Dst: VSAPI*::getStride
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:394,1
    - Dst: VSAPI*::getFrameWidth
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:395,1
    - Dst: VSAPI*::getFrameHeight
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:395,1
    - Dst: vsh::bitblt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:398,1
    - Dst: VSAPI*::getWritePtr
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:398,1
    - Dst: VSAPI*::getStride
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:398,1
    - Dst: VSAPI*::getFrameWidth
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:399,1
    - Dst: VSAPI*::getFrameHeight
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - Frame
    - Dst
    - vsapi
    argTypes:
    - FFMS_Frame*
    - VSFrame*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: VSVideoSource4::OutputFrame
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 1
    functionsReached:
    - VSAPI*::getFrameWidth
    - VSAPI*::getWritePtr
    - VSAPI*::getVideoFrameFormat
    - VSAPI*::getFrameHeight
    - vsh::bitblt
    - VSAPI*::getStride
    linkageType: ''
    returnType: void
    signature: void VSVideoSource4::OutputFrame(const FFMS_Frame *Frame, VSFrame *Dst,
      const VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSAPI*::getVideoFrameFormat
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:404,1
    - Dst: vsh::bitblt
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:405,1
    - Dst: VSAPI*::getWritePtr
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:405,1
    - Dst: VSAPI*::getStride
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:405,1
    - Dst: VSAPI*::getFrameWidth
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:406,1
    - Dst: VSAPI*::getFrameHeight
      Src: /src/ffms2/src/vapoursynth/vapoursource4.cpp:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - Frame
    - Plane
    - Dst
    - vsapi
    argTypes:
    - FFMS_Frame*
    - int
    - VSFrame*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: VSVideoSource4::OutputAlphaFrame
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursource4.cpp
    functionUses: 1
    functionsReached:
    - VSAPI*::getFrameWidth
    - VSAPI*::getWritePtr
    - VSAPI*::getVideoFrameFormat
    - VSAPI*::getFrameHeight
    - vsh::bitblt
    - VSAPI*::getStride
    linkageType: ''
    returnType: void
    signature: void VSVideoSource4::OutputAlphaFrame(const FFMS_Frame *Frame, int
      Plane, VSFrame *Dst, const VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH4_MANGLE_FUNCTION_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH4_MANGLE_FUNCTION_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pptr
    - ','
    - size
    - ','
    - alignment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: VSH_ALIGNED_MALLOC
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH_ALIGNED_MALLOC(pptr, size, alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: VSH_ALIGNED_FREE
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH_ALIGNED_FREE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pptr
    - ','
    - size
    - ','
    - alignment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: VSH_ALIGNED_MALLOC
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH_ALIGNED_MALLOC(pptr, size, alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: VSH_ALIGNED_FREE
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSH_ALIGNED_FREE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: VSMAX
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSMAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: VSMIN
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSMIN(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:73,1
    - Dst: posix_memalign
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: vsh_aligned_malloc
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached:
    - posix_memalign
    - _aligned_malloc
    linkageType: ''
    returnType: T
    signature: T *vsh_aligned_malloc(size_t size, size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSH_ALIGNED_FREE
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: vsh_aligned_free
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached:
    - VSH_ALIGNED_FREE
    linkageType: ''
    returnType: void
    signature: void vsh_aligned_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - vi
    argTypes:
    - VSVideoInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(isConstantVideoFormat)(const
      VSVideoInfo *vi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - VSVideoFormat*
    - VSVideoFormat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(isSameVideoFormat)(const
      VSVideoFormat *v1, const VSVideoFormat *v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSH4_MANGLE_FUNCTION_NAME
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - VSVideoInfo*
    - VSVideoInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 1
    functionsReached:
    - VSH4_MANGLE_FUNCTION_NAME
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(isSameVideoInfo)(const
      VSVideoInfo *v1, const VSVideoInfo *v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - VSAudioFormat*
    - VSAudioFormat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(isSameAudioFormat)(const
      VSAudioFormat *a1, const VSAudioFormat *a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSH4_MANGLE_FUNCTION_NAME
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - VSAudioInfo*
    - VSAudioInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 2
    functionsReached:
    - VSH4_MANGLE_FUNCTION_NAME
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(isSameAudioInfo)(const
      VSAudioInfo *a1, const VSAudioInfo *a2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - num
    - den
    - mul
    - div
    argTypes:
    - int64_t*
    - int64_t*
    - int64_t
    - int64_t
    assertStmts:
    - condition: (div)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
    constantsTouched: []
    func_position:
      end: 135
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 135
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void VSH4_MANGLE_FUNCTION_NAME(muldivRational)(int64_t *num, int64_t
      *den, int64_t mul, int64_t div)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSH4_MANGLE_FUNCTION_NAME
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - den
    argTypes:
    - int64_t*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 3
    functionsReached:
    - VSH4_MANGLE_FUNCTION_NAME
    linkageType: ''
    returnType: void
    signature: void VSH4_MANGLE_FUNCTION_NAME(reduceRational)(int64_t *num, int64_t
      *den)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:149,1
    - Dst: VSH4_MANGLE_FUNCTION_NAME
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - num
    - den
    - addnum
    - addden
    argTypes:
    - int64_t*
    - int64_t*
    - int64_t
    - int64_t
    assertStmts:
    - condition: (addden)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
    constantsTouched: []
    func_position:
      end: 164
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 164
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 4
    functionsReached:
    - VSH4_MANGLE_FUNCTION_NAME
    - assert
    linkageType: ''
    returnType: void
    signature: void VSH4_MANGLE_FUNCTION_NAME(addRational)(int64_t *num, int64_t *den,
      int64_t addnum, int64_t addden)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int VSH4_MANGLE_FUNCTION_NAME(int64ToIntS)(int64_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isfinite
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 4
    functionsReached:
    - isfinite
    linkageType: ''
    returnType: float
    signature: float VSH4_MANGLE_FUNCTION_NAME(doubleToFloatS)(double d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:190,1
    - Dst: memcpy
      Src: /src/ffms2/src/vapoursynth/VSHelper4.h:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - dstp
    - dst_stride
    - srcp
    - src_stride
    - row_size
    - height
    argTypes:
    - void*
    - ptrdiff_t
    - void*
    - ptrdiff_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void VSH4_MANGLE_FUNCTION_NAME(bitblt)(void *dstp, ptrdiff_t dst_stride,
      const void *srcp, ptrdiff_t src_stride, size_t row_size, size_t height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - fi
    - width
    - height
    argTypes:
    - VSVideoFormat*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: VSH4_MANGLE_FUNCTION_NAME
    functionSourceFile: /src/ffms2/src/vapoursynth/VSHelper4.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: VSH4_BOOLEAN_TYPE
    signature: VSH4_BOOLEAN_TYPE VSH4_MANGLE_FUNCTION_NAME(areValidDimensions)(const
      VSVideoFormat *fi, int width, int height)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Init
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:32,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:42,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:43,1
    - Dst: VSAPI*::mapNumElements
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:45,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:46,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:49,1
    - Dst: std::set::insert
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:50,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:54,1
    - Dst: VSAPI*::mapGetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:57,1
    - Dst: strcmp
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:60,1
    - Dst: std::string::append
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:61,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:62,1
    - Dst: VSAPI*::mapGetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:65,1
    - Dst: VSAPI*::mapGetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:66,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:68,1
    - Dst: FFMS_IndexBelongsToFile
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:69,1
    - Dst: FFMS_CreateIndexer2
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:71,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:73,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:74,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:74,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:74,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:78,1
    - Dst: FFMS_TrackIndexSettings
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:81,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:84,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:86,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:86,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:86,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:87,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:88,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:89,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:89,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:89,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:91,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:93,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:95,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:97,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:98,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - in
    - out
    - vsapi
    argTypes:
    - VSMap*
    - VSMap*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 100
    functionName: CreateIndex
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 0
    functionsReached:
    - FFMS_IndexBelongsToFile
    - FFMS_CreateIndexer2
    - FFMS_DoIndexing2
    - std::set::insert
    - std::string::append
    - VSAPI*::mapGetIntSaturated
    - FFMS_WriteIndex
    - FFMS_Init
    - FFMS_TrackIndexSettings
    - std::string::c_str
    - VSAPI*::mapNumElements
    - strcmp
    - VSAPI*::mapGetInt
    - VSAPI*::mapGetData
    - FFMS_ReadIndex
    - FFMS_TrackTypeIndexSettings
    - c_str
    - std::string
    - VSAPI*::mapSetData
    - FFMS_DestroyIndex
    - VSAPI*::mapSetError
    linkageType: ''
    returnType: void
    signature: void CreateIndex(const VSMap *in, VSMap *out, void *, VSCore *, const
      VSAPI *vsapi)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Init
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:103,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:111,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:112,1
    - Dst: VSAPI*::mapGetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:115,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:118,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:119,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:122,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:125,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:126,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:127,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:130,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:131,1
    - Dst: VSAPI*::mapGetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:132,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:135,1
    - Dst: VSAPI*::mapGetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:137,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:140,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:142,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:144,1
    - Dst: IsSamePath
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:145,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:146,1
    - Dst: IsSamePath
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:152,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:153,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:154,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:158,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:159,1
    - Dst: FFMS_IndexBelongsToFile
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:162,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:163,1
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:170,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:172,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:172,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:172,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:174,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:176,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:176,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:176,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:179,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:180,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:181,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:181,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:181,1
    - Dst: FFMS_GetFirstIndexedTrackOfType
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:186,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:188,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:189,1
    - Dst: strcmp
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:192,1
    - Dst: FFMS_WriteTimecodes
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:193,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:193,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:194,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:195,1
    - Dst: std::string
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:195,1
    - Dst: c_str
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:195,1
    - Dst: VSVideoSource4::VSVideoSource4
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:201,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:203,1
    - Dst: VSAPI*::mapSetError
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:204,1
    - Dst: what
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:204,1
    - Dst: VSAPI*::createVideoFilter2
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:207,1
    - Dst: VSVideoSource4*::GetVideoInfo
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:207,1
    - Dst: VSVideoSource4*::SetCacheThreshold
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:208,1
    - Dst: VSAPI*::setLinearFilter
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:208,1
    - Dst: VSAPI*::mapConsumeNode
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:209,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:211,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 73
    argCount: 4
    argNames:
    - in
    - out
    - core
    - vsapi
    argTypes:
    - VSMap*
    - VSMap*
    - VSCore*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 212
    functionName: CreateSource
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 0
    functionsReached:
    - FFMS_IndexBelongsToFile
    - VSVideoSource4::VSVideoSource4
    - FFMS_DoIndexing2
    - VSAPI*::setLinearFilter
    - VSAPI*::mapGetIntSaturated
    - VSAPI*::createVideoFilter2
    - FFMS_WriteIndex
    - FFMS_Init
    - VSVideoSource4*::GetVideoInfo
    - IsSamePath
    - std::string::c_str
    - FFMS_GetTrackFromIndex
    - strcmp
    - FFMS_WriteTimecodes
    - what
    - VSAPI*::mapGetInt
    - VSAPI*::mapGetData
    - FFMS_ReadIndex
    - c_str
    - FFMS_GetFirstIndexedTrackOfType
    - std::string
    - FFMS_CreateIndexer
    - FFMS_DestroyIndex
    - VSAPI*::mapSetError
    - VSVideoSource4*::SetCacheThreshold
    - VSAPI*::mapConsumeNode
    linkageType: ''
    returnType: void
    signature: void CreateSource(const VSMap *in, VSMap *out, void *, VSCore *core,
      const VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:215,1
    - Dst: FFMS_GetLogLevel
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - vsapi
    argTypes:
    - VSMap*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: GetLogLevel
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 1
    functionsReached:
    - VSAPI*::mapSetInt
    - FFMS_GetLogLevel
    linkageType: ''
    returnType: void
    signature: void GetLogLevel(const VSMap *, VSMap *out, void *, VSCore *, const
      VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:219,1
    - Dst: VSAPI*::mapGetIntSaturated
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:219,1
    - Dst: VSAPI*::mapSetInt
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:220,1
    - Dst: FFMS_GetLogLevel
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - out
    - vsapi
    argTypes:
    - VSMap*
    - VSMap*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: SetLogLevel
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 2
    functionsReached:
    - VSAPI*::mapSetInt
    - VSAPI*::mapGetIntSaturated
    - FFMS_GetLogLevel
    - FFMS_SetLogLevel
    linkageType: ''
    returnType: void
    signature: void SetLogLevel(const VSMap *in, VSMap *out, void *, VSCore *, const
      VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetVersion
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:224,1
    - Dst: sprintf
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:226,1
    - Dst: VSAPI*::mapSetData
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - vsapi
    argTypes:
    - VSMap*
    - VSAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: GetVersion
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 1
    functionsReached:
    - VSAPI*::mapSetData
    - FFMS_GetVersion
    - sprintf
    linkageType: ''
    returnType: void
    signature: void GetVersion(const VSMap *, VSMap *out, void *, VSCore *, const
      VSAPI *vsapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSPLUGINAPI*::configPlugin
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:231,1
    - Dst: FFMS_GetVersion
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:231,1
    - Dst: VSPLUGINAPI*::registerFunction
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:232,1
    - Dst: VSPLUGINAPI*::registerFunction
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:233,1
    - Dst: VSPLUGINAPI*::registerFunction
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:234,1
    - Dst: VSPLUGINAPI*::registerFunction
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:235,1
    - Dst: VSPLUGINAPI*::registerFunction
      Src: /src/ffms2/src/vapoursynth/vapoursynth4.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - plugin
    - vspapi
    argTypes:
    - VSPlugin*
    - VSPLUGINAPI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: VapourSynthPluginInit2
    functionSourceFile: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
    functionUses: 0
    functionsReached:
    - VSPLUGINAPI*::configPlugin
    - FFMS_GetVersion
    - VSPLUGINAPI*::registerFunction
    linkageType: ''
    returnType: void
    signature: void VapourSynthPluginInit2(VSPlugin *plugin, const VSPLUGINAPI *vspapi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ErrorInfo
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrorInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cachehints
    - frame_range
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: AvisynthVideoSource::SetCacheHints
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetCacheHints(int cachehints, int frame_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& __stdcall GetVideoInfo()'
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VideoInfo
    signature: VideoInfo & __stdcall GetVideoInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - Buf
    - Start
    - Count
    - Env
    argTypes:
    - void*
    - int64_t
    - int64_t
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: AvisynthVideoSource::GetAudio
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetAudio(void* Buf, int64_t Start, int64_t Count, IScriptEnvironment
      *Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: AvisynthAudioSource::GetParity
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetParity(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cachehints
    - frame_range
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: AvisynthAudioSource::SetCacheHints
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SetCacheHints(int cachehints, int frame_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '& __stdcall GetVideoInfo()'
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VideoInfo
    signature: VideoInfo & __stdcall GetVideoInfo()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - Env
    argTypes:
    - int
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: AvisynthAudioSource::GetFrame
    functionSourceFile: /src/ffms2/src/avisynth/avssources.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PVideoFrame
    signature: PVideoFrame GetFrame(int n, IScriptEnvironment *Env)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Defined
      Src: /src/ffms2/src/avisynth/avisynth.cpp:33,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:34,1
    - Dst: FFMS_Init
      Src: /src/ffms2/src/avisynth/avisynth.cpp:36,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:38,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:39,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:40,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:41,1
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:42,1
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:43,1
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:44,1
    - Dst: std::string::append
      Src: /src/ffms2/src/avisynth/avisynth.cpp:47,1
    - Dst: strcmp
      Src: /src/ffms2/src/avisynth/avisynth.cpp:48,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/avisynth/avisynth.cpp:49,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:52,1
    - Dst: FFMS_IndexBelongsToFile
      Src: /src/ffms2/src/avisynth/avisynth.cpp:53,1
    - Dst: FFMS_CreateIndexer2
      Src: /src/ffms2/src/avisynth/avisynth.cpp:55,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:57,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/src/avisynth/avisynth.cpp:61,1
    - Dst: FFMS_TrackIndexSettings
      Src: /src/ffms2/src/avisynth/avisynth.cpp:66,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/avisynth/avisynth.cpp:69,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:71,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:72,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:73,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:74,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:76,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:78,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:80,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:82,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 85
    functionName: CreateFFIndex
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FFMS_IndexBelongsToFile
    - strcmp
    - FFMS_DestroyIndex
    - IScriptEnvironment*::ThrowError
    - Defined
    - FFMS_CreateIndexer2
    - FFMS_DoIndexing2
    - FFMS_WriteIndex
    - AsBool
    - FFMS_Init
    - AVSValue
    - FFMS_ReadIndex
    - AsInt
    - std::string::append
    - FFMS_TrackIndexSettings
    - FFMS_TrackTypeIndexSettings
    - AsString
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFIndex(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Init
      Src: /src/ffms2/src/avisynth/avisynth.cpp:88,1
    - Dst: Defined
      Src: /src/ffms2/src/avisynth/avisynth.cpp:90,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:91,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:93,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:94,1
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:95,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:96,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:97,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:98,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:99,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:100,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:101,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:102,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:103,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:104,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:105,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:106,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:107,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:110,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:113,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:116,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:119,1
    - Dst: IsSamePath
      Src: /src/ffms2/src/avisynth/avisynth.cpp:121,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:122,1
    - Dst: IsSamePath
      Src: /src/ffms2/src/avisynth/avisynth.cpp:129,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:130,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:131,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/avisynth/avisynth.cpp:135,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:136,1
    - Dst: FFMS_IndexBelongsToFile
      Src: /src/ffms2/src/avisynth/avisynth.cpp:139,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:140,1
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/src/avisynth/avisynth.cpp:147,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:149,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/avisynth/avisynth.cpp:151,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:153,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:156,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:157,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:158,1
    - Dst: FFMS_GetFirstIndexedTrackOfType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:163,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:165,1
    - Dst: strcmp
      Src: /src/ffms2/src/avisynth/avisynth.cpp:167,1
    - Dst: FFMS_WriteTimecodes
      Src: /src/ffms2/src/avisynth/avisynth.cpp:168,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:168,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:169,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:170,1
    - Dst: AvisynthVideoSource::AvisynthVideoSource
      Src: /src/ffms2/src/avisynth/avisynth.cpp:177,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:179,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:183,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 185
    functionName: CreateFFVideoSource
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - FFMS_IndexBelongsToFile
    - FFMS_DoIndexing2
    - FFMS_WriteIndex
    - AsBool
    - FFMS_Init
    - AsInt
    - AsString
    - IsSamePath
    - std::string::c_str
    - FFMS_GetTrackFromIndex
    - strcmp
    - IScriptEnvironment*::ThrowError
    - FFMS_WriteTimecodes
    - FFMS_ReadIndex
    - FFMS_GetFirstIndexedTrackOfType
    - FFMS_CreateIndexer
    - FFMS_DestroyIndex
    - Defined
    - AvisynthVideoSource::AvisynthVideoSource
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFVideoSource(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_Init
      Src: /src/ffms2/src/avisynth/avisynth.cpp:188,1
    - Dst: Defined
      Src: /src/ffms2/src/avisynth/avisynth.cpp:190,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:191,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:193,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:194,1
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:195,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:196,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:197,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:198,1
    - Dst: AsFloat
      Src: /src/ffms2/src/avisynth/avisynth.cpp:199,1
    - Dst: AsString
      Src: /src/ffms2/src/avisynth/avisynth.cpp:200,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:203,1
    - Dst: IsSamePath
      Src: /src/ffms2/src/avisynth/avisynth.cpp:210,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:211,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:212,1
    - Dst: std::string::c_str
      Src: /src/ffms2/src/avisynth/avisynth.cpp:216,1
    - Dst: FFMS_ReadIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:217,1
    - Dst: FFMS_IndexBelongsToFile
      Src: /src/ffms2/src/avisynth/avisynth.cpp:220,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:221,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/avisynth/avisynth.cpp:228,1
    - Dst: FFMS_GetTrackType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:229,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:229,1
    - Dst: FFMS_GetNumFrames
      Src: /src/ffms2/src/avisynth/avisynth.cpp:230,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:230,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:231,1
    - Dst: FFMS_GetFirstTrackOfType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:236,1
    - Dst: FFMS_GetFirstIndexedTrackOfType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:237,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/avisynth/avisynth.cpp:238,1
    - Dst: FFMS_GetTrackType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:239,1
    - Dst: FFMS_GetTrackFromIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:239,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:240,1
    - Dst: FFMS_CreateIndexer
      Src: /src/ffms2/src/avisynth/avisynth.cpp:248,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:250,1
    - Dst: FFMS_TrackTypeIndexSettings
      Src: /src/ffms2/src/avisynth/avisynth.cpp:252,1
    - Dst: FFMS_DoIndexing2
      Src: /src/ffms2/src/avisynth/avisynth.cpp:254,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:256,1
    - Dst: FFMS_WriteIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:259,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:260,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:261,1
    - Dst: FFMS_GetFirstIndexedTrackOfType
      Src: /src/ffms2/src/avisynth/avisynth.cpp:266,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:268,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:271,1
    - Dst: FFMS_GetNumTracks
      Src: /src/ffms2/src/avisynth/avisynth.cpp:272,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avisynth.cpp:273,1
    - Dst: AvisynthAudioSource::AvisynthAudioSource
      Src: /src/ffms2/src/avisynth/avisynth.cpp:278,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:280,1
    - Dst: FFMS_DestroyIndex
      Src: /src/ffms2/src/avisynth/avisynth.cpp:284,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 286
    functionName: CreateFFAudioSource
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - FFMS_IndexBelongsToFile
    - AsFloat
    - FFMS_GetFirstTrackOfType
    - FFMS_DoIndexing2
    - FFMS_GetNumFrames
    - FFMS_WriteIndex
    - AsBool
    - FFMS_Init
    - AsInt
    - AsString
    - IsSamePath
    - std::string::c_str
    - FFMS_GetTrackFromIndex
    - IScriptEnvironment*::ThrowError
    - FFMS_ReadIndex
    - FFMS_TrackTypeIndexSettings
    - FFMS_GetFirstIndexedTrackOfType
    - FFMS_CreateIndexer
    - FFMS_DestroyIndex
    - Defined
    - FFMS_GetTrackType
    - AvisynthAudioSource::AvisynthAudioSource
    - FFMS_GetNumTracks
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFAudioSource(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AsBool
      Src: /src/ffms2/src/avisynth/avisynth.cpp:293,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:294,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:298,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:298,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:303,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:303,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:309,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:309,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:311,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: CreateFFmpegSource2
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - AsBool
    - AVSValue
    - AsInt
    - IScriptEnvironment*::Invoke
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFmpegSource2(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:321,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: CreateFFImageSource
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - IScriptEnvironment*::Invoke
    - AVSValue
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFImageSource(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:326,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:327,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:327,1
    - Dst: IScriptEnvironment*::Invoke
      Src: /src/ffms2/src/avisynth/avisynth.cpp:328,1
    - Dst: AVSValue
      Src: /src/ffms2/src/avisynth/avisynth.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: CreateFFCopyrightInfringement
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - IScriptEnvironment*::Invoke
    - AVSValue
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue CreateFFCopyrightInfringement(AVSValue Args, void* UserData,
      IScriptEnvironment* Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetLogLevel
      Src: /src/ffms2/src/avisynth/avisynth.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: FFGetLogLevel
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - FFMS_GetLogLevel
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue FFGetLogLevel(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_SetLogLevel
      Src: /src/ffms2/src/avisynth/avisynth.cpp:336,1
    - Dst: AsInt
      Src: /src/ffms2/src/avisynth/avisynth.cpp:336,1
    - Dst: FFMS_GetLogLevel
      Src: /src/ffms2/src/avisynth/avisynth.cpp:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: FFSetLogLevel
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - FFMS_GetLogLevel
    - AsInt
    - FFMS_SetLogLevel
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue FFSetLogLevel(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetVersion
      Src: /src/ffms2/src/avisynth/avisynth.cpp:341,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avisynth.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Args
    - UserData
    - Env
    argTypes:
    - AVSValue
    - void*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: FFGetVersion
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - FFMS_GetVersion
    - IScriptEnvironment*::Sprintf
    linkageType: ''
    returnType: AVSValue
    signature: AVSValue FFGetVersion(AVSValue Args, void* UserData, IScriptEnvironment*
      Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:350,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:351,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:352,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:354,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:355,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:357,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:358,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:360,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:361,1
    - Dst: IScriptEnvironment*::AddFunction
      Src: /src/ffms2/src/avisynth/avisynth.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - Env
    - vectors
    argTypes:
    - IScriptEnvironment*
    - AVS_Linkage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 365
    functionName: AvisynthPluginInit3
    functionSourceFile: /src/ffms2/src/avisynth/avisynth.cpp
    functionUses: 0
    functionsReached:
    - IScriptEnvironment*::AddFunction
    linkageType: ''
    returnType: AVS_EXPORT
    signature: AVS_EXPORT AvisynthPluginInit3(IScriptEnvironment* Env, const AVS_Linkage*
      const vectors)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/ffms2/src/avisynth/avssources.cpp:33,1
    - Dst: std::string::begin
      Src: /src/ffms2/src/avisynth/avssources.cpp:33,1
    - Dst: std::string::end
      Src: /src/ffms2/src/avisynth/avssources.cpp:33,1
    - Dst: std::string::begin
      Src: /src/ffms2/src/avisynth/avssources.cpp:33,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 83
    argCount: 3
    argNames:
    - CSName
    - Default
    - HighBitDepth
    argTypes:
    - char*
    - AVPixelFormat
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 114
    functionName: CSNameToPIXFMT
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - std::string::begin
    - std::transform
    - std::string::end
    linkageType: ''
    returnType: AVPixelFormat
    signature: AVPixelFormat CSNameToPIXFMT(const char *CSName, AVPixelFormat Default,
      bool HighBitDepth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ComponentSize
      Src: /src/ffms2/src/avisynth/avssources.cpp:127,1
    - Dst: IsY
      Src: /src/ffms2/src/avisynth/avssources.cpp:127,1
    - Dst: FFMS_CreateVideoSource
      Src: /src/ffms2/src/avisynth/avssources.cpp:131,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:133,1
    - Dst: AvisynthVideoSource::InitOutputFormat
      Src: /src/ffms2/src/avisynth/avssources.cpp:136,1
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/src/avisynth/avssources.cpp:138,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/avisynth/avssources.cpp:142,1
    - Dst: vsh::reduceRational
      Src: /src/ffms2/src/avisynth/avssources.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/avisynth/avssources.cpp:152,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:161,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:161,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:162,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:162,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:164,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:164,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:167,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:167,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:168,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:168,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:169,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:169,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:170,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:170,1
    - Dst: IScriptEnvironment*::SetGlobalVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:172,1
    - Dst: IScriptEnvironment*::CheckVersion
      Src: /src/ffms2/src/avisynth/avssources.cpp:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 13
    argNames:
    - SourceFile
    - Track
    - Index
    - AFPSNum
    - AFPSDen
    - Threads
    - SeekMode
    - ResizeToWidth
    - ResizeToHeight
    - ResizerName
    - ConvertToFormatName
    - VarPrefix
    - Env
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - int
    - int
    - int
    - int
    - int
    - char*
    - char*
    - char*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 180
    functionName: AvisynthVideoSource::AvisynthVideoSource
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 1
    functionsReached:
    - FFMS_CreateVideoSource
    - IsY
    - ComponentSize
    - FFMS_GetVideoProperties
    - IScriptEnvironment*::ThrowError
    - vsh::reduceRational
    - FFMS_DestroyVideoSource
    - IScriptEnvironment*::CheckVersion
    - static_cast<int>
    - AvisynthVideoSource::InitOutputFormat
    - IScriptEnvironment*::SetVar
    - IScriptEnvironment*::Sprintf
    - IScriptEnvironment*::SetGlobalVar
    linkageType: ''
    returnType: void
    signature: "void AvisynthVideoSource::AvisynthVideoSource(const char *SourceFile,
      int Track, FFMS_Index *Index,\n    int AFPSNum, int AFPSDen, int Threads, int
      SeekMode,\n    int ResizeToWidth, int ResizeToHeight, const char *ResizerName,\n
      \   const char *ConvertToFormatName, const char *VarPrefix, IScriptEnvironment*
      Env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyVideoSource
      Src: /src/ffms2/src/avisynth/avssources.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: AvisynthVideoSource::~AvisynthVideoSource()
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyVideoSource
    linkageType: ''
    returnType: void
    signature: void AvisynthVideoSource::~AvisynthVideoSource()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VideoInfo::IsYUV
      Src: /src/ffms2/src/avisynth/avssources.cpp:187,1
    - Dst: VideoInfo::IsYUVA
      Src: /src/ffms2/src/avisynth/avssources.cpp:187,1
    - Dst: VideoInfo::IsY
      Src: /src/ffms2/src/avisynth/avssources.cpp:187,1
    - Dst: VideoInfo::IsPlanar
      Src: /src/ffms2/src/avisynth/avssources.cpp:187,1
    - Dst: VideoInfo::GetPlaneHeightSubsampling
      Src: /src/ffms2/src/avisynth/avssources.cpp:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - vi
    argTypes:
    - VideoInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: GetSubSamplingH
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - VideoInfo::IsYUVA
    - VideoInfo::IsY
    - VideoInfo::IsYUV
    - VideoInfo::IsPlanar
    - VideoInfo::GetPlaneHeightSubsampling
    linkageType: ''
    returnType: int
    signature: int GetSubSamplingH(const VideoInfo &vi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VideoInfo::IsYUV
      Src: /src/ffms2/src/avisynth/avssources.cpp:194,1
    - Dst: VideoInfo::IsYUVA
      Src: /src/ffms2/src/avisynth/avssources.cpp:194,1
    - Dst: VideoInfo::IsY
      Src: /src/ffms2/src/avisynth/avssources.cpp:194,1
    - Dst: VideoInfo::IsPlanar
      Src: /src/ffms2/src/avisynth/avssources.cpp:194,1
    - Dst: VideoInfo::GetPlaneWidthSubsampling
      Src: /src/ffms2/src/avisynth/avssources.cpp:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - vi
    argTypes:
    - VideoInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: GetSubSamplingW
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - VideoInfo::IsYUVA
    - VideoInfo::IsY
    - VideoInfo::GetPlaneWidthSubsampling
    - VideoInfo::IsYUV
    - VideoInfo::IsPlanar
    linkageType: ''
    returnType: int
    signature: int GetSubSamplingW(const VideoInfo &vi)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/avisynth/avssources.cpp:205,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:206,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:208,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:212,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:212,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:213,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:213,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:214,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:214,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:215,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:215,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:216,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:216,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:217,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:217,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:218,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:218,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:219,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:219,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:220,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:220,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:221,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:221,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:222,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:222,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:223,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:223,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:224,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:224,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:225,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:225,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:226,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:226,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:227,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:227,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:228,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:228,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:229,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:229,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:230,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:230,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:231,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:231,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:232,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:232,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:233,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:233,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:234,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:234,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:235,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:235,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:236,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:236,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:237,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:237,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:239,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:239,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:240,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:240,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:241,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:241,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:242,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:243,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:243,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:244,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:244,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:245,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:245,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:246,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:246,1
    - Dst: std::vector::erase
      Src: /src/ffms2/src/avisynth/avssources.cpp:249,1
    - Dst: std::remove
      Src: /src/ffms2/src/avisynth/avssources.cpp:249,1
    - Dst: std::vector::begin
      Src: /src/ffms2/src/avisynth/avssources.cpp:249,1
    - Dst: std::vector::end
      Src: /src/ffms2/src/avisynth/avssources.cpp:249,1
    - Dst: std::vector::end
      Src: /src/ffms2/src/avisynth/avssources.cpp:249,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:251,1
    - Dst: CSNameToPIXFMT
      Src: /src/ffms2/src/avisynth/avssources.cpp:254,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:256,1
    - Dst: std::vector::clear
      Src: /src/ffms2/src/avisynth/avssources.cpp:259,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:261,1
    - Dst: ResizerNameToSWSResizer
      Src: /src/ffms2/src/avisynth/avssources.cpp:270,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:272,1
    - Dst: FFMS_SetOutputFormatV2
      Src: /src/ffms2/src/avisynth/avssources.cpp:274,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/avisynth/avssources.cpp:274,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:276,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:278,1
    - Dst: std::vector::clear
      Src: /src/ffms2/src/avisynth/avssources.cpp:279,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:280,1
    - Dst: std::vector::push_back
      Src: /src/ffms2/src/avisynth/avssources.cpp:281,1
    - Dst: FFMS_SetOutputFormatV2
      Src: /src/ffms2/src/avisynth/avssources.cpp:284,1
    - Dst: std::vector::data
      Src: /src/ffms2/src/avisynth/avssources.cpp:284,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:286,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:288,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:290,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:290,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:292,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:294,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:294,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:296,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:298,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:298,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:300,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:302,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:304,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:306,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:308,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:310,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:312,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:314,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:316,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:318,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:320,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:322,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:324,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:326,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:328,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:330,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:332,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:334,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:336,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:338,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:340,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:342,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:344,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:346,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:348,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:350,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:352,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:354,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:356,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:358,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:360,1
    - Dst: FFMS_GetPixFmt
      Src: /src/ffms2/src/avisynth/avssources.cpp:362,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:365,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:368,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:368,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:369,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:369,1
    - Dst: GetSubSamplingW
      Src: /src/ffms2/src/avisynth/avssources.cpp:380,1
    - Dst: GetSubSamplingH
      Src: /src/ffms2/src/avisynth/avssources.cpp:381,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 147
    argCount: 5
    argNames:
    - ResizeToWidth
    - ResizeToHeight
    - ResizerName
    - ConvertToFormatName
    - Env
    argTypes:
    - int
    - int
    - char*
    - char*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 382
    functionName: AvisynthVideoSource::InitOutputFormat
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 1
    functionsReached:
    - GetSubSamplingW
    - FFMS_GetPixFmt
    - ResizerNameToSWSResizer
    - std::vector::data
    - FFMS_GetVideoProperties
    - CSNameToPIXFMT
    - IScriptEnvironment*::ThrowError
    - std::vector::end
    - std::remove
    - std::vector::begin
    - FFMS_SetOutputFormatV2
    - IScriptEnvironment*::Sprintf
    - std::vector::push_back
    - GetSubSamplingH
    - std::vector::clear
    - IScriptEnvironment*::SetVar
    - FFMS_GetFrame
    - std::vector::erase
    linkageType: ''
    returnType: void
    signature: "void AvisynthVideoSource::InitOutputFormat(\n    int ResizeToWidth,
      int ResizeToHeight, const char *ResizerName,\n    const char *ConvertToFormatName,
      IScriptEnvironment *Env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IScriptEnvironment*::BitBlt
      Src: /src/ffms2/src/avisynth/avssources.cpp:385,1
    - Dst: PVideoFrame::GetWritePtr
      Src: /src/ffms2/src/avisynth/avssources.cpp:385,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:385,1
    - Dst: PVideoFrame::GetRowSize
      Src: /src/ffms2/src/avisynth/avssources.cpp:387,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - Frame
    - Dst
    - Env
    - Plane
    - PlaneId
    argTypes:
    - FFMS_Frame*
    - PVideoFrame
    - IScriptEnvironment*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: BlitPlane
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - PVideoFrame::GetPitch
    - PVideoFrame::GetWritePtr
    - PVideoFrame::GetRowSize
    - PVideoFrame::GetHeight
    - IScriptEnvironment*::BitBlt
    linkageType: ''
    returnType: void
    signature: void BlitPlane(const FFMS_Frame *Frame, PVideoFrame &Dst, IScriptEnvironment
      *Env, int Plane, int PlaneId)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsPlanar
      Src: /src/ffms2/src/avisynth/avssources.cpp:391,1
    - Dst: BlitPlane
      Src: /src/ffms2/src/avisynth/avssources.cpp:392,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:392,1
    - Dst: IsY
      Src: /src/ffms2/src/avisynth/avssources.cpp:393,1
    - Dst: IsY8
      Src: /src/ffms2/src/avisynth/avssources.cpp:393,1
    - Dst: BlitPlane
      Src: /src/ffms2/src/avisynth/avssources.cpp:394,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:394,1
    - Dst: BlitPlane
      Src: /src/ffms2/src/avisynth/avssources.cpp:395,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:395,1
    - Dst: IsYUVA
      Src: /src/ffms2/src/avisynth/avssources.cpp:397,1
    - Dst: IsPlanarRGBA
      Src: /src/ffms2/src/avisynth/avssources.cpp:397,1
    - Dst: BlitPlane
      Src: /src/ffms2/src/avisynth/avssources.cpp:398,1
    - Dst: IsYUY2
      Src: /src/ffms2/src/avisynth/avssources.cpp:399,1
    - Dst: BlitPlane
      Src: /src/ffms2/src/avisynth/avssources.cpp:400,1
    - Dst: IsRGB24
      Src: /src/ffms2/src/avisynth/avssources.cpp:401,1
    - Dst: IsRGB32
      Src: /src/ffms2/src/avisynth/avssources.cpp:401,1
    - Dst: IScriptEnvironment*::BitBlt
      Src: /src/ffms2/src/avisynth/avssources.cpp:402,1
    - Dst: PVideoFrame::GetWritePtr
      Src: /src/ffms2/src/avisynth/avssources.cpp:403,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:403,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:403,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:403,1
    - Dst: PVideoFrame::GetRowSize
      Src: /src/ffms2/src/avisynth/avssources.cpp:405,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:405,1
    - Dst: assert
      Src: /src/ffms2/src/avisynth/avssources.cpp:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - Frame
    - Dst
    - Env
    argTypes:
    - FFMS_Frame*
    - PVideoFrame
    - IScriptEnvironment*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/ffms2/src/avisynth/avssources.cpp
    constantsTouched: []
    func_position:
      end: 409
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: AvisynthVideoSource::OutputFrame
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - IsY8
    - PVideoFrame::GetPitch
    - IsY
    - assert
    - IsRGB32
    - PVideoFrame::GetWritePtr
    - PVideoFrame::GetRowSize
    - IsPlanarRGBA
    - PVideoFrame::GetHeight
    - IsPlanar
    - IsYUVA
    - BlitPlane
    - IsRGB
    - IScriptEnvironment*::BitBlt
    - IsYUY2
    - IsRGB24
    linkageType: ''
    returnType: void
    signature: void AvisynthVideoSource::OutputFrame(const FFMS_Frame *Frame, PVideoFrame
      &Dst, IScriptEnvironment *Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IScriptEnvironment*::BitBlt
      Src: /src/ffms2/src/avisynth/avssources.cpp:412,1
    - Dst: PVideoFrame::GetWritePtr
      Src: /src/ffms2/src/avisynth/avssources.cpp:413,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:413,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:413,1
    - Dst: PVideoFrame::GetRowSize
      Src: /src/ffms2/src/avisynth/avssources.cpp:415,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - Frame
    - Dst
    - Env
    - Plane
    - PlaneId
    - Field
    argTypes:
    - FFMS_Frame*
    - PVideoFrame
    - IScriptEnvironment*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: BlitField
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - PVideoFrame::GetPitch
    - PVideoFrame::GetWritePtr
    - PVideoFrame::GetRowSize
    - PVideoFrame::GetHeight
    - IScriptEnvironment*::BitBlt
    linkageType: ''
    returnType: void
    signature: void BlitField(const FFMS_Frame *Frame, PVideoFrame &Dst, IScriptEnvironment
      *Env, int Plane, int PlaneId, int Field)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsPlanar
      Src: /src/ffms2/src/avisynth/avssources.cpp:420,1
    - Dst: BlitField
      Src: /src/ffms2/src/avisynth/avssources.cpp:421,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:421,1
    - Dst: IsY
      Src: /src/ffms2/src/avisynth/avssources.cpp:422,1
    - Dst: IsY8
      Src: /src/ffms2/src/avisynth/avssources.cpp:422,1
    - Dst: BlitField
      Src: /src/ffms2/src/avisynth/avssources.cpp:423,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:423,1
    - Dst: BlitField
      Src: /src/ffms2/src/avisynth/avssources.cpp:424,1
    - Dst: IsRGB
      Src: /src/ffms2/src/avisynth/avssources.cpp:424,1
    - Dst: IsYUVA
      Src: /src/ffms2/src/avisynth/avssources.cpp:426,1
    - Dst: IsPlanarRGBA
      Src: /src/ffms2/src/avisynth/avssources.cpp:426,1
    - Dst: BlitField
      Src: /src/ffms2/src/avisynth/avssources.cpp:427,1
    - Dst: IsYUY2
      Src: /src/ffms2/src/avisynth/avssources.cpp:428,1
    - Dst: BlitField
      Src: /src/ffms2/src/avisynth/avssources.cpp:429,1
    - Dst: IsRGB24
      Src: /src/ffms2/src/avisynth/avssources.cpp:430,1
    - Dst: IsRGB32
      Src: /src/ffms2/src/avisynth/avssources.cpp:430,1
    - Dst: IScriptEnvironment*::BitBlt
      Src: /src/ffms2/src/avisynth/avssources.cpp:431,1
    - Dst: PVideoFrame::GetWritePtr
      Src: /src/ffms2/src/avisynth/avssources.cpp:432,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:432,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:432,1
    - Dst: PVideoFrame::GetPitch
      Src: /src/ffms2/src/avisynth/avssources.cpp:432,1
    - Dst: PVideoFrame::GetRowSize
      Src: /src/ffms2/src/avisynth/avssources.cpp:434,1
    - Dst: PVideoFrame::GetHeight
      Src: /src/ffms2/src/avisynth/avssources.cpp:434,1
    - Dst: assert
      Src: /src/ffms2/src/avisynth/avssources.cpp:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - Frame
    - Dst
    - Field
    - Env
    argTypes:
    - FFMS_Frame*
    - PVideoFrame
    - int
    - IScriptEnvironment*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/ffms2/src/avisynth/avssources.cpp
    constantsTouched: []
    func_position:
      end: 438
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 438
    functionName: AvisynthVideoSource::OutputField
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - IsY8
    - PVideoFrame::GetPitch
    - BlitField
    - IsY
    - assert
    - IsRGB32
    - PVideoFrame::GetWritePtr
    - PVideoFrame::GetRowSize
    - IsPlanarRGBA
    - PVideoFrame::GetHeight
    - IsPlanar
    - IsYUVA
    - IsRGB
    - IScriptEnvironment*::BitBlt
    - IsYUY2
    - IsRGB24
    linkageType: ''
    returnType: void
    signature: void AvisynthVideoSource::OutputField(const FFMS_Frame *Frame, PVideoFrame
      &Dst, int Field, IScriptEnvironment *Env)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/ffms2/src/avisynth/avssources.cpp:441,1
    - Dst: std::max
      Src: /src/ffms2/src/avisynth/avssources.cpp:441,1
    - Dst: IScriptEnvironment*::NewVideoFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:443,1
    - Dst: IScriptEnvironment*::getFramePropsRW
      Src: /src/ffms2/src/avisynth/avssources.cpp:444,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/avisynth/avssources.cpp:450,1
    - Dst: FFMS_GetFrameByTime
      Src: /src/ffms2/src/avisynth/avssources.cpp:452,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:453,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:453,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:455,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:456,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:457,1
    - Dst: FFMS_GetFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:460,1
    - Dst: FFMS_GetTrackFromVideo
      Src: /src/ffms2/src/avisynth/avssources.cpp:461,1
    - Dst: FFMS_GetTimeBase
      Src: /src/ffms2/src/avisynth/avssources.cpp:462,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:463,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:463,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/avisynth/avssources.cpp:463,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:463,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/avisynth/avssources.cpp:463,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:467,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:467,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:469,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:469,1
    - Dst: vsh::reduceRational
      Src: /src/ffms2/src/avisynth/avssources.cpp:474,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:475,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:476,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:477,1
    - Dst: static_cast<double>
      Src: /src/ffms2/src/avisynth/avssources.cpp:477,1
    - Dst: FFMS_GetFrameInfo
      Src: /src/ffms2/src/avisynth/avssources.cpp:477,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:482,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:484,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:484,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/avisynth/avssources.cpp:484,1
    - Dst: AvisynthVideoSource::OutputFrame
      Src: /src/ffms2/src/avisynth/avssources.cpp:485,1
    - Dst: FFMS_GetVideoProperties
      Src: /src/ffms2/src/avisynth/avssources.cpp:488,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:490,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:491,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:494,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:495,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:496,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:498,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:501,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:503,1
    - Dst: IScriptEnvironment*::propSetData
      Src: /src/ffms2/src/avisynth/avssources.cpp:504,1
    - Dst: IScriptEnvironment*::propSetInt
      Src: /src/ffms2/src/avisynth/avssources.cpp:510,1
    - Dst: IScriptEnvironment*::propSetFloatArray
      Src: /src/ffms2/src/avisynth/avssources.cpp:513,1
    - Dst: IScriptEnvironment*::propSetFloatArray
      Src: /src/ffms2/src/avisynth/avssources.cpp:514,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:515,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:516,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:520,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:521,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:525,1
    - Dst: IScriptEnvironment*::propSetFloat
      Src: /src/ffms2/src/avisynth/avssources.cpp:526,1
    - Dst: IScriptEnvironment*::propSetData
      Src: /src/ffms2/src/avisynth/avssources.cpp:530,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/ffms2/src/avisynth/avssources.cpp:530,1
    - Dst: IScriptEnvironment*::propSetData
      Src: /src/ffms2/src/avisynth/avssources.cpp:534,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/ffms2/src/avisynth/avssources.cpp:534,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 2
    argNames:
    - n
    - Env
    argTypes:
    - int
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 539
    functionName: AvisynthVideoSource::GetFrame
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - std::min
    - std::max
    - IScriptEnvironment*::propSetData
    - FFMS_GetVideoProperties
    - IScriptEnvironment*::NewVideoFrame
    - FFMS_GetTrackFromVideo
    - FFMS_GetFrameInfo
    - reinterpret_cast<const char *>
    - FFMS_GetFrameByTime
    - IScriptEnvironment*::propSetFloatArray
    - vsh::reduceRational
    - IScriptEnvironment*::SetVar
    - IScriptEnvironment*::propSetFloat
    - IScriptEnvironment*::propSetInt
    - IScriptEnvironment*::ThrowError
    - static_cast<double>
    - AvisynthVideoSource::OutputFrame
    - FFMS_GetTimeBase
    - FFMS_GetFrame
    - IScriptEnvironment*::Sprintf
    - static_cast<int>
    - IScriptEnvironment*::getFramePropsRW
    linkageType: ''
    returnType: PVideoFrame
    signature: PVideoFrame AvisynthVideoSource::GetFrame(int n, IScriptEnvironment
      *Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 543
    functionName: AvisynthVideoSource::GetParity
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AvisynthVideoSource::GetParity(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_CreateAudioSource2
      Src: /src/ffms2/src/avisynth/avssources.cpp:550,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:552,1
    - Dst: FFMS_GetAudioProperties
      Src: /src/ffms2/src/avisynth/avssources.cpp:554,1
    - Dst: SetChannelMask
      Src: /src/ffms2/src/avisynth/avssources.cpp:558,1
    - Dst: IScriptEnvironment*::SetVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:560,1
    - Dst: IScriptEnvironment*::Sprintf
      Src: /src/ffms2/src/avisynth/avssources.cpp:560,1
    - Dst: static_cast<int>
      Src: /src/ffms2/src/avisynth/avssources.cpp:560,1
    - Dst: IScriptEnvironment*::SetGlobalVar
      Src: /src/ffms2/src/avisynth/avssources.cpp:562,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 8
    argNames:
    - SourceFile
    - Track
    - Index
    - AdjustDelay
    - FillGaps
    - DrcScale
    - VarPrefix
    - Env
    argTypes:
    - char*
    - int
    - FFMS_Index*
    - int
    - int
    - double
    - char*
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 571
    functionName: AvisynthAudioSource::AvisynthAudioSource
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 1
    functionsReached:
    - FFMS_CreateAudioSource2
    - SetChannelMask
    - IScriptEnvironment*::ThrowError
    - FFMS_GetAudioProperties
    - static_cast<int>
    - IScriptEnvironment*::SetVar
    - IScriptEnvironment*::Sprintf
    - IScriptEnvironment*::SetGlobalVar
    linkageType: ''
    returnType: void
    signature: "void AvisynthAudioSource::AvisynthAudioSource(const char *SourceFile,
      int Track, FFMS_Index *Index,\n    int AdjustDelay, int FillGaps, double DrcScale,
      const char *VarPrefix, IScriptEnvironment* Env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_DestroyAudioSource
      Src: /src/ffms2/src/avisynth/avssources.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 575
    functionName: AvisynthAudioSource::~AvisynthAudioSource()
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - FFMS_DestroyAudioSource
    linkageType: ''
    returnType: void
    signature: void AvisynthAudioSource::~AvisynthAudioSource()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFMS_GetAudio
      Src: /src/ffms2/src/avisynth/avssources.cpp:579,1
    - Dst: IScriptEnvironment*::ThrowError
      Src: /src/ffms2/src/avisynth/avssources.cpp:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - Buf
    - Start
    - Count
    - Env
    argTypes:
    - void*
    - int64_t
    - int64_t
    - IScriptEnvironment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: AvisynthAudioSource::GetAudio
    functionSourceFile: /src/ffms2/src/avisynth/avssources.cpp
    functionUses: 0
    functionsReached:
    - IScriptEnvironment*::ThrowError
    - FFMS_GetAudio
    linkageType: ''
    returnType: void
    signature: void AvisynthAudioSource::GetAudio(void* Buf, int64_t Start, int64_t
      Count, IScriptEnvironment *Env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: FFMS_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: FFMS_DEPRECATED_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_DEPRECATED_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: FFMS_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: FFMS_DEPRECATED_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_DEPRECATED_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: FFMS_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: FFMS_DEPRECATED_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_DEPRECATED_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: FFMS_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: FFMS_DEPRECATED_API
    functionSourceFile: /src/ffms2/include/ffms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFMS_DEPRECATED_API(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - LIB
    - ','
    - cmp
    - ','
    - major
    - ','
    - minor
    - ','
    - micro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: VERSION_CHECK
    functionSourceFile: /src/ffms2/include/ffmscompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION_CHECK(LIB, cmp, major, minor, micro)
Fuzzer filename: /src/ffms2_fuzzer.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- ffmscompat.h
- ffms.h
- data/qrvideo_24fps_2elist_elist1_dur_zero.mov.cpp
- VSHelper4.h
- limits.h
- libavutil/mem.h
- data/data.h
- cstdlib
- cfloat
- data/qrvideo_24fps_3elist_1ctts.mov.cpp
- stdexcept
- numeric
- algorithm
- track.h
- libavformat/avformat.h
- libavcodec/avcodec.h
- sstream
- cinttypes
- string
- cstdint
- libavutil/channel_layout.h
- data.h
- VapourSynth4.h
- malloc.h
- windows.h
- cstring
- libavformat/avio.h
- libavutil/avutil.h
- memory
- utility
- limits
- data/qrvideo_24fps_1elist_noctts.mov.cpp
- avisynth.h
- zlib.h
- cstdarg
- libavutil/dict.h
- gtest/gtest.h
- cmath
- chrono
- utils.h
- data/qrvideo_24fps_1elist_ends_last_bframe.mov.cpp
- cstddef
- stdint.h
- libavutil/sha.h
- libswresample/swresample.h
- thread
- libavutil/mastering_display_metadata.h
- libavutil/display.h
- libavutil/pixdesc.h
- map
- libswscale/swscale.h
- libavutil/stereo3d.h
- vsutf16.h
- string.h
- libavutil/hdr_dynamic_metadata.h
- videoutils.h
- data/qrvideo_stream_shorter_than_movie.mov.cpp
- vector
- iomanip
- ../vapoursynth/VSHelper4.h
- set
- data/vp9_audfirst.webm.cpp
- unistd.h
- data/qrvideo_24fps_1elist_1ctts.mov.cpp
- list
- iostream
- libavutil/common.h
- data/qrvideo_24fps_2s_3elist.mov.cpp
- libavutil/opt.h
- cassert
- libavutil/imgutils.h
- stdlib.h
- audiosource.h
- avssources.h
- libavutil/mathematics.h
- data/qrvideo_24fps_elist_starts_ctts_2ndsample.mov.cpp
- random
- atomic
- fstream
- data/test.mp4.cpp
- mutex
- zipfile.h
- vapoursource4.h
- sys/types.h
- tests.h
- videosource.h
- filehandle.h
- stddef.h
- cstdio
- assert.h
- math.h
- ../core/utils.h
- indexing.h
- float.h
- data/qrvideo_24fps_2elist_elist1_ends_bframe.mov.cpp
report: name
sources:
- function_names:
  - atexit
  - LLVMFuzzerTestOneInput
  source_file: /src/ffms2_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NULL_CHECK
  - EQ_CHECK
  - STRINGIFY2
  - STRINGIFY
  - TEST_ENTRY
  source_file: /src/ffms2/test/tests.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*Filename'
        type: char
      - name: '*TestData'
        type: TestFrameData
      - name: TestDataLen
        type: size_t
      item_type: struct
      name: TestDataMap
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/ffms2/test/tests.h
    typedefs: []
    union: []
- function_names:
  - TEST_DOUBLE
  - HDR10Test::SetUp
  - HDR10Test::TearDown
  - HDR10Test::DoIndexing
  - TEST_F
  - TEST_F
  - TEST_F
  - HDR10Test::SetUp
  - HDR10Test::TearDown
  - HDR10Test::DoIndexing
  - TEST_F
  - TEST_F
  - TEST_F
  - main
  source_file: /src/ffms2/test/hdr.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: MasteringDisplayPrimariesX[3]
        type: double
      - name: MasteringDisplayPrimariesY[3]
        type: double
      - name: MasteringDisplayWhitePointX
        type: double
      - name: MasteringDisplayWhitePointY
        type: double
      - name: MasteringDisplayMinLuminance
        type: double
      - name: MasteringDisplayMaxLuminance
        type: double
      item_type: struct
      name: HDR10Data
      pos:
        line_end: 18
        line_start: 11
        source_file: /src/ffms2/test/hdr.cpp
    typedefs: []
    union: []
- function_names:
  - DisplayMatrixTest::SetUp
  - DisplayMatrixTest::TearDown
  - DisplayMatrixTest::DoIndexing
  - TEST_F
  - TEST_F
  - TEST_F
  - DisplayMatrixTest::SetUp
  - DisplayMatrixTest::TearDown
  - DisplayMatrixTest::DoIndexing
  - TEST_F
  - TEST_F
  - TEST_F
  - main
  source_file: /src/ffms2/test/display_matrix.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IndexerTest::SetUp
  - IndexerTest::TearDown
  - IndexerTest::DoIndexing
  - TEST_P
  - TEST_P
  - TEST_P
  - IndexerTest::SetUp
  - IndexerTest::TearDown
  - IndexerTest::DoIndexing
  - TEST_P
  - TEST_P
  - TEST_P
  - main
  source_file: /src/ffms2/test/indexer.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckFrame
  source_file: /src/ffms2/test/tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_elist_starts_ctts_2ndsample.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_3elist_1ctts.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/test.mp4.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_2s_3elist.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_1elist_noctts.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/data.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: PTS
        type: int64_t
      - name: Duration
        type: int64_t
      - name: Width
        type: int
      - name: Height
        type: int
      - name: '*PixelFormat'
        type: char
      - name: Keyframe
        type: bool
      - name: SHA256[32]
        type: uint8_t
      item_type: struct
      name: TestFrameData
      pos:
        line_end: 13
        line_start: 5
        source_file: /src/ffms2/test/data/data.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_2elist_elist1_dur_zero.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_stream_shorter_than_movie.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_1elist_1ctts.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_1elist_ends_last_bframe.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/vp9_audfirst.webm.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/test/data/qrvideo_24fps_2elist_elist1_ends_bframe.mov.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Error
  - Error
  - PrintUsage
  - getTimeInMicroSeconds
  - parseSecondsToMicroseconds
  - freeDemuxerOpts
  - parseDemuxerOpts
  - ParseCMDLine
  - OPTION_ARG
  - UpdateProgress
  - DumpFilename
  - DoIndexing
  - Error
  - Error
  - PrintUsage
  - getTimeInMicroSeconds
  - parseSecondsToMicroseconds
  - freeDemuxerOpts
  - parseDemuxerOpts
  - ParseCMDLine
  - OPTION_ARG
  - UpdateProgress
  - DumpFilename
  - DoIndexing
  - main
  source_file: /src/ffms2/src/index/ffmsindex.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: msg
        type: std::string
      item_type: struct
      name: Error
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/ffms2/src/index/ffmsindex.cpp
    - fields:
      - name: Percent
        type: int
      - name: Time
        type: int64_t
      item_type: struct
      name: Progress
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/ffms2/src/index/ffmsindex.cpp
    - fields:
      - name: msg
        type: std::string
      item_type: struct
      name: Error
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/ffms2/src/index/ffmsindex.cpp
    - fields:
      - name: Percent
        type: int
      - name: Time
        type: int64_t
      item_type: struct
      name: Progress
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/ffms2/src/index/ffmsindex.cpp
    typedefs: []
    union: []
- function_names:
  - utf16_to_utf8
  - utf16_from_utf8
  source_file: /src/ffms2/src/index/vsutf16.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFMS_Exception::FFMS_Exception
  - FFMS_Exception::FFMS_Exception
  - FFMS_Exception::CopyOut
  - ClearErrorInfo
  - FillAP
  - LAVFOpenFile
  - ResizerNameToSWSResizer
  - IsSamePath
  - IsIOError
  - AVErrorToString
  source_file: /src/ffms2/src/core/utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - av_log_windebug_callback
  - FFMS_Init
  - FFMS_GetVersion
  - FFMS_GetLogLevel
  - FFMS_SetLogLevel
  - FFMS_CreateVideoSource
  - FFMS_CreateAudioSource
  - FFMS_CreateAudioSource2
  - FFMS_DestroyVideoSource
  - FFMS_DestroyAudioSource
  - FFMS_GetVideoProperties
  - FFMS_GetAudioProperties
  - FFMS_GetFrame
  - FFMS_GetFrameByTime
  - FFMS_GetAudio
  - FFMS_SetOutputFormatV2
  - FFMS_ResetOutputFormatV
  - FFMS_SetInputFormatV
  - FFMS_ResetInputFormatV
  - FFMS_CreateResampleOptions
  - FFMS_DestroyResampleOptions
  - FFMS_SetOutputFormatA
  - FFMS_DestroyIndex
  - FFMS_GetErrorHandling
  - FFMS_GetFirstTrackOfType
  - FFMS_GetFirstIndexedTrackOfType
  - FFMS_GetNumTracks
  - FFMS_GetNumTracksI
  - FFMS_GetTrackType
  - FFMS_GetTrackTypeI
  - FFMS_GetCodecNameI
  - FFMS_GetNumFrames
  - FFMS_GetFrameInfo
  - FFMS_GetTrackFromIndex
  - FFMS_GetTrackFromVideo
  - FFMS_GetTrackFromAudio
  - FFMS_GetTimeBase
  - FFMS_WriteTimecodes
  - FFMS_CreateIndexer
  - FFMS_CreateIndexer2
  - FFMS_DoIndexing2
  - FFMS_TrackIndexSettings
  - FFMS_TrackTypeIndexSettings
  - FFMS_SetProgressCallback
  - FFMS_CancelIndexing
  - FFMS_ReadIndex
  - FFMS_ReadIndexFromBuffer
  - FFMS_IndexBelongsToFile
  - FFMS_WriteIndex
  - FFMS_WriteIndexToBuffer
  - FFMS_FreeIndexBuffer
  - FFMS_GetPixFmt
  - FFMS_GetFormatNameI
  source_file: /src/ffms2/src/core/ffms.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadFrame
  - WriteFrame
  - ReadFrame
  - WriteFrame
  - FFMS_Track::FFMS_Track
  - FFMS_Track::FFMS_Track
  - FFMS_Track::FFMS_Track
  - FFMS_Track::Write
  - FFMS_Track::AddVideoFrame
  - FFMS_Track::AddAudioFrame
  - FFMS_Track::WriteTimecodes
  - PTSComparison
  - FFMS_Track::FrameFromPTS
  - FFMS_Track::FrameFromPos
  - FFMS_Track::ClosestFrameFromPTS
  - FFMS_Track::FindClosestVideoKeyFrame
  - FFMS_Track::RealFrameNumber
  - FFMS_Track::VisibleFrameCount
  - FFMS_Track::MaybeReorderFrames
  - FFMS_Track::RevertToDTS
  - FFMS_Track::MaybeHideFrames
  - FFMS_Track::FillAudioGaps
  - FFMS_Track::FinalizeTrack
  - FFMS_Track::GeneratePublicInfo
  - FFMS_Track::GetFrameInfo
  source_file: /src/ffms2/src/core/track.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(uint8_t *ptr) const
  - AudioBlock
  - Grow
  - operator()(SwrContext *c) const
  - GetTrack
  - '& GetAudioProperties() const'
  source_file: /src/ffms2/src/core/audiosource.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*FormatContext'
        type: AVFormatContext
      - name: LAVFOpts
        type: std::map<std::string, std::string>
      - name: DrcScale
        type: double
      - name: LastValidTS
        type: int64_t
      - name: SourceFile
        type: std::string
      - name: Delay
        type: int64_t
      - name: Cache
        type: std::list<AudioBlock>
      - name: MaxCacheBlocks
        type: size_t
      - name: CacheNoDelete
        type: CacheIterator
      - name: BytesPerSample
        type: size_t
      - name: NeedsResample
        type: bool
      - name: ResampleContext
        type: FFResampleContext
      - name: '*CacheBlock(CacheIterator &pos)'
        type: AudioBlock
      - name: ResampleAndCache(CacheIterator pos)
        type: void
      - name: CacheBeginning()
        type: void
      - name: Seek()
        type: void
      - name: ReadPacket(AVPacket *)
        type: bool
      - name: OpenFile()
        type: void
      - name: CurrentSample
        type: int64_t
      - name: PacketNumber
        type: size_t
      - name: '*CurrentFrame'
        type: FrameInfo
      - name: TrackNumber
        type: int
      - name: SeekOffset
        type: int
      - name: '*DecodeFrame'
        type: AVFrame
      - name: Frames
        type: FFMS_Track
      - name: '*CodecContext'
        type: AVCodecContext
      - name: AP
        type: FFMS_AudioProperties
      - name: DecodeNextBlock(CacheIterator *cachePos = 0)
        type: int
      - name: Init(const FFMS_Index &Index, int DelayMode)
        type: void
      - name: FrameTS(size_t Packet) const
        type: int64_t
      - name: Free()
        type: void
      - name: GetAudio(void *Buf, int64_t Start, int64_t Count)
        type: void
      - name: CreateResampleOptions() const
        type: std::unique_ptr<FFMS_ResampleOptions>
      - name: SetOutputFormat(FFMS_ResampleOptions const& opt)
        type: void
      - name: GetSeekablePacketNumber(FFMS_Track const& Frames, size_t PacketNumber)
        type: size_t
      item_type: struct
      name: FFMS_AudioSource
      pos:
        line_end: 147
        line_start: 30
        source_file: /src/ffms2/src/core/audiosource.h
    - fields:
      - name: Age
        type: int64_t
      - name: Start
        type: int64_t
      - name: Samples
        type: int64_t
      - name: DataSize
        type: size_t
      - name: Data
        type: std::unique_ptr<uint8_t, Free>
      item_type: struct
      name: AudioBlock
      pos:
        line_end: 60
        line_start: 31
        source_file: /src/ffms2/src/core/audiosource.h
    - fields: []
      item_type: struct
      name: Free
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/ffms2/src/core/audiosource.h
    - fields: []
      item_type: struct
      name: SwrFreeWrapper
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/ffms2/src/core/audiosource.h
    typedefs:
    - item_type: typedef
      name: CacheIterator
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/ffms2/src/core/audiosource.h
      type: list<AudioBlock>::iterator
    - item_type: typedef
      name: FFResampleContext
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/ffms2/src/core/audiosource.h
      type: unique_ptr<SwrContext, SwrFreeWrapper>
    union: []
- function_names:
  - DecoderDelay::Reset
  - DecoderDelay::Increment
  - DecoderDelay::Decrement
  - DecoderDelay::IsExceeded
  - FFMS_VideoSource::SanityCheckFrameForData
  - FFMS_VideoSource::GetFrameCheck
  - FFMS_VideoSource::OutputFrame
  - FFMS_VideoSource::FFMS_VideoSource
  - FFMS_VideoSource::~FFMS_VideoSource()
  - FFMS_VideoSource::GetFrameByTime
  - handle_jpeg
  - FFMS_VideoSource::SetOutputFormat
  - FFMS_VideoSource::SetInputFormat
  - FFMS_VideoSource::DetectInputFormat
  - FFMS_VideoSource::ReAdjustOutputFormat
  - FFMS_VideoSource::ResetOutputFormat
  - FFMS_VideoSource::ResetInputFormat
  - FFMS_VideoSource::SetVideoProperties
  - FFMS_VideoSource::HasPendingDelayedFrames
  - FFMS_VideoSource::CopyEye
  - FFMS_VideoSource::DecodePacket
  - FFMS_VideoSource::Seek
  - FFMS_VideoSource::Free
  - FFMS_VideoSource::DecodeNextFrame
  - FFMS_VideoSource::SeekTo
  - FFMS_VideoSource::GetFrame
  source_file: /src/ffms2/src/core/videosource.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZipFile::Read
  - ZipFile::Write
  source_file: /src/ffms2/src/core/zipfile.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '&GetErrorMessage() const'
  - make_unique
  - optdetail::get_av_opt
  - optdetail::get_av_opt
  - optdetail::set_av_opt
  - optdetail::set_av_opt
  - optdetail::get_av_opt
  - optdetail::get_av_opt
  - optdetail::set_av_opt
  - optdetail::set_av_opt
  - ~OptionMapperBase()
  - OptionMapper::OptionMapperImpl::OptionMapperImpl
  - OptionMapper::OptionMapperImpl::ToOpt
  - OptionMapper::OptionMapperImpl::FromOpt
  - OptionMapper::OptionMapper
  - OptionMapper::ToOpt
  - OptionMapper::FromOpt
  - ReadOptions
  - SetOptions
  source_file: /src/ffms2/src/core/utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ToOpt(FFMS_Struct const& src, void *dst) const
        type: void
      - name: FromOpt(FFMS_Struct &dst, void *src) const
        type: void
      item_type: struct
      name: OptionMapperBase
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/ffms2/src/core/utils.h
    typedefs: []
    union: []
- function_names:
  - '& GetVideoProperties()'
  - GetTrack
  source_file: /src/ffms2/src/core/videosource.h
  types:
    enum:
    - enumerators:
      - name: INITIALIZE_SOURCE
      - name: DECODE_LOOP
      - name: APPLY_DELAY
      - name: INITIALIZE
      item_type: enum
      name: DecodeStage
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/ffms2/src/core/videosource.h
    preproc_defs: []
    structs:
    - fields:
      - name: ThreadDelay
        type: int
      - name: ReorderDelay
        type: int
      - name: ThreadDelayCounter
        type: int
      - name: ReorderDelayCounter
        type: int
      - name: Reset()
        type: void
      - name: Increment(bool Hidden, bool SecondField)
        type: void
      - name: Decrement()
        type: void
      - name: IsExceeded()
        type: bool
      item_type: struct
      name: DecoderDelay
      pos:
        line_end: 59
        line_start: 48
        source_file: /src/ffms2/src/core/videosource.h
    - fields:
      - name: '*SWS'
        type: SwsContext
      - name: Delay
        type: DecoderDelay
      - name: Stage
        type: DecodeStage
      - name: LastFrameHeight
        type: int
      - name: LastFrameWidth
        type: int
      - name: LastFramePixelFormat
        type: AVPixelFormat
      - name: TargetHeight
        type: int
      - name: TargetWidth
        type: int
      - name: TargetPixelFormats
        type: std::vector<AVPixelFormat>
      - name: TargetResizer
        type: int
      - name: OutputFormat
        type: AVPixelFormat
      - name: OutputColorRange
        type: AVColorRange
      - name: OutputColorSpace
        type: AVColorSpace
      - name: OutputColorRangeSet
        type: bool
      - name: OutputColorSpaceSet
        type: bool
      - name: OutputColorPrimaries
        type: int
      - name: OutputTransferCharateristics
        type: int
      - name: OutputChromaLocation
        type: int
      - name: InputFormatOverridden
        type: bool
      - name: InputFormat
        type: AVPixelFormat
      - name: InputColorRange
        type: AVColorRange
      - name: InputColorSpace
        type: AVColorSpace
      - name: '*SWSFrameData[4]'
        type: uint8_t
      - name: SWSFrameLinesize[4]
        type: int
      - name: EyesInverted
        type: bool
      - name: PrimaryEyeIsLeft
        type: bool
      - name: '*LeftEyeFrameData[4]'
        type: uint8_t
      - name: LeftEyeLinesize[4]
        type: int
      - name: '*RightEyeFrameData[4]'
        type: uint8_t
      - name: RightEyeLinesize[4]
        type: int
      - name: '*StashedPacket'
        type: AVPacket
      - name: ResendPacket
        type: bool
      - name: DetectInputFormat()
        type: void
      - name: HasPendingDelayedFrames()
        type: bool
      - name: VP
        type: FFMS_VideoProperties
      - name: LocalFrame
        type: FFMS_Frame
      - name: '*RPUBuffer'
        type: uint8_t
      - name: RPUBufferSize
        type: size_t
      - name: '*HDR10PlusBuffer'
        type: uint8_t
      - name: HDR10PlusBufferSize
        type: size_t
      - name: '*DecodeFrame'
        type: AVFrame
      - name: '*LastDecodedFrame'
        type: AVFrame
      - name: LastFrameNum
        type: int
      - name: '&Index'
        type: FFMS_Index
      - name: Frames
        type: FFMS_Track
      - name: VideoTrack
        type: int
      - name: CurrentFrame
        type: int
      - name: DecodingThreads
        type: int
      - name: '*CodecContext'
        type: AVCodecContext
      - name: '*FormatContext'
        type: AVFormatContext
      - name: SeekMode
        type: int
      - name: SeekByPos
        type: bool
      - name: HaveSeenInterlacedFrame
        type: bool
      - name: IsLayered
        type: bool
      - name: ReAdjustOutputFormat(AVFrame *Frame)
        type: void
      - name: '*OutputFrame(AVFrame *Frame)'
        type: FFMS_Frame
      - name: SetVideoProperties()
        type: void
      - name: DecodePacket(AVPacket *Packet)
        type: bool
      - name: DecodeNextFrame(int64_t &PTS, int64_t &Pos)
        type: void
      - name: SeekTo(int n, int SeekOffset)
        type: bool
      - name: Seek(int n)
        type: int
      - name: Free()
        type: void
      - name: SanityCheckFrameForData(AVFrame *Frame)
        type: void
      - name: '*GetFrame(int n)'
        type: FFMS_Frame
      - name: GetFrameCheck(int n)
        type: void
      - name: CopyEye(AVStereo3DView view)
        type: void
      - name: '*GetFrameByTime(double Time)'
        type: FFMS_Frame
      - name: SetOutputFormat(const AVPixelFormat *TargetFormats, int Width, int Height,
          int Resizer)
        type: void
      - name: ResetOutputFormat()
        type: void
      - name: SetInputFormat(int ColorSpace, int ColorRange, AVPixelFormat Format)
        type: void
      - name: ResetInputFormat()
        type: void
      item_type: struct
      name: FFMS_VideoSource
      pos:
        line_end: 150
        line_start: 61
        source_file: /src/ffms2/src/core/videosource.h
    typedefs: []
    union: []
- function_names:
  - ZipFile::ZipFile
  - ZipFile::ZipFile
  - ZipFile::ZipFile
  - ZipFile::~ZipFile()
  - ZipFile::Read
  - ZipFile::Write
  - ZipFile::Finish
  - ZipFile::GetBuffer
  source_file: /src/ffms2/src/core/zipfile.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetSwsContext
  - CorrectRationalFramerate
  - CorrectTimebase
  - GuessCSType
  - GetPseudoDepth
  - CalculateLoss
  - FindBestPixelFormat
  - ParseVP8
  - ParseVP9
  source_file: /src/ffms2/src/core/videoutils.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Format
        type: AVPixelFormat
      - name: ChromaUndersampling
        type: int
      - name: ChromaOversampling
        type: int
      - name: DepthDifference
        type: int
      - name: CSLoss
        type: int
      - name: CSGain
        type: int
      item_type: struct
      name: LossAttributes
      pos:
        line_end: 137
        line_start: 130
        source_file: /src/ffms2/src/core/videoutils.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/src/core/videoutils.h
  types:
    enum:
    - enumerators:
      - name: cGRAY
      - name: cRGB
      - name: cYUV
      - name: cUNUSABLE
      item_type: enum
      name: BCSType
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/ffms2/src/core/videoutils.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFMS_Index
  - '& operator=(FFMS_Index const&)'
  - FFMS_Indexer
  - '& operator=(FFMS_Indexer const&)'
  source_file: /src/ffms2/src/core/indexing.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*CodecContext'
        type: AVCodecContext
      - name: '*Parser'
        type: AVCodecParserContext
      - name: CurrentSample
        type: int64_t
      item_type: struct
      name: SharedAVContext
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/ffms2/src/core/indexing.h
    - fields:
      - name: ReadIndex(ZipFile &zf, const char* IndexFile)
        type: void
      - name: WriteIndex(ZipFile &zf)
        type: void
      - name: CalculateFileSignature(const char *Filename, int64_t *Filesize, uint8_t
          Digest[20])
        type: void
      - name: ErrorHandling
        type: int
      - name: Filesize
        type: int64_t
      - name: Digest[20]
        type: uint8_t
      - name: LAVFOpts
        type: std::map<std::string, std::string>
      - name: Finalize(std::vector<SharedAVContext> const& video_contexts, const char
          *Format)
        type: void
      - name: CompareFileSignature(const char *Filename)
        type: bool
      - name: WriteIndexFile(const char *IndexFile)
        type: void
      - name: '*WriteIndexBuffer(size_t *Size)'
        type: uint8_t
      item_type: struct
      name: FFMS_Index
      pos:
        line_end: 65
        line_start: 44
        source_file: /src/ffms2/src/core/indexing.h
    - fields:
      - name: LastAudioProperties
        type: std::map<int, FFMS_AudioProperties>
      - name: '*FormatContext'
        type: AVFormatContext
      - name: IndexMask
        type: std::set<int>
      - name: LAVFOpts
        type: std::map<std::string, std::string>
      - name: ErrorHandling
        type: int
      - name: IC
        type: TIndexCallback
      - name: '*ICPrivate'
        type: void
      - name: SourceFile
        type: std::string
      - name: '*DecodeFrame'
        type: AVFrame
      - name: Filesize
        type: int64_t
      - name: Digest[20]
        type: uint8_t
      - name: ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS)
        type: void
      - name: CheckAudioProperties(int Track, AVCodecContext *Context)
        type: void
      - name: IndexAudioPacket(int Track, AVPacket *Packet, SharedAVContext &Context,
          FFMS_Index &TrackIndices)
        type: uint32_t
      - name: ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict,
          int *FrameType, bool *Invisible, bool *SecondField, enum AVPictureStructure
          *LastPicStruct)
        type: void
      - name: Free()
        type: void
      - name: SetIndexTrack(int Track, bool Index)
        type: void
      - name: SetIndexTrackType(int TrackType, bool Index)
        type: void
      - name: SetErrorHandling(int ErrorHandling_)
        type: void
      - name: SetProgressCallback(TIndexCallback IC_, void *ICPrivate_)
        type: void
      - name: '*DoIndexing()'
        type: FFMS_Index
      - name: GetNumberOfTracks()
        type: int
      - name: GetTrackType(int Track)
        type: FFMS_TrackType
      - name: '*GetTrackCodec(int Track)'
        type: char
      - name: '*GetFormatName()'
        type: char
      item_type: struct
      name: FFMS_Indexer
      pos:
        line_end: 103
        line_start: 67
        source_file: /src/ffms2/src/core/indexing.h
    typedefs: []
    union: []
- function_names:
  - SharedAVContext::~SharedAVContext()
  - FFMS_Index::CalculateFileSignature
  - FFMS_Index::Finalize
  - FFMS_Index::CompareFileSignature
  - FFMS_Index::WriteIndex
  - FFMS_Index::WriteIndexFile
  - FFMS_Index::WriteIndexBuffer
  - FFMS_Index::ReadIndex
  - FFMS_Index::FFMS_Index
  - FFMS_Index::FFMS_Index
  - FFMS_Index::FFMS_Index
  - FFMS_Indexer::SetIndexTrack
  - FFMS_Indexer::SetIndexTrackType
  - FFMS_Indexer::SetErrorHandling
  - FFMS_Indexer::SetProgressCallback
  - FFMS_Indexer::FFMS_Indexer
  - FFMS_Indexer::IndexAudioPacket
  - FFMS_Indexer::CheckAudioProperties
  - FFMS_Indexer::ParseVideoPacket
  - FFMS_Indexer::Free
  - FFMS_Indexer::~FFMS_Indexer()
  - FFMS_Indexer::GetNumberOfTracks
  - FFMS_Indexer::GetFormatName
  - FFMS_Indexer::GetTrackType
  - FFMS_Indexer::GetTrackCodec
  - FFMS_Indexer::DoIndexing
  - FFMS_Indexer::ReadTS
  source_file: /src/ffms2/src/core/indexing.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INDEXID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/ffms2/src/core/indexing.cpp
      type_or_value: '0x53920873'
    - item_type: preproc_def
      name: INDEX_VERSION
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/ffms2/src/core/indexing.cpp
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Skipped
  - clear
  - empty
  - size
  - operator[](size_type pos) const
  - front
  - back
  - begin
  - end
  source_file: /src/ffms2/src/core/track.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: PTS
        type: int64_t
      - name: OriginalPTS
        type: int64_t
      - name: FilePos
        type: int64_t
      - name: SampleStart
        type: int64_t
      - name: SampleCount
        type: uint32_t
      - name: OriginalPos
        type: size_t
      - name: PosInDecodingOrder
        type: size_t
      - name: FrameType
        type: int
      - name: RepeatPict
        type: int
      - name: KeyFrame
        type: bool
      - name: MarkedHidden
        type: bool
      - name: SecondField
        type: bool
      - name: DTS
        type: int64_t
      item_type: struct
      name: FrameInfo
      pos:
        line_end: 49
        line_start: 31
        source_file: /src/ffms2/src/core/track.h
    - fields:
      - name: Data
        type: std::shared_ptr<TrackData>
      - name: MaybeReorderFrames()
        type: void
      - name: GeneratePublicInfo()
        type: void
      - name: TT
        type: FFMS_TrackType
      - name: TB
        type: FFMS_TrackTimeBase
      - name: MaxBFrames
        type: int
      - name: UseDTS
        type: bool
      - name: HasTS
        type: bool
      - name: HasDiscontTS
        type: bool
      - name: LastDuration
        type: int64_t
      - name: SampleRate
        type: int
      - name: AddVideoFrame(int64_t PTS, int64_t DTS, int RepeatPict, bool KeyFrame,
          int FrameType, int64_t FilePos = 0, bool Invisible = false, bool SecondField
          = false)
        type: void
      - name: AddAudioFrame(int64_t PTS, int64_t DTS, int64_t SampleStart, uint32_t
          SampleCount, bool KeyFrame, int64_t FilePos = 0, bool Invisible = false)
        type: void
      - name: RevertToDTS()
        type: void
      - name: MaybeHideFrames()
        type: void
      - name: FinalizeTrack()
        type: void
      - name: FillAudioGaps()
        type: void
      - name: FindClosestVideoKeyFrame(int Frame) const
        type: int
      - name: FrameFromPTS(int64_t PTS, bool AllowHidden = false) const
        type: int
      - name: FrameFromPos(int64_t Pos, bool AllowHidden = false) const
        type: int
      - name: ClosestFrameFromPTS(int64_t PTS) const
        type: int
      - name: RealFrameNumber(int Frame) const
        type: int
      - name: VisibleFrameCount() const
        type: int
      - name: '*GetFrameInfo(size_t N) const'
        type: FFMS_FrameInfo
      - name: WriteTimecodes(const char *TimecodeFile) const
        type: void
      - name: Write(ZipFile &Stream) const
        type: void
      item_type: struct
      name: FFMS_Track
      pos:
        line_end: 119
        line_start: 51
        source_file: /src/ffms2/src/core/track.h
    - fields:
      - name: Frames
        type: frame_vec
      - name: RealFrameNumbers
        type: std::vector<int>
      - name: PublicFrameInfo
        type: std::vector<FFMS_FrameInfo>
      item_type: struct
      name: TrackData
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/ffms2/src/core/track.h
    typedefs:
    - item_type: typedef
      name: frame_vec
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/ffms2/src/core/track.h
      type: vector<FrameInfo>
    - item_type: typedef
      name: allocator_type
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/ffms2/src/core/track.h
      type: allocator_type
    - item_type: typedef
      name: size_type
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/ffms2/src/core/track.h
      type: size_type
    - item_type: typedef
      name: difference_type
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/ffms2/src/core/track.h
      type: difference_type
    - item_type: typedef
      name: pointer
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/ffms2/src/core/track.h
      type: const_pointer
    - item_type: typedef
      name: reference
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/ffms2/src/core/track.h
      type: const_reference
    - item_type: typedef
      name: value_type
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/ffms2/src/core/track.h
      type: value_type
    - item_type: typedef
      name: iterator
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/ffms2/src/core/track.h
      type: const_iterator
    - item_type: typedef
      name: reverse_iterator
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/ffms2/src/core/track.h
      type: const_reverse_iterator
    union: []
- function_names:
  - MAPPER
  - MAPPER
  - FFMS_AudioSource::FFMS_AudioSource
  - FFMS_AudioSource::Init
  - FFMS_AudioSource::CacheBeginning
  - PopCount
  - FFMS_AudioSource::SetOutputFormat
  - FFMS_AudioSource::CreateResampleOptions
  - FFMS_AudioSource::ResampleAndCache
  - FFMS_AudioSource::CacheBlock
  - FFMS_AudioSource::DecodeNextBlock
  - SampleStartComp
  - FFMS_AudioSource::GetAudio
  - FFMS_AudioSource::GetSeekablePacketNumber
  - FFMS_AudioSource::OpenFile
  - FFMS_AudioSource::Free
  - FFMS_AudioSource::~FFMS_AudioSource()
  - FFMS_AudioSource::FrameTS
  - FFMS_AudioSource::Seek
  - FFMS_AudioSource::ReadPacket
  source_file: /src/ffms2/src/core/audiosource.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXCESSIVE_CACHE_SIZE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/ffms2/src/core/audiosource.cpp
      type_or_value: '400'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffms_fopen
  - FileHandle::FileHandle
  - FileHandle::~FileHandle()
  - FileHandle::Seek
  - FileHandle::Tell
  - FileHandle::Read
  - FileHandle::Write
  - FileHandle::Size
  - FileHandle::Printf
  source_file: /src/ffms2/src/core/filehandle.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileHandle::FileHandle
  source_file: /src/ffms2/src/core/filehandle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/ffms2/src/vapoursynth/vapoursource4.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: VI[2]
        type: VSVideoInfo
      - name: '*V'
        type: FFMS_VideoSource
      - name: FPSNum
        type: int64_t
      - name: FPSDen
        type: int64_t
      - name: SARNum
        type: int
      - name: SARDen
        type: int
      - name: OutputAlpha
        type: bool
      - name: LastFrame
        type: int
      - name: CacheThreshold
        type: int
      - name: "InitOutputFormat(int ResizeToWidth, int ResizeToHeight,\n        const
          char *ResizerName, int ConvertToFormat, const VSAPI *vsapi, VSCore *core)"
        type: void
      - name: OutputFrame(const FFMS_Frame *Frame, VSFrame *Dst, const VSAPI *vsapi)
        type: void
      - name: OutputAlphaFrame(const FFMS_Frame *Frame, int Plane, VSFrame *Dst, const
          VSAPI *vsapi)
        type: void
      - name: '*GetVideoInfo() const'
        type: VSVideoInfo
      - name: SetCacheThreshold(int threshold)
        type: void
      - name: Init(VSMap *in, VSMap *out, void **instanceData, VSNode *node, VSCore
          *core, const VSAPI *vsapi)
        type: void
      - name: '*VS_CC GetVSFrame(int n, VSCore *core, const VSAPI *vsapi)'
        type: VSFrame
      - name: '*VS_CC GetFrame(int n, int activationReason, void *instanceData, void
          **frameData, VSFrameContext *frameCtx, VSCore *core, const VSAPI *vsapi)'
        type: VSFrame
      - name: Free(void *instanceData, VSCore *core, const VSAPI *vsapi)
        type: void
      item_type: struct
      name: VSVideoSource4
      pos:
        line_end: 66
        line_start: 36
        source_file: /src/ffms2/src/vapoursynth/vapoursource4.h
    typedefs: []
    union: []
- function_names:
  - VS_MAKE_VERSION
  - VS_EXTERNAL_API
  - VS_EXTERNAL_API
  - VS_EXTERNAL_API
  - VS_API
  - VS_API
  - VS_MAKE_VIDEO_ID
  source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
  types:
    enum:
    - enumerators:
      - name: cfUndefined
        value: '0'
      - name: cfYUV
        value: '3'
      - name: cfGray
        value: '1'
      - name: cfRGB
        value: '2'
      item_type: enum
      name: VSColorFamily
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: stInteger
        value: '0'
      - name: stFloat
        value: '1'
      item_type: enum
      name: VSSampleType
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: pfGray16
        value: VS_MAKE_VIDEO_ID(cfGray, stInteger, 16, 0, 0)
      - name: pfYUV420P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 1, 1)
      - name: pfYUV422P14
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 14, 1, 0)
      - name: pfYUV422P10
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 10, 1, 0)
      - name: pfYUV444P16
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 16, 0, 0)
      - name: pfRGB42
        value: VS_MAKE_VIDEO_ID(cfRGB, stInteger, 14, 0, 0)
      - name: pfNone
        value: '0'
      - name: pfGray8
        value: VS_MAKE_VIDEO_ID(cfGray, stInteger, 8, 0, 0)
      - name: pfYUV440P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 0, 1)
      - name: pfYUV420P10
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 10, 1, 1)
      - name: pfYUV420P14
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 14, 1, 1)
      - name: pfYUV422P16
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 16, 1, 0)
      - name: pfRGB36
        value: VS_MAKE_VIDEO_ID(cfRGB, stInteger, 12, 0, 0)
      - name: pfRGBS
        value: VS_MAKE_VIDEO_ID(cfRGB, stFloat, 32, 0, 0)
      - name: pfGrayS
        value: VS_MAKE_VIDEO_ID(cfGray, stFloat, 32, 0, 0)
      - name: pfYUV411P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 2, 0)
      - name: pfYUV444P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 0, 0)
      - name: pfYUV444P12
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 12, 0, 0)
      - name: pfYUV420P12
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 12, 1, 1)
      - name: pfYUV420P16
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 16, 1, 1)
      - name: pfYUV444PS
        value: VS_MAKE_VIDEO_ID(cfYUV, stFloat, 32, 0, 0)
      - name: pfRGB30
        value: VS_MAKE_VIDEO_ID(cfRGB, stInteger, 10, 0, 0)
      - name: pfRGBH
        value: VS_MAKE_VIDEO_ID(cfRGB, stFloat, 16, 0, 0)
      - name: pfGrayH
        value: VS_MAKE_VIDEO_ID(cfGray, stFloat, 16, 0, 0)
      - name: pfYUV410P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 2, 2)
      - name: pfYUV422P8
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 8, 1, 0)
      - name: pfYUV422P12
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 12, 1, 0)
      - name: pfYUV444P10
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 10, 0, 0)
      - name: pfYUV444P14
        value: VS_MAKE_VIDEO_ID(cfYUV, stInteger, 14, 0, 0)
      - name: pfYUV444PH
        value: VS_MAKE_VIDEO_ID(cfYUV, stFloat, 16, 0, 0)
      - name: pfRGB24
        value: VS_MAKE_VIDEO_ID(cfRGB, stInteger, 8, 0, 0)
      - name: pfRGB48
        value: VS_MAKE_VIDEO_ID(cfRGB, stInteger, 16, 0, 0)
      item_type: enum
      name: VSPresetFormat
      pos:
        line_end: 137
        line_start: 93
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: fmParallel
        value: '0'
      - name: fmParallelRequests
        value: '1'
      - name: fmUnordered
        value: '2'
      - name: fmFrameState
        value: '3'
      item_type: enum
      name: VSFilterMode
      pos:
        line_end: 147
        line_start: 142
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: mtVideo
        value: '1'
      - name: mtAudio
        value: '2'
      item_type: enum
      name: VSMediaType
      pos:
        line_end: 152
        line_start: 149
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: acFrontCenter
        value: '2'
      - name: acFrontLeftOFCenter
        value: '6'
      - name: acSideRight
        value: '10'
      - name: acStereoLeft
        value: '29'
      - name: acTopFrontRight
        value: '14'
      - name: acSurroundDirectLeft
        value: '33'
      - name: acFrontLeft
        value: '0'
      - name: acLowFrequency
        value: '3'
      - name: acFrontRightOFCenter
        value: '7'
      - name: acTopBackLeft
        value: '15'
      - name: acTopCenter
        value: '11'
      - name: acStereoRight
        value: '30'
      - name: acSurroundDirectRight
        value: '34'
      - name: acBackLeft
        value: '4'
      - name: acBackCenter
        value: '8'
      - name: acTopBackCenter
        value: '16'
      - name: acTopFrontLeft
        value: '12'
      - name: acWideLeft
        value: '31'
      - name: acLowFrequency2
        value: '35'
      - name: acFrontRight
        value: '1'
      - name: acBackRight
        value: '5'
      - name: acSideLeft
        value: '9'
      - name: acTopFrontCenter
        value: '13'
      - name: acTopBackRight
        value: '17'
      - name: acWideRight
        value: '32'
      item_type: enum
      name: VSAudioChannels
      pos:
        line_end: 192
        line_start: 166
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: ffStrictSpatial
        value: '1'
      item_type: enum
      name: VSFilterFlags
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: ptUnset
        value: '0'
      - name: ptData
        value: '3'
      - name: ptFunction
        value: '4'
      - name: ptInt
        value: '1'
      - name: ptFloat
        value: '2'
      - name: ptVideoNode
        value: '5'
      - name: ptAudioNode
        value: '6'
      - name: ptVideoFrame
        value: '7'
      - name: ptAudioFrame
        value: '8'
      item_type: enum
      name: VSPropertyType
      pos:
        line_end: 216
        line_start: 206
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: peSuccess
        value: '0'
      - name: peUnset
        value: '1'
      - name: peType
        value: '2'
      - name: peIndex
        value: '4'
      - name: peError
        value: '3'
      item_type: enum
      name: VSMapPropertyError
      pos:
        line_end: 224
        line_start: 218
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: maReplace
        value: '0'
      - name: maAppend
        value: '1'
      item_type: enum
      name: VSMapAppendMode
      pos:
        line_end: 229
        line_start: 226
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: arInitial
        value: '0'
      - name: arError
        value: '-1'
      - name: arAllFramesReady
        value: '1'
      item_type: enum
      name: VSActivationReason
      pos:
        line_end: 260
        line_start: 256
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: mtDebug
        value: '0'
      - name: mtWarning
        value: '2'
      - name: mtInformation
        value: '1'
      - name: mtCritical
        value: '3'
      - name: mtFatal
        value: '4'
      item_type: enum
      name: VSMessageType
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: ccfEnableGraphInspection
        value: '1'
      - name: ccfDisableAutoLoading
        value: '2'
      - name: ccfDisableLibraryUnloading
        value: '4'
      item_type: enum
      name: VSCoreCreationFlags
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: pcModifiable
        value: '1'
      item_type: enum
      name: VSPluginConfigFlags
      pos:
        line_end: 278
        line_start: 276
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: dtUnknown
        value: '-1'
      - name: dtUtf8
        value: '1'
      - name: dtBinary
        value: '0'
      item_type: enum
      name: VSDataTypeHint
      pos:
        line_end: 284
        line_start: 280
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - enumerators:
      - name: rpGeneral
        value: '0'
      - name: rpStrictSpatial
        value: '2'
      - name: rpNoFrameReuse
        value: '1'
      item_type: enum
      name: VSRequestPattern
      pos:
        line_end: 290
        line_start: 286
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    preproc_defs:
    - item_type: preproc_def
      name: VAPOURSYNTH_API_MAJOR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VAPOURSYNTH_API_MINOR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VAPOURSYNTH_API_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: VS_MAKE_VERSION(VAPOURSYNTH_API_MAJOR, VAPOURSYNTH_API_MINOR)
    - item_type: preproc_def
      name: VS_AUDIO_FRAME_SAMPLES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: '3072'
    - item_type: preproc_def
      name: VS_EXTERN_C
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: VS_NOEXCEPT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: noexcept
    - item_type: preproc_def
      name: VS_CC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type_or_value: __stdcall
    structs:
    - fields:
      - name: colorFamily
        type: int
      - name: sampleType
        type: int
      - name: bitsPerSample
        type: int
      - name: bytesPerSample
        type: int
      - name: subSamplingW
        type: int
      - name: subSamplingH
        type: int
      - name: numPlanes
        type: int
      item_type: struct
      name: VSVideoFormat
      pos:
        line_end: 164
        line_start: 154
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: sampleType
        type: int
      - name: bitsPerSample
        type: int
      - name: bytesPerSample
        type: int
      - name: numChannels
        type: int
      - name: channelLayout
        type: uint64_t
      item_type: struct
      name: VSAudioFormat
      pos:
        line_end: 200
        line_start: 194
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: '*versionString'
        type: char
      - name: core
        type: int
      - name: api
        type: int
      - name: numThreads
        type: int
      - name: maxFramebufferSize
        type: int64_t
      - name: usedFramebufferSize
        type: int64_t
      item_type: struct
      name: VSCoreInfo
      pos:
        line_end: 238
        line_start: 231
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: format
        type: VSVideoFormat
      - name: fpsNum
        type: int64_t
      - name: fpsDen
        type: int64_t
      - name: width
        type: int
      - name: height
        type: int
      - name: numFrames
        type: int
      item_type: struct
      name: VSVideoInfo
      pos:
        line_end: 247
        line_start: 240
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: format
        type: VSAudioFormat
      - name: sampleRate
        type: int
      - name: numSamples
        type: int64_t
      - name: numFrames
        type: int
      item_type: struct
      name: VSAudioInfo
      pos:
        line_end: 254
        line_start: 249
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: (VS_CC *getAPIVersion)(void)
        type: int
      - name: (VS_CC *configPlugin)(const char *identifier, const char *pluginNamespace,
          const char *name, int pluginVersion, int apiVersion, int flags, VSPlugin
          *plugin)
        type: int
      - name: (VS_CC *registerFunction)(const char *name, const char *args, const
          char *returnType, VSPublicFunction argsFunc, void *functionData, VSPlugin
          *plugin)
        type: int
      item_type: struct
      name: VSPLUGINAPI
      pos:
        line_end: 311
        line_start: 307
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: '*source'
        type: VSNode
      - name: requestPattern
        type: int
      item_type: struct
      name: VSFilterDependency
      pos:
        line_end: 316
        line_start: 313
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    - fields:
      - name: (VS_CC *createVideoFilter)(VSMap *out, const char *name, const VSVideoInfo
          *vi, VSFilterGetFrame getFrame, VSFilterFree free, int filterMode, const
          VSFilterDependency *dependencies, int numDeps, void *instanceData, VSCore
          *core)
        type: void
      - name: '*(VS_CC *createVideoFilter2)(const char *name, const VSVideoInfo *vi,
          VSFilterGetFrame getFrame, VSFilterFree free, int filterMode, const VSFilterDependency
          *dependencies, int numDeps, void *instanceData, VSCore *core)'
        type: VSNode
      - name: (VS_CC *createAudioFilter)(VSMap *out, const char *name, const VSAudioInfo
          *ai, VSFilterGetFrame getFrame, VSFilterFree free, int filterMode, const
          VSFilterDependency *dependencies, int numDeps, void *instanceData, VSCore
          *core)
        type: void
      - name: '*(VS_CC *createAudioFilter2)(const char *name, const VSAudioInfo *ai,
          VSFilterGetFrame getFrame, VSFilterFree free, int filterMode, const VSFilterDependency
          *dependencies, int numDeps, void *instanceData, VSCore *core)'
        type: VSNode
      - name: (VS_CC *setLinearFilter)(VSNode *node)
        type: int
      - name: (VS_CC *setCacheMode)(VSNode *node, int mode)
        type: void
      - name: (VS_CC *setCacheOptions)(VSNode *node, int fixedSize, int maxSize, int
          maxHistorySize)
        type: void
      - name: (VS_CC *freeNode)(VSNode *node)
        type: void
      - name: '*(VS_CC *addNodeRef)(VSNode *node)'
        type: VSNode
      - name: (VS_CC *getNodeType)(VSNode *node)
        type: int
      - name: '*(VS_CC *getVideoInfo)(VSNode *node)'
        type: VSVideoInfo
      - name: '*(VS_CC *getAudioInfo)(VSNode *node)'
        type: VSAudioInfo
      - name: '*(VS_CC *newVideoFrame)(const VSVideoFormat *format, int width, int
          height, const VSFrame *propSrc, VSCore *core)'
        type: VSFrame
      - name: '*(VS_CC *newVideoFrame2)(const VSVideoFormat *format, int width, int
          height, const VSFrame **planeSrc, const int *planes, const VSFrame *propSrc,
          VSCore *core)'
        type: VSFrame
      - name: '*(VS_CC *newAudioFrame)(const VSAudioFormat *format, int numSamples,
          const VSFrame *propSrc, VSCore *core)'
        type: VSFrame
      - name: '*(VS_CC *newAudioFrame2)(const VSAudioFormat *format, int numSamples,
          const VSFrame **channelSrc, const int *channels, const VSFrame *propSrc,
          VSCore *core)'
        type: VSFrame
      - name: (VS_CC *freeFrame)(const VSFrame *f)
        type: void
      - name: '*(VS_CC *addFrameRef)(const VSFrame *f)'
        type: VSFrame
      - name: '*(VS_CC *copyFrame)(const VSFrame *f, VSCore *core)'
        type: VSFrame
      - name: '*(VS_CC *getFramePropertiesRO)(const VSFrame *f)'
        type: VSMap
      - name: '*(VS_CC *getFramePropertiesRW)(VSFrame *f)'
        type: VSMap
      - name: (VS_CC *getStride)(const VSFrame *f, int plane)
        type: ptrdiff_t
      - name: '*(VS_CC *getReadPtr)(const VSFrame *f, int plane)'
        type: uint8_t
      - name: '*(VS_CC *getWritePtr)(VSFrame *f, int plane)'
        type: uint8_t
      - name: '*(VS_CC *getVideoFrameFormat)(const VSFrame *f)'
        type: VSVideoFormat
      - name: '*(VS_CC *getAudioFrameFormat)(const VSFrame *f)'
        type: VSAudioFormat
      - name: (VS_CC *getFrameType)(const VSFrame *f)
        type: int
      - name: (VS_CC *getFrameWidth)(const VSFrame *f, int plane)
        type: int
      - name: (VS_CC *getFrameHeight)(const VSFrame *f, int plane)
        type: int
      - name: (VS_CC *getFrameLength)(const VSFrame *f)
        type: int
      - name: (VS_CC *getVideoFormatName)(const VSVideoFormat *format, char *buffer)
        type: int
      - name: (VS_CC *getAudioFormatName)(const VSAudioFormat *format, char *buffer)
        type: int
      - name: (VS_CC *queryVideoFormat)(VSVideoFormat *format, int colorFamily, int
          sampleType, int bitsPerSample, int subSamplingW, int subSamplingH, VSCore
          *core)
        type: int
      - name: (VS_CC *queryAudioFormat)(VSAudioFormat *format, int sampleType, int
          bitsPerSample, uint64_t channelLayout, VSCore *core)
        type: int
      - name: (VS_CC *queryVideoFormatID)(int colorFamily, int sampleType, int bitsPerSample,
          int subSamplingW, int subSamplingH, VSCore *core)
        type: uint32_t
      - name: (VS_CC *getVideoFormatByID)(VSVideoFormat *format, uint32_t id, VSCore
          *core)
        type: int
      - name: '*(VS_CC *getFrame)(int n, VSNode *node, char *errorMsg, int bufSize)'
        type: VSFrame
      - name: (VS_CC *getFrameAsync)(int n, VSNode *node, VSFrameDoneCallback callback,
          void *userData)
        type: void
      - name: '*(VS_CC *getFrameFilter)(int n, VSNode *node, VSFrameContext *frameCtx)'
        type: VSFrame
      - name: (VS_CC *requestFrameFilter)(int n, VSNode *node, VSFrameContext *frameCtx)
        type: void
      - name: (VS_CC *releaseFrameEarly)(VSNode *node, int n, VSFrameContext *frameCtx)
        type: void
      - name: (VS_CC *cacheFrame)(const VSFrame *frame, int n, VSFrameContext *frameCtx)
        type: void
      - name: (VS_CC *setFilterError)(const char *errorMessage, VSFrameContext *frameCtx)
        type: void
      - name: '*(VS_CC *createFunction)(VSPublicFunction func, void *userData, VSFreeFunctionData
          free, VSCore *core)'
        type: VSFunction
      - name: (VS_CC *freeFunction)(VSFunction *f)
        type: void
      - name: '*(VS_CC *addFunctionRef)(VSFunction *f)'
        type: VSFunction
      - name: (VS_CC *callFunction)(VSFunction *func, const VSMap *in, VSMap *out)
        type: void
      - name: '*(VS_CC *createMap)(void)'
        type: VSMap
      - name: (VS_CC *freeMap)(VSMap *map)
        type: void
      - name: (VS_CC *clearMap)(VSMap *map)
        type: void
      - name: (VS_CC *copyMap)(const VSMap *src, VSMap *dst)
        type: void
      - name: (VS_CC *mapSetError)(VSMap *map, const char *errorMessage)
        type: void
      - name: '*(VS_CC *mapGetError)(const VSMap *map)'
        type: char
      - name: (VS_CC *mapNumKeys)(const VSMap *map)
        type: int
      - name: '*(VS_CC *mapGetKey)(const VSMap *map, int index)'
        type: char
      - name: (VS_CC *mapDeleteKey)(VSMap *map, const char *key)
        type: int
      - name: (VS_CC *mapNumElements)(const VSMap *map, const char *key)
        type: int
      - name: (VS_CC *mapGetType)(const VSMap *map, const char *key)
        type: int
      - name: (VS_CC *mapSetEmpty)(VSMap *map, const char *key, int type)
        type: int
      - name: (VS_CC *mapGetInt)(const VSMap *map, const char *key, int index, int
          *error)
        type: int64_t
      - name: (VS_CC *mapGetIntSaturated)(const VSMap *map, const char *key, int index,
          int *error)
        type: int
      - name: '*(VS_CC *mapGetIntArray)(const VSMap *map, const char *key, int *error)'
        type: int64_t
      - name: (VS_CC *mapSetInt)(VSMap *map, const char *key, int64_t i, int append)
        type: int
      - name: (VS_CC *mapSetIntArray)(VSMap *map, const char *key, const int64_t *i,
          int size)
        type: int
      - name: (VS_CC *mapGetFloat)(const VSMap *map, const char *key, int index, int
          *error)
        type: double
      - name: (VS_CC *mapGetFloatSaturated)(const VSMap *map, const char *key, int
          index, int *error)
        type: float
      - name: '*(VS_CC *mapGetFloatArray)(const VSMap *map, const char *key, int *error)'
        type: double
      - name: (VS_CC *mapSetFloat)(VSMap *map, const char *key, double d, int append)
        type: int
      - name: (VS_CC *mapSetFloatArray)(VSMap *map, const char *key, const double
          *d, int size)
        type: int
      - name: '*(VS_CC *mapGetData)(const VSMap *map, const char *key, int index,
          int *error)'
        type: char
      - name: (VS_CC *mapGetDataSize)(const VSMap *map, const char *key, int index,
          int *error)
        type: int
      - name: (VS_CC *mapGetDataTypeHint)(const VSMap *map, const char *key, int index,
          int *error)
        type: int
      - name: (VS_CC *mapSetData)(VSMap *map, const char *key, const char *data, int
          size, int type, int append)
        type: int
      - name: '*(VS_CC *mapGetNode)(const VSMap *map, const char *key, int index,
          int *error)'
        type: VSNode
      - name: (VS_CC *mapSetNode)(VSMap *map, const char *key, VSNode *node, int append)
        type: int
      - name: (VS_CC *mapConsumeNode)(VSMap *map, const char *key, VSNode *node, int
          append)
        type: int
      - name: '*(VS_CC *mapGetFrame)(const VSMap *map, const char *key, int index,
          int *error)'
        type: VSFrame
      - name: (VS_CC *mapSetFrame)(VSMap *map, const char *key, const VSFrame *f,
          int append)
        type: int
      - name: (VS_CC *mapConsumeFrame)(VSMap *map, const char *key, const VSFrame
          *f, int append)
        type: int
      - name: '*(VS_CC *mapGetFunction)(const VSMap *map, const char *key, int index,
          int *error)'
        type: VSFunction
      - name: (VS_CC *mapSetFunction)(VSMap *map, const char *key, VSFunction *func,
          int append)
        type: int
      - name: (VS_CC *mapConsumeFunction)(VSMap *map, const char *key, VSFunction
          *func, int append)
        type: int
      - name: (VS_CC *registerFunction)(const char *name, const char *args, const
          char *returnType, VSPublicFunction argsFunc, void *functionData, VSPlugin
          *plugin)
        type: int
      - name: '*(VS_CC *getPluginByID)(const char *identifier, VSCore *core)'
        type: VSPlugin
      - name: '*(VS_CC *getPluginByNamespace)(const char *ns, VSCore *core)'
        type: VSPlugin
      - name: '*(VS_CC *getNextPlugin)(VSPlugin *plugin, VSCore *core)'
        type: VSPlugin
      - name: '*(VS_CC *getPluginName)(VSPlugin *plugin)'
        type: char
      - name: '*(VS_CC *getPluginID)(VSPlugin *plugin)'
        type: char
      - name: '*(VS_CC *getPluginNamespace)(VSPlugin *plugin)'
        type: char
      - name: '*(VS_CC *getNextPluginFunction)(VSPluginFunction *func, VSPlugin *plugin)'
        type: VSPluginFunction
      - name: '*(VS_CC *getPluginFunctionByName)(const char *name, VSPlugin *plugin)'
        type: VSPluginFunction
      - name: '*(VS_CC *getPluginFunctionName)(VSPluginFunction *func)'
        type: char
      - name: '*(VS_CC *getPluginFunctionArguments)(VSPluginFunction *func)'
        type: char
      - name: '*(VS_CC *getPluginFunctionReturnType)(VSPluginFunction *func)'
        type: char
      - name: '*(VS_CC *getPluginPath)(const VSPlugin *plugin)'
        type: char
      - name: (VS_CC *getPluginVersion)(const VSPlugin *plugin)
        type: int
      - name: '*(VS_CC *invoke)(VSPlugin *plugin, const char *name, const VSMap *args)'
        type: VSMap
      - name: '*(VS_CC *createCore)(int flags)'
        type: VSCore
      - name: (VS_CC *freeCore)(VSCore *core)
        type: void
      - name: (VS_CC *setMaxCacheSize)(int64_t bytes, VSCore *core)
        type: int64_t
      - name: (VS_CC *setThreadCount)(int threads, VSCore *core)
        type: int
      - name: (VS_CC *getCoreInfo)(VSCore *core, VSCoreInfo *info)
        type: void
      - name: (VS_CC *getAPIVersion)(void)
        type: int
      - name: (VS_CC *logMessage)(int msgType, const char *msg, VSCore *core)
        type: void
      - name: '*(VS_CC *addLogHandler)(VSLogHandler handler, VSLogHandlerFree free,
          void *userData, VSCore *core)'
        type: VSLogHandle
      - name: (VS_CC *removeLogHandler)(VSLogHandle *handle, VSCore *core)
        type: int
      - name: '*(VS_CC *getNodeCreationFunctionName)(VSNode *node, int level)'
        type: char
      - name: '*(VS_CC *getNodeCreationFunctionArguments)(VSNode *node, int level)'
        type: VSMap
      - name: '*(VS_CC *getNodeName)(VSNode *node)'
        type: char
      - name: (VS_CC *getNodeFilterMode)(VSNode *node)
        type: int
      - name: (VS_CC *getNodeFilterTime)(VSNode *node)
        type: int64_t
      - name: '*(VS_CC *getNodeDependencies)(VSNode *node)'
        type: VSFilterDependency
      - name: (VS_CC *getNumNodeDependencies)(VSNode *node)
        type: int
      item_type: struct
      name: VSAPI
      pos:
        line_end: 471
        line_start: 318
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
    typedefs:
    - item_type: typedef
      name: VSFrame
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSFrame
    - item_type: typedef
      name: VSNode
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSNode
    - item_type: typedef
      name: VSCore
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSCore
    - item_type: typedef
      name: VSPlugin
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSPlugin
    - item_type: typedef
      name: VSPluginFunction
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSPluginFunction
    - item_type: typedef
      name: VSFunction
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSFunction
    - item_type: typedef
      name: VSMap
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSMap
    - item_type: typedef
      name: VSLogHandle
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSLogHandle
    - item_type: typedef
      name: VSFrameContext
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSFrameContext
    - item_type: typedef
      name: VSPLUGINAPI
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSPLUGINAPI
    - item_type: typedef
      name: VSAPI
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSAPI
    - item_type: typedef
      name: '*(VS_CC *VSGetVapourSynthAPI)(int version)'
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSAPI
    - item_type: typedef
      name: (VS_CC *VSPublicFunction)(const VSMap *in, VSMap *out, void *userData,
        VSCore *core, const VSAPI *vsapi)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: (VS_CC *VSInitPlugin)(VSPlugin *plugin, const VSPLUGINAPI *vspapi)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: (VS_CC *VSFreeFunctionData)(void *userData)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: '*(VS_CC *VSFilterGetFrame)(int n, int activationReason, void *instanceData,
        void **frameData, VSFrameContext *frameCtx, VSCore *core, const VSAPI *vsapi)'
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: VSFrame
    - item_type: typedef
      name: (VS_CC *VSFilterFree)(void *instanceData, VSCore *core, const VSAPI *vsapi)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: (VS_CC *VSFrameDoneCallback)(void *userData, const VSFrame *f, int n,
        VSNode *node, const char *errorMsg)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: (VS_CC *VSLogHandler)(int msgType, const char *msg, void *userData)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    - item_type: typedef
      name: (VS_CC *VSLogHandlerFree)(void *userData)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/ffms2/src/vapoursynth/VapourSynth4.h
      type: void
    union: []
- function_names:
  - GetNumPixFmts
  - IsRealNativeEndianPlanar
  - GetSampleType
  - HasAlpha
  - GetColorFamily
  - FormatConversionToPixelFormat
  - FormatConversionToVS
  - VSVideoSource4::GetVSFrame
  - VSVideoSource4::GetFrame
  - VSVideoSource4::Free
  - VSVideoSource4::VSVideoSource4
  - VSVideoSource4::~VSVideoSource4()
  - VSVideoSource4::GetVideoInfo
  - VSVideoSource4::SetCacheThreshold
  - VSVideoSource4::InitOutputFormat
  - VSVideoSource4::OutputFrame
  - VSVideoSource4::OutputAlphaFrame
  source_file: /src/ffms2/src/vapoursynth/vapoursource4.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH_ALIGNED_MALLOC
  - VSH_ALIGNED_FREE
  - VSH_ALIGNED_MALLOC
  - VSH_ALIGNED_FREE
  - VSMAX
  - VSMIN
  - vsh_aligned_malloc
  - vsh_aligned_free
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  - VSH4_MANGLE_FUNCTION_NAME
  source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VSH_STD_PLUGIN_ID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: '"com.vapoursynth.std"'
    - item_type: preproc_def
      name: VSH_RESIZE_PLUGIN_ID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: '"com.vapoursynth.resize"'
    - item_type: preproc_def
      name: VSH_TEXT_PLUGIN_ID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: '"com.vapoursynth.text"'
    - item_type: preproc_def
      name: VSH4_BOOLEAN_TYPE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: bool
    - item_type: preproc_def
      name: VSH4_BOOLEAN_TYPE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: int
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: _inline
    - item_type: preproc_def
      name: VS_RESTRICT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: restrict
    - item_type: preproc_def
      name: VS_RESTRICT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/ffms2/src/vapoursynth/VSHelper4.h
      type_or_value: __restrict
    structs: []
    typedefs: []
    union: []
- function_names:
  - CreateIndex
  - CreateSource
  - GetLogLevel
  - SetLogLevel
  - GetVersion
  - VapourSynthPluginInit2
  source_file: /src/ffms2/src/vapoursynth/vapoursynth4.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ErrorInfo
  - AvisynthVideoSource::SetCacheHints
  - '& __stdcall GetVideoInfo()'
  - AvisynthVideoSource::GetAudio
  - AvisynthAudioSource::GetParity
  - AvisynthAudioSource::SetCacheHints
  - '& __stdcall GetVideoInfo()'
  - AvisynthAudioSource::GetFrame
  source_file: /src/ffms2/src/avisynth/avssources.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ErrorBuffer[1024]
        type: char
      item_type: struct
      name: ErrorInfo
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/ffms2/src/avisynth/avssources.h
    typedefs: []
    union: []
- function_names:
  - CreateFFIndex
  - CreateFFVideoSource
  - CreateFFAudioSource
  - CreateFFmpegSource2
  - CreateFFImageSource
  - CreateFFCopyrightInfringement
  - FFGetLogLevel
  - FFSetLogLevel
  - FFGetVersion
  - AvisynthPluginInit3
  source_file: /src/ffms2/src/avisynth/avisynth.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AVS_EXPORT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/ffms2/src/avisynth/avisynth.cpp
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: AVS_EXPORT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/ffms2/src/avisynth/avisynth.cpp
      type_or_value: __attribute__((visibility("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - CSNameToPIXFMT
  - AvisynthVideoSource::AvisynthVideoSource
  - AvisynthVideoSource::~AvisynthVideoSource()
  - GetSubSamplingH
  - GetSubSamplingW
  - AvisynthVideoSource::InitOutputFormat
  - BlitPlane
  - AvisynthVideoSource::OutputFrame
  - BlitField
  - AvisynthVideoSource::OutputField
  - AvisynthVideoSource::GetFrame
  - AvisynthVideoSource::GetParity
  - AvisynthAudioSource::AvisynthAudioSource
  - AvisynthAudioSource::~AvisynthAudioSource()
  - AvisynthAudioSource::GetAudio
  source_file: /src/ffms2/src/avisynth/avssources.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFMS_API
  - FFMS_DEPRECATED_API
  - FFMS_API
  - FFMS_DEPRECATED_API
  - FFMS_API
  - FFMS_DEPRECATED_API
  - FFMS_API
  - FFMS_DEPRECATED_API
  source_file: /src/ffms2/include/ffms.h
  types:
    enum:
    - enumerators:
      - name: FFMS_ERROR_USER
      - name: FFMS_ERROR_FILE_MISMATCH
      - name: FFMS_ERROR_INDEX
        value: '1'
      - name: FFMS_ERROR_POSTPROCESSING
      - name: FFMS_ERROR_DECODING
      - name: FFMS_ERROR_PARSER
      - name: FFMS_ERROR_WAVE_WRITER
      - name: FFMS_ERROR_UNSUPPORTED
      - name: FFMS_ERROR_FILE_WRITE
      - name: FFMS_ERROR_NO_FILE
      - name: FFMS_ERROR_ALLOCATION_FAILED
      - name: FFMS_ERROR_RESAMPLING
      - name: FFMS_ERROR_NOT_AVAILABLE
      - name: FFMS_ERROR_SUCCESS
        value: '0'
      - name: FFMS_ERROR_INDEXING
      - name: FFMS_ERROR_SCALING
      - name: FFMS_ERROR_SEEKING
      - name: FFMS_ERROR_TRACK
      - name: FFMS_ERROR_CANCELLED
      - name: FFMS_ERROR_FILE_READ
      - name: FFMS_ERROR_UNKNOWN
        value: '20'
      - name: FFMS_ERROR_VERSION
      - name: FFMS_ERROR_INVALID_ARGUMENT
      - name: FFMS_ERROR_CODEC
      item_type: enum
      name: FFMS_Errors
      pos:
        line_end: 131
        line_start: 101
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_SEEK_LINEAR_NO_RW
        value: '-1'
      - name: FFMS_SEEK_LINEAR
        value: '0'
      - name: FFMS_SEEK_UNSAFE
        value: '2'
      - name: FFMS_SEEK_NORMAL
        value: '1'
      - name: FFMS_SEEK_AGGRESSIVE
        value: '3'
      item_type: enum
      name: FFMS_SeekMode
      pos:
        line_end: 139
        line_start: 133
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_IEH_ABORT
        value: '0'
      - name: FFMS_IEH_STOP_TRACK
        value: '2'
      - name: FFMS_IEH_IGNORE
        value: '3'
      - name: FFMS_IEH_CLEAR_TRACK
        value: '1'
      item_type: enum
      name: FFMS_IndexErrorHandling
      pos:
        line_end: 146
        line_start: 141
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_TYPE_UNKNOWN
        value: '-1'
      - name: FFMS_TYPE_DATA
      - name: FFMS_TYPE_AUDIO
      - name: FFMS_TYPE_VIDEO
      - name: FFMS_TYPE_SUBTITLE
      - name: FFMS_TYPE_ATTACHMENT
      item_type: enum
      name: FFMS_TrackType
      pos:
        line_end: 155
        line_start: 148
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_FMT_U8
        value: '0'
      - name: FFMS_FMT_S16
      - name: FFMS_FMT_FLT
      - name: FFMS_FMT_S32
      - name: FFMS_FMT_DBL
      item_type: enum
      name: FFMS_SampleFormat
      pos:
        line_end: 163
        line_start: 157
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_CH_FRONT_RIGHT
        value: '0x00000002'
      - name: FFMS_CH_BACK_RIGHT
        value: '0x00000020'
      - name: FFMS_CH_SIDE_LEFT
        value: '0x00000200'
      - name: FFMS_CH_TOP_BACK_RIGHT
        value: '0x00020000'
      - name: FFMS_CH_TOP_FRONT_CENTER
        value: '0x00002000'
      - name: FFMS_CH_BACK_LEFT
        value: '0x00000010'
      - name: FFMS_CH_BACK_CENTER
        value: '0x00000100'
      - name: FFMS_CH_TOP_BACK_CENTER
        value: '0x00010000'
      - name: FFMS_CH_TOP_FRONT_LEFT
        value: '0x00001000'
      - name: FFMS_CH_STEREO_RIGHT
        value: '0x40000000'
      - name: FFMS_CH_FRONT_LEFT
        value: '0x00000001'
      - name: FFMS_CH_LOW_FREQUENCY
        value: '0x00000008'
      - name: FFMS_CH_FRONT_RIGHT_OF_CENTER
        value: '0x00000080'
      - name: FFMS_CH_TOP_CENTER
        value: '0x00000800'
      - name: FFMS_CH_TOP_BACK_LEFT
        value: '0x00008000'
      - name: FFMS_CH_FRONT_CENTER
        value: '0x00000004'
      - name: FFMS_CH_FRONT_LEFT_OF_CENTER
        value: '0x00000040'
      - name: FFMS_CH_SIDE_RIGHT
        value: '0x00000400'
      - name: FFMS_CH_TOP_FRONT_RIGHT
        value: '0x00004000'
      - name: FFMS_CH_STEREO_LEFT
        value: '0x20000000'
      item_type: enum
      name: FFMS_AudioChannel
      pos:
        line_end: 186
        line_start: 165
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_RESIZER_FAST_BILINEAR
        value: '0x0001'
      - name: FFMS_RESIZER_BILINEAR
        value: '0x0002'
      - name: FFMS_RESIZER_X
        value: '0x0008'
      - name: FFMS_RESIZER_POINT
        value: '0x0010'
      - name: FFMS_RESIZER_BICUBIC
        value: '0x0004'
      - name: FFMS_RESIZER_AREA
        value: '0x0020'
      - name: FFMS_RESIZER_BICUBLIN
        value: '0x0040'
      - name: FFMS_RESIZER_GAUSS
        value: '0x0080'
      - name: FFMS_RESIZER_SINC
        value: '0x0100'
      - name: FFMS_RESIZER_LANCZOS
        value: '0x0200'
      - name: FFMS_RESIZER_SPLINE
        value: '0x0400'
      item_type: enum
      name: FFMS_Resizers
      pos:
        line_end: 200
        line_start: 188
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_DELAY_NO_SHIFT
        value: '-3'
      - name: FFMS_DELAY_FIRST_VIDEO_TRACK
        value: '-1'
      - name: FFMS_DELAY_TIME_ZERO
        value: '-2'
      item_type: enum
      name: FFMS_AudioDelayModes
      pos:
        line_end: 206
        line_start: 202
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_GAP_FILL_AUTO
        value: '-1'
      - name: FFMS_GAP_FILL_DISABLED
        value: '0'
      - name: FFMS_GAP_FILL_ENABLED
        value: '-1'
      item_type: enum
      name: FFMS_AudioGapFillModes
      pos:
        line_end: 212
        line_start: 208
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_LOC_UNSPECIFIED
        value: '0'
      - name: FFMS_LOC_TOPLEFT
        value: '3'
      - name: FFMS_LOC_CENTER
        value: '2'
      - name: FFMS_LOC_LEFT
        value: '1'
      - name: FFMS_LOC_TOP
        value: '4'
      - name: FFMS_LOC_BOTTOMLEFT
        value: '5'
      - name: FFMS_LOC_BOTTOM
        value: '6'
      item_type: enum
      name: FFMS_ChromaLocations
      pos:
        line_end: 222
        line_start: 214
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_CR_UNSPECIFIED
        value: '0'
      - name: FFMS_CR_JPEG
        value: '2'
      - name: FFMS_CR_MPEG
        value: '1'
      item_type: enum
      name: FFMS_ColorRanges
      pos:
        line_end: 228
        line_start: 224
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_S3D_TYPE_2D
        value: '0'
      - name: FFMS_S3D_TYPE_TOPBOTTOM
      - name: FFMS_S3D_TYPE_SIDEBYSIDE
      - name: FFMS_S3D_TYPE_CHECKERBOARD
      - name: FFMS_S3D_TYPE_FRAMESEQUENCE
      - name: FFMS_S3D_TYPE_SIDEBYSIDE_QUINCUNX
      - name: FFMS_S3D_TYPE_LINES
      - name: FFMS_S3D_TYPE_COLUMNS
      item_type: enum
      name: FFMS_Stereo3DType
      pos:
        line_end: 239
        line_start: 230
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_S3D_FLAGS_INVERT
        value: '1'
      item_type: enum
      name: FFMS_Stereo3DFlags
      pos:
        line_end: 243
        line_start: 241
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_MIXING_COEFFICIENT_Q8
        value: '0'
      - name: FFMS_MIXING_COEFFICIENT_FLT
        value: '2'
      - name: FFMS_MIXING_COEFFICIENT_Q15
        value: '1'
      item_type: enum
      name: FFMS_MixingCoefficientType
      pos:
        line_end: 249
        line_start: 245
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_MATRIX_ENCODING_NONE
        value: '0'
      - name: FFMS_MATRIX_ENCODING_PRO_LOGIC_II
        value: '2'
      - name: FFMS_MATRIX_ENCODING_DOBLY
        value: '1'
      - name: FFMS_MATRIX_ENCODING_PRO_LOGIC_IIZ
        value: '4'
      - name: FFMS_MATRIX_ENCODING_PRO_LOGIC_IIX
        value: '3'
      - name: FFMS_MATRIX_ENCODING_DOLBY_EX
        value: '5'
      - name: FFMS_MATRIX_ENCODING_DOLBY_HEADPHONE
        value: '6'
      item_type: enum
      name: FFMS_MatrixEncoding
      pos:
        line_end: 259
        line_start: 251
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_RESAMPLE_FILTER_CUBIC
        value: '0'
      - name: FFMS_RESAMPLE_FILTER_KAISER
        value: '2'
      - name: FFMS_RESAMPLE_FILTER_SINC
        value: '1'
      item_type: enum
      name: FFMS_ResampleFilterType
      pos:
        line_end: 265
        line_start: 261
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_RESAMPLE_DITHER_NONE
        value: '0'
      - name: FFMS_RESAMPLE_DITHER_TRIANGULAR
        value: '2'
      - name: FFMS_RESAMPLE_DITHER_RECTANGULAR
        value: '1'
      - name: FFMS_RESAMPLE_DITHER_TRIANGULAR_HIGHPASS
        value: '3'
      - name: FFMS_RESAMPLE_DITHER_TRIANGULAR_NOISESHAPING
        value: '4'
      item_type: enum
      name: FFMS_AudioDitherMethod
      pos:
        line_end: 273
        line_start: 267
        source_file: /src/ffms2/include/ffms.h
    - enumerators:
      - name: FFMS_LOG_QUIET
        value: '-8'
      - name: FFMS_LOG_PANIC
        value: '0'
      - name: FFMS_LOG_ERROR
        value: '16'
      - name: FFMS_LOG_WARNING
        value: '24'
      - name: FFMS_LOG_FATAL
        value: '8'
      - name: FFMS_LOG_INFO
        value: '32'
      - name: FFMS_LOG_VERBOSE
        value: '40'
      - name: FFMS_LOG_DEBUG
        value: '48'
      - name: FFMS_LOG_TRACE
        value: '56'
      item_type: enum
      name: FFMS_LogLevels
      pos:
        line_end: 285
        line_start: 275
        source_file: /src/ffms2/include/ffms.h
    preproc_defs:
    - item_type: preproc_def
      name: FFMS_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/ffms2/include/ffms.h
      type_or_value: ((5 << 24) | (1 << 16) | (0 << 8) | 0)
    - item_type: preproc_def
      name: FFMS_EXTERN_C
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/ffms2/include/ffms.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: FFMS_CC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/ffms2/include/ffms.h
      type_or_value: __stdcall
    - item_type: preproc_def
      name: FFMS_DEPRECATED
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/ffms2/include/ffms.h
      type_or_value: __attribute__((deprecated))
    - item_type: preproc_def
      name: FFMS_DEPRECATED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/ffms2/include/ffms.h
      type_or_value: __declspec(deprecated)
    structs:
    - fields:
      - name: ErrorType
        type: int
      - name: SubType
        type: int
      - name: BufferSize
        type: int
      - name: '*Buffer'
        type: char
      item_type: struct
      name: FFMS_ErrorInfo
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: ChannelLayout
        type: int64_t
      - name: SampleFormat
        type: FFMS_SampleFormat
      - name: SampleRate
        type: int
      - name: MixingCoefficientType
        type: FFMS_MixingCoefficientType
      - name: CenterMixLevel
        type: double
      - name: SurroundMixLevel
        type: double
      - name: LFEMixLevel
        type: double
      - name: Normalize
        type: int
      - name: ForceResample
        type: int
      - name: ResampleFilterSize
        type: int
      - name: ResamplePhaseShift
        type: int
      - name: LinearInterpolation
        type: int
      - name: CutoffFrequencyRatio
        type: double
      - name: MatrixedStereoEncoding
        type: FFMS_MatrixEncoding
      - name: FilterType
        type: FFMS_ResampleFilterType
      - name: KaiserBeta
        type: int
      - name: DitherMethod
        type: FFMS_AudioDitherMethod
      item_type: struct
      name: FFMS_ResampleOptions
      pos:
        line_end: 305
        line_start: 287
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: '*Data[4]'
        type: uint8_t
      - name: Linesize[4]
        type: int
      - name: EncodedWidth
        type: int
      - name: EncodedHeight
        type: int
      - name: EncodedPixelFormat
        type: int
      - name: ScaledWidth
        type: int
      - name: ScaledHeight
        type: int
      - name: ConvertedPixelFormat
        type: int
      - name: KeyFrame
        type: int
      - name: RepeatPict
        type: int
      - name: InterlacedFrame
        type: int
      - name: TopFieldFirst
        type: int
      - name: PictType
        type: char
      - name: ColorSpace
        type: int
      - name: ColorRange
        type: int
      - name: ColorPrimaries
        type: int
      - name: TransferCharateristics
        type: int
      - name: ChromaLocation
        type: int
      - name: HasMasteringDisplayPrimaries
        type: int
      - name: MasteringDisplayPrimariesX[3]
        type: double
      - name: MasteringDisplayPrimariesY[3]
        type: double
      - name: MasteringDisplayWhitePointX
        type: double
      - name: MasteringDisplayWhitePointY
        type: double
      - name: HasMasteringDisplayLuminance
        type: int
      - name: MasteringDisplayMinLuminance
        type: double
      - name: MasteringDisplayMaxLuminance
        type: double
      - name: HasContentLightLevel
        type: int
      - name: ContentLightLevelMax
        type: unsigned int
      - name: ContentLightLevelAverage
        type: unsigned int
      - name: '*DolbyVisionRPU'
        type: uint8_t
      - name: DolbyVisionRPUSize
        type: int
      - name: '*HDR10Plus'
        type: uint8_t
      - name: HDR10PlusSize
        type: int
      - name: '*LeftEyeData[4]'
        type: uint8_t
      - name: LeftEyeLinesize[4]
        type: int
      - name: '*RightEyeData[4]'
        type: uint8_t
      - name: RightEyeLinesize[4]
        type: int
      item_type: struct
      name: FFMS_Frame
      pos:
        line_end: 358
        line_start: 308
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: Num
        type: int64_t
      - name: Den
        type: int64_t
      item_type: struct
      name: FFMS_TrackTimeBase
      pos:
        line_end: 363
        line_start: 360
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: PTS
        type: int64_t
      - name: RepeatPict
        type: int
      - name: KeyFrame
        type: int
      - name: OriginalPTS
        type: int64_t
      item_type: struct
      name: FFMS_FrameInfo
      pos:
        line_end: 370
        line_start: 365
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: FPSDenominator
        type: int
      - name: FPSNumerator
        type: int
      - name: RFFDenominator
        type: int
      - name: RFFNumerator
        type: int
      - name: NumFrames
        type: int
      - name: SARNum
        type: int
      - name: SARDen
        type: int
      - name: CropTop
        type: int
      - name: CropBottom
        type: int
      - name: CropLeft
        type: int
      - name: CropRight
        type: int
      - name: TopFieldFirst
        type: int
      - name: ColorSpace
        type: FFMS_DEPRECATED
      - name: ColorRange
        type: FFMS_DEPRECATED
      - name: FirstTime
        type: double
      - name: LastTime
        type: double
      - name: Rotation
        type: int
      - name: Stereo3DType
        type: int
      - name: Stereo3DFlags
        type: int
      - name: LastEndTime
        type: double
      - name: HasMasteringDisplayPrimaries
        type: int
      - name: MasteringDisplayPrimariesX[3]
        type: double
      - name: MasteringDisplayPrimariesY[3]
        type: double
      - name: MasteringDisplayWhitePointX
        type: double
      - name: MasteringDisplayWhitePointY
        type: double
      - name: HasMasteringDisplayLuminance
        type: int
      - name: MasteringDisplayMinLuminance
        type: double
      - name: MasteringDisplayMaxLuminance
        type: double
      - name: HasContentLightLevel
        type: int
      - name: ContentLightLevelMax
        type: unsigned int
      - name: ContentLightLevelAverage
        type: unsigned int
      - name: Flip
        type: int
      item_type: struct
      name: FFMS_VideoProperties
      pos:
        line_end: 408
        line_start: 372
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: SampleFormat
        type: int
      - name: SampleRate
        type: int
      - name: BitsPerSample
        type: int
      - name: Channels
        type: int
      - name: ChannelLayout
        type: int64_t
      - name: NumSamples
        type: int64_t
      - name: FirstTime
        type: double
      - name: LastTime
        type: double
      - name: LastEndTime
        type: double
      item_type: struct
      name: FFMS_AudioProperties
      pos:
        line_end: 421
        line_start: 410
        source_file: /src/ffms2/include/ffms.h
    - fields:
      - name: '*Key'
        type: char
      - name: '*Value'
        type: char
      item_type: struct
      name: FFMS_KeyValuePair
      pos:
        line_end: 426
        line_start: 423
        source_file: /src/ffms2/include/ffms.h
    typedefs:
    - item_type: typedef
      name: FFMS_VideoSource
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/ffms2/include/ffms.h
      type: FFMS_VideoSource
    - item_type: typedef
      name: FFMS_AudioSource
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/ffms2/include/ffms.h
      type: FFMS_AudioSource
    - item_type: typedef
      name: FFMS_Indexer
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/ffms2/include/ffms.h
      type: FFMS_Indexer
    - item_type: typedef
      name: FFMS_Index
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/ffms2/include/ffms.h
      type: FFMS_Index
    - item_type: typedef
      name: FFMS_Track
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/ffms2/include/ffms.h
      type: FFMS_Track
    - item_type: typedef
      name: (FFMS_CC *TIndexCallback)(int64_t Current, int64_t Total, void *ICPrivate)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/ffms2/include/ffms.h
      type: int
    union: []
- function_names:
  - VERSION_CHECK
  source_file: /src/ffms2/include/ffmscompat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
