Message ID | MWHPR08MB2655D920B8CABBC7935C52D080F59@MWHPR08MB2655.namprd08.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/mov.c: Added configuration flag to skip cover art atom while opening mov parser | expand |
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 |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
On 4/20/2022 12:39 PM, Malviya, Janpriya wrote: > Hello ffmpeg dev team, > Please look in attached patch. while integrating FFmpeg we require to add "skip_cover_page" options to skip cover art atom from parsing for M4A / MP4 streams. By default values set as 0 ( False ) so it will not impact others. Why? - Derek
Hi Derek, We require to add this configuration for the following reasons : - We have our own pipeline mechanism to download & fetch audio data from source. - We are using ffmpeg with custom IO callbacks for parsing & decoding fragmentedMP4 streams. - Inside the custom IO read operation we are asking to download data from upstream elements. - If any stream contains a cover page ( e.g. image file ) then the custom io read call-back issues a read request with large buffer size ( which is obvious ) . On the other side , our source downloader is unable to handle a data request of that size because of buffer constraints. - To integrate FFmpeg with our architecture , we added this flag to issue skip for cover page from parsing Let me know what you think. Regards Janpriya. -----Original Message----- From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Derek Buitenhuis Sent: 20 April 2022 06:54 PM To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH] libavformat/mov.c: Added configuration flag to skip cover art atom while opening mov parser On 4/20/2022 12:39 PM, Malviya, Janpriya wrote: > Hello ffmpeg dev team, > Please look in attached patch. while integrating FFmpeg we require to add "skip_cover_page" options to skip cover art atom from parsing for M4A / MP4 streams. By default values set as 0 ( False ) so it will not impact others. Why? - Derek
On Fri, Apr 22, 2022 at 4:30 PM Malviya, Janpriya <Janpriya_Malviya@bose.com> wrote: > > Hi Derek, > > We require to add this configuration for the following reasons : > - We have our own pipeline mechanism to download & fetch audio data from source. > - We are using ffmpeg with custom IO callbacks for parsing & decoding fragmentedMP4 streams. > - Inside the custom IO read operation we are asking to download data from upstream elements. > - If any stream contains a cover page ( e.g. image file ) then the custom io read call-back issues a read request with large buffer size ( which is obvious ) . On the other side , our source downloader is unable to handle a data request of that size because of buffer constraints. > - To integrate FFmpeg with our architecture , we added this flag to issue skip for cover page from parsing > > Let me know what you think. This sounds like you are solving a very specific problem in your environment, coming from your software stack and setup, in a generic library. I fail to see the use for anyone else. - Hendrik
Hi Hendrik, Thank you for your feedback. We will not merge it into master, maintain this patch on our side. Regards Janpriya From: Hendrik Leppkes<mailto:h.leppkes@gmail.com> Sent: 23 April 2022 02:36 PM To: FFmpeg development discussions and patches<mailto:ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] libavformat/mov.c: Added configuration flag to skip cover art atom while opening mov parser On Fri, Apr 22, 2022 at 4:30 PM Malviya, Janpriya <Janpriya_Malviya@bose.com> wrote: > > Hi Derek, > > We require to add this configuration for the following reasons : > - We have our own pipeline mechanism to download & fetch audio data from source. > - We are using ffmpeg with custom IO callbacks for parsing & decoding fragmentedMP4 streams. > - Inside the custom IO read operation we are asking to download data from upstream elements. > - If any stream contains a cover page ( e.g. image file ) then the custom io read call-back issues a read request with large buffer size ( which is obvious ) . On the other side , our source downloader is unable to handle a data request of that size because of buffer constraints. > - To integrate FFmpeg with our architecture , we added this flag to issue skip for cover page from parsing > > Let me know what you think. This sounds like you are solving a very specific problem in your environment, coming from your software stack and setup, in a generic library. I fail to see the use for anyone else. - Hendrik
diff --git a/libavformat/isom.h b/libavformat/isom.h index 5caf42b..87f1fe3 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -315,6 +315,7 @@ typedef struct MOVContext { int have_read_mfra_size; uint32_t mfra_size; uint32_t max_stts_delta; + int skip_cover_page; } MOVContext; int ff_mp4_read_descr_len(AVIOContext *pb); diff --git a/libavformat/mov.c b/libavformat/mov.c index 6c847de..5e94946 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -201,6 +201,12 @@ static int mov_read_covr(MOVContext *c, AVIOContext *pb, int type, int len) return 0; } + if ( c->skip_cover_page ){ + av_log(c->fc, AV_LOG_WARNING, "skip cover art from parsing \n"); + avio_skip(pb, len); + return 0; + } + sc = av_mallocz(sizeof(*sc)); if (!sc) return AVERROR(ENOMEM); @@ -8866,6 +8872,7 @@ static const AVOption mov_options[] = { { "enable_drefs", "Enable external track support.", OFFSET(enable_drefs), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS }, { "max_stts_delta", "treat offsets above this value as invalid", OFFSET(max_stts_delta), AV_OPT_TYPE_INT, {.i64 = UINT_MAX-48000*10 }, 0, UINT_MAX, .flags = AV_OPT_FLAG_DECODING_PARAM }, + { "skip_cover_page", "Skip cover pages from parsing ", OFFSET(skip_cover_page),AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = FLAGS }, { NULL }, };
Hello ffmpeg dev team, Please look in attached patch. while integrating FFmpeg we require to add "skip_cover_page" options to skip cover art atom from parsing for M4A / MP4 streams. By default values set as 0 ( False ) so it will not impact others. Signed-off-by: Janpriya Malviya <Janpriya_Malviya@bose.com> --- libavformat/isom.h | 1 + libavformat/mov.c | 7 +++++++ 2 files changed, 8 insertions(+)