1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-12 19:18:44 +02:00
FFmpeg/tests/ref/vsynth
Andreas Rheinhardt bc109a53c7 avcodec/mpegpicture: Move mb_var, mc_mb_var and mb_mean to MpegEncCtx
These tables are only used by encoders and only for the current picture;
ergo they need not be put into the picture at all, but rather into
the encoder's context. They also don't need to be refcounted,
because there is only one owner.

In contrast to this, the earlier code refcounts them which
incurs unnecessary overhead. These references are not unreferenced
in ff_mpeg_unref_picture() (they are kept in order to have something
like a buffer pool), so that several buffers are kept at the same
time, although only one is needed, thereby wasting memory.

The code also propagates references to other pictures not part of
the pictures array (namely the copy of the current/next/last picture
in the MpegEncContext which get references of their own). These
references are not unreferenced in ff_mpeg_unref_picture() (the
buffers are probably kept in order to have something like a pool),
yet if the current picture is a B-frame, it gets unreferenced
at the end of ff_mpv_encode_picture() and its slot in the picture
array will therefore be reused the next time; but the copy of the
current picture also still has its references and therefore
these buffers will be made duplicated in order to make them writable
in the next call to ff_mpv_encode_picture(). This is of course
unnecessary.

Finally, ff_find_unused_picture() is supposed to just return
any unused picture and the code is supposed to work with it;
yet for the vsynth*-mpeg4-adap tests the result depends upon
the content of these buffers; given that this patchset
changes the content of these buffers (the initial content is now
the state of these buffers after encoding the last frame;
before this patch the buffers used came from the last picture
that occupied the same slot in the picture array) their ref-files
needed to be changed. This points to a bug somewhere (if one removes
the initialization, one gets uninitialized reads in
adaptive_quantization in ratecontrol.c).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-08-09 19:17:22 +02:00
..
vsynth1-amv
vsynth1-asv1
vsynth1-asv2
vsynth1-avui
vsynth1-bpp1
vsynth1-bpp15
vsynth1-cinepak
vsynth1-cljr
vsynth1-dnxhd-2k-hr-hq
vsynth1-dnxhd-4k-hr-lb
vsynth1-dnxhd-720p
vsynth1-dnxhd-720p-10bit
vsynth1-dnxhd-720p-hr-lb
vsynth1-dnxhd-720p-rd
vsynth1-dnxhd-1080i
vsynth1-dnxhd-1080i-10bit
vsynth1-dnxhd-1080i-colr
vsynth1-dnxhd-edge1-hr
vsynth1-dnxhd-edge2-hr
vsynth1-dnxhd-edge3-hr
vsynth1-dnxhd-hr-hq-mov
vsynth1-dnxhd-hr-lb-mov
vsynth1-dnxhd-hr-sq-mov
vsynth1-dnxhd-uhd-hr-sq
vsynth1-dv
vsynth1-dv-50
vsynth1-dv-411
vsynth1-dv-fhd
vsynth1-dv-hd
vsynth1-ffv1
vsynth1-ffv1-2pass avcodec/ffv1enc: Eliminate float/double from find_best_state() 2022-05-30 12:13:29 +02:00
vsynth1-ffv1-v0
vsynth1-ffv1-v3-bgr0
vsynth1-ffv1-v3-rgb48
vsynth1-ffv1-v3-yuv420p
vsynth1-ffv1-v3-yuv422p10
vsynth1-ffv1-v3-yuv444p16
vsynth1-ffvhuff
vsynth1-ffvhuff420p12
vsynth1-ffvhuff422p10left
vsynth1-ffvhuff444
vsynth1-ffvhuff444p16
vsynth1-flashsv
vsynth1-flashsv2
vsynth1-flv
vsynth1-h261
vsynth1-h261-trellis
vsynth1-h263
vsynth1-h263-obmc
vsynth1-h263p
vsynth1-huffyuv
vsynth1-huffyuvbgr24
vsynth1-huffyuvbgra
vsynth1-jpeg2000
vsynth1-jpeg2000-97
vsynth1-jpegls
vsynth1-ljpeg
vsynth1-mjpeg
vsynth1-mjpeg-422
vsynth1-mjpeg-444
vsynth1-mjpeg-huffman
vsynth1-mjpeg-trell
vsynth1-mjpeg-trell-huffman
vsynth1-mov-bgr24
vsynth1-mov-bpp15
vsynth1-mov-bpp16
vsynth1-mpeg1
vsynth1-mpeg1b
vsynth1-mpeg2
vsynth1-mpeg2-422 avcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb() 2022-07-09 21:05:02 +02:00
vsynth1-mpeg2-idct-int
vsynth1-mpeg2-ilace
vsynth1-mpeg2-ivlc-qprd
vsynth1-mpeg2-thread
vsynth1-mpeg2-thread-ivlc
vsynth1-mpeg4 avformat/movenc: enable compressorname for mp4 mode 2022-06-24 15:37:23 +08:00
vsynth1-mpeg4-adap avcodec/mpegpicture: Move mb_var, mc_mb_var and mb_mean to MpegEncCtx 2022-08-09 19:17:22 +02:00
vsynth1-mpeg4-adv
vsynth1-mpeg4-error
vsynth1-mpeg4-nr
vsynth1-mpeg4-nsse
vsynth1-mpeg4-qpel
vsynth1-mpeg4-qprd
vsynth1-mpeg4-rc
vsynth1-mpeg4-thread
vsynth1-mpng
vsynth1-msmpeg4
vsynth1-msmpeg4v2
vsynth1-msvideo1
vsynth1-prores
vsynth1-prores_444
vsynth1-prores_444_int
vsynth1-prores_int
vsynth1-prores_ks
vsynth1-qtrle
vsynth1-qtrlegray
vsynth1-r210
vsynth1-rgb
vsynth1-roqvideo
vsynth1-rv10
vsynth1-rv20
vsynth1-snow
vsynth1-snow-hpel
vsynth1-snow-ll
vsynth1-svq1
vsynth1-v210
vsynth1-v210-10
vsynth1-v308
vsynth1-v408
vsynth1-vc2-420p
vsynth1-vc2-420p10
vsynth1-vc2-420p12
vsynth1-vc2-422p
vsynth1-vc2-422p10
vsynth1-vc2-422p12
vsynth1-vc2-444p
vsynth1-vc2-444p10
vsynth1-vc2-444p12
vsynth1-vc2-t5_3
vsynth1-vc2-thaar
vsynth1-wmv1
vsynth1-wmv2
vsynth1-xface
vsynth1-y41p
vsynth1-yuv
vsynth1-yuv4
vsynth1-zlib
vsynth2-amv
vsynth2-asv1
vsynth2-asv2
vsynth2-avui
vsynth2-bpp1
vsynth2-bpp15
vsynth2-cinepak
vsynth2-cljr
vsynth2-dnxhd-2k-hr-hq
vsynth2-dnxhd-4k-hr-lb
vsynth2-dnxhd-720p
vsynth2-dnxhd-720p-10bit
vsynth2-dnxhd-720p-hr-lb
vsynth2-dnxhd-720p-rd
vsynth2-dnxhd-1080i
vsynth2-dnxhd-1080i-10bit
vsynth2-dnxhd-1080i-colr
vsynth2-dnxhd-edge1-hr
vsynth2-dnxhd-edge2-hr
vsynth2-dnxhd-edge3-hr
vsynth2-dnxhd-hr-hq-mov
vsynth2-dnxhd-hr-lb-mov
vsynth2-dnxhd-hr-sq-mov
vsynth2-dnxhd-uhd-hr-sq
vsynth2-dv
vsynth2-dv-50
vsynth2-dv-411
vsynth2-dv-fhd
vsynth2-dv-hd
vsynth2-ffv1
vsynth2-ffv1-2pass avcodec/ffv1enc: Eliminate float/double from find_best_state() 2022-05-30 12:13:29 +02:00
vsynth2-ffv1-v0
vsynth2-ffv1-v3-bgr0
vsynth2-ffv1-v3-rgb48
vsynth2-ffv1-v3-yuv420p
vsynth2-ffv1-v3-yuv422p10
vsynth2-ffv1-v3-yuv444p16
vsynth2-ffvhuff
vsynth2-ffvhuff420p12
vsynth2-ffvhuff422p10left
vsynth2-ffvhuff444
vsynth2-ffvhuff444p16
vsynth2-flashsv
vsynth2-flashsv2
vsynth2-flv
vsynth2-h261
vsynth2-h261-trellis
vsynth2-h263
vsynth2-h263-obmc
vsynth2-h263p
vsynth2-huffyuv
vsynth2-huffyuvbgr24
vsynth2-huffyuvbgra
vsynth2-jpeg2000
vsynth2-jpeg2000-97
vsynth2-jpegls
vsynth2-ljpeg
vsynth2-mjpeg
vsynth2-mjpeg-422
vsynth2-mjpeg-444
vsynth2-mjpeg-huffman
vsynth2-mjpeg-trell
vsynth2-mjpeg-trell-huffman
vsynth2-mov-bgr24
vsynth2-mov-bpp15
vsynth2-mov-bpp16
vsynth2-mpeg1
vsynth2-mpeg1b
vsynth2-mpeg2
vsynth2-mpeg2-422 avcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb() 2022-07-09 21:05:02 +02:00
vsynth2-mpeg2-idct-int
vsynth2-mpeg2-ilace
vsynth2-mpeg2-ivlc-qprd
vsynth2-mpeg2-thread
vsynth2-mpeg2-thread-ivlc
vsynth2-mpeg4 avformat/movenc: enable compressorname for mp4 mode 2022-06-24 15:37:23 +08:00
vsynth2-mpeg4-adap avcodec/mpegpicture: Move mb_var, mc_mb_var and mb_mean to MpegEncCtx 2022-08-09 19:17:22 +02:00
vsynth2-mpeg4-adv
vsynth2-mpeg4-error
vsynth2-mpeg4-nr
vsynth2-mpeg4-nsse
vsynth2-mpeg4-qpel
vsynth2-mpeg4-qprd
vsynth2-mpeg4-rc
vsynth2-mpeg4-thread
vsynth2-mpng
vsynth2-msmpeg4
vsynth2-msmpeg4v2
vsynth2-msvideo1
vsynth2-prores
vsynth2-prores_444
vsynth2-prores_444_int
vsynth2-prores_int
vsynth2-prores_ks
vsynth2-qtrle
vsynth2-qtrlegray
vsynth2-r210
vsynth2-rgb
vsynth2-roqvideo
vsynth2-rv10
vsynth2-rv20
vsynth2-snow
vsynth2-snow-hpel
vsynth2-snow-ll
vsynth2-svq1
vsynth2-v210
vsynth2-v210-10
vsynth2-v308
vsynth2-v408
vsynth2-vc2-420p
vsynth2-vc2-420p10
vsynth2-vc2-420p12
vsynth2-vc2-422p
vsynth2-vc2-422p10
vsynth2-vc2-422p12
vsynth2-vc2-444p
vsynth2-vc2-444p10
vsynth2-vc2-444p12
vsynth2-vc2-t5_3
vsynth2-vc2-thaar
vsynth2-wmv1
vsynth2-wmv2
vsynth2-xface
vsynth2-y41p
vsynth2-yuv
vsynth2-yuv4
vsynth2-zlib
vsynth3-amv
vsynth3-asv1
vsynth3-asv2
vsynth3-bpp1
vsynth3-bpp15
vsynth3-cljr
vsynth3-dnxhd-2k-hr-hq
vsynth3-dnxhd-4k-hr-lb
vsynth3-dnxhd-720p-hr-lb
vsynth3-dnxhd-1080i-10bit
vsynth3-dnxhd-1080i-colr
vsynth3-dnxhd-edge1-hr
vsynth3-dnxhd-edge2-hr
vsynth3-dnxhd-edge3-hr
vsynth3-dnxhd-hr-hq-mov
vsynth3-dnxhd-hr-lb-mov
vsynth3-dnxhd-hr-sq-mov
vsynth3-dnxhd-uhd-hr-sq
vsynth3-dv-fhd
vsynth3-dv-hd
vsynth3-ffv1
vsynth3-ffv1-2pass avcodec/ffv1enc: Eliminate float/double from find_best_state() 2022-05-30 12:13:29 +02:00
vsynth3-ffv1-v0
vsynth3-ffv1-v3-bgr0
vsynth3-ffv1-v3-rgb48
vsynth3-ffv1-v3-yuv420p
vsynth3-ffv1-v3-yuv422p10
vsynth3-ffv1-v3-yuv444p16
vsynth3-ffvhuff
vsynth3-ffvhuff420p12
vsynth3-ffvhuff422p10left
vsynth3-ffvhuff444
vsynth3-ffvhuff444p16
vsynth3-flashsv
vsynth3-flashsv2
vsynth3-flv
vsynth3-huffyuv
vsynth3-huffyuvbgr24
vsynth3-huffyuvbgra
vsynth3-jpeg2000
vsynth3-jpeg2000-97
vsynth3-jpegls
vsynth3-ljpeg
vsynth3-mjpeg
vsynth3-mjpeg-422
vsynth3-mjpeg-444
vsynth3-mjpeg-huffman
vsynth3-mjpeg-trell
vsynth3-mjpeg-trell-huffman
vsynth3-mov-bgr24
vsynth3-mov-bpp15
vsynth3-mov-bpp16
vsynth3-mpeg1
vsynth3-mpeg1b
vsynth3-mpeg2
vsynth3-mpeg2-422 avcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb() 2022-07-09 21:05:02 +02:00
vsynth3-mpeg2-idct-int
vsynth3-mpeg2-ilace
vsynth3-mpeg2-ivlc-qprd
vsynth3-mpeg2-thread
vsynth3-mpeg2-thread-ivlc
vsynth3-mpeg4 avformat/movenc: enable compressorname for mp4 mode 2022-06-24 15:37:23 +08:00
vsynth3-mpeg4-adap avcodec/mpegpicture: Move mb_var, mc_mb_var and mb_mean to MpegEncCtx 2022-08-09 19:17:22 +02:00
vsynth3-mpeg4-adv
vsynth3-mpeg4-error
vsynth3-mpeg4-nr
vsynth3-mpeg4-nsse
vsynth3-mpeg4-qpel
vsynth3-mpeg4-qprd
vsynth3-mpeg4-rc
vsynth3-mpeg4-thread
vsynth3-mpng
vsynth3-msmpeg4
vsynth3-msmpeg4v2
vsynth3-prores
vsynth3-prores_444
vsynth3-prores_444_int
vsynth3-prores_int
vsynth3-prores_ks
vsynth3-qtrle
vsynth3-r210
vsynth3-rgb
vsynth3-svq1
vsynth3-v210
vsynth3-v210-10
vsynth3-v308
vsynth3-v408
vsynth3-wmv1
vsynth3-wmv2
vsynth3-xface
vsynth3-yuv
vsynth3-yuv4
vsynth3-zlib
vsynth_lena-amv
vsynth_lena-asv1
vsynth_lena-asv2
vsynth_lena-avui
vsynth_lena-bpp1
vsynth_lena-bpp15
vsynth_lena-cinepak
vsynth_lena-cljr
vsynth_lena-dnxhd-2k-hr-hq
vsynth_lena-dnxhd-4k-hr-lb
vsynth_lena-dnxhd-720p
vsynth_lena-dnxhd-720p-10bit
vsynth_lena-dnxhd-720p-hr-lb
vsynth_lena-dnxhd-720p-rd
vsynth_lena-dnxhd-1080i
vsynth_lena-dnxhd-1080i-10bit
vsynth_lena-dnxhd-1080i-colr
vsynth_lena-dnxhd-edge1-hr
vsynth_lena-dnxhd-edge2-hr
vsynth_lena-dnxhd-edge3-hr
vsynth_lena-dnxhd-hr-hq-mov
vsynth_lena-dnxhd-hr-lb-mov
vsynth_lena-dnxhd-hr-sq-mov
vsynth_lena-dnxhd-uhd-hr-sq
vsynth_lena-dv
vsynth_lena-dv-50
vsynth_lena-dv-411
vsynth_lena-dv-fhd
vsynth_lena-dv-hd
vsynth_lena-ffv1
vsynth_lena-ffv1-2pass avcodec/ffv1enc: Eliminate float/double from find_best_state() 2022-05-30 12:13:29 +02:00
vsynth_lena-ffv1-v0
vsynth_lena-ffv1-v3-bgr0
vsynth_lena-ffv1-v3-rgb48
vsynth_lena-ffv1-v3-yuv420p
vsynth_lena-ffv1-v3-yuv422p10
vsynth_lena-ffv1-v3-yuv444p16
vsynth_lena-ffvhuff
vsynth_lena-ffvhuff420p12
vsynth_lena-ffvhuff422p10left
vsynth_lena-ffvhuff444
vsynth_lena-ffvhuff444p16
vsynth_lena-flashsv
vsynth_lena-flashsv2
vsynth_lena-flv
vsynth_lena-h261
vsynth_lena-h261-trellis
vsynth_lena-h263
vsynth_lena-h263-obmc
vsynth_lena-h263p
vsynth_lena-huffyuv
vsynth_lena-huffyuvbgr24
vsynth_lena-huffyuvbgra
vsynth_lena-jpeg2000
vsynth_lena-jpeg2000-97
vsynth_lena-jpegls
vsynth_lena-ljpeg
vsynth_lena-mjpeg
vsynth_lena-mjpeg-422
vsynth_lena-mjpeg-444
vsynth_lena-mjpeg-huffman
vsynth_lena-mjpeg-trell
vsynth_lena-mjpeg-trell-huffman
vsynth_lena-mov-bgr24
vsynth_lena-mov-bpp15
vsynth_lena-mov-bpp16
vsynth_lena-mpeg1
vsynth_lena-mpeg1b
vsynth_lena-mpeg2
vsynth_lena-mpeg2-422 avcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb() 2022-07-09 21:05:02 +02:00
vsynth_lena-mpeg2-idct-int
vsynth_lena-mpeg2-ilace
vsynth_lena-mpeg2-ivlc-qprd
vsynth_lena-mpeg2-thread
vsynth_lena-mpeg2-thread-ivlc
vsynth_lena-mpeg4 avformat/movenc: enable compressorname for mp4 mode 2022-06-24 15:37:23 +08:00
vsynth_lena-mpeg4-adap avcodec/mpegpicture: Move mb_var, mc_mb_var and mb_mean to MpegEncCtx 2022-08-09 19:17:22 +02:00
vsynth_lena-mpeg4-adv
vsynth_lena-mpeg4-error
vsynth_lena-mpeg4-nr
vsynth_lena-mpeg4-nsse
vsynth_lena-mpeg4-qpel
vsynth_lena-mpeg4-qprd
vsynth_lena-mpeg4-rc
vsynth_lena-mpeg4-thread
vsynth_lena-mpng
vsynth_lena-msmpeg4
vsynth_lena-msmpeg4v2
vsynth_lena-msvideo1
vsynth_lena-prores
vsynth_lena-prores_444
vsynth_lena-prores_444_int
vsynth_lena-prores_int
vsynth_lena-prores_ks
vsynth_lena-qtrle
vsynth_lena-qtrlegray
vsynth_lena-r210
vsynth_lena-rgb
vsynth_lena-roqvideo
vsynth_lena-rv10
vsynth_lena-rv20
vsynth_lena-snow
vsynth_lena-snow-hpel
vsynth_lena-snow-ll
vsynth_lena-svq1
vsynth_lena-v210
vsynth_lena-v210-10
vsynth_lena-v308
vsynth_lena-v408
vsynth_lena-vc2-420p
vsynth_lena-vc2-420p10
vsynth_lena-vc2-420p12
vsynth_lena-vc2-422p
vsynth_lena-vc2-422p10
vsynth_lena-vc2-422p12
vsynth_lena-vc2-444p
vsynth_lena-vc2-444p10
vsynth_lena-vc2-444p12
vsynth_lena-vc2-t5_3
vsynth_lena-vc2-thaar
vsynth_lena-wmv1
vsynth_lena-wmv2
vsynth_lena-xface
vsynth_lena-y41p
vsynth_lena-yuv
vsynth_lena-yuv4
vsynth_lena-zlib