Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
6c84da28
Commit
6c84da28
authored
Sep 10, 2004
by
Gildas Bazin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* commit modules/demux/asf/*: load and parse the metadata object + coding style changes.
parent
55cab795
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
325 additions
and
191 deletions
+325
-191
modules/demux/asf/libasf.c
modules/demux/asf/libasf.c
+256
-94
modules/demux/asf/libasf.h
modules/demux/asf/libasf.h
+69
-97
No files found.
modules/demux/asf/libasf.c
View file @
6c84da28
This diff is collapsed.
Click to expand it.
modules/demux/asf/libasf.h
View file @
6c84da28
...
...
@@ -2,7 +2,7 @@
* libasf.h :
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
* $Id
: libasf.h,v 1.8 2004/01/25 20:05:28 hartman Exp
$
* $Id$
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -39,10 +39,11 @@ typedef struct guid_s
#define ASF_OBJECT_TYPE_INDEX 0x0004
#define ASF_OBJECT_TYPE_FILE_PROPERTIES 0x0005
#define ASF_OBJECT_TYPE_STREAM_PROPERTIES 0x0006
#define ASF_OBJECT_TYPE_
EXTENTION_HEADER
0x0007
#define ASF_OBJECT_TYPE_
HEADER_EXTENSION
0x0007
#define ASF_OBJECT_TYPE_CODEC_LIST 0x0008
#define ASF_OBJECT_TYPE_MARKER 0x0009
#define ASF_OBJECT_TYPE_CONTENT_DESCRIPTION 0x000a
#define ASF_OBJECT_TYPE_METADATA 0x000b
static
const
guid_t
asf_object_null_guid
=
{
...
...
@@ -53,110 +54,49 @@ static const guid_t asf_object_null_guid =
};
static
const
guid_t
asf_object_header_guid
=
{
0x75B22630
,
0x668E
,
0x11CF
,
{
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
}
};
{
0x75B22630
,
0x668E
,
0x11CF
,
{
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
}};
static
const
guid_t
asf_object_data_guid
=
{
0x75B22636
,
0x668E
,
0x11CF
,
{
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
}
};
{
0x75B22636
,
0x668E
,
0x11CF
,
{
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
}};
static
const
guid_t
asf_object_index_guid
=
{
0x33000890
,
0xE5B1
,
0x11CF
,
{
0x89
,
0xF4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x49
,
0xCB
}
};
{
0x33000890
,
0xE5B1
,
0x11CF
,
{
0x89
,
0xF4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x49
,
0xCB
}};
static
const
guid_t
asf_object_file_properties_guid
=
{
0x8cabdca1
,
0xa947
,
0x11cf
,
{
0x8e
,
0xe4
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}
{
0x8cabdca1
,
0xa947
,
0x11cf
,
{
0x8e
,
0xe4
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}};
};
static
const
guid_t
asf_object_stream_properties_guid
=
{
0xB7DC0791
,
0xA9B7
,
0x11CF
,
{
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}
};
{
0xB7DC0791
,
0xA9B7
,
0x11CF
,
{
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}};
static
const
guid_t
asf_object_content_description_guid
=
{
0x75B22633
,
0x668E
,
0x11CF
,
{
0xa6
,
0xd9
,
0x00
,
0xaa
,
0x00
,
0x62
,
0xce
,
0x6c
}
};
{
0x75B22633
,
0x668E
,
0x11CF
,
{
0xa6
,
0xd9
,
0x00
,
0xaa
,
0x00
,
0x62
,
0xce
,
0x6c
}};
static
const
guid_t
asf_object_header_extention_guid
=
{
0x5FBF03B5
,
0xA92E
,
0x11CF
,
{
0x8E
,
0xE3
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}
};
static
const
guid_t
asf_object_header_extension_guid
=
{
0x5FBF03B5
,
0xA92E
,
0x11CF
,
{
0x8E
,
0xE3
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}};
static
const
guid_t
asf_object_metadata_guid
=
{
0xC5F8CBEA
,
0x5BAF
,
0x4877
,
{
0x84
,
0x67
,
0xAA
,
0x8C
,
0x44
,
0xFA
,
0x4C
,
0xCA
}};
static
const
guid_t
asf_object_codec_list_guid
=
{
0x86D15240
,
0x311D
,
0x11D0
,
{
0xA3
,
0xA4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x48
,
0xF6
}
};
{
0x86D15240
,
0x311D
,
0x11D0
,
{
0xA3
,
0xA4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x48
,
0xF6
}};
static
const
guid_t
asf_object_marker_guid
=
{
0xF487CD01
,
0xA951
,
0x11CF
,
{
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}
};
{
0xF487CD01
,
0xA951
,
0x11CF
,
{
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
}};
static
const
guid_t
asf_object_stream_type_audio
=
{
0xF8699E40
,
0x5B4D
,
0x11CF
,
{
0xA8
,
0xFD
,
0x00
,
0x80
,
0x5F
,
0x5C
,
0x44
,
0x2B
}
};
{
0xF8699E40
,
0x5B4D
,
0x11CF
,
{
0xA8
,
0xFD
,
0x00
,
0x80
,
0x5F
,
0x5C
,
0x44
,
0x2B
}};
static
const
guid_t
asf_object_stream_type_video
=
{
0xbc19efc0
,
0x5B4D
,
0x11CF
,
{
0xA8
,
0xFD
,
0x00
,
0x80
,
0x5F
,
0x5C
,
0x44
,
0x2B
}
};
{
0xbc19efc0
,
0x5B4D
,
0x11CF
,
{
0xA8
,
0xFD
,
0x00
,
0x80
,
0x5F
,
0x5C
,
0x44
,
0x2B
}};
static
const
guid_t
asf_object_stream_type_command
=
{
0x59DACFC0
,
0x59E6
,
0x11D0
,
{
0xA3
,
0xAC
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x48
,
0xF6
}
};
{
0x59DACFC0
,
0x59E6
,
0x11D0
,
{
0xA3
,
0xAC
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x48
,
0xF6
}};
#define ASF_OBJECT_COMMON
\
int i_type;
\
guid_t i_object_id;
\
uint64_t i_object_size;
\
uint64_t i_object_pos;
\
#define ASF_OBJECT_COMMON \
int i_type; \
guid_t i_object_id; \
uint64_t i_object_size; \
uint64_t i_object_pos; \
union asf_object_u *p_father; \
union asf_object_u *p_first; \
union asf_object_u *p_last; \
...
...
@@ -253,16 +193,44 @@ typedef struct asf_object_stream_properties_s
uint8_t
*
p_error_correction_data
;
}
asf_object_stream_properties_t
;
typedef
struct
asf_object_header_exten
t
ion_s
typedef
struct
asf_object_header_exten
s
ion_s
{
ASF_OBJECT_COMMON
guid_t
i_reserved1
;
uint16_t
i_reserved2
;
uint32_t
i_header_extention_size
;
uint8_t
*
p_header_extention_data
;
uint32_t
i_header_extension_size
;
uint8_t
*
p_header_extension_data
;
}
asf_object_header_extension_t
;
#define ASF_METADATA_TYPE_STRING 0x0000
#define ASF_METADATA_TYPE_BYTE 0x0001
#define ASF_METADATA_TYPE_BOOL 0x0002
#define ASF_METADATA_TYPE_DWORD 0x0003
#define ASF_METADATA_TYPE_QWORD 0x0004
#define ASF_METADATA_TYPE_WORD 0x0005
typedef
struct
asf_metadata_record_s
{
uint16_t
i_stream
;
uint16_t
i_type
;
char
*
psz_name
;
}
asf_object_header_extention_t
;
int64_t
i_val
;
int
i_data
;
uint8_t
*
p_data
;
}
asf_metadata_record_t
;
typedef
struct
asf_object_metadata_s
{
ASF_OBJECT_COMMON
uint32_t
i_record_entries_count
;
asf_metadata_record_t
*
record
;
}
asf_object_metadata_t
;
typedef
struct
asf_objec_content_description_s
{
...
...
@@ -280,6 +248,7 @@ typedef struct string16_s
{
uint16_t
i_length
;
uint16_t
*
i_char
;
}
string16_t
;
#define ASF_CODEC_TYPE_VIDEO 0x0001
...
...
@@ -339,10 +308,14 @@ typedef struct asf_object_root_s
asf_object_data_t
*
p_data
;
/* could be NULL if !b_seekable or not-present */
asf_object_index_t
*
p_index
;
asf_object_header_extension_t
*
p_hdr_ext
;
/* from asf_object_header_t */
asf_object_file_properties_t
*
p_fp
;
/* from asf_object_header_extension_t */
asf_object_metadata_t
*
p_metadata
;
}
asf_object_root_t
;
/****************************************************************************
...
...
@@ -357,23 +330,22 @@ typedef union asf_object_u
asf_object_root_t
root
;
asf_object_file_properties_t
file_properties
;
asf_object_stream_properties_t
stream_properties
;
asf_object_header_extention_t
header_extention
;
asf_object_header_extension_t
header_extension
;
asf_object_metadata_t
metadata
;
asf_object_codec_list_t
codec_list
;
asf_object_marker_t
marker
;
}
asf_object_t
;
void
ASF_GetGUID
(
guid_t
*
p_guid
,
uint8_t
*
p_data
);
int
ASF_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
);
asf_object_root_t
*
ASF_ReadObjectRoot
(
stream_t
*
,
int
b_seekable
);
void
ASF_FreeObjectRoot
(
stream_t
*
,
asf_object_root_t
*
p_root
);
void
ASF_FreeObjectRoot
(
stream_t
*
,
asf_object_root_t
*
p_root
);
#define ASF_CountObject( a, b ) __ASF_CountObject( (asf_object_t*)(a), b )
int
__ASF_CountObject
(
asf_object_t
*
p_obj
,
const
guid_t
*
p_guid
);
int
__ASF_CountObject
(
asf_object_t
*
p_obj
,
const
guid_t
*
p_guid
);
#define ASF_FindObject( a, b, c ) __ASF_FindObject( (asf_object_t*)(a), b, c )
void
*
__ASF_FindObject
(
asf_object_t
*
p_obj
,
const
guid_t
*
p_guid
,
int
i_number
);
void
*
__ASF_FindObject
(
asf_object_t
*
p_obj
,
const
guid_t
*
p_guid
,
int
i_number
);
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