From: Michael Niedermayer <[email protected]>

Raise PATCHWELCOME error in case of non implemented progression order.

Signed-off-by: Luca Barbato <[email protected]>
Signed-off-by: Nicolas Bertrand <[email protected]>
---
 libavcodec/jpeg2kdec.c |   26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/libavcodec/jpeg2kdec.c b/libavcodec/jpeg2kdec.c
index 211a484..785aad9 100644
--- a/libavcodec/jpeg2kdec.c
+++ b/libavcodec/jpeg2kdec.c
@@ -722,13 +722,12 @@ static int jpeg2k_decode_packet(Jpeg2KDecoderContext *s,
 
 static int jpeg2k_decode_packets(Jpeg2KDecoderContext *s, Jpeg2KTile *tile)
 {
-    int layno, reslevelno, compno, precno, ok_reslevel, ret;
-    uint8_t prog_order = tile->codsty[0].prog_order;
-    uint16_t x;
-    uint16_t y;
+    int ret = 0;
+    int layno, reslevelno, compno, precno, ok_reslevel;
+    int x, y;
 
     s->bit_index = 8;
-    switch (prog_order) {
+    switch (tile->codsty[0].prog_order) {
     case JPEG2K_PGOD_LRCP:
         for (layno = 0; layno < tile->codsty[0].nlayers; layno++) {
             ok_reslevel = 1;
@@ -802,6 +801,21 @@ static int jpeg2k_decode_packets(Jpeg2KDecoderContext *s, 
Jpeg2KTile *tile)
         }
         break;
 
+    case JPEG2K_PGOD_RLCP:
+        avpriv_request_sample(s->avctx, "Progression order RLCP");
+        ret = AVERROR_PATCHWELCOME;
+        break;
+
+    case JPEG2K_PGOD_RPCL:
+        avpriv_request_sample(s->avctx, "Progression order RPCL");
+        ret = AVERROR_PATCHWELCOME;
+        break;
+
+    case JPEG2K_PGOD_PCRL:
+        avpriv_request_sample(s->avctx, "Progression order PCRL");
+        ret = AVERROR_PATCHWELCOME;
+        break;
+
     default:
         break;
     }
@@ -809,7 +823,7 @@ static int jpeg2k_decode_packets(Jpeg2KDecoderContext *s, 
Jpeg2KTile *tile)
     /* EOC marker reached */
     bytestream2_skip(&s->g, 2);
 
-    return 0;
+    return ret;
 }
 
 /* TIER-1 routines */
-- 
1.7.9.5

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to