]> git.sesse.net Git - ffmpeg/commit
smvjpegdec: merge into mjpegdec
authorAnton Khirnov <anton@khirnov.net>
Tue, 1 Dec 2020 18:32:00 +0000 (19:32 +0100)
committerAnton Khirnov <anton@khirnov.net>
Thu, 10 Dec 2020 09:07:09 +0000 (10:07 +0100)
commit19ce06423964627d553c7ee602fd5c73ca4b2135
tree7f04a8f1b6952d4d9005e2b064989e83e701a2b6
parente9a2a8777317d91af658f774c68442ac4aa726ec
smvjpegdec: merge into mjpegdec

SMVJPEG stores frames as slices of a big JPEG image. The decoder is
implemented as a wrapper that instantiates a full internal MJPEG
decoder, then forwards the decoded frames with offset data pointers.
This is unnecessarily complex and fragile, not supporting useful decoder
capabilities like direct rendering.

Re-implement the decoder inside the MJPEG decoder, which is accomplished
by returning each decoded frame multiple times, setting cropping
information appropriately on each instance.

One peculiar aspect of the previous design is that since
- the smvjpeg decoder returns one frame per input packet
- there are multiple frames in each packets (the aformentioned slices)
the demuxer needs to return each packet multiple times.
This is now also eliminated - the demuxer now returns each packet
exactly once, with the duration set to the number of frames it decodes
to.

This also removes one of the last remaining internal uses of the old
video decoding API.
MAINTAINERS
configure
libavcodec/Makefile
libavcodec/mjpegdec.c
libavcodec/mjpegdec.h
libavcodec/smvjpegdec.c [deleted file]
libavformat/wavdec.c
tests/ref/fate/smvjpeg