diff mbox series

[FFmpeg-devel,3/4] avformat/psxstr: fix unknown sector type 00/80

Message ID PAVPR08MB9795275B4076CDB2E933B6329A61A@PAVPR08MB9795.eurprd08.prod.outlook.com
State New
Headers show
Series [FFmpeg-devel,1/4] avcodec/mdec: DC reading for STRv1 is like STRv2 | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/configure_x86 warning Failed to apply patch

Commit Message

aybe aybe Jan. 2, 2024, 2:57 a.m. UTC
This third patch fixes warnings that are false positives (still on STRv1).

That's because these sectors are simply empty ones as can be read in "System Description CD-ROM XA, May 1991,
4.3.2.3".

Haven't attempted significant refactoring as it just works, left a comment instead about the situation.

The result is that there are no more false warnings when converting.

Signed-off-by: aybe <aybe@users.noreply.github.com>
---
  libavformat/psxstr.c | 7 +++++++
  1 file changed, 7 insertions(+)

--
2.41.0.windows.1

Comments

Michael Niedermayer Jan. 11, 2024, 1:16 p.m. UTC | #1
On Tue, Jan 02, 2024 at 02:57:18AM +0000, aybe aybe wrote:
> This third patch fixes warnings that are false positives (still on STRv1).
> 
> That's because these sectors are simply empty ones as can be read in "System Description CD-ROM XA, May 1991,
> 4.3.2.3".
> 
> Haven't attempted significant refactoring as it just works, left a comment instead about the situation.
> 
> The result is that there are no more false warnings when converting.
> 
> Signed-off-by: aybe <aybe@users.noreply.github.com>
> ---
>   libavformat/psxstr.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c
> index 72d14b9792..306a690f52 100644
> --- a/libavformat/psxstr.c
> +++ b/libavformat/psxstr.c
> @@ -48,6 +48,7 @@
>   #define CDXA_TYPE_DATA     0x08
>   #define CDXA_TYPE_AUDIO    0x04
>   #define CDXA_TYPE_VIDEO    0x02
> +#define CDXA_TYPE_EMPTY    0x00
> 
>   #define STR_MAGIC (0x80010160)
> 
> @@ -274,6 +275,12 @@ static int str_read_packet(AVFormatContext *s,
>                   str->channels[channel].audio_stream_index;
>               pkt->duration = 1;
>               return 0;
> +        case CDXA_TYPE_EMPTY: /* CD-ROM XA, May 1991, 4.3.2.3 */
> +            {
> +                /* NOTE this also catches 0x80 (EOF bit) because of CDXA_TYPE_MASK */
> +                /* TODO consider refactoring so as to explicitly handle each case? */
> +                break;
> +            }

will apply without unneeded {}

thx

[...]
diff mbox series

Patch

diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c
index 72d14b9792..306a690f52 100644
--- a/libavformat/psxstr.c
+++ b/libavformat/psxstr.c
@@ -48,6 +48,7 @@ 
  #define CDXA_TYPE_DATA     0x08
  #define CDXA_TYPE_AUDIO    0x04
  #define CDXA_TYPE_VIDEO    0x02
+#define CDXA_TYPE_EMPTY    0x00

  #define STR_MAGIC (0x80010160)

@@ -274,6 +275,12 @@  static int str_read_packet(AVFormatContext *s,
                  str->channels[channel].audio_stream_index;
              pkt->duration = 1;
              return 0;
+        case CDXA_TYPE_EMPTY: /* CD-ROM XA, May 1991, 4.3.2.3 */
+            {
+                /* NOTE this also catches 0x80 (EOF bit) because of CDXA_TYPE_MASK */
+                /* TODO consider refactoring so as to explicitly handle each case? */
+                break;
+            }
          default:
              av_log(s, AV_LOG_WARNING, "Unknown sector type %02X\n", sector[0x12]);
              /* drop the sector and move on */