Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
22fca623
Commit
22fca623
authored
Aug 17, 2003
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* all: A little clean up.
parent
b75c3a7a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
209 additions
and
271 deletions
+209
-271
modules/demux/asf/asf.c
modules/demux/asf/asf.c
+187
-210
modules/demux/asf/asf.h
modules/demux/asf/asf.h
+1
-2
modules/demux/asf/libasf.c
modules/demux/asf/libasf.c
+18
-20
modules/demux/asf/libasf.h
modules/demux/asf/libasf.h
+3
-39
No files found.
modules/demux/asf/asf.c
View file @
22fca623
...
...
@@ -2,7 +2,7 @@
* asf.c : ASFv01 file input module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: asf.c,v 1.3
1 2003/08/17 23:02:52
fenrir Exp $
* $Id: asf.c,v 1.3
2 2003/08/17 23:42:37
fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -24,37 +24,40 @@
* Preamble
*****************************************************************************/
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
/* strdup() */
#include <errno.h>
#include <sys/types.h>
#include <vlc/vlc.h>
#include <vlc/input.h>
#include "codecs.h"
/* BITMAPINFOHEADER, WAVEFORMATEX */
#include "libasf.h"
#include "asf.h"
/*****************************************************************************
* Local prototypes
*****************************************************************************/
static
int
Activate
(
vlc_object_t
*
);
static
void
Deactivate
(
vlc_object_t
*
);
static
int
Demux
(
input_thread_t
*
);
/*****************************************************************************
* Module descriptor
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
);
static
void
Close
(
vlc_object_t
*
);
vlc_module_begin
();
set_description
(
_
(
"ASF v1.0 demuxer
(file only)
"
)
);
set_description
(
_
(
"ASF v1.0 demuxer"
)
);
set_capability
(
"demux"
,
200
);
set_callbacks
(
Activate
,
Deactivat
e
);
set_callbacks
(
Open
,
Clos
e
);
add_shortcut
(
"asf"
);
vlc_module_end
();
/*****************************************************************************
*
Activate: check file and initializes ASF structur
es
*
Local prototyp
es
*****************************************************************************/
static
int
Activate
(
vlc_object_t
*
p_this
)
static
int
Demux
(
input_thread_t
*
);
static
mtime_t
GetMoviePTS
(
demux_sys_t
*
);
static
int
DemuxPacket
(
input_thread_t
*
,
vlc_bool_t
b_play_audio
);
/*****************************************************************************
* Open: check file and initializes ASF structures
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
p_this
)
{
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
uint8_t
*
p_peek
;
...
...
@@ -65,112 +68,88 @@ static int Activate( vlc_object_t * p_this )
vlc_bool_t
b_seekable
;
/* Initialize access plug-in structures. */
if
(
p_input
->
i_mtu
==
0
)
{
/* Improve speed. */
p_input
->
i_bufsize
=
INPUT_DEFAULT_BUFSIZE
;
}
p_input
->
pf_demux
=
Demux
;
input_info_category_t
*
p_cat
;
/* a little test to see if it could be a asf stream */
if
(
input_Peek
(
p_input
,
&
p_peek
,
16
)
<
16
)
{
msg_Warn
(
p_input
,
"ASF
v1.0
plugin discarded (cannot peek)"
);
return
(
-
1
)
;
msg_Warn
(
p_input
,
"ASF plugin discarded (cannot peek)"
);
return
VLC_EGENERIC
;
}
GetGUID
(
&
guid
,
p_peek
);
if
(
!
CmpGUID
(
&
guid
,
&
asf_object_header_guid
)
)
ASF_
GetGUID
(
&
guid
,
p_peek
);
if
(
!
ASF_
CmpGUID
(
&
guid
,
&
asf_object_header_guid
)
)
{
msg_Warn
(
p_input
,
"ASF
v1.0
plugin discarded (not a valid file)"
);
return
(
-
1
)
;
msg_Warn
(
p_input
,
"ASF plugin discarded (not a valid file)"
);
return
VLC_EGENERIC
;
}
/* create our structure that will contains all data */
if
(
!
(
p_input
->
p_demux_data
=
p_demux
=
malloc
(
sizeof
(
demux_sys_t
)
)
)
)
{
msg_Err
(
p_input
,
"out of memory"
);
return
(
-
1
);
}
/* Set p_input field */
p_input
->
pf_demux
=
Demux
;
p_input
->
p_demux_data
=
p_demux
=
malloc
(
sizeof
(
demux_sys_t
)
);
memset
(
p_demux
,
0
,
sizeof
(
demux_sys_t
)
);
p_demux
->
i_pcr
=
-
1
;
p_demux
->
i_time
=
-
1
;
/* Now load all object ( except raw data ) */
if
(
p_input
->
stream
.
b_seekable
&&
p_input
->
stream
.
i_method
==
INPUT_METHOD_FILE
)
{
b_seekable
=
VLC_TRUE
;
}
else
{
b_seekable
=
VLC_FALSE
;
}
b_seekable
=
p_input
->
stream
.
b_seekable
&&
p_input
->
stream
.
i_method
==
INPUT_METHOD_FILE
;
if
(
!
ASF_ReadObjectRoot
(
p_input
,
&
p_demux
->
root
,
b_seekable
)
)
{
msg_Warn
(
p_input
,
"ASF
v1.0
plugin discarded (not a valid file)"
);
msg_Warn
(
p_input
,
"ASF plugin discarded (not a valid file)"
);
free
(
p_demux
);
return
(
-
1
)
;
return
VLC_EGENERIC
;
}
/* Check if we have found all mandatory asf object */
if
(
!
p_demux
->
root
.
p_hdr
||
!
p_demux
->
root
.
p_data
)
{
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
free
(
p_demux
);
msg_Warn
(
p_input
,
"ASF v1.0 plugin discarded (not a valid file)"
);
return
(
-
1
);
msg_Warn
(
p_input
,
"ASF plugin discarded (not a valid file)"
);
goto
error
;
}
if
(
!
(
p_demux
->
p_fp
=
ASF_FindObject
(
p_demux
->
root
.
p_hdr
,
&
asf_object_file_properties_guid
,
0
)
)
)
{
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
free
(
p_demux
);
msg_Warn
(
p_input
,
"ASF v1.0 plugin discarded (missing file_properties object)"
);
return
(
-
1
);
msg_Warn
(
p_input
,
"ASF plugin discarded (missing file_properties object)"
);
goto
error
;
}
if
(
p_demux
->
p_fp
->
i_min_data_packet_size
!=
p_demux
->
p_fp
->
i_max_data_packet_size
)
{
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
free
(
p_demux
);
msg_Warn
(
p_input
,
"ASF v1.0 plugin discarded (invalid file_properties object)"
);
return
(
-
1
);
msg_Warn
(
p_input
,
"ASF plugin discarded (invalid file_properties object)"
);
goto
error
;
}
p_demux
->
i_streams
=
ASF_CountObject
(
p_demux
->
root
.
p_hdr
,
&
asf_object_stream_properties_guid
);
if
(
!
p_demux
->
i_streams
)
{
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
free
(
p_demux
);
msg_Warn
(
p_input
,
"ASF plugin discarded (cannot find any stream!)"
);
return
(
-
1
);
}
else
{
input_info_category_t
*
p_cat
=
input_InfoCategory
(
p_input
,
"Asf"
);
msg_Dbg
(
p_input
,
"found %d streams"
,
p_demux
->
i_streams
);
input_AddInfo
(
p_cat
,
_
(
"Number of streams"
),
"%d"
,
p_demux
->
i_streams
);
goto
error
;
}
msg_Dbg
(
p_input
,
"found %d streams"
,
p_demux
->
i_streams
);
p_cat
=
input_InfoCategory
(
p_input
,
"Asf"
);
input_AddInfo
(
p_cat
,
_
(
"Number of streams"
),
"%d"
,
p_demux
->
i_streams
);
/* create one program */
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
if
(
input_InitStream
(
p_input
,
0
)
==
-
1
)
{
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
msg_Err
(
p_input
,
"cannot init stream"
);
return
(
-
1
)
;
goto
error
;
}
if
(
input_AddProgram
(
p_input
,
0
,
0
)
==
NULL
)
{
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
msg_Err
(
p_input
,
"cannot add program"
);
return
(
-
1
)
;
goto
error
;
}
p_input
->
stream
.
p_selected_program
=
p_input
->
stream
.
pp_programs
[
0
];
p_input
->
stream
.
i_mux_rate
=
0
;
/*
FIXME
*/
p_input
->
stream
.
i_mux_rate
=
0
;
/*
updated later
*/
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
for
(
i_stream
=
0
;
i_stream
<
p_demux
->
i_streams
;
i_stream
++
)
...
...
@@ -178,7 +157,6 @@ static int Activate( vlc_object_t * p_this )
asf_stream_t
*
p_stream
;
asf_object_stream_properties_t
*
p_sp
;
char
psz_cat
[
sizeof
(
"Stream "
)
+
10
];
input_info_category_t
*
p_cat
;
sprintf
(
psz_cat
,
"Stream %d"
,
i_stream
);
p_cat
=
input_InfoCategory
(
p_input
,
psz_cat
);
...
...
@@ -198,7 +176,7 @@ static int Activate( vlc_object_t * p_this )
p_stream
->
p_es
=
NULL
;
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
if
(
CmpGUID
(
&
p_sp
->
i_stream_type
,
&
asf_object_stream_type_audio
)
)
if
(
ASF_
CmpGUID
(
&
p_sp
->
i_stream_type
,
&
asf_object_stream_type_audio
)
)
{
int
i_codec
;
if
(
p_sp
->
p_type_specific_data
)
...
...
@@ -278,7 +256,7 @@ static int Activate( vlc_object_t * p_this )
}
}
else
if
(
CmpGUID
(
&
p_sp
->
i_stream_type
,
&
asf_object_stream_type_video
)
)
if
(
ASF_
CmpGUID
(
&
p_sp
->
i_stream_type
,
&
asf_object_stream_type_video
)
)
{
p_stream
->
i_cat
=
VIDEO_ES
;
p_stream
->
p_es
=
input_AddES
(
p_input
,
...
...
@@ -398,7 +376,6 @@ static int Activate( vlc_object_t * p_this )
{
p_input
->
stream
.
i_mux_rate
=
0
;
}
}
else
{
...
...
@@ -406,15 +383,147 @@ static int Activate( vlc_object_t * p_this )
p_input
->
stream
.
i_mux_rate
=
0
;
}
p_input
->
stream
.
p_selected_program
->
b_is_ok
=
1
;
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
return
(
0
);
return
VLC_SUCCESS
;
error:
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
free
(
p_demux
);
return
VLC_EGENERIC
;
}
/*****************************************************************************
* Demux: read packet and send them to decoders
*****************************************************************************/
static
int
Demux
(
input_thread_t
*
p_input
)
{
demux_sys_t
*
p_demux
=
p_input
->
p_demux_data
;
vlc_bool_t
b_play_audio
;
int
i
;
vlc_bool_t
b_stream
;
b_stream
=
VLC_FALSE
;
for
(
i
=
0
;
i
<
128
;
i
++
)
{
if
(
p_demux
->
stream
[
i
]
&&
p_demux
->
stream
[
i
]
->
p_es
&&
p_demux
->
stream
[
i
]
->
p_es
->
p_decoder_fifo
)
{
b_stream
=
VLC_TRUE
;
}
}
if
(
!
b_stream
)
{
msg_Warn
(
p_input
,
"no stream selected, exiting..."
);
return
(
0
);
}
/* catch seek from user */
if
(
p_input
->
stream
.
p_selected_program
->
i_synchro_state
==
SYNCHRO_REINIT
)
{
off_t
i_offset
;
msleep
(
p_input
->
i_pts_delay
);
i_offset
=
ASF_TellAbsolute
(
p_input
)
-
p_demux
->
i_data_begin
;
if
(
i_offset
<
0
)
{
i_offset
=
0
;
}
i_offset
+=
p_demux
->
p_fp
->
i_min_data_packet_size
-
i_offset
%
p_demux
->
p_fp
->
i_min_data_packet_size
;
ASF_SeekAbsolute
(
p_input
,
p_demux
->
i_data_begin
+
i_offset
);
p_demux
->
i_time
=
-
1
;
for
(
i
=
0
;
i
<
128
;
i
++
)
{
#define p_stream p_demux->stream[i]
if
(
p_stream
)
{
p_stream
->
i_time
=
-
1
;
}
#undef p_stream
}
}
/* Check if we need to send the audio data to decoder */
b_play_audio
=
!
p_input
->
stream
.
control
.
b_mute
;
for
(
;;
)
{
mtime_t
i_length
;
mtime_t
i_time_begin
=
GetMoviePTS
(
p_demux
);
int
i_result
;
if
(
p_input
->
b_die
)
{
break
;
}
if
(
(
i_result
=
DemuxPacket
(
p_input
,
b_play_audio
)
)
<=
0
)
{
return
i_result
;
}
if
(
i_time_begin
==
-
1
)
{
i_time_begin
=
GetMoviePTS
(
p_demux
);
}
else
{
i_length
=
GetMoviePTS
(
p_demux
)
-
i_time_begin
;
if
(
i_length
<
0
||
i_length
>=
40
*
1000
)
{
break
;
}
}
}
p_demux
->
i_time
=
GetMoviePTS
(
p_demux
);
if
(
p_demux
->
i_time
>=
0
)
{
input_ClockManageRef
(
p_input
,
p_input
->
stream
.
p_selected_program
,
p_demux
->
i_time
*
9
/
100
);
}
return
(
1
);
}
/*****************************************************************************
* Close: frees unused data
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
{
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
demux_sys_t
*
p_sys
=
p_input
->
p_demux_data
;
int
i_stream
;
msg_Dbg
(
p_input
,
"Freeing all memory"
);
ASF_FreeObjectRoot
(
p_input
,
&
p_sys
->
root
);
for
(
i_stream
=
0
;
i_stream
<
128
;
i_stream
++
)
{
#define p_stream p_sys->stream[i_stream]
if
(
p_stream
)
{
if
(
p_stream
->
p_pes
)
{
input_DeletePES
(
p_input
->
p_method_data
,
p_stream
->
p_pes
);
}
free
(
p_stream
);
}
#undef p_stream
}
free
(
p_sys
);
}
/*****************************************************************************
*
*****************************************************************************/
static
mtime_t
GetMoviePTS
(
demux_sys_t
*
p_demux
)
{
mtime_t
i_time
;
...
...
@@ -441,9 +550,6 @@ static mtime_t GetMoviePTS( demux_sys_t *p_demux )
return
(
i_time
);
}
/*****************************************************************************
* Demux: read packet and send them to decoders
*****************************************************************************/
#define GETVALUE2b( bits, var, def ) \
switch( (bits)&0x03 ) \
{ \
...
...
@@ -766,133 +872,4 @@ loop_error_recovery:
return
(
1
);
}
static
int
Demux
(
input_thread_t
*
p_input
)
{
demux_sys_t
*
p_demux
=
p_input
->
p_demux_data
;
vlc_bool_t
b_play_audio
;
int
i
;
vlc_bool_t
b_stream
;
b_stream
=
VLC_FALSE
;
for
(
i
=
0
;
i
<
128
;
i
++
)
{
if
(
p_demux
->
stream
[
i
]
&&
p_demux
->
stream
[
i
]
->
p_es
&&
p_demux
->
stream
[
i
]
->
p_es
->
p_decoder_fifo
)
{
b_stream
=
VLC_TRUE
;
}
}
if
(
!
b_stream
)
{
msg_Warn
(
p_input
,
"no stream selected, exiting..."
);
return
(
0
);
}
/* catch seek from user */
if
(
p_input
->
stream
.
p_selected_program
->
i_synchro_state
==
SYNCHRO_REINIT
)
{
off_t
i_offset
;
msleep
(
p_input
->
i_pts_delay
);
i_offset
=
ASF_TellAbsolute
(
p_input
)
-
p_demux
->
i_data_begin
;
if
(
i_offset
<
0
)
{
i_offset
=
0
;
}
/* XXX work only when i_min_data_packet_size == i_max_data_packet_size */
i_offset
+=
p_demux
->
p_fp
->
i_min_data_packet_size
-
i_offset
%
p_demux
->
p_fp
->
i_min_data_packet_size
;
ASF_SeekAbsolute
(
p_input
,
p_demux
->
i_data_begin
+
i_offset
);
p_demux
->
i_time
=
-
1
;
for
(
i
=
0
;
i
<
128
;
i
++
)
{
#define p_stream p_demux->stream[i]
if
(
p_stream
)
{
p_stream
->
i_time
=
-
1
;
}
#undef p_stream
}
}
/* Check if we need to send the audio data to decoder */
b_play_audio
=
!
p_input
->
stream
.
control
.
b_mute
;
for
(
;;
)
{
mtime_t
i_length
;
mtime_t
i_time_begin
=
GetMoviePTS
(
p_demux
);
int
i_result
;
if
(
p_input
->
b_die
)
{
break
;
}
if
(
(
i_result
=
DemuxPacket
(
p_input
,
b_play_audio
)
)
<=
0
)
{
return
i_result
;
}
if
(
i_time_begin
==
-
1
)
{
i_time_begin
=
GetMoviePTS
(
p_demux
);
}
else
{
i_length
=
GetMoviePTS
(
p_demux
)
-
i_time_begin
;
if
(
i_length
<
0
||
i_length
>=
40
*
1000
)
{
break
;
}
}
}
p_demux
->
i_time
=
GetMoviePTS
(
p_demux
);
if
(
p_demux
->
i_time
>=
0
)
{
/* update pcr XXX in mpeg scale so in 90000 unit/s */
p_demux
->
i_pcr
=
p_demux
->
i_time
*
9
/
100
;
/* first wait for the good time to read next packets */
input_ClockManageRef
(
p_input
,
p_input
->
stream
.
p_selected_program
,
p_demux
->
i_pcr
);
}
return
(
1
);
}
/*****************************************************************************
* MP4End: frees unused data
*****************************************************************************/
static
void
Deactivate
(
vlc_object_t
*
p_this
)
{
#define FREE( p ) \
if( p ) { free( p ); }
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
demux_sys_t
*
p_demux
=
p_input
->
p_demux_data
;
int
i_stream
;
msg_Dbg
(
p_input
,
"Freeing all memory"
);
ASF_FreeObjectRoot
(
p_input
,
&
p_demux
->
root
);
for
(
i_stream
=
0
;
i_stream
<
128
;
i_stream
++
)
{
#define p_stream p_demux->stream[i_stream]
if
(
p_stream
)
{
if
(
p_stream
->
p_pes
)
{
input_DeletePES
(
p_input
->
p_method_data
,
p_stream
->
p_pes
);
}
free
(
p_stream
);
}
#undef p_stream
}
FREE
(
p_input
->
p_demux_data
);
#undef FREE
}
modules/demux/asf/asf.h
View file @
22fca623
...
...
@@ -2,7 +2,7 @@
* asf.h : ASFv01 file input module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: asf.h,v 1.
3 2003/02/01 01:21:04
fenrir Exp $
* $Id: asf.h,v 1.
4 2003/08/17 23:42:37
fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -34,7 +34,6 @@ typedef struct asf_stream_s
struct
demux_sys_t
{
mtime_t
i_pcr
;
// 1/90000 s
mtime_t
i_time
;
// µs
asf_object_root_t
root
;
...
...
modules/demux/asf/libasf.c
View file @
22fca623
...
...
@@ -2,7 +2,7 @@
* libasf.c :
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: libasf.c,v 1.1
3 2003/08/17 23:02:52
fenrir Exp $
* $Id: libasf.c,v 1.1
4 2003/08/17 23:42:37
fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -21,13 +21,11 @@
*****************************************************************************/
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
/* strdup() */
#include <errno.h>
#include <sys/types.h>
#include <vlc/vlc.h>
#include <vlc/input.h>
#include "codecs.h"
/* BITMAPINFOHEADER, WAVEFORMATEX */
#include "libasf.h"
#define ASF_DEBUG 1
...
...
@@ -43,7 +41,7 @@
(guid).v4[0],(guid).v4[1],(guid).v4[2],(guid).v4[3], \
(guid).v4[4],(guid).v4[5],(guid).v4[6],(guid).v4[7]
void
GetGUID
(
guid_t
*
p_guid
,
uint8_t
*
p_data
)
void
ASF_
GetGUID
(
guid_t
*
p_guid
,
uint8_t
*
p_data
)
{
p_guid
->
v1
=
GetDWLE
(
p_data
);
p_guid
->
v2
=
GetWLE
(
p_data
+
4
);
...
...
@@ -51,7 +49,7 @@ void GetGUID( guid_t *p_guid, uint8_t *p_data )
memcpy
(
p_guid
->
v4
,
p_data
+
8
,
8
);
}
int
CmpGUID
(
const
guid_t
*
p_guid1
,
const
guid_t
*
p_guid2
)
int
ASF_
CmpGUID
(
const
guid_t
*
p_guid1
,
const
guid_t
*
p_guid2
)
{
if
(
(
p_guid1
->
v1
!=
p_guid2
->
v1
)
||
(
p_guid1
->
v2
!=
p_guid2
->
v2
)
||
(
p_guid1
->
v3
!=
p_guid2
->
v3
)
||
...
...
@@ -184,7 +182,7 @@ int ASF_ReadObjectCommon( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_common
->
i_object_id
,
p_peek
);
ASF_
GetGUID
(
&
p_common
->
i_object_id
,
p_peek
);
p_common
->
i_object_size
=
GetQWLE
(
p_peek
+
16
);
p_common
->
i_object_pos
=
ASF_TellAbsolute
(
p_input
);
p_common
->
p_next
=
NULL
;
...
...
@@ -300,7 +298,7 @@ int ASF_ReadObject_Data( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_data
->
i_file_id
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_data
->
i_file_id
,
p_peek
+
24
);
p_data
->
i_total_data_packets
=
GetQWLE
(
p_peek
+
40
);
p_data
->
i_reserved
=
GetWLE
(
p_peek
+
48
);
#ifdef ASF_DEBUG
...
...
@@ -325,7 +323,7 @@ int ASF_ReadObject_Index( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_index
->
i_file_id
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_index
->
i_file_id
,
p_peek
+
24
);
p_index
->
i_index_entry_time_interval
=
GetQWLE
(
p_peek
+
40
);
p_index
->
i_max_packet_count
=
GetDWLE
(
p_peek
+
48
);
p_index
->
i_index_entry_count
=
GetDWLE
(
p_peek
+
52
);
...
...
@@ -362,7 +360,7 @@ int ASF_ReadObject_file_properties( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_fp
->
i_file_id
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_fp
->
i_file_id
,
p_peek
+
24
);
p_fp
->
i_file_size
=
GetQWLE
(
p_peek
+
40
);
p_fp
->
i_creation_date
=
GetQWLE
(
p_peek
+
48
);
p_fp
->
i_data_packets_count
=
GetQWLE
(
p_peek
+
56
);
...
...
@@ -407,7 +405,7 @@ int ASF_ReadObject_header_extention( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_he
->
i_reserved1
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_he
->
i_reserved1
,
p_peek
+
24
);
p_he
->
i_reserved2
=
GetWLE
(
p_peek
+
40
);
p_he
->
i_header_extention_size
=
GetDWLE
(
p_peek
+
42
);
if
(
p_he
->
i_header_extention_size
)
...
...
@@ -450,8 +448,8 @@ int ASF_ReadObject_stream_properties( input_thread_t *p_input,
{
return
(
0
);
}
GetGUID
(
&
p_sp
->
i_stream_type
,
p_peek
+
24
);
GetGUID
(
&
p_sp
->
i_error_correction_type
,
p_peek
+
40
);
ASF_
GetGUID
(
&
p_sp
->
i_stream_type
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_sp
->
i_error_correction_type
,
p_peek
+
40
);
p_sp
->
i_time_offset
=
GetQWLE
(
p_peek
+
56
);
p_sp
->
i_type_specific_data_length
=
GetDWLE
(
p_peek
+
64
);
p_sp
->
i_error_correction_data_length
=
GetDWLE
(
p_peek
+
68
);
...
...
@@ -524,7 +522,7 @@ int ASF_ReadObject_codec_list( input_thread_t *p_input,
return
(
0
);
}
GetGUID
(
&
p_cl
->
i_reserved
,
p_peek
+
24
);
ASF_
GetGUID
(
&
p_cl
->
i_reserved
,
p_peek
+
24
);
p_cl
->
i_codec_entries_count
=
GetWLE
(
p_peek
+
40
);
if
(
p_cl
->
i_codec_entries_count
>
0
)
{
...
...
@@ -757,9 +755,9 @@ int ASF_ReadObject( input_thread_t *p_input,
/* find this object */
for
(
i_index
=
0
;
;
i_index
++
)
{
if
(
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
if
(
ASF_
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
&
p_obj
->
common
.
i_object_id
)
||
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
ASF_
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
&
asf_object_null_guid
)
)
{
break
;
...
...
@@ -822,9 +820,9 @@ void ASF_FreeObject( input_thread_t *p_input,
/* find this object */
for
(
i_index
=
0
;
;
i_index
++
)
{
if
(
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
if
(
ASF_
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
&
p_obj
->
common
.
i_object_id
)
||
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
ASF_
CmpGUID
(
ASF_Object_Function
[
i_index
].
p_id
,
&
asf_object_null_guid
)
)
{
break
;
...
...
@@ -945,7 +943,7 @@ int __ASF_CountObject( asf_object_t *p_obj, const guid_t *p_guid )
p_child
=
p_obj
->
common
.
p_first
;
while
(
p_child
)
{
if
(
CmpGUID
(
&
p_child
->
common
.
i_object_id
,
p_guid
)
)
if
(
ASF_
CmpGUID
(
&
p_child
->
common
.
i_object_id
,
p_guid
)
)
{
i_count
++
;
}
...
...
@@ -962,7 +960,7 @@ void *__ASF_FindObject( asf_object_t *p_obj, const guid_t *p_guid, int i_number
while
(
p_child
)
{
if
(
CmpGUID
(
&
p_child
->
common
.
i_object_id
,
p_guid
)
)
if
(
ASF_
CmpGUID
(
&
p_child
->
common
.
i_object_id
,
p_guid
)
)
{
if
(
i_number
==
0
)
{
...
...
modules/demux/asf/libasf.h
View file @
22fca623
...
...
@@ -2,7 +2,7 @@
* libasf.h :
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: libasf.h,v 1.
5 2002/12/06 16:34:06 sam
Exp $
* $Id: libasf.h,v 1.
6 2003/08/17 23:42:37 fenrir
Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -20,7 +20,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#include "codecs.h"
/* BITMAPINFOHEADER, WAVEFORMATEX */
/*****************************************************************************
* Structure needed for decoder
...
...
@@ -153,24 +152,6 @@ static const guid_t asf_object_stream_type_command =
{
0xA3
,
0xAC
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x48
,
0xF6
}
};
#if 0
static const guid_t asf_object_
{
};
#endif
#if 0
typedef struct asf_packet_s
{
int i_stream_number;
int i_payload_size;
u8 *p_payload_data;
} asf_packet_t;
#endif
#define ASF_OBJECT_COMMON \
int i_type; \
guid_t i_object_id; \
...
...
@@ -334,14 +315,6 @@ typedef struct asf_object_codec_list_s
}
asf_object_codec_list_t
;
#if 0
typedef struct asf_object_script_command_s
{
ASF_OBJECT_COMMON
} asf_object_script_command_t;
#endif
typedef
struct
asf_marker_s
{
uint64_t
i_offset
;
...
...
@@ -351,7 +324,6 @@ typedef struct asf_marker_s
uint32_t
i_flags
;
uint32_t
i_marker_description_length
;
uint8_t
*
i_marker_description
;
/* u8 padding */
}
asf_marker_t
;
...
...
@@ -366,14 +338,6 @@ typedef struct asf_object_marker_s
}
asf_object_marker_t
;
#if 0
typedef struct asf_object__s
{
ASF_OBJECT_COMMON
} asf_object__t;
#endif
typedef
union
asf_object_u
{
asf_object_common_t
common
;
...
...
@@ -395,8 +359,8 @@ int ASF_SeekAbsolute( input_thread_t *p_input, off_t i_pos);
int
ASF_ReadData
(
input_thread_t
*
p_input
,
uint8_t
*
p_buff
,
int
i_size
);
int
ASF_SkipBytes
(
input_thread_t
*
p_input
,
int
i_count
);
void
GetGUID
(
guid_t
*
p_guid
,
uint8_t
*
p_data
);
int
CmpGUID
(
const
guid_t
*
p_guid1
,
const
guid_t
*
p_guid2
);
void
ASF_
GetGUID
(
guid_t
*
p_guid
,
uint8_t
*
p_data
);
int
ASF_
CmpGUID
(
const
guid_t
*
p_guid1
,
const
guid_t
*
p_guid2
);
int
ASF_ReadObjectCommon
(
input_thread_t
*
p_input
,
asf_object_t
*
p_obj
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment