[FFmpeg-devel] [PATCH 20/20] cbs: Add some read/write tests

Mark Thompson sw at jkqxz.net
Mon Oct 9 22:03:35 EEST 2017


On 09/10/17 19:41, Michael Niedermayer wrote:
> On Sun, Oct 08, 2017 at 09:01:54PM +0100, Mark Thompson wrote:
>> Use the appropriate metadata filter for each codec - in the absence of any
>> options to modify the stream, the output bitstream should be identical to
>> the input (though the output file may differ in padding).
>>
>> All tests use conformance bitstreams, the MPEG-2 streams are newly added
>> from the conformance test streams
>> <http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_IEC_13818-4_2004_Conformance_Testing/Video/>
>> ---
>>  tests/Makefile                                |  1 +
>>  tests/fate/cbs.mak                            | 74 +++++++++++++++++++++++++++
>>  tests/ref/fate/cbs-h264-AUD_MW_E              |  1 +
>>  tests/ref/fate/cbs-h264-BASQP1_Sony_C         |  1 +
>>  tests/ref/fate/cbs-h264-CABACI3_Sony_B        |  1 +
>>  tests/ref/fate/cbs-h264-CVBS3_Sony_C          |  1 +
>>  tests/ref/fate/cbs-h264-CVFC1_Sony_C          |  1 +
>>  tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B     |  1 +
>>  tests/ref/fate/cbs-h264-CVNLFI1_Sony_C        |  1 +
>>  tests/ref/fate/cbs-h264-CVSE2_Sony_B          |  1 +
>>  tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E       |  1 +
>>  tests/ref/fate/cbs-h264-FM1_BT_B              |  1 +
>>  tests/ref/fate/cbs-h264-MR1_BT_A              |  1 +
>>  tests/ref/fate/cbs-h264-SVA_Base_B            |  1 +
>>  tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2     |  1 +
>>  tests/ref/fate/cbs-h264-sp1_bt_a              |  1 +
>>  tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3      |  1 +
>>  tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3      |  1 +
>>  tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1      |  1 +
>>  tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2       |  1 +
>>  tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1  |  1 +
>>  tests/ref/fate/cbs-hevc-NUT_A_ericsson_5      |  1 +
>>  tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1    |  1 +
>>  tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1    |  1 +
>>  tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4     |  1 +
>>  tests/ref/fate/cbs-hevc-RPS_A_docomo_4        |  1 +
>>  tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5      |  1 +
>>  tests/ref/fate/cbs-hevc-SLIST_A_Sony_4        |  1 +
>>  tests/ref/fate/cbs-hevc-SLIST_D_Sony_9        |  1 +
>>  tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5    |  1 +
>>  tests/ref/fate/cbs-hevc-TILES_B_Cisco_1       |  1 +
>>  tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2 |  1 +
>>  tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2 |  1 +
>>  tests/ref/fate/cbs-hevc-WP_A_Toshiba_3        |  1 +
>>  tests/ref/fate/cbs-hevc-ipcm_E_NEC_2          |  1 +
>>  tests/ref/fate/cbs-mpeg2-hhi_burst_422_short  |  1 +
>>  tests/ref/fate/cbs-mpeg2-sony-ct3             |  1 +
>>  tests/ref/fate/cbs-mpeg2-tcela-6              |  1 +
>>  38 files changed, 111 insertions(+)
>>  create mode 100644 tests/fate/cbs.mak
>>  create mode 100644 tests/ref/fate/cbs-h264-AUD_MW_E
>>  create mode 100644 tests/ref/fate/cbs-h264-BASQP1_Sony_C
>>  create mode 100644 tests/ref/fate/cbs-h264-CABACI3_Sony_B
>>  create mode 100644 tests/ref/fate/cbs-h264-CVBS3_Sony_C
>>  create mode 100644 tests/ref/fate/cbs-h264-CVFC1_Sony_C
>>  create mode 100644 tests/ref/fate/cbs-h264-CVMANL1_TOSHIBA_B
>>  create mode 100644 tests/ref/fate/cbs-h264-CVNLFI1_Sony_C
>>  create mode 100644 tests/ref/fate/cbs-h264-CVSE2_Sony_B
>>  create mode 100644 tests/ref/fate/cbs-h264-CVWP1_TOSHIBA_E
>>  create mode 100644 tests/ref/fate/cbs-h264-FM1_BT_B
>>  create mode 100644 tests/ref/fate/cbs-h264-MR1_BT_A
>>  create mode 100644 tests/ref/fate/cbs-h264-SVA_Base_B
>>  create mode 100644 tests/ref/fate/cbs-h264-Sharp_MP_PAFF_1r2
>>  create mode 100644 tests/ref/fate/cbs-h264-sp1_bt_a
>>  create mode 100644 tests/ref/fate/cbs-hevc-CAINIT_E_SHARP_3
>>  create mode 100644 tests/ref/fate/cbs-hevc-CAINIT_H_SHARP_3
>>  create mode 100644 tests/ref/fate/cbs-hevc-CONFWIN_A_Sony_1
>>  create mode 100644 tests/ref/fate/cbs-hevc-HRD_A_Fujitsu_2
>>  create mode 100644 tests/ref/fate/cbs-hevc-LTRPSPS_A_Qualcomm_1
>>  create mode 100644 tests/ref/fate/cbs-hevc-NUT_A_ericsson_5
>>  create mode 100644 tests/ref/fate/cbs-hevc-PICSIZE_A_Bossen_1
>>  create mode 100644 tests/ref/fate/cbs-hevc-PICSIZE_B_Bossen_1
>>  create mode 100644 tests/ref/fate/cbs-hevc-RPLM_A_qualcomm_4
>>  create mode 100644 tests/ref/fate/cbs-hevc-RPS_A_docomo_4
>>  create mode 100644 tests/ref/fate/cbs-hevc-RPS_E_qualcomm_5
>>  create mode 100644 tests/ref/fate/cbs-hevc-SLIST_A_Sony_4
>>  create mode 100644 tests/ref/fate/cbs-hevc-SLIST_D_Sony_9
>>  create mode 100644 tests/ref/fate/cbs-hevc-STRUCT_A_Samsung_5
>>  create mode 100644 tests/ref/fate/cbs-hevc-TILES_B_Cisco_1
>>  create mode 100644 tests/ref/fate/cbs-hevc-WPP_A_ericsson_MAIN_2
>>  create mode 100644 tests/ref/fate/cbs-hevc-WPP_F_ericsson_MAIN_2
>>  create mode 100644 tests/ref/fate/cbs-hevc-WP_A_Toshiba_3
>>  create mode 100644 tests/ref/fate/cbs-hevc-ipcm_E_NEC_2
>>  create mode 100644 tests/ref/fate/cbs-mpeg2-hhi_burst_422_short
>>  create mode 100644 tests/ref/fate/cbs-mpeg2-sony-ct3
>>  create mode 100644 tests/ref/fate/cbs-mpeg2-tcela-6
> 
> make V=2 fate-cbs-h264-FM1_BT_B
> appears to segfault
> Input #0, h264, from 'fate-suite//h264-conformance/FM1_BT_B.h264':
>   Duration: N/A, bitrate: N/A
>     Stream #0:0: Video: h264 (Baseline), yuv420p(progressive), 176x144, 25 fps, 25 tbr, 1200k tbn, 50 tbc
> File 'tests/data/fate/cbs-h264-FM1_BT_B.out' already exists. Exiting.
> ==14524==    at 0x11AE4C3: VALGRIND_PRINTF_BACKTRACE (valgrind.h:4550)
> ==14524==    by 0x11AEF33: av_log_default_callback (log.c:355)
> ==14524==    by 0x11AF0D2: av_vlog (log.c:383)
> ==14524==    by 0x11AF092: av_log (log.c:375)
> ==14524==    by 0x414A46: assert_file_overwrite (ffmpeg_opt.c:926)
> ==14524==    by 0x41C6F1: open_output_file (ffmpeg_opt.c:2559)
> ==14524==    by 0x41F0F9: open_files (ffmpeg_opt.c:3278)
> ==14524==    by 0x41F2FD: ffmpeg_parse_options (ffmpeg_opt.c:3332)
> ==14524==    by 0x43D1F6: main (ffmpeg.c:4786)
> ==14524== Invalid read of size 8
> ==14524==    at 0xE9CD1D: ff_cbs_close (cbs.c:85)
> ==14524==    by 0x9110F9: h264_metadata_close (h264_metadata_bsf.c:443)
> ==14524==    by 0x8333F7: av_bsf_free (bsf.c:44)
> ==14524==    by 0x42C1BA: ffmpeg_cleanup (ffmpeg.c:537)
> ==14524==    by 0x42483F: exit_program (cmdutils.c:138)
> ==14524==    by 0x414A50: assert_file_overwrite (ffmpeg_opt.c:927)
> ==14524==    by 0x41C6F1: open_output_file (ffmpeg_opt.c:2559)
> ==14524==    by 0x41F0F9: open_files (ffmpeg_opt.c:3278)
> ==14524==    by 0x41F2FD: ffmpeg_parse_options (ffmpeg_opt.c:3332)
> ==14524==    by 0x43D1F6: main (ffmpeg.c:4786)
> ==14524==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
> ==14524==
> ==14524==
> ==14524== Process terminating with default action of signal 11 (SIGSEGV)
> ==14524==  Access not within mapped region at address 0x8
> ==14524==    at 0xE9CD1D: ff_cbs_close (cbs.c:85)
> ==14524==    by 0x9110F9: h264_metadata_close (h264_metadata_bsf.c:443)
> ==14524==    by 0x8333F7: av_bsf_free (bsf.c:44)
> ==14524==    by 0x42C1BA: ffmpeg_cleanup (ffmpeg.c:537)
> ==14524==    by 0x42483F: exit_program (cmdutils.c:138)
> ==14524==    by 0x414A50: assert_file_overwrite (ffmpeg_opt.c:927)
> ==14524==    by 0x41C6F1: open_output_file (ffmpeg_opt.c:2559)
> ==14524==    by 0x41F0F9: open_files (ffmpeg_opt.c:3278)
> ==14524==    by 0x41F2FD: ffmpeg_parse_options (ffmpeg_opt.c:3332)
> ==14524==    by 0x43D1F6: main (ffmpeg.c:4786)
> ==14524==  If you believe this happened as a result of a stack
> ==14524==  overflow in your program's main thread (unlikely but
> ==14524==  possible), you can try to increase the size of the
> ==14524==  main thread stack using the --main-stacksize= flag.
> ==14524==  The main thread stack size used in this run was 8388608.

Right, I didn't rerun the tests after the extra change to metadata.  New versions for patches 3 and 8 to follow.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list