ffmpeg/tests/ref/seek
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
..
acodec-adpcm-ima_qt
acodec-adpcm-ima_qt-trellis
acodec-adpcm-ima_wav
acodec-adpcm-ima_wav-trellis
acodec-adpcm-ms
acodec-adpcm-ms-trellis
acodec-adpcm-swf avcodec/adpcm_ima_swf: fix frame size to 4096 2020-11-07 23:43:26 +10:00
acodec-adpcm-swf-trellis avcodec/adpcm_ima_swf: fix frame size to 4096 2020-11-07 23:43:26 +10:00
acodec-adpcm-yamaha
acodec-adpcm-yamaha-trellis
acodec-alac avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
acodec-flac
acodec-mp2
acodec-pcm-alaw
acodec-pcm-f32be
acodec-pcm-f32le
acodec-pcm-f64be
acodec-pcm-f64le
acodec-pcm-mulaw
acodec-pcm-s8 avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
acodec-pcm-s16be avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
acodec-pcm-s16le
acodec-pcm-s24be avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
acodec-pcm-s24le
acodec-pcm-s32be avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
acodec-pcm-s32le
acodec-pcm-u8
cache-pipe
empty-edit-mp4
extra-mp3
extra-mp4 lavf/mov: Change default to prefer TFDT time and allow for fallback to SIDX or TFDT 2021-11-05 16:22:04 +01:00
lavf-aiff
lavf-al aviobuf: Increase the default SHORT_SEEK_THRESHOLD to 32 KB 2020-11-12 14:05:43 +02:00
lavf-asf
lavf-au
lavf-avi
lavf-bmp
lavf-dv avformat/dv: fix timestamps of audio packets in case of dropped corrupt audio frames 2020-12-06 18:09:24 +01:00
lavf-flv
lavf-gif
lavf-gxf
lavf-jpg
lavf-mkv avformat/matroskaenc: Don't waste bytes to Write Tag length fields 2022-06-20 23:42:28 +02:00
lavf-mmf
lavf-mov avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
lavf-mpg
lavf-mxf
lavf-mxf_d10
lavf-mxf_dv25
lavf-mxf_dvcpro50
lavf-mxf_opatom
lavf-mxf_opatom_audio
lavf-nut
lavf-ogg
lavf-pbmpipe
lavf-pcx
lavf-pgm
lavf-pgmpipe
lavf-ppm
lavf-ppmpipe
lavf-rm
lavf-sgi
lavf-swf
lavf-tga
lavf-tiff
lavf-ts
lavf-ul aviobuf: Increase the default SHORT_SEEK_THRESHOLD to 32 KB 2020-11-12 14:05:43 +02:00
lavf-voc
lavf-wav
lavf-wtv
lavf-y4m
mkv-codec-delay
test-iibbibb-mp4
test-iibbibb-neg-ctts-mp4
vsynth_lena-asv1
vsynth_lena-asv2
vsynth_lena-dnxhd-4k-hr-lb
vsynth_lena-dnxhd-720p
vsynth_lena-dnxhd-720p-rd
vsynth_lena-dnxhd-1080i avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
vsynth_lena-dv
vsynth_lena-dv-50
vsynth_lena-dv-411
vsynth_lena-ffv1
vsynth_lena-flashsv
vsynth_lena-flv
vsynth_lena-h261
vsynth_lena-h263
vsynth_lena-h263p
vsynth_lena-huffyuv
vsynth_lena-jpegls
vsynth_lena-ljpeg
vsynth_lena-mjpeg
vsynth_lena-mpeg1
vsynth_lena-mpeg1b
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: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03: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-msmpeg4
vsynth_lena-msmpeg4v2
vsynth_lena-rgb
vsynth_lena-roqvideo
vsynth_lena-rv10
vsynth_lena-rv20
vsynth_lena-snow
vsynth_lena-snow-ll
vsynth_lena-svq1 avformat/movenc: ensure we don't write the major brand as a compatible brand more than once 2019-12-21 11:57:28 -03:00
vsynth_lena-wmv1
vsynth_lena-wmv2
vsynth_lena-yuv