Re: [FFmpeg-devel] [PATCH 1/2] Use QT format for audio sample descriptors depending on stsd version.
On 09/06/2018 09:18 AM, Derek Buitenhuis wrote: > On 06/09/2018 17:13, Carl Eugen Hoyos wrote: >> Please mention ticket #7376 (and the Handbrake issue) in the commit >> message. > Wasn't aware there were tickets already, woops. > > Added locally. > > Looks like this also supersedes my earlier patch to fix the same problem... your solution is better, thanks ;) https://ffmpeg.org/pipermail/ffmpeg-devel/2018-August/233733.html -- John GnuPG fingerprint: D0EC B3DB C372 D1F1 0B01 83F0 49F1 D7B2 60D4 D0F7 signature.asc Description: OpenPGP digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/2] Use QT format for audio sample descriptors depending on stsd version.
On 06/09/2018 17:13, Carl Eugen Hoyos wrote: > Please mention ticket #7376 (and the Handbrake issue) in the commit > message. Wasn't aware there were tickets already, woops. Added locally. - Derek ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 1/2] Use QT format for audio sample descriptors depending on stsd version.
2018-09-06 17:35 GMT+02:00, Derek Buitenhuis : > From: Justin Ruggles > > ISOBMFF does not allow AudioSampleEntryV1 in stsd version 0, so > assume the descriptor format is QTFF SoundDescriptionV1. ISOBMFF does > not define a version 2. > > This fixes audio decoding for some MP4 files generated with Apple > tools. The additional fields present in SoundDescriptionV1/V2 need to > be read in order to correctly read additional boxes that contain > information required for decoding the stream. Please mention ticket #7376 (and the Handbrake issue) in the commit message. Thank you, Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 1/2] Use QT format for audio sample descriptors depending on stsd version.
From: Justin Ruggles ISOBMFF does not allow AudioSampleEntryV1 in stsd version 0, so assume the descriptor format is QTFF SoundDescriptionV1. ISOBMFF does not define a version 2. This fixes audio decoding for some MP4 files generated with Apple tools. The additional fields present in SoundDescriptionV1/V2 need to be read in order to correctly read additional boxes that contain information required for decoding the stream. Signed-off-by: Derek Buitenhuis --- libavformat/isom.h | 1 + libavformat/mov.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/isom.h b/libavformat/isom.h index 51abea52de..89659db8ee 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -217,6 +217,7 @@ typedef struct MOVStreamContext { int *extradata_size; int last_stsd_index; int stsd_count; +int stsd_version; int32_t *display_matrix; AVStereo3D *stereo3d; diff --git a/libavformat/mov.c b/libavformat/mov.c index d922e0f173..ea99616dc8 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2120,8 +2120,8 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, // Read QT version 1 fields. In version 0 these do not exist. av_log(c->fc, AV_LOG_TRACE, "version =%d, isom =%d\n", version, c->isom); if (!c->isom || -(compatible_brands && strstr(compatible_brands->value, "qt "))) { - +(compatible_brands && strstr(compatible_brands->value, "qt ")) || +(sc->stsd_version == 0 && version > 0)) { if (version == 1) { sc->samples_per_frame = avio_rb32(pb); avio_rb32(pb); /* bytes per packet */ @@ -2554,7 +2554,7 @@ static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom) st = c->fc->streams[c->fc->nb_streams - 1]; sc = st->priv_data; -avio_r8(pb); /* version */ +sc->stsd_version = avio_r8(pb); avio_rb24(pb); /* flags */ entries = avio_rb32(pb); -- 2.18.0 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel