mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
libavformat : add Photoshop PSD demuxer.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
90af962911
commit
a534862b27
@ -235,6 +235,7 @@ OBJS-$(CONFIG_IMAGE_PGM_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_PICTOR_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_PNG_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_PPM_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_PSD_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_QDRAW_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_SGI_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
OBJS-$(CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER) += img2dec.o img2.o
|
||||
|
@ -366,6 +366,7 @@ void av_register_all(void)
|
||||
REGISTER_DEMUXER (IMAGE_PICTOR_PIPE, image_pictor_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_PNG_PIPE, image_png_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_PPM_PIPE, image_ppm_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_PSD_PIPE, image_psd_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_QDRAW_PIPE, image_qdraw_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_SGI_PIPE, image_sgi_pipe);
|
||||
REGISTER_DEMUXER (IMAGE_SUNRAST_PIPE, image_sunrast_pipe);
|
||||
|
@ -822,6 +822,37 @@ static int png_probe(AVProbeData *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int psd_probe(AVProbeData *p)
|
||||
{
|
||||
const uint8_t *b = p->buf;
|
||||
int ret = 0;
|
||||
uint16_t color_mode;
|
||||
|
||||
if (AV_RL32(b) == MKTAG('8','B','P','S')) {
|
||||
ret += 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((b[4] == 0) && (b[5] == 1)) {/* version 1 is PSD, version 2 is PSB */
|
||||
ret += 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((AV_RL32(b+6) == 0) && (AV_RL16(b+10) == 0))/* reserved must be 0 */
|
||||
ret += 1;
|
||||
|
||||
color_mode = AV_RB16(b+24);
|
||||
if ((color_mode <= 9) && (color_mode != 5) && (color_mode != 6))
|
||||
ret += 1;
|
||||
|
||||
if (ret)
|
||||
return AVPROBE_SCORE_EXTENSION + ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sgi_probe(AVProbeData *p)
|
||||
{
|
||||
const uint8_t *b = p->buf;
|
||||
@ -947,6 +978,7 @@ IMAGEAUTO_DEMUXER(pgmyuv, AV_CODEC_ID_PGMYUV)
|
||||
IMAGEAUTO_DEMUXER(pictor, AV_CODEC_ID_PICTOR)
|
||||
IMAGEAUTO_DEMUXER(png, AV_CODEC_ID_PNG)
|
||||
IMAGEAUTO_DEMUXER(ppm, AV_CODEC_ID_PPM)
|
||||
IMAGEAUTO_DEMUXER(psd, AV_CODEC_ID_PSD)
|
||||
IMAGEAUTO_DEMUXER(qdraw, AV_CODEC_ID_QDRAW)
|
||||
IMAGEAUTO_DEMUXER(sgi, AV_CODEC_ID_SGI)
|
||||
IMAGEAUTO_DEMUXER(sunrast, AV_CODEC_ID_SUNRAST)
|
||||
|
Loading…
x
Reference in New Issue
Block a user