summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_ffmpeg.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index efcfbc7ba6..01ab2de994 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -229,6 +229,14 @@ static int init(sh_video_t *sh){
// printf("%X %X %d %d\n", extrahdr[0], extrahdr[1]);
}
+ if (sh->bih && (sh->bih->biSize != sizeof(BITMAPINFOHEADER)) &&
+ (sh->format == mmioFOURCC('M','4','S','2') ||
+ sh->format == mmioFOURCC('M','P','4','S')))
+ {
+ avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER);
+ avctx->extradata = malloc(avctx->extradata_size);
+ memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size);
+ }
/* open it */
if (avcodec_open(avctx, lavc_codec) < 0) {