On Sat, 31 Oct 2015 17:53:55 +0100
Luca Barbato <[email protected]> wrote:

> On 31/10/15 17:10, wm4 wrote:
> > On Sat, 31 Oct 2015 17:08:07 +0100
> > Luca Barbato <[email protected]> wrote:
> >   
> >> On 31/10/15 14:36, wm4 wrote:  
> >>> I've got some m4a samples that had jpeg cover art marked as png. Since
> >>> these files were supposedly written by iTunes, and other software can
> >>> read it (e.g. clementine does), this should be worked around.
> >>>
> >>> Since png has a very simple to detect header, while it's apparently a
> >>> real pain to detect jpeg in the general case, try to detect png and
> >>> assume jpeg otherwise. Not bothering with bmp, as I have no test case.
> >>> ---
> >>>  libavformat/mov.c | 8 ++++++++
> >>>  1 file changed, 8 insertions(+)
> >>>
> >>> diff --git a/libavformat/mov.c b/libavformat/mov.c
> >>> index 95dc1ee..9532213 100644
> >>> --- a/libavformat/mov.c
> >>> +++ b/libavformat/mov.c
> >>> @@ -200,6 +200,14 @@ static int mov_read_covr(MOVContext *c, AVIOContext 
> >>> *pb, int type, int len)
> >>>      if (ret < 0)
> >>>          return ret;
> >>>  
> >>> +    if (pkt.size >= 8 && id != AV_CODEC_ID_BMP) {
> >>> +        if (AV_RB64(pkt.data) == 0x89504e470d0a1a0a) {
> >>> +            id = AV_CODEC_ID_PNG;
> >>> +        } else {
> >>> +            id = AV_CODEC_ID_MJPEG;
> >>> +        }
> >>> +    }
> >>> +
> >>>      st->disposition              |= AV_DISPOSITION_ATTACHED_PIC;
> >>>  
> >>>      st->attached_pic              = pkt;
> >>>     
> >>
> >> +0: I'm not against it, an INT64_C() is needed for the
> >> 0x89504e470d0a1a0a constant.  
> > 
> > True. I just copy and pasted this from ffmpeg's id3v2.c (similar case -
> > cover art with wrong codec). Would a ULL suffix be good enough?  
> 
> Sadly not, UINT64_C() puts the right UL or ULL depending on the
> architecture.

What? long long is always at least 64 bits.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to