diff mbox series

[FFmpeg-devel] avcodec/jpeg2000: Fast fail if HTJ2K codeblocks are present.

Message ID 20220506065543.9085-1-etemesicaleb@gmail.com
State Accepted
Commit 6a0cec53153b58a553ebb79f32309cc4533704eb
Headers show
Series [FFmpeg-devel] avcodec/jpeg2000: Fast fail if HTJ2K codeblocks are present. | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Caleb Etemesi May 6, 2022, 6:55 a.m. UTC
---
 libavcodec/jpeg2000.h    | 2 ++
 libavcodec/jpeg2000dec.c | 4 ++++
 2 files changed, 6 insertions(+)

Comments

Pierre-Anthony Lemieux May 6, 2022, 5:56 p.m. UTC | #1
LGTM

On Thu, May 5, 2022 at 11:56 PM caleb <etemesicaleb@gmail.com> wrote:
>
> ---
>  libavcodec/jpeg2000.h    | 2 ++
>  libavcodec/jpeg2000dec.c | 4 ++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/libavcodec/jpeg2000.h b/libavcodec/jpeg2000.h
> index d06313425e..e5ecb4cbf9 100644
> --- a/libavcodec/jpeg2000.h
> +++ b/libavcodec/jpeg2000.h
> @@ -110,6 +110,8 @@ enum Jpeg2000Quantsty { // quantization style
>  #define JPEG2000_CSTY_PREC      0x01 // Precincts defined in coding style
>  #define JPEG2000_CSTY_SOP       0x02 // SOP marker present
>  #define JPEG2000_CSTY_EPH       0x04 // EPH marker present
> +#define JPEG2000_CTSY_HTJ2K_F   0x40 // Only HT code-blocks (Rec. ITU-T T.814 | ISO/IEC 15444-15) are present
> +#define JPEG2000_CTSY_HTJ2K_M   0xC0 // HT code blocks (Rec. ITU-T T.814 | ISO/IEC 15444-15) can be present
>
>  // Progression orders
>  #define JPEG2000_PGOD_LRCP      0x00  // Layer-resolution level-component-position progression
> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
> index 92966b11f5..30f8c878d1 100644
> --- a/libavcodec/jpeg2000dec.c
> +++ b/libavcodec/jpeg2000dec.c
> @@ -521,6 +521,10 @@ static int get_cox(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c)
>
>      c->cblk_style = bytestream2_get_byteu(&s->g);
>      if (c->cblk_style != 0) { // cblk style
> +        if (c->cblk_style & JPEG2000_CTSY_HTJ2K_M || c->cblk_style & JPEG2000_CTSY_HTJ2K_F) {
> +            av_log(s->avctx, AV_LOG_ERROR, "Support for High throughput JPEG 2000 is not yet available\n");
> +            return AVERROR_PATCHWELCOME;
> +        }
>          av_log(s->avctx, AV_LOG_WARNING, "extra cblk styles %X\n", c->cblk_style);
>          if (c->cblk_style & JPEG2000_CBLK_BYPASS)
>              av_log(s->avctx, AV_LOG_WARNING, "Selective arithmetic coding bypass\n");
> --
> 2.34.0
>
Michael Niedermayer May 7, 2022, 8:31 a.m. UTC | #2
On Fri, May 06, 2022 at 10:56:16AM -0700, Pierre-Anthony Lemieux wrote:
> LGTM

will apply

thx

[...]
Michael Niedermayer May 7, 2022, 8:35 a.m. UTC | #3
Hi

before applying this

Author: caleb <etemesicaleb@gmail.com>

If you want your full name there please resend this with your full name
so its in git with your full name. It cannot be 
changed  later if its pushed like this

thx

[...]
Soft Works May 7, 2022, 8:44 a.m. UTC | #4
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Michael Niedermayer
> Sent: Saturday, May 7, 2022 10:31 AM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH] avcodec/jpeg2000: Fast fail if
> HTJ2K codeblocks are present.
> 
> On Fri, May 06, 2022 at 10:56:16AM -0700, Pierre-Anthony Lemieux
> wrote:
> > LGTM
> 
> will apply
> 
> thx
> 
> [...]
> --
> Michael     GnuPG fingerprint:
> 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Into a blind darkness they enter who follow after the Ignorance,
> they as if into a greater darkness enter who devote themselves
> to the Knowledge alone. -- Isha Upanishad

They who read as if sentences devoted to pretention of the wise 
words into great pain will enter. -- softworkz :-)
Caleb Etemesi Aug. 7, 2022, 4:46 p.m. UTC | #5
caleb is fine.

