diff --git a/doc/examples/hw_decode.c b/doc/examples/hw_decode.c
index 74a0ca32db0f0e7d0995c090eb2b14109b84d51b..77ae8df35b5af79e7412786e799f853e666805a8 100644
--- a/doc/examples/hw_decode.c
+++ b/doc/examples/hw_decode.c
@@ -86,7 +86,7 @@ static int decode_write(AVCodecContext *avctx, AVPacket *packet)
         return ret;
     }
 
-    while (ret >= 0) {
+    while (1) {
         if (!(frame = av_frame_alloc()) || !(sw_frame = av_frame_alloc())) {
             fprintf(stderr, "Can not alloc frame\n");
             ret = AVERROR(ENOMEM);
@@ -142,8 +142,6 @@ static int decode_write(AVCodecContext *avctx, AVPacket *packet)
         if (ret < 0)
             return ret;
     }
-
-    return 0;
 }
 
 int main(int argc, char *argv[])