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.

lu - testing the plaid syntax...
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to