On Sat, May 7, 2022 at 11:35 AM Michael Niedermayer <michael@niedermayer.cc>
wrote:

> Hi
>
> before applying this
>
> Author: caleb <etemesicaleb@gmail.com>
>
> If you want your full name there please resend this with your full name
> so its in git with your full name. It cannot be
> changed  later if its pushed like this
>
> thx
>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> The educated differ from the uneducated as much as the living from the
> dead. -- Aristotle
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
Michael Niedermayer Aug. 7, 2022, 7:50 p.m. UTC | #6
On Sun, Aug 07, 2022 at 07:46:51PM +0300, Caleb Etemesi wrote:
> caleb is fine.

ok will apply

thx

[...]
Caleb Etemesi Aug. 7, 2022, 8:30 p.m. UTC | #7
Also apologies for a really late reply,

Still learning about mail threads

Kind regards.

Caleb

On Sun, 7 Aug 2022, 22:51 Michael Niedermayer, <michael@niedermayer.cc>
wrote:

> On Sun, Aug 07, 2022 at 07:46:51PM +0300, Caleb Etemesi wrote:
> > caleb is fine.
>
> ok will apply
>
> thx
>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Old school: Use the lowest level language in which you can solve the
> problem
>             conveniently.
> New school: Use the highest level language in which the latest
> supercomputer
>             can solve the problem without the user falling asleep waiting.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
diff mbox series

Patch

diff --git a/libavcodec/jpeg2000.h b/libavcodec/jpeg2000.h
index d06313425e..e5ecb4cbf9 100644
--- a/libavcodec/jpeg2000.h
+++ b/libavcodec/jpeg2000.h
@@ -110,6 +110,8 @@  enum Jpeg2000Quantsty { // quantization style
 #define JPEG2000_CSTY_PREC      0x01 // Precincts defined in coding style
 #define JPEG2000_CSTY_SOP       0x02 // SOP marker present
 #define JPEG2000_CSTY_EPH       0x04 // EPH marker present
+#define JPEG2000_CTSY_HTJ2K_F   0x40 // Only HT code-blocks (Rec. ITU-T T.814 | ISO/IEC 15444-15) are present
+#define JPEG2000_CTSY_HTJ2K_M   0xC0 // HT code blocks (Rec. ITU-T T.814 | ISO/IEC 15444-15) can be present
 
 // Progression orders
 #define JPEG2000_PGOD_LRCP      0x00  // Layer-resolution level-component-position progression
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 92966b11f5..30f8c878d1 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -521,6 +521,10 @@  static int get_cox(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c)
 
     c->cblk_style = bytestream2_get_byteu(&s->g);
     if (c->cblk_style != 0) { // cblk style
+        if (c->cblk_style & JPEG2000_CTSY_HTJ2K_M || c->cblk_style & JPEG2000_CTSY_HTJ2K_F) {
+            av_log(s->avctx, AV_LOG_ERROR, "Support for High throughput JPEG 2000 is not yet available\n");
+            return AVERROR_PATCHWELCOME;
+        }
         av_log(s->avctx, AV_LOG_WARNING, "extra cblk styles %X\n", c->cblk_style);
         if (c->cblk_style & JPEG2000_CBLK_BYPASS)
             av_log(s->avctx, AV_LOG_WARNING, "Selective arithmetic coding bypass\n");