[FFmpeg-devel] [PATCH 1/4] avcodec/mdec: DC reading for STRv1 is like STRv2

aybe aybe aybe.one at hotmail.com
Sat Jan 13 04:32:50 EET 2024


I'm afraid I can't tell, I checked the commits before creating patches out of them; they did not appear to have superfluous whitespace in them.


------ Original Message ------
From "Michael Niedermayer" <michael at niedermayer.cc<mailto:michael at niedermayer.cc>>
To "FFmpeg development discussions and patches" <ffmpeg-devel at ffmpeg.org<mailto:ffmpeg-devel at ffmpeg.org>>
Date 1/10/2024 3:37:41 AM
Subject Re: [FFmpeg-devel] [PATCH 1/4] avcodec/mdec: DC reading for STRv1 is like STRv2

On Tue, Jan 02, 2024 at 02:49:26AM +0000, aybe aybe wrote:
Hi,

As I understand, support for .STR files is broken for almost 10 years now (since 161442ff2c4b0dd8a5072c6bbe6bf55303fffccf it seems).

Currently, ffmpeg fails with tons of errors like this on version 1 STRs, e.g. Wipeout 1:
[mdec @ 00000000027c72c0] ac-tex damaged at 1 9

What happens is that only the audio is present in the video file.

Anyway, that one character patch fixes the problem, video is now rendered.

Signed-off-by: aybe <aybe at users.noreply.github.com<mailto:aybe at users.noreply.github.com>>
---
libavcodec/mdec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c
index 44b12471a9..c4904216b8 100644
--- a/libavcodec/mdec.c
+++ b/libavcodec/mdec.c
@@ -68,7 +68,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, int16_t *block, int n)
const int qscale = a->qscale;

/* DC coefficient */
- if (a->version == 2) {
+ if (a->version <= 2) {
block[0] = 2 * get_sbits(&a->gb, 10) + 1024;
} else {
component = (n <= 3 ? 0 : n - 4 + 1);
--
2.41.0.windows.1

This is how the patch should look: (there are differencs in the whitespace
which git seems to have problems with in above)
not sure where these differences came from

thx

diff --git a/libavcodec/mdec.c b/libavcodec/mdec.c
index 44b12471a9e..c4904216b81 100644
--- a/libavcodec/mdec.c
+++ b/libavcodec/mdec.c
@@ -68,7 +68,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, int16_t *block, int n)
const int qscale = a->qscale;

/* DC coefficient */
- if (a->version == 2) {
+ if (a->version <= 2) {
block[0] = 2 * get_sbits(&a->gb, 10) + 1024;
} else {
component = (n <= 3 ? 0 : n - 4 + 1);


[...]

--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.


More information about the ffmpeg-devel mailing list