call dav1d_get_picture() until it returns -EAGAIN for draining

With the decoupled decoding data there might be remaining input data during
draining which can cause bitstream parsing errors.
diff --git a/tests/libfuzzer/dav1d_fuzzer.c b/tests/libfuzzer/dav1d_fuzzer.c
index 08de3d9..18d012b 100644
--- a/tests/libfuzzer/dav1d_fuzzer.c
+++ b/tests/libfuzzer/dav1d_fuzzer.c
@@ -121,7 +121,7 @@
         err = dav1d_get_picture(ctx, &pic);
         if (err == 0)
             dav1d_picture_unref(&pic);
-    } while (err == 0);
+    } while (err != -EAGAIN);
 
 cleanup:
     dav1d_flush(ctx);
diff --git a/tools/dav1d.c b/tools/dav1d.c
index 3d01279..f7dfd05 100644
--- a/tools/dav1d.c
+++ b/tools/dav1d.c
@@ -151,9 +151,10 @@
             if (res != -EAGAIN) {
                 fprintf(stderr, "Error decoding frame: %s\n",
                         strerror(-res));
-            } else
+            } else {
                 res = 0;
-            break;
+                break;
+            }
         } else {
             if (!n_out) {
                 if ((res = output_open(&out, cli_settings.muxer,