Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
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 @@
...
@@ -2,7 +2,7 @@
* osd.h : Constants for use with osd modules
* osd.h : Constants for use with osd modules
*****************************************************************************
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* 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>
* Authors: Sigmund Augdal <sigmunau@idi.ntnu.no>
*
*
...
@@ -21,10 +21,20 @@
...
@@ -21,10 +21,20 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* 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_LEFT 0x1
#define OSD_ALIGN_RIGHT 0x2
#define OSD_ALIGN_RIGHT 0x2
#define OSD_ALIGN_TOP 0x4
#define OSD_ALIGN_TOP 0x4
#define OSD_ALIGN_BOTTOM 0x8
#define OSD_ALIGN_BOTTOM 0x8
/**
* Text style information.
* This struct is currently ignored
*/
struct
text_style_t
struct
text_style_t
{
{
int
i_size
;
int
i_size
;
...
...
include/video_output.h
View file @
0f814562
/*****************************************************************************
/*****************************************************************************
* video_output.h : video output thread
* 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
* 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>
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
...
@@ -25,33 +22,41 @@
...
@@ -25,33 +22,41 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* 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.
* This is the prototype common to all conversion functions.
*
Parameters:
*
\param p_vout video output thread
*
p_source
source picture
*
\param p_source
source picture
*
p_dest
destination picture
*
\param p_dest
destination picture
* Picture width and source dimensions must be multiples of 16.
* Picture width and source dimensions must be multiples of 16.
*
****************************************************************************
/
*/
typedef
void
(
vout_chroma_convert_t
)(
vout_thread_t
*
,
typedef
void
(
vout_chroma_convert_t
)(
vout_thread_t
*
,
picture_t
*
,
picture_t
*
);
picture_t
*
,
picture_t
*
);
typedef
struct
vout_chroma_t
typedef
struct
vout_chroma_t
{
{
/* conversion functions */
/*
*
conversion functions */
vout_chroma_convert_t
*
pf_convert
;
vout_chroma_convert_t
*
pf_convert
;
/* Private module-dependant data */
/*
*
Private module-dependant data */
chroma_sys_t
*
p_sys
;
/* private 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
;
module_t
*
p_module
;
}
vout_chroma_t
;
}
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,
* 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
* is represented by a video output thread, and described using the following
...
@@ -71,7 +76,8 @@ struct vout_thread_t
...
@@ -71,7 +76,8 @@ struct vout_thread_t
/** \name Current display properties */
/** \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 */
float
f_gamma
;
/**< gamma */
vlc_bool_t
b_grayscale
;
/**< color or grayscale display */
vlc_bool_t
b_grayscale
;
/**< color or grayscale display */
vlc_bool_t
b_info
;
/**< print additional information */
vlc_bool_t
b_info
;
/**< print additional information */
...
@@ -144,18 +150,32 @@ struct vout_thread_t
...
@@ -144,18 +150,32 @@ struct vout_thread_t
#define I_RENDERPICTURES p_vout->render.i_pictures
#define I_RENDERPICTURES p_vout->render.i_pictures
#define PP_RENDERPICTURE p_vout->render.pp_picture
#define PP_RENDERPICTURE p_vout->render.pp_picture
/* Flags for changes - these flags are set in the i_changes field when another
/** \defgroup vout_changes Flags for changes
* thread changed a variable */
* These flags are set in the vout_thread_t::i_changes field when another
#define VOUT_INFO_CHANGE 0x0001
/* b_info changed */
* thread changed a variable
#define VOUT_GRAYSCALE_CHANGE 0x0002
/* b_grayscale changed */
* @{
#define VOUT_INTF_CHANGE 0x0004
/* b_interface changed */
*/
#define VOUT_SCALE_CHANGE 0x0008
/* b_scale changed */
/** b_info changed */
#define VOUT_GAMMA_CHANGE 0x0010
/* gamma changed */
#define VOUT_INFO_CHANGE 0x0001
#define VOUT_CURSOR_CHANGE 0x0020
/* b_cursor changed */
/** b_grayscale changed */
#define VOUT_FULLSCREEN_CHANGE 0x0040
/* b_fullscreen changed */
#define VOUT_GRAYSCALE_CHANGE 0x0002
#define VOUT_SIZE_CHANGE 0x0200
/* size changed */
/** b_interface changed */
#define VOUT_DEPTH_CHANGE 0x0400
/* depth changed */
#define VOUT_INTF_CHANGE 0x0004
#define VOUT_CHROMA_CHANGE 0x0800
/* change chroma tables */
/** 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 */
/* Alignment flags */
#define VOUT_ALIGN_LEFT 0x0001
#define VOUT_ALIGN_LEFT 0x0001
...
@@ -190,7 +210,10 @@ VLC_EXPORT( void, vout_UnlinkPicture, ( vout_thread_t *, picture_t *
...
@@ -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
*
)
);
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
*
,
picture_t
*
vout_RenderPicture
(
vout_thread_t
*
,
picture_t
*
,
subpicture_t
*
);
subpicture_t
*
);
/**
* \addtogroup subpicture
* @{
*/
VLC_EXPORT
(
subpicture_t
*
,
vout_CreateSubPicture
,
(
vout_thread_t
*
,
int
)
);
VLC_EXPORT
(
subpicture_t
*
,
vout_CreateSubPicture
,
(
vout_thread_t
*
,
int
)
);
VLC_EXPORT
(
void
,
vout_DestroySubPicture
,
(
vout_thread_t
*
,
subpicture_t
*
)
);
VLC_EXPORT
(
void
,
vout_DestroySubPicture
,
(
vout_thread_t
*
,
subpicture_t
*
)
);
VLC_EXPORT
(
void
,
vout_DisplaySubPicture
,
(
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
...
@@ -198,3 +221,7 @@ VLC_EXPORT( void, vout_DisplaySubPicture, ( vout_thread_t *, subpict
subpicture_t
*
vout_SortSubPictures
(
vout_thread_t
*
,
mtime_t
);
subpicture_t
*
vout_SortSubPictures
(
vout_thread_t
*
,
mtime_t
);
void
vout_RenderSubPictures
(
vout_thread_t
*
,
picture_t
*
,
void
vout_RenderSubPictures
(
vout_thread_t
*
,
picture_t
*
,
subpicture_t
*
);
subpicture_t
*
);
/** @}*/
/**
* @}
*/
include/vlc_video.h
View file @
0f814562
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* includes all common video types and constants.
* includes all common video types and constants.
*****************************************************************************
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* 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>
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
*
...
@@ -23,90 +23,102 @@
...
@@ -23,90 +23,102 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* 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
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 */
/* Variables used for fast memcpy operations */
int
i_lines
;
/*
Number of lines */
int
i_lines
;
/**<
Number of lines */
int
i_pitch
;
/*
Number of bytes in a line, including margins */
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
;
int
i_pixel_pitch
;
/* Variables used for pictures with margins */
/* 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
;
}
plane_t
;
/**
***************************************************************************
/**
*
picture_t: v
ideo picture
*
V
ideo picture
*
****************************************************************************
*
* Any picture destined to be displayed by a video output thread should be
* 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.
* 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
* Picture type and flags should only be modified by the output thread. Note
* that an empty picture MUST have its flags set to 0.
* that an empty picture MUST have its flags set to 0.
*
****************************************************************************
/
*/
struct
picture_t
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
* NEVER be modified. A direct buffer can be handled as the plugin
* wishes, it can even swap p_pixels buffers. */
* wishes, it can even swap p_pixels buffers. */
uint8_t
*
p_data
;
uint8_t
*
p_data
;
void
*
p_data_orig
;
/* pointer before memalign */
void
*
p_data_orig
;
/**< pointer before memalign */
plane_t
p
[
VOUT_MAX_PLANES
];
/* description of the planes */
plane_t
p
[
VOUT_MAX_PLANES
];
/**< description of the planes */
int
i_planes
;
/* number of allocated 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
;
/* Picture dynamic properties - those properties can be changed by the
/** \name Type and flags
* decoder */
* Should NOT be modified except by the vout thread
vlc_bool_t
b_progressive
;
/* is it a progressive frame ? */
* @{*/
unsigned
int
i_nb_fields
;
/* # of displayed fields */
int
i_status
;
/**< picture flags */
vlc_bool_t
b_top_field_first
;
/* which field is first */
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
;
picture_heap_t
*
p_heap
;
/* Some vouts require the picture to be locked before it can be modified */
/* Some vouts require the picture to be locked before it can be modified */
int
(
*
pf_lock
)
(
vout_thread_t
*
,
picture_t
*
);
int
(
*
pf_lock
)
(
vout_thread_t
*
,
picture_t
*
);
int
(
*
pf_unlock
)
(
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 */
* keep track of the picture */
picture_sys_t
*
p_sys
;
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)
* by the decoder) or output (to store pictures displayed by the vout plugin)
*
****************************************************************************
/
*/
struct
picture_heap_t
struct
picture_heap_t
{
{
int
i_pictures
;
/* current heap size */
int
i_pictures
;
/**< current heap size */
/* Picture static properties - those properties are fixed at initialization
/* \name Picture static properties
* and should NOT be modified */
* 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_width
;
/**< picture width */
unsigned
int
i_aspect
;
/* aspect ratio */
unsigned
int
i_height
;
/**< picture height */
vlc_fourcc_t
i_chroma
;
/**< picture chroma */
unsigned
int
i_aspect
;
/**< aspect ratio */
/**@}*/
/* Real pictures */
/* Real pictures */
picture_t
*
pp_picture
[
VOUT_MAX_PICTURES
];
/*
pictures */
picture_t
*
pp_picture
[
VOUT_MAX_PICTURES
];
/**<
pictures */
int
i_last_used_pic
;
/*
last used pic in heap */
int
i_last_used_pic
;
/**<
last used pic in heap */
vlc_bool_t
b_allow_modify_pics
;
vlc_bool_t
b_allow_modify_pics
;
/* Stuff used for truecolor RGB planes */
/* Stuff used for truecolor RGB planes */
...
@@ -114,7 +126,7 @@ struct picture_heap_t
...
@@ -114,7 +126,7 @@ struct picture_heap_t
int
i_gmask
,
i_rgshift
,
i_lgshift
;
int
i_gmask
,
i_rgshift
,
i_lgshift
;
int
i_bmask
,
i_rbshift
,
i_lbshift
;
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
*
);
void
(
*
pf_setpalette
)
(
vout_thread_t
*
,
uint16_t
*
,
uint16_t
*
,
uint16_t
*
);
};
};
...
@@ -153,6 +165,14 @@ struct picture_heap_t
...
@@ -153,6 +165,14 @@ struct picture_heap_t
#define V_PIXELS p[V_PLANE].p_pixels
#define V_PIXELS p[V_PLANE].p_pixels
#define V_PITCH p[V_PLANE].i_pitch
#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
* Video subtitle
*
*
...
@@ -226,3 +246,4 @@ struct subpicture_t
...
@@ -226,3 +246,4 @@ struct subpicture_t
#define RESERVED_SUBPICTURE 1
/* allocated and reserved */
#define RESERVED_SUBPICTURE 1
/* allocated and reserved */
#define READY_SUBPICTURE 2
/* ready for display */
#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