summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_lmlm4.c
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-05 19:57:47 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-05 19:57:47 +0000
commitcd68e1618b17b525bd49757b2f5e245a6cb1a495 (patch)
treec67656ff189654b818ade76a8f5bd0b7d1bf7f91 /libmpdemux/demux_lmlm4.c
parentadfe956dc385d6588eb2ab74828f9a905821adf4 (diff)
downloadmpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.bz2
mpv-cd68e1618b17b525bd49757b2f5e245a6cb1a495.tar.xz
Demuxer modularization
Demuxer selection by name with -demuxer command (bakward compatible) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16176 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_lmlm4.c')
-rw-r--r--libmpdemux/demux_lmlm4.c46
1 files changed, 39 insertions, 7 deletions
diff --git a/libmpdemux/demux_lmlm4.c b/libmpdemux/demux_lmlm4.c
index 107e20ff79..86a0f70802 100644
--- a/libmpdemux/demux_lmlm4.c
+++ b/libmpdemux/demux_lmlm4.c
@@ -158,7 +158,7 @@ static int getFrame(demuxer_t *demuxer, FrameInfo *frameInfo)
return 1;
}
-int lmlm4_check_file(demuxer_t* demuxer)
+static int lmlm4_check_file(demuxer_t* demuxer)
{
FrameInfo frameInfo;
unsigned int first;
@@ -198,7 +198,7 @@ int lmlm4_check_file(demuxer_t* demuxer)
// stream_reset(demuxer->stream);
mp_msg(MSGT_DEMUX, MSGL_V, "LMLM4 Stream Format found\n");
- return 1;
+ return DEMUXER_TYPE_LMLM4;
}
static int video = 0;
@@ -207,7 +207,7 @@ static int frames= 0;
// return value:
// 0 = EOF or no stream found
// 1 = successfully read a packet
-int demux_lmlm4_fill_buffer(demuxer_t *demux)
+static int demux_lmlm4_fill_buffer(demuxer_t *demux, demux_stream_t *ds)
{
FrameInfo frameInfo;
double pts;
@@ -277,7 +277,9 @@ hdr:
return 1;
}
-int demux_open_lmlm4(demuxer_t* demuxer){
+static demuxer_t* demux_open_lmlm4(demuxer_t* demuxer){
+ sh_audio_t *sh_audio=NULL;
+ sh_video_t *sh_video=NULL;
#if 0
sh_video_t* sh_video;
@@ -327,13 +329,43 @@ int demux_open_lmlm4(demuxer_t* demuxer){
demuxer->seekable = 0;
+ if(!ds_fill_buffer(demuxer->video)){
+ mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingVideoStream);
+ demuxer->video->sh=NULL;
+ } else {
+ sh_video=demuxer->video->sh;sh_video->ds=demuxer->video;
+ }
+ if(demuxer->audio->id!=-2) {
+ if(!ds_fill_buffer(demuxer->audio)){
+ mp_msg(MSGT_DEMUXER,MSGL_INFO,"LMLM4: " MSGTR_MissingAudioStream);
+ demuxer->audio->sh=NULL;
+ } else {
+ sh_audio=demuxer->audio->sh;sh_audio->ds=demuxer->audio;
+ }
+ }
-
- return 1;
+ return demuxer;
}
-void demux_close_lmlm4(demuxer_t *demuxer)
+static void demux_close_lmlm4(demuxer_t *demuxer)
{
// printf("Close LMLM4 Stream\n");
return;
}
+
+
+demuxer_desc_t demuxer_desc_lmlm4 = {
+ "LMLM4 MPEG4 Compression Card stream demuxer",
+ "lmlm4",
+ "RAW LMLM4",
+ "Maxim Yevtyushkin",
+ "",
+ DEMUXER_TYPE_LMLM4,
+ 0, // unsafe autodetect
+ lmlm4_check_file,
+ demux_lmlm4_fill_buffer,
+ demux_open_lmlm4,
+ demux_close_lmlm4,
+ NULL,
+ NULL
+};