diff mbox series

[FFmpeg-devel] jpeg200dec: reset in_tile_headers flag between frames

Message ID 20241025002317.25786-1-pal@sandflow.com
State New
Headers show
Series [FFmpeg-devel] jpeg200dec: reset in_tile_headers flag between frames | 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

Pierre-Anthony Lemieux Oct. 25, 2024, 12:23 a.m. UTC
From: Pierre-Anthony Lemieux <pal@palemieux.com>

---
 libavcodec/jpeg2000dec.c | 19 ++++++++++---------
 libavcodec/jpeg2000dec.h |  1 -
 2 files changed, 10 insertions(+), 10 deletions(-)

Comments

Pierre-Anthony Lemieux Oct. 25, 2024, 12:28 a.m. UTC | #1
Fixes https://trac.ffmpeg.org/ticket/11266

On Thu, Oct 24, 2024 at 5:23 PM <pal@sandflow.com> wrote:
>
> From: Pierre-Anthony Lemieux <pal@palemieux.com>
>
> ---
>  libavcodec/jpeg2000dec.c | 19 ++++++++++---------
>  libavcodec/jpeg2000dec.h |  1 -
>  2 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
> index 2e09b279dc..5b05ff2455 100644
> --- a/libavcodec/jpeg2000dec.c
> +++ b/libavcodec/jpeg2000dec.c
> @@ -2402,6 +2402,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>      Jpeg2000QuantStyle *qntsty  = s->qntsty;
>      Jpeg2000POC         *poc    = &s->poc;
>      uint8_t *properties         = s->properties;
> +    uint8_t in_tile_headers     = 0;
>
>      for (;;) {
>          int len, ret = 0;
> @@ -2484,7 +2485,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_cap(s, codsty);
>              break;
>          case JPEG2000_COC:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "COC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2492,7 +2493,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_coc(s, codsty, properties);
>              break;
>          case JPEG2000_COD:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "COD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2500,7 +2501,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_cod(s, codsty, properties);
>              break;
>          case JPEG2000_RGN:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "RGN marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2512,7 +2513,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              }
>              break;
>          case JPEG2000_QCC:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "QCC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2520,7 +2521,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_qcc(s, len, qntsty, properties);
>              break;
>          case JPEG2000_QCD:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "QCD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2528,7 +2529,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_qcd(s, len, qntsty, properties);
>              break;
>          case JPEG2000_POC:
> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>                  av_log(s->avctx, AV_LOG_ERROR,
>                      "POC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>                  return AVERROR_INVALIDDATA;
> @@ -2536,8 +2537,8 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              ret = get_poc(s, len, poc);
>              break;
>          case JPEG2000_SOT:
> -            if (!s->in_tile_headers) {
> -                s->in_tile_headers = 1;
> +            if (!in_tile_headers) {
> +                in_tile_headers = 1;
>                  if (s->has_ppm) {
>                      bytestream2_init(&s->packed_headers_stream, s->packed_headers, s->packed_headers_size);
>                  }
> @@ -2569,7 +2570,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>              break;
>          case JPEG2000_PPM:
>              // Packed headers, main header
> -            if (s->in_tile_headers) {
> +            if (in_tile_headers) {
>                  av_log(s->avctx, AV_LOG_ERROR, "PPM Marker can only be in Main header\n");
>                  return AVERROR_INVALIDDATA;
>              }
> diff --git a/libavcodec/jpeg2000dec.h b/libavcodec/jpeg2000dec.h
> index 78eba27ed9..fce3823164 100644
> --- a/libavcodec/jpeg2000dec.h
> +++ b/libavcodec/jpeg2000dec.h
> @@ -86,7 +86,6 @@ typedef struct Jpeg2000DecoderContext {
>      uint8_t         *packed_headers; // contains packed headers. Used only along with PPM marker
>      int             packed_headers_size;
>      GetByteContext  packed_headers_stream;
> -    uint8_t         in_tile_headers;
>
>      int             cdx[4], cdy[4];
>      int             precision;
> --
> 2.25.1
>
WATANABE Osamu Oct. 25, 2024, 4:11 a.m. UTC | #2
It looks good to me. Thank you for catching this.
FYI - The patch has been confirmed to pass all the test cases defined in ISO/IEC 15444-4.

> On Oct 25, 2024, at 9:28, Pierre-Anthony Lemieux <pal@sandflow.com> wrote:
> 
> Fixes https://trac.ffmpeg.org/ticket/11266
> 
> On Thu, Oct 24, 2024 at 5:23?PM <pal@sandflow.com> wrote:
>> 
>> From: Pierre-Anthony Lemieux <pal@palemieux.com>
>> 
>> ---
>> libavcodec/jpeg2000dec.c | 19 ++++++++++---------
>> libavcodec/jpeg2000dec.h |  1 -
>> 2 files changed, 10 insertions(+), 10 deletions(-)
>> 
>> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
>> index 2e09b279dc..5b05ff2455 100644
>> --- a/libavcodec/jpeg2000dec.c
>> +++ b/libavcodec/jpeg2000dec.c
>> @@ -2402,6 +2402,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>     Jpeg2000QuantStyle *qntsty  = s->qntsty;
>>     Jpeg2000POC         *poc    = &s->poc;
>>     uint8_t *properties         = s->properties;
>> +    uint8_t in_tile_headers     = 0;
>> 
>>     for (;;) {
>>         int len, ret = 0;
>> @@ -2484,7 +2485,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_cap(s, codsty);
>>             break;
>>         case JPEG2000_COC:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "COC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2492,7 +2493,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_coc(s, codsty, properties);
>>             break;
>>         case JPEG2000_COD:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "COD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2500,7 +2501,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_cod(s, codsty, properties);
>>             break;
>>         case JPEG2000_RGN:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "RGN marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2512,7 +2513,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             }
>>             break;
>>         case JPEG2000_QCC:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "QCC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2520,7 +2521,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_qcc(s, len, qntsty, properties);
>>             break;
>>         case JPEG2000_QCD:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "QCD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2528,7 +2529,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_qcd(s, len, qntsty, properties);
>>             break;
>>         case JPEG2000_POC:
>> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
>>                 av_log(s->avctx, AV_LOG_ERROR,
>>                     "POC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
>>                 return AVERROR_INVALIDDATA;
>> @@ -2536,8 +2537,8 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             ret = get_poc(s, len, poc);
>>             break;
>>         case JPEG2000_SOT:
>> -            if (!s->in_tile_headers) {
>> -                s->in_tile_headers = 1;
>> +            if (!in_tile_headers) {
>> +                in_tile_headers = 1;
>>                 if (s->has_ppm) {
>>                     bytestream2_init(&s->packed_headers_stream, s->packed_headers, s->packed_headers_size);
>>                 }
>> @@ -2569,7 +2570,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
>>             break;
>>         case JPEG2000_PPM:
>>             // Packed headers, main header
>> -            if (s->in_tile_headers) {
>> +            if (in_tile_headers) {
>>                 av_log(s->avctx, AV_LOG_ERROR, "PPM Marker can only be in Main header\n");
>>                 return AVERROR_INVALIDDATA;
>>             }
>> diff --git a/libavcodec/jpeg2000dec.h b/libavcodec/jpeg2000dec.h
>> index 78eba27ed9..fce3823164 100644
>> --- a/libavcodec/jpeg2000dec.h
>> +++ b/libavcodec/jpeg2000dec.h
>> @@ -86,7 +86,6 @@ typedef struct Jpeg2000DecoderContext {
>>     uint8_t         *packed_headers; // contains packed headers. Used only along with PPM marker
>>     int             packed_headers_size;
>>     GetByteContext  packed_headers_stream;
>> -    uint8_t         in_tile_headers;
>> 
>>     int             cdx[4], cdy[4];
>>     int             precision;
>> --
>> 2.25.1
>> 
> _______________________________________________
> 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".
Pierre-Anthony Lemieux Oct. 25, 2024, 4:10 p.m. UTC | #3
I plan on applying this over the weekend (modulo the typo in the
subject of the patch) unless there are objections -- since JPEG 2000 +
MXF decoding is broken right now.

On Thu, Oct 24, 2024 at 9:12 PM WATANABE Osamu
<owatanab@es.takushoku-u.ac.jp> wrote:
>
> It looks good to me. Thank you for catching this.
> FYI - The patch has been confirmed to pass all the test cases defined in ISO/IEC 15444-4.
>
> > On Oct 25, 2024, at 9:28, Pierre-Anthony Lemieux <pal@sandflow.com> wrote:
> >
> > Fixes https://trac.ffmpeg.org/ticket/11266
> >
> > On Thu, Oct 24, 2024 at 5:23?PM <pal@sandflow.com> wrote:
> >>
> >> From: Pierre-Anthony Lemieux <pal@palemieux.com>
> >>
> >> ---
> >> libavcodec/jpeg2000dec.c | 19 ++++++++++---------
> >> libavcodec/jpeg2000dec.h |  1 -
> >> 2 files changed, 10 insertions(+), 10 deletions(-)
> >>
> >> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
> >> index 2e09b279dc..5b05ff2455 100644
> >> --- a/libavcodec/jpeg2000dec.c
> >> +++ b/libavcodec/jpeg2000dec.c
> >> @@ -2402,6 +2402,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>     Jpeg2000QuantStyle *qntsty  = s->qntsty;
> >>     Jpeg2000POC         *poc    = &s->poc;
> >>     uint8_t *properties         = s->properties;
> >> +    uint8_t in_tile_headers     = 0;
> >>
> >>     for (;;) {
> >>         int len, ret = 0;
> >> @@ -2484,7 +2485,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_cap(s, codsty);
> >>             break;
> >>         case JPEG2000_COC:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "COC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2492,7 +2493,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_coc(s, codsty, properties);
> >>             break;
> >>         case JPEG2000_COD:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "COD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2500,7 +2501,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_cod(s, codsty, properties);
> >>             break;
> >>         case JPEG2000_RGN:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "RGN marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2512,7 +2513,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             }
> >>             break;
> >>         case JPEG2000_QCC:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "QCC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2520,7 +2521,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_qcc(s, len, qntsty, properties);
> >>             break;
> >>         case JPEG2000_QCD:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "QCD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2528,7 +2529,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_qcd(s, len, qntsty, properties);
> >>             break;
> >>         case JPEG2000_POC:
> >> -            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >> +            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
> >>                 av_log(s->avctx, AV_LOG_ERROR,
> >>                     "POC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
> >>                 return AVERROR_INVALIDDATA;
> >> @@ -2536,8 +2537,8 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             ret = get_poc(s, len, poc);
> >>             break;
> >>         case JPEG2000_SOT:
> >> -            if (!s->in_tile_headers) {
> >> -                s->in_tile_headers = 1;
> >> +            if (!in_tile_headers) {
> >> +                in_tile_headers = 1;
> >>                 if (s->has_ppm) {
> >>                     bytestream2_init(&s->packed_headers_stream, s->packed_headers, s->packed_headers_size);
> >>                 }
> >> @@ -2569,7 +2570,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
> >>             break;
> >>         case JPEG2000_PPM:
> >>             // Packed headers, main header
> >> -            if (s->in_tile_headers) {
> >> +            if (in_tile_headers) {
> >>                 av_log(s->avctx, AV_LOG_ERROR, "PPM Marker can only be in Main header\n");
> >>                 return AVERROR_INVALIDDATA;
> >>             }
> >> diff --git a/libavcodec/jpeg2000dec.h b/libavcodec/jpeg2000dec.h
> >> index 78eba27ed9..fce3823164 100644
> >> --- a/libavcodec/jpeg2000dec.h
> >> +++ b/libavcodec/jpeg2000dec.h
> >> @@ -86,7 +86,6 @@ typedef struct Jpeg2000DecoderContext {
> >>     uint8_t         *packed_headers; // contains packed headers. Used only along with PPM marker
> >>     int             packed_headers_size;
> >>     GetByteContext  packed_headers_stream;
> >> -    uint8_t         in_tile_headers;
> >>
> >>     int             cdx[4], cdy[4];
> >>     int             precision;
> >> --
> >> 2.25.1
> >>
> > _______________________________________________
> > 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".
>
> _______________________________________________
> 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/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 2e09b279dc..5b05ff2455 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -2402,6 +2402,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
     Jpeg2000QuantStyle *qntsty  = s->qntsty;
     Jpeg2000POC         *poc    = &s->poc;
     uint8_t *properties         = s->properties;
+    uint8_t in_tile_headers     = 0;
 
     for (;;) {
         int len, ret = 0;
@@ -2484,7 +2485,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_cap(s, codsty);
             break;
         case JPEG2000_COC:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "COC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2492,7 +2493,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_coc(s, codsty, properties);
             break;
         case JPEG2000_COD:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "COD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2500,7 +2501,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_cod(s, codsty, properties);
             break;
         case JPEG2000_RGN:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "RGN marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2512,7 +2513,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             }
             break;
         case JPEG2000_QCC:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "QCC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2520,7 +2521,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_qcc(s, len, qntsty, properties);
             break;
         case JPEG2000_QCD:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "QCD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2528,7 +2529,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_qcd(s, len, qntsty, properties);
             break;
         case JPEG2000_POC:
-            if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
+            if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) {
                 av_log(s->avctx, AV_LOG_ERROR,
                     "POC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n");
                 return AVERROR_INVALIDDATA;
@@ -2536,8 +2537,8 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             ret = get_poc(s, len, poc);
             break;
         case JPEG2000_SOT:
-            if (!s->in_tile_headers) {
-                s->in_tile_headers = 1;
+            if (!in_tile_headers) {
+                in_tile_headers = 1;
                 if (s->has_ppm) {
                     bytestream2_init(&s->packed_headers_stream, s->packed_headers, s->packed_headers_size);
                 }
@@ -2569,7 +2570,7 @@  static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
             break;
         case JPEG2000_PPM:
             // Packed headers, main header
-            if (s->in_tile_headers) {
+            if (in_tile_headers) {
                 av_log(s->avctx, AV_LOG_ERROR, "PPM Marker can only be in Main header\n");
                 return AVERROR_INVALIDDATA;
             }
diff --git a/libavcodec/jpeg2000dec.h b/libavcodec/jpeg2000dec.h
index 78eba27ed9..fce3823164 100644
--- a/libavcodec/jpeg2000dec.h
+++ b/libavcodec/jpeg2000dec.h
@@ -86,7 +86,6 @@  typedef struct Jpeg2000DecoderContext {
     uint8_t         *packed_headers; // contains packed headers. Used only along with PPM marker
     int             packed_headers_size;
     GetByteContext  packed_headers_stream;
-    uint8_t         in_tile_headers;
 
     int             cdx[4], cdy[4];
     int             precision;