[PATCH] a straighforward still image demuxer with 100% =
Joseph Tulou
brezhoneg1 at yahoo.fr
Mon Jan 5 14:12:03 CET 2009
=0A=
---=0A=
modules/access/fake.c | 40 +++++++++++++++++++++++++++++++++++++---=0A=
1 files changed, 37 insertions(+), 3 deletions(-)=0A=
=0A=
diff --git a/modules/access/fake.c b/modules/access/fake.c=0A=
index 2e0d990..297d71c 100644=0A=
--- a/modules/access/fake.c=0A=
+++ b/modules/access/fake.c=0A=
@@ -33,6 +33,7 @@=0A=
#include <vlc_plugin.h>=0A=
#include <vlc_access.h>=0A=
#include <vlc_demux.h>=0A=
+#include <vlc_image.h>=0A=
=0A=
=
/************************************************************************=
*****=0A=
* Module descriptior=0A=
@@ -70,7 +71,7 @@ vlc_module_begin ()=0A=
true );=0A=
=0A=
add_shortcut( "fake" )=0A=
- set_capability( "access_demux", 0 )=0A=
+ set_capability( "access_demux", 100 )=0A=
set_callbacks( Open, Close )=0A=
vlc_module_end ()=0A=
=0A=
@@ -97,10 +98,43 @@ static int Open( vlc_object_t *p_this )=0A=
demux_sys_t *p_sys;=0A=
es_format_t fmt;=0A=
=0A=
- /* Only when selected */=0A=
- if( *p_demux->psz_access =3D=3D '\0' )=0A=
+ if( *p_demux->psz_access !=3D '\0' ) =0A=
+ {=0A=
+ /* if an access is provided, then it has to be "fake" */=0A=
+ if( strcmp( p_demux->psz_access, "fake" ) !=3D 0 )=0A=
return VLC_EGENERIC;=0A=
=0A=
+ msg_Dbg( p_demux, "fake:// access_demux detected" );=0A=
+ }=0A=
+ else=0A=
+ {=0A=
+ /**=0A=
+ * access is not provided,=0A=
+ * then let's see if path could be an image=0A=
+ **/=0A=
+=0A=
+ if( !p_demux->psz_path || !*p_demux->psz_path )=0A=
+ return VLC_EGENERIC;=0A=
+=0A=
+ vlc_fourcc_t i_codec =3D image_Ext2Fourcc( p_demux->psz_path );=0A=
+ if( !i_codec )=0A=
+ return VLC_EGENERIC;=0A=
+ =0A=
+ char* p_codec =3D (char*) &i_codec;=0A=
+ msg_Dbg( p_demux, "still image detected with codec format =
%c%c%c%c",=0A=
+ p_codec[0], p_codec[1], p_codec[2], p_codec[3] );=0A=
+=0A=
+ vlc_object_t* p_input =3D vlc_object_find( p_demux, =
VLC_OBJECT_INPUT, FIND_PARENT );=0A=
+ if( !p_input )=0A=
+ return VLC_EGENERIC;=0A=
+=0A=
+ /* set up fake-file on the fly */=0A=
+ var_Create( p_input, "fake-file", VLC_VAR_STRING );=0A=
+ var_SetString( p_input, "fake-file", p_demux->psz_path );=0A=
+=0A=
+ vlc_object_release( p_input );=0A=
+ }=0A=
+ =0A=
/* Set up p_demux */=0A=
DEMUX_INIT_COMMON(); p_sys =3D p_demux->p_sys;=0A=
p_demux->info.i_update =3D 0;=0A=
-- =0A=
1.5.2.5=0A=
=0A=
------=_NextPart_000_0003_01C96F44.09D8C430--
More information about the vlc-devel
mailing list