@ -298,6 +298,8 @@ int ff_img_read_header(AVFormatContext *s1)
st - > codec - > codec_id = ff_guess_image2_codec ( s - > path ) ;
st - > codec - > codec_id = ff_guess_image2_codec ( s - > path ) ;
if ( st - > codec - > codec_id = = AV_CODEC_ID_LJPEG )
if ( st - > codec - > codec_id = = AV_CODEC_ID_LJPEG )
st - > codec - > codec_id = AV_CODEC_ID_MJPEG ;
st - > codec - > codec_id = AV_CODEC_ID_MJPEG ;
if ( st - > codec - > codec_id = = AV_CODEC_ID_ALIAS_PIX ) // we cannot distingiush this from BRENDER_PIX
st - > codec - > codec_id = AV_CODEC_ID_NONE ;
}
}
if ( st - > codec - > codec_type = = AVMEDIA_TYPE_VIDEO & &
if ( st - > codec - > codec_type = = AVMEDIA_TYPE_VIDEO & &
pix_fmt ! = AV_PIX_FMT_NONE )
pix_fmt ! = AV_PIX_FMT_NONE )
@ -349,6 +351,26 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt)
filename [ strlen ( filename ) - 1 ] = ' U ' + i ;
filename [ strlen ( filename ) - 1 ] = ' U ' + i ;
}
}
if ( codec - > codec_id = = AV_CODEC_ID_NONE ) {
AVProbeData pd ;
AVInputFormat * ifmt ;
uint8_t header [ 20 + AVPROBE_PADDING_SIZE ] ;
int ret ;
int score = 0 ;
ret = avio_read ( f [ 0 ] , header , 20 ) ;
if ( ret < 0 )
return ret ;
avio_skip ( f [ 0 ] , - ret ) ;
pd . buf = header ;
pd . buf_size = ret ;
pd . filename = filename ;
ifmt = av_probe_input_format3 ( & pd , 1 , & score ) ;
if ( ifmt & & ifmt - > read_packet = = ff_img_read_packet & & ifmt - > raw_codec_id )
codec - > codec_id = ifmt - > raw_codec_id ;
}
if ( codec - > codec_id = = AV_CODEC_ID_RAWVIDEO & & ! codec - > width )
if ( codec - > codec_id = = AV_CODEC_ID_RAWVIDEO & & ! codec - > width )
infer_size ( & codec - > width , & codec - > height , size [ 0 ] ) ;
infer_size ( & codec - > width , & codec - > height , size [ 0 ] ) ;
} else {
} else {