Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
0f814562
Commit
0f814562
authored
Oct 04, 2003
by
Sigmund Augdal Helberg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Further doxygenization.
parent
c992c9ca
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
137 additions
and
79 deletions
+137
-79
include/osd.h
include/osd.h
+11
-1
include/video_output.h
include/video_output.h
+56
-29
include/vlc_video.h
include/vlc_video.h
+70
-49
No files found.
include/osd.h
View file @
0f814562
...
...
@@ -2,7 +2,7 @@
* osd.h : Constants for use with osd modules
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: osd.h,v 1.
3 2003/08/10 10:22:52 gbazin
Exp $
* $Id: osd.h,v 1.
4 2003/10/04 15:51:22 sigmunau
Exp $
*
* Authors: Sigmund Augdal <sigmunau@idi.ntnu.no>
*
...
...
@@ -21,10 +21,20 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/**
* \file
* Stucts and function prototypes to place text on the video
*/
#define OSD_ALIGN_LEFT 0x1
#define OSD_ALIGN_RIGHT 0x2
#define OSD_ALIGN_TOP 0x4
#define OSD_ALIGN_BOTTOM 0x8
/**
* Text style information.
* This struct is currently ignored
*/
struct
text_style_t
{
int
i_size
;
...
...
include/video_output.h
View file @
0f814562
/*****************************************************************************
* video_output.h : video output thread
* This module describes the programming interface for video output threads.
* It includes functions allowing to open a new thread, send pictures to a
* thread, and destroy a previously opened video output thread.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_output.h,v 1.9
8 2003/08/28 21:11:54 gbazin
Exp $
* $Id: video_output.h,v 1.9
9 2003/10/04 15:51:22 sigmunau
Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
...
...
@@ -25,33 +22,41 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* vout_chroma_t: Chroma conversion function
*****************************************************************************
/**
* \defgroup video_output Video Output
* This module describes the programming interface for video output threads.
* It includes functions allowing to open a new thread, send pictures to a
* thread, and destroy a previously opened video output thread.
* @{
*/
/**
* Chroma conversion function
*
* This is the prototype common to all conversion functions.
*
Parameters:
*
p_source
source picture
*
p_dest
destination picture
*
\param p_vout video output thread
*
\param p_source
source picture
*
\param p_dest
destination picture
* Picture width and source dimensions must be multiples of 16.
*
****************************************************************************
/
*/
typedef
void
(
vout_chroma_convert_t
)(
vout_thread_t
*
,
picture_t
*
,
picture_t
*
);
typedef
struct
vout_chroma_t
{
/* conversion functions */
/*
*
conversion functions */
vout_chroma_convert_t
*
pf_convert
;
/* Private module-dependant data */
/*
*
Private module-dependant data */
chroma_sys_t
*
p_sys
;
/* private data */
/* Plugin used and shortcuts to access its capabilities */
/*
*
Plugin used and shortcuts to access its capabilities */
module_t
*
p_module
;
}
vout_chroma_t
;
/**
*
\brief v
ideo output thread descriptor
*
V
ideo output thread descriptor
*
* Any independant video output device, such as an X11 window or a GGI device,
* is represented by a video output thread, and described using the following
...
...
@@ -71,7 +76,8 @@ struct vout_thread_t
/** \name Current display properties */
/**@{*/
uint16_t
i_changes
;
/**< changes made to the thread */
uint16_t
i_changes
;
/**< changes made to the thread.
\see \ref vout_changes */
float
f_gamma
;
/**< gamma */
vlc_bool_t
b_grayscale
;
/**< color or grayscale display */
vlc_bool_t
b_info
;
/**< print additional information */
...
...
@@ -144,18 +150,32 @@ struct vout_thread_t
#define I_RENDERPICTURES p_vout->render.i_pictures
#define PP_RENDERPICTURE p_vout->render.pp_picture
/* Flags for changes - these flags are set in the i_changes field when another
* thread changed a variable */
#define VOUT_INFO_CHANGE 0x0001
/* b_info changed */
#define VOUT_GRAYSCALE_CHANGE 0x0002
/* b_grayscale changed */
#define VOUT_INTF_CHANGE 0x0004
/* b_interface changed */
#define VOUT_SCALE_CHANGE 0x0008
/* b_scale changed */
#define VOUT_GAMMA_CHANGE 0x0010
/* gamma changed */
#define VOUT_CURSOR_CHANGE 0x0020
/* b_cursor changed */
#define VOUT_FULLSCREEN_CHANGE 0x0040
/* b_fullscreen changed */
#define VOUT_SIZE_CHANGE 0x0200
/* size changed */
#define VOUT_DEPTH_CHANGE 0x0400
/* depth changed */
#define VOUT_CHROMA_CHANGE 0x0800
/* change chroma tables */
/** \defgroup vout_changes Flags for changes
* These flags are set in the vout_thread_t::i_changes field when another
* thread changed a variable
* @{
*/
/** b_info changed */
#define VOUT_INFO_CHANGE 0x0001
/** b_grayscale changed */
#define VOUT_GRAYSCALE_CHANGE 0x0002
/** b_interface changed */
#define VOUT_INTF_CHANGE 0x0004
/** b_scale changed */
#define VOUT_SCALE_CHANGE 0x0008
/** gamma changed */
#define VOUT_GAMMA_CHANGE 0x0010
/** b_cursor changed */
#define VOUT_CURSOR_CHANGE 0x0020
/** b_fullscreen changed */
#define VOUT_FULLSCREEN_CHANGE 0x0040
/** size changed */
#define VOUT_SIZE_CHANGE 0x0200
/** depth changed */
#define VOUT_DEPTH_CHANGE 0x0400
/** change chroma tables */
#define VOUT_CHROMA_CHANGE 0x0800
/**@}*/
/* Alignment flags */
#define VOUT_ALIGN_LEFT 0x0001
...
...
@@ -190,7 +210,10 @@ VLC_EXPORT( void, vout_UnlinkPicture, ( vout_thread_t *, picture_t *
VLC_EXPORT
(
void
,
vout_PlacePicture
,
(
vout_thread_t
*
,
unsigned
int
,
unsigned
int
,
unsigned
int
*
,
unsigned
int
*
,
unsigned
int
*
,
unsigned
int
*
)
);
picture_t
*
vout_RenderPicture
(
vout_thread_t
*
,
picture_t
*
,
subpicture_t
*
);
/**
* \addtogroup subpicture
* @{
*/
VLC_EXPORT
(
subpicture_t
*
,
vout_CreateSubPicture
,
(
vout_thread_t
*
,
int
)
);
VLC_EXPORT
(
void
,
vout_DestroySubPicture
,
(
vout_thread_t
*
,
subpicture_t
*
)
);
VLC_EXPORT
(
void
,
vout_DisplaySubPicture
,
(
vout_thread_t
*
,
subpicture_t
*
)
);
...
...
@@ -198,3 +221,7 @@ VLC_EXPORT( void, vout_DisplaySubPicture, ( vout_thread_t *, subpict
subpicture_t
*
vout_SortSubPictures
(
vout_thread_t
*
,
mtime_t
);
void
vout_RenderSubPictures
(
vout_thread_t
*
,
picture_t
*
,
subpicture_t
*
);
/** @}*/
/**
* @}
*/
include/vlc_video.h
View file @
0f814562
...
...
@@ -4,7 +4,7 @@
* includes all common video types and constants.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vlc_video.h,v 1.
2 2003/07/15 18:12:05
sigmunau Exp $
* $Id: vlc_video.h,v 1.
3 2003/10/04 15:51:22
sigmunau Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
...
...
@@ -23,90 +23,102 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/**
***************************************************************************
*
plane_t: d
escription of a planar graphic field
*
****************************************************************************
/
/**
*
D
escription of a planar graphic field
*/
typedef
struct
plane_t
{
uint8_t
*
p_pixels
;
/*
Start of the plane's data */
uint8_t
*
p_pixels
;
/**<
Start of the plane's data */
/* Variables used for fast memcpy operations */
int
i_lines
;
/*
Number of lines */
int
i_pitch
;
/*
Number of bytes in a line, including margins */
int
i_lines
;
/**<
Number of lines */
int
i_pitch
;
/**<
Number of bytes in a line, including margins */
/* Size of a macropixel, defaults to 1 */
/*
*
Size of a macropixel, defaults to 1 */
int
i_pixel_pitch
;
/* Variables used for pictures with margins */
int
i_visible_pitch
;
/*
How many visible pixels are there ? */
int
i_visible_pitch
;
/**<
How many visible pixels are there ? */
}
plane_t
;
/**
***************************************************************************
*
picture_t: v
ideo picture
*
****************************************************************************
/**
*
V
ideo picture
*
* Any picture destined to be displayed by a video output thread should be
* stored in this structure from it's creation to it's effective display.
* Picture type and flags should only be modified by the output thread. Note
* that an empty picture MUST have its flags set to 0.
*
****************************************************************************
/
*/
struct
picture_t
{
/* Picture data - data can always be freely modified, but p_data may
/*
*
Picture data - data can always be freely modified, but p_data may
* NEVER be modified. A direct buffer can be handled as the plugin
* wishes, it can even swap p_pixels buffers. */
uint8_t
*
p_data
;
void
*
p_data_orig
;
/* pointer before memalign */
plane_t
p
[
VOUT_MAX_PLANES
];
/* description of the planes */
int
i_planes
;
/* number of allocated planes */
/* Type and flags - should NOT be modified except by the vout thread */
int
i_status
;
/* picture flags */
int
i_type
;
/* is picture a direct buffer ? */
int
i_matrix_coefficients
;
/* in YUV type, encoding type */
/* Picture management properties - these properties can be modified using
* the video output thread API, but should never be written directly */
int
i_refcount
;
/* link reference counter */
mtime_t
date
;
/* display date */
vlc_bool_t
b_force
;
void
*
p_data_orig
;
/**< pointer before memalign */
plane_t
p
[
VOUT_MAX_PLANES
];
/**< description of the planes */
int
i_planes
;
/**< number of allocated planes */
/* Picture dynamic properties - those properties can be changed by the
* decoder */
vlc_bool_t
b_progressive
;
/* is it a progressive frame ? */
unsigned
int
i_nb_fields
;
/* # of displayed fields */
vlc_bool_t
b_top_field_first
;
/* which field is first */
/** \name Type and flags
* Should NOT be modified except by the vout thread
* @{*/
int
i_status
;
/**< picture flags */
int
i_type
;
/**< is picture a direct buffer ? */
int
i_matrix_coefficients
;
/**< in YUV type, encoding type */
/**@}*/
/* The picture heap we are attached to */
/** \name Picture management properties
* These properties can be modified using the video output thread API,
* but should never be written directly */
/**@{*/
int
i_refcount
;
/**< link reference counter */
mtime_t
date
;
/**< display date */
vlc_bool_t
b_force
;
/**@}*/
/** \name Picture dynamic properties
* Those properties can be changed by the decoder
* @{
*/
vlc_bool_t
b_progressive
;
/**< is it a progressive frame ? */
unsigned
int
i_nb_fields
;
/**< # of displayed fields */
vlc_bool_t
b_top_field_first
;
/**< which field is first */
/**@}*/
/** The picture heap we are attached to */
picture_heap_t
*
p_heap
;
/* Some vouts require the picture to be locked before it can be modified */
int
(
*
pf_lock
)
(
vout_thread_t
*
,
picture_t
*
);
int
(
*
pf_unlock
)
(
vout_thread_t
*
,
picture_t
*
);
/* Private data - the video output plugin might want to put stuff here to
/*
*
Private data - the video output plugin might want to put stuff here to
* keep track of the picture */
picture_sys_t
*
p_sys
;
};
/**
***************************************************************************
*
picture_heap_t: v
ideo picture heap, either render (to store pictures used
/**
*
V
ideo picture heap, either render (to store pictures used
* by the decoder) or output (to store pictures displayed by the vout plugin)
*
****************************************************************************
/
*/
struct
picture_heap_t
{
int
i_pictures
;
/* current heap size */
/* Picture static properties - those properties are fixed at initialization
* and should NOT be modified */
unsigned
int
i_width
;
/* picture width */
unsigned
int
i_height
;
/* picture height */
vlc_fourcc_t
i_chroma
;
/* picture chroma */
unsigned
int
i_aspect
;
/* aspect ratio */
int
i_pictures
;
/**< current heap size */
/* \name Picture static properties
* Those properties are fixed at initialization and should NOT be modified
* @{
*/
unsigned
int
i_width
;
/**< picture width */
unsigned
int
i_height
;
/**< picture height */
vlc_fourcc_t
i_chroma
;
/**< picture chroma */
unsigned
int
i_aspect
;
/**< aspect ratio */
/**@}*/
/* Real pictures */
picture_t
*
pp_picture
[
VOUT_MAX_PICTURES
];
/*
pictures */
int
i_last_used_pic
;
/*
last used pic in heap */
picture_t
*
pp_picture
[
VOUT_MAX_PICTURES
];
/**<
pictures */
int
i_last_used_pic
;
/**<
last used pic in heap */
vlc_bool_t
b_allow_modify_pics
;
/* Stuff used for truecolor RGB planes */
...
...
@@ -114,7 +126,7 @@ struct picture_heap_t
int
i_gmask
,
i_rgshift
,
i_lgshift
;
int
i_bmask
,
i_rbshift
,
i_lbshift
;
/* Stuff used for palettized RGB planes */
/*
*
Stuff used for palettized RGB planes */
void
(
*
pf_setpalette
)
(
vout_thread_t
*
,
uint16_t
*
,
uint16_t
*
,
uint16_t
*
);
};
...
...
@@ -153,6 +165,14 @@ struct picture_heap_t
#define V_PIXELS p[V_PLANE].p_pixels
#define V_PITCH p[V_PLANE].i_pitch
/**
* \defgroup subpicture Video Subpictures
* Subpictures are pictures that should be displayed on top of the video, like
* subtitles and OSD
* \ingroup video_output
* @{
*/
/**
* Video subtitle
*
...
...
@@ -226,3 +246,4 @@ struct subpicture_t
#define RESERVED_SUBPICTURE 1
/* allocated and reserved */
#define READY_SUBPICTURE 2
/* ready for display */
/**@}*/
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