[FFmpeg-devel] [PATCH 02/10] crystalhd: Switch to new decode API and remove the insanity

Michael Niedermayer michael at niedermayer.cc
Thu Oct 27 16:06:08 EEST 2016


On Wed, Oct 26, 2016 at 12:40:20PM -0700, Philip Langdale wrote:
> The new decode API allows for m:n decode patterns, which is what
> you need to use this hardware in a sane way. There are so many
> situations where 1:1 doesn't happen naturally that it's a miracle
> I got it working as well as I did.
> 
> With this change, we can throw all of the crazy heuristics and
> sleeps(!) out, and things work correctly.
> 
> Small issue - mpv (at least) expects that every output call after
> input EOF returns a frame or is the end of the stream - this is not
> behaviour we can offer - sometimes we have separate fields that
> require two calls to collect and combine.
> 
> Trying to do a tight loop in the decoder to get the second field
> requires restoring some heuristics to avoid dead-locking when
> additional input is required to get additional output.
> 
> Signed-off-by: Philip Langdale <philipl at overt.org>
> ---
>  libavcodec/crystalhd.c | 480 +++++++++++++------------------------------------
>  libavcodec/version.h   |   2 +-
>  2 files changed, 126 insertions(+), 356 deletions(-)

breaks fate:

./configure && make -j12 fate-vsynth1-msmpeg4
...
TEST    vsynth1-msmpeg4
--- ./tests/ref/vsynth/vsynth1-msmpeg4  2016-10-27 03:11:18.675647981 +0200
+++ tests/data/fate/vsynth1-msmpeg4     2016-10-27 15:01:15.397863504 +0200
@@ -1,4 +1,5 @@
 3957ca57ac97f651c828ab00d8f0e088 *tests/data/fate/vsynth1-msmpeg4.avi
 624706 tests/data/fate/vsynth1-msmpeg4.avi
-4529fee96b8073e02974f5355e5f6c4e *tests/data/fate/vsynth1-msmpeg4.out.rawvideo
-stddev:    7.98 PSNR: 30.09 MAXDIFF:  104 bytes:  7603200/  7603200
+Running DIL (3.22.0) Version
+DtsDeviceOpen: Opening HW in mode 0
+DtsDeviceOpen: Create File Failed
Test vsynth1-msmpeg4 failed. Look at tests/data/fate/vsynth1-msmpeg4.err for details.
make: *** [fate-vsynth1-msmpeg4] Error 1


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20161027/afe745c0/attachment.sig>


More information about the ffmpeg-devel mailing list