Commit b3983d35 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont
Browse files

qtcapture: Initialize our structure no sooner than needed.

parent d4e0e3d4
...@@ -55,7 +55,7 @@ vlc_module_begin(); ...@@ -55,7 +55,7 @@ vlc_module_begin();
set_category( CAT_INPUT ); set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_ACCESS ); set_subcategory( SUBCAT_INPUT_ACCESS );
add_shortcut( "qtcapture" ); add_shortcut( "qtcapture" );
set_capability( "access_demux", 0 ); set_capability( "access_demux", 10 );
set_callbacks( Open, Close ); set_callbacks( Open, Close );
vlc_module_end(); vlc_module_end();
...@@ -182,13 +182,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -182,13 +182,6 @@ static int Open( vlc_object_t *p_this )
int i_aspect; int i_aspect;
int result = 0; int result = 0;
/* Set up p_demux */
p_demux->pf_demux = Demux;
p_demux->pf_control = Control;
p_demux->info.i_update = 0;
p_demux->info.i_title = 0;
p_demux->info.i_seekpoint = 0;
/* Only when selected */ /* Only when selected */
if( *p_demux->psz_access == '\0' ) if( *p_demux->psz_access == '\0' )
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -197,12 +190,6 @@ static int Open( vlc_object_t *p_this ) ...@@ -197,12 +190,6 @@ static int Open( vlc_object_t *p_this )
msg_Dbg( p_demux, "QTCapture Probed" ); msg_Dbg( p_demux, "QTCapture Probed" );
p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) );
if( !p_sys ) return VLC_ENOMEM;
memset( p_sys, 0, sizeof( demux_sys_t ) );
memset( &fmt, 0, sizeof( es_format_t ) );
QTCaptureDeviceInput * input = nil; QTCaptureDeviceInput * input = nil;
QTCaptureSession * session = nil; QTCaptureSession * session = nil;
VLCDecompressedVideoOutput * output = nil; VLCDecompressedVideoOutput * output = nil;
...@@ -252,6 +239,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -252,6 +239,7 @@ static int Open( vlc_object_t *p_this )
[session startRunning]; [session startRunning];
int qtchroma = [[[device formatDescriptions] objectAtIndex: 0] formatType]; /* FIXME */ int qtchroma = [[[device formatDescriptions] objectAtIndex: 0] formatType]; /* FIXME */
int chroma = qtchroma_to_fourcc( qtchroma ); int chroma = qtchroma_to_fourcc( qtchroma );
if( !chroma ) if( !chroma )
...@@ -260,6 +248,21 @@ static int Open( vlc_object_t *p_this ) ...@@ -260,6 +248,21 @@ static int Open( vlc_object_t *p_this )
goto error; goto error;
} }
/* Now we can init */
/* Set up p_demux */
p_demux->pf_demux = Demux;
p_demux->pf_control = Control;
p_demux->info.i_update = 0;
p_demux->info.i_title = 0;
p_demux->info.i_seekpoint = 0;
p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) );
if( !p_sys ) return VLC_ENOMEM;
memset( p_sys, 0, sizeof( demux_sys_t ) );
memset( &fmt, 0, sizeof( es_format_t ) );
es_format_Init( &fmt, VIDEO_ES, chroma ); es_format_Init( &fmt, VIDEO_ES, chroma );
NSSize size = [[device attributeForKey:QTFormatDescriptionVideoEncodedPixelsSizeAttribute] sizeValue]; NSSize size = [[device attributeForKey:QTFormatDescriptionVideoEncodedPixelsSizeAttribute] sizeValue];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment