summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-01-25 17:36:30 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-01-25 17:36:30 +0000
commit00e3a6c8b98dcb13cfe2a422159c39fce956f0a1 (patch)
treebc17eb35446ca8f4a1b0d3aed17c1d23fbcb03ab /libmpdemux
parentb136df4b34a0013cb31f34a0c97619335208fce8 (diff)
downloadmpv-00e3a6c8b98dcb13cfe2a422159c39fce956f0a1.tar.bz2
mpv-00e3a6c8b98dcb13cfe2a422159c39fce956f0a1.tar.xz
Pass header to codec in extradata (needed by ffmpeg fli decoder)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11847 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_fli.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libmpdemux/demux_fli.c b/libmpdemux/demux_fli.c
index 1f485e7cd0..0b7f0a428e 100644
--- a/libmpdemux/demux_fli.c
+++ b/libmpdemux/demux_fli.c
@@ -74,10 +74,16 @@ demuxer_t* demux_open_fli(demuxer_t* demuxer){
int speed;
unsigned int frame_size;
int magic_number;
+ unsigned char * header;
// go back to the beginning
stream_reset(demuxer->stream);
stream_seek(demuxer->stream, 0);
+
+ header = malloc(sizeof(BITMAPINFOHEADER) + 128);
+ stream_read(demuxer->stream, header + sizeof(BITMAPINFOHEADER), 128);
+ stream_seek(demuxer->stream, 0);
+
demuxer->movi_start = 128;
demuxer->movi_end = stream_read_dword_le(demuxer->stream);
@@ -116,6 +122,10 @@ demuxer_t* demux_open_fli(demuxer_t* demuxer){
sh_video->disp_w = stream_read_word_le(demuxer->stream);
sh_video->disp_h = stream_read_word_le(demuxer->stream);
+ // pass extradata to codec
+ sh_video->bih = (BITMAPINFOHEADER*)header;
+ sh_video->bih->biSize = sizeof(BITMAPINFOHEADER) + 128;
+
// skip the video depth and flags
stream_skip(demuxer->stream, 4);