libvlc_media_player.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:30k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * libvlc_media_player.h:  libvlc_media_player external API
  3.  *****************************************************************************
  4.  * Copyright (C) 1998-2009 the VideoLAN team
  5.  * $Id: 30b2ddbbe373969b564789172ee8ae49ae0ba8a8 $
  6.  *
  7.  * Authors: Clément Stenac <zorglub@videolan.org>
  8.  *          Jean-Paul Saman <jpsaman@videolan.org>
  9.  *          Pierre d'Herbemont <pdherbemont@videolan.org>
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify
  12.  * it under the terms of the GNU General Public License as published by
  13.  * the Free Software Foundation; either version 2 of the License, or
  14.  * (at your option) any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  24.  *****************************************************************************/
  25. /**
  26.  * file
  27.  * This file defines libvlc_media_player external API
  28.  */
  29. #ifndef VLC_LIBVLC_MEDIA_PLAYER_H
  30. #define VLC_LIBVLC_MEDIA_PLAYER_H 1
  31. /*****************************************************************************
  32.  * Media Player
  33.  *****************************************************************************/
  34. /** defgroup libvlc_media_player libvlc_media_player
  35.  * ingroup libvlc
  36.  * LibVLC Media Player, object that let you play a media
  37.  * in a custom drawable
  38.  * @{
  39.  */
  40. typedef struct libvlc_media_player_t libvlc_media_player_t;
  41. /**
  42.  * Description for video, audio tracks and subtitles. It contains
  43.  * id, name (description string) and pointer to next record.
  44.  */
  45. typedef struct libvlc_track_description_t
  46. {
  47.     int   i_id;
  48.     char *psz_name;
  49.     struct libvlc_track_description_t *p_next;
  50.     
  51. } libvlc_track_description_t;
  52. /**
  53.  * Description for audio output. It contains
  54.  * name, description and pointer to next record.
  55.  */
  56. typedef struct libvlc_audio_output_t
  57. {
  58.     char *psz_name;
  59.     char *psz_description;
  60.     struct libvlc_audio_output_t *p_next;
  61.     
  62. } libvlc_audio_output_t;
  63. /**
  64.  * Rectangle type for video geometry
  65.  */
  66. typedef struct libvlc_rectangle_t
  67. {
  68.     int top, left;
  69.     int bottom, right;
  70. } libvlc_rectangle_t;
  71. /**
  72.  * Create an empty Media Player object
  73.  *
  74.  * param p_libvlc_instance the libvlc instance in which the Media Player
  75.  *        should be created.
  76.  * param p_e an initialized exception pointer
  77.  */
  78. VLC_PUBLIC_API libvlc_media_player_t * libvlc_media_player_new( libvlc_instance_t *, libvlc_exception_t * );
  79. /**
  80.  * Create a Media Player object from a Media
  81.  *
  82.  * param p_md the media. Afterwards the p_md can be safely
  83.  *        destroyed.
  84.  * param p_e an initialized exception pointer
  85.  */
  86. VLC_PUBLIC_API libvlc_media_player_t * libvlc_media_player_new_from_media( libvlc_media_t *, libvlc_exception_t * );
  87. /**
  88.  * Release a media_player after use
  89.  * Decrement the reference count of a media player object. If the
  90.  * reference count is 0, then libvlc_media_player_release() will
  91.  * release the media player object. If the media player object
  92.  * has been released, then it should not be used again.
  93.  *
  94.  * param p_mi the Media Player to free
  95.  */
  96. VLC_PUBLIC_API void libvlc_media_player_release( libvlc_media_player_t * );
  97. /**
  98.  * Retain a reference to a media player object. Use
  99.  * libvlc_media_player_release() to decrement reference count.
  100.  *
  101.  * param p_mi media player object
  102.  */
  103. VLC_PUBLIC_API void libvlc_media_player_retain( libvlc_media_player_t * );
  104. /**
  105.  * Set the media that will be used by the media_player. If any,
  106.  * previous md will be released.
  107.  *
  108.  * param p_mi the Media Player
  109.  * param p_md the Media. Afterwards the p_md can be safely
  110.  *        destroyed.
  111.  * param p_e an initialized exception pointer
  112.  */
  113. VLC_PUBLIC_API void libvlc_media_player_set_media( libvlc_media_player_t *, libvlc_media_t *, libvlc_exception_t * );
  114. /**
  115.  * Get the media used by the media_player.
  116.  *
  117.  * param p_mi the Media Player
  118.  * param p_e an initialized exception pointer
  119.  * return the media associated with p_mi, or NULL if no
  120.  *         media is associated
  121.  */
  122. VLC_PUBLIC_API libvlc_media_t * libvlc_media_player_get_media( libvlc_media_player_t *, libvlc_exception_t * );
  123. /**
  124.  * Get the Event Manager from which the media player send event.
  125.  *
  126.  * param p_mi the Media Player
  127.  * param p_e an initialized exception pointer
  128.  * return the event manager associated with p_mi
  129.  */
  130. VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_player_event_manager ( libvlc_media_player_t *, libvlc_exception_t * );
  131. /**
  132.  * is_playing
  133.  *
  134.  * param p_mi the Media Player
  135.  * param p_e an initialized exception pointer
  136.  * return 1 if the media player is playing, 0 otherwise
  137.  */
  138. VLC_PUBLIC_API int libvlc_media_player_is_playing ( libvlc_media_player_t *, libvlc_exception_t * );
  139. /**
  140.  * Play
  141.  *
  142.  * param p_mi the Media Player
  143.  * param p_e an initialized exception pointer
  144.  */
  145. VLC_PUBLIC_API void libvlc_media_player_play ( libvlc_media_player_t *, libvlc_exception_t * );
  146. /**
  147.  * Pause
  148.  *
  149.  * param p_mi the Media Player
  150.  * param p_e an initialized exception pointer
  151.  */
  152. VLC_PUBLIC_API void libvlc_media_player_pause ( libvlc_media_player_t *, libvlc_exception_t * );
  153. /**
  154.  * Stop
  155.  *
  156.  * param p_mi the Media Player
  157.  * param p_e an initialized exception pointer
  158.  */
  159. VLC_PUBLIC_API void libvlc_media_player_stop ( libvlc_media_player_t *, libvlc_exception_t * );
  160. /**
  161.  * Set the agl handler where the media player should render its video output.
  162.  *
  163.  * param p_mi the Media Player
  164.  * param drawable the agl handler
  165.  * param p_e an initialized exception pointer
  166.  */
  167. VLC_PUBLIC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t *p_mi, void * drawable, libvlc_exception_t *p_e );
  168. /**
  169.  * Get the agl handler previously set with libvlc_media_player_set_agl().
  170.  *
  171.  * return the agl handler or 0 if none where set
  172.  */
  173. VLC_PUBLIC_API void * libvlc_media_player_get_nsobject ( libvlc_media_player_t *p_mi );
  174. /**
  175.  * Set the agl handler where the media player should render its video output.
  176.  *
  177.  * param p_mi the Media Player
  178.  * param drawable the agl handler
  179.  * param p_e an initialized exception pointer
  180.  */
  181. VLC_PUBLIC_API void libvlc_media_player_set_agl ( libvlc_media_player_t *p_mi, uint32_t drawable, libvlc_exception_t *p_e );
  182. /**
  183.  * Get the agl handler previously set with libvlc_media_player_set_agl().
  184.  *
  185.  * param p_mi the Media Player
  186.  * return the agl handler or 0 if none where set
  187.  */
  188. VLC_PUBLIC_API uint32_t libvlc_media_player_get_agl ( libvlc_media_player_t *p_mi );
  189. /**
  190.  * Set an X Window System drawable where the media player should render its
  191.  * video output. If LibVLC was built without X11 output support, then this has
  192.  * no effects.
  193.  *
  194.  * The specified identifier must correspond to an existing Input/Output class
  195.  * X11 window. Pixmaps are <b>not</b> supported. The caller shall ensure that
  196.  * the X11 server is the same as the one the VLC instance has been configured
  197.  * with.
  198.  * If XVideo is <b>not</b> used, it is assumed that the drawable has the
  199.  * following properties in common with the default X11 screen: depth, scan line
  200.  * pad, black pixel. This is a bug.
  201.  *
  202.  * param p_mi the Media Player
  203.  * param drawable the ID of the X window
  204.  * param p_e an initialized exception pointer
  205.  */
  206. VLC_PUBLIC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t *p_mi, uint32_t drawable, libvlc_exception_t *p_e );
  207. /**
  208.  * Get the X Window System window identifier previously set with
  209.  * libvlc_media_player_set_xwindow(). Note that this will return the identifier
  210.  * even if VLC is not currently using it (for instance if it is playing an
  211.  * audio-only input).
  212.  *
  213.  * return an X window ID, or 0 if none where set.
  214.  */
  215. VLC_PUBLIC_API uint32_t libvlc_media_player_get_xwindow ( libvlc_media_player_t *p_mi );
  216. /**
  217.  * Set a Win32/Win64 API window handle (HWND) where the media player should
  218.  * render its video output. If LibVLC was built without Win32/Win64 API output
  219.  * support, then this has no effects.
  220.  *
  221.  * param p_mi the Media Player
  222.  * param drawable windows handle of the drawable
  223.  * param p_e an initialized exception pointer
  224.  */
  225. VLC_PUBLIC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable, libvlc_exception_t *p_e );
  226. /**
  227.  * Get the Windows API window handle (HWND) previously set with
  228.  * libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
  229.  * is not currently outputting any video to it.
  230.  *
  231.  * return a window handle or NULL if there are none.
  232.  */
  233. VLC_PUBLIC_API void *libvlc_media_player_get_hwnd ( libvlc_media_player_t *p_mi );
  234. /** bug This might go away ... to be replaced by a broader system */
  235. /**
  236.  * Get the current movie length (in ms).
  237.  *
  238.  * param p_mi the Media Player
  239.  * param p_e an initialized exception pointer
  240.  * return the movie length (in ms).
  241.  */
  242. VLC_PUBLIC_API libvlc_time_t libvlc_media_player_get_length( libvlc_media_player_t *, libvlc_exception_t *);
  243. /**
  244.  * Get the current movie time (in ms).
  245.  *
  246.  * param p_mi the Media Player
  247.  * param p_e an initialized exception pointer
  248.  * return the movie time (in ms).
  249.  */
  250. VLC_PUBLIC_API libvlc_time_t libvlc_media_player_get_time( libvlc_media_player_t *, libvlc_exception_t *);
  251. /**
  252.  * Set the movie time (in ms).
  253.  *
  254.  * param p_mi the Media Player
  255.  * param the movie time (in ms).
  256.  * param p_e an initialized exception pointer
  257.  */
  258. VLC_PUBLIC_API void libvlc_media_player_set_time( libvlc_media_player_t *, libvlc_time_t, libvlc_exception_t *);
  259. /**
  260.  * Get movie position.
  261.  *
  262.  * param p_mi the Media Player
  263.  * param p_e an initialized exception pointer
  264.  * return movie position
  265.  */
  266. VLC_PUBLIC_API float libvlc_media_player_get_position( libvlc_media_player_t *, libvlc_exception_t *);
  267. /**
  268.  * Set movie position.
  269.  *
  270.  * param p_mi the Media Player
  271.  * param f_pos the position
  272.  * param p_e an initialized exception pointer
  273.  */
  274. VLC_PUBLIC_API void libvlc_media_player_set_position( libvlc_media_player_t *, float, libvlc_exception_t *);
  275. /**
  276.  * Set movie chapter
  277.  *
  278.  * param p_mi the Media Player
  279.  * param i_chapter chapter number to play
  280.  * param p_e an initialized exception pointer
  281.  */
  282. VLC_PUBLIC_API void libvlc_media_player_set_chapter( libvlc_media_player_t *, int, libvlc_exception_t *);
  283. /**
  284.  * Get movie chapter
  285.  *
  286.  * param p_mi the Media Player
  287.  * param p_e an initialized exception pointer
  288.  * return chapter number currently playing
  289.  */
  290. VLC_PUBLIC_API int libvlc_media_player_get_chapter( libvlc_media_player_t *, libvlc_exception_t * );
  291. /**
  292.  * Get movie chapter count
  293.  *
  294.  * param p_mi the Media Player
  295.  * param p_e an initialized exception pointer
  296.  * return number of chapters in movie
  297.  */
  298. VLC_PUBLIC_API int libvlc_media_player_get_chapter_count( libvlc_media_player_t *, libvlc_exception_t *);
  299. /**
  300.  * Will the player play
  301.  *
  302.  * param p_mi the Media Player
  303.  * param p_e an initialized exception pointer
  304.  * return boolean
  305.  */
  306. VLC_PUBLIC_API int libvlc_media_player_will_play        ( libvlc_media_player_t *, libvlc_exception_t *);
  307. /**
  308.  * Get title chapter count
  309.  *
  310.  * param p_mi the Media Player
  311.  * param i_title title
  312.  * param p_e an initialized exception pointer
  313.  * return number of chapters in title
  314.  */
  315. VLC_PUBLIC_API int libvlc_media_player_get_chapter_count_for_title(
  316.                        libvlc_media_player_t *, int, libvlc_exception_t *);
  317. /**
  318.  * Set movie title
  319.  *
  320.  * param p_mi the Media Player
  321.  * param i_title title number to play
  322.  * param p_e an initialized exception pointer
  323.  */
  324. VLC_PUBLIC_API void libvlc_media_player_set_title( libvlc_media_player_t *, int, libvlc_exception_t *);
  325. /**
  326.  * Get movie title
  327.  *
  328.  * param p_mi the Media Player
  329.  * param p_e an initialized exception pointer
  330.  * return title number currently playing
  331.  */
  332. VLC_PUBLIC_API int libvlc_media_player_get_title( libvlc_media_player_t *, libvlc_exception_t *);
  333. /**
  334.  * Get movie title count
  335.  *
  336.  * param p_mi the Media Player
  337.  * param p_e an initialized exception pointer
  338.  * return title number count
  339.  */
  340. VLC_PUBLIC_API int libvlc_media_player_get_title_count( libvlc_media_player_t *, libvlc_exception_t *);
  341. /**
  342.  * Set previous chapter
  343.  *
  344.  * param p_mi the Media Player
  345.  * param p_e an initialized exception pointer
  346.  */
  347. VLC_PUBLIC_API void libvlc_media_player_previous_chapter( libvlc_media_player_t *, libvlc_exception_t *);
  348. /**
  349.  * Set next chapter
  350.  *
  351.  * param p_mi the Media Player
  352.  * param p_e an initialized exception pointer
  353.  */
  354. VLC_PUBLIC_API void libvlc_media_player_next_chapter( libvlc_media_player_t *, libvlc_exception_t *);
  355. /**
  356.  * Get movie play rate
  357.  *
  358.  * param p_mi the Media Player
  359.  * param p_e an initialized exception pointer
  360.  * return movie play rate
  361.  */
  362. VLC_PUBLIC_API float libvlc_media_player_get_rate( libvlc_media_player_t *, libvlc_exception_t *);
  363. /**
  364.  * Set movie play rate
  365.  *
  366.  * param p_mi the Media Player
  367.  * param movie play rate to set
  368.  * param p_e an initialized exception pointer
  369.  */
  370. VLC_PUBLIC_API void libvlc_media_player_set_rate( libvlc_media_player_t *, float, libvlc_exception_t *);
  371. /**
  372.  * Get current movie state
  373.  *
  374.  * param p_mi the Media Player
  375.  * param p_e an initialized exception pointer
  376.  * return current movie state as libvlc_state_t
  377.  */
  378. VLC_PUBLIC_API libvlc_state_t libvlc_media_player_get_state( libvlc_media_player_t *, libvlc_exception_t *);
  379. /**
  380.  * Get movie fps rate
  381.  *
  382.  * param p_mi the Media Player
  383.  * param p_e an initialized exception pointer
  384.  * return frames per second (fps) for this playing movie
  385.  */
  386. VLC_PUBLIC_API float libvlc_media_player_get_fps( libvlc_media_player_t *, libvlc_exception_t *);
  387. /** end bug */
  388. /**
  389.  * Does this media player have a video output?
  390.  *
  391.  * param p_md the media player
  392.  * param p_e an initialized exception pointer
  393.  */
  394. VLC_PUBLIC_API int  libvlc_media_player_has_vout( libvlc_media_player_t *, libvlc_exception_t *);
  395. /**
  396.  * Is this media player seekable?
  397.  *
  398.  * param p_input the input
  399.  * param p_e an initialized exception pointer
  400.  */
  401. VLC_PUBLIC_API int libvlc_media_player_is_seekable( libvlc_media_player_t *p_mi, libvlc_exception_t *p_e );
  402. /**
  403.  * Can this media player be paused?
  404.  *
  405.  * param p_input the input
  406.  * param p_e an initialized exception pointer
  407.  */
  408. VLC_PUBLIC_API int libvlc_media_player_can_pause( libvlc_media_player_t *p_mi, libvlc_exception_t *p_e );
  409. /**
  410.  * Release (free) libvlc_track_description_t
  411.  *
  412.  * param p_track_description the structure to release
  413.  */
  414. VLC_PUBLIC_API void libvlc_track_description_release( libvlc_track_description_t *p_track_description );
  415. /** defgroup libvlc_video libvlc_video
  416.  * ingroup libvlc_media_player
  417.  * LibVLC Video handling
  418.  * @{
  419.  */
  420. /**
  421.  * Toggle fullscreen status on video output.
  422.  *
  423.  * param p_mediaplayer the media player
  424.  * param p_e an initialized exception pointer
  425.  */
  426. VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_media_player_t *, libvlc_exception_t * );
  427. /**
  428.  * Enable or disable fullscreen on a video output.
  429.  *
  430.  * param p_mediaplayer the media player
  431.  * param b_fullscreen boolean for fullscreen status
  432.  * param p_e an initialized exception pointer
  433.  */
  434. VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_media_player_t *, int, libvlc_exception_t * );
  435. /**
  436.  * Get current fullscreen status.
  437.  *
  438.  * param p_mediaplayer the media player
  439.  * param p_e an initialized exception pointer
  440.  * return the fullscreen status (boolean)
  441.  */
  442. VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_media_player_t *, libvlc_exception_t * );
  443. /**
  444.  * Get current video height.
  445.  *
  446.  * param p_mediaplayer the media player
  447.  * param p_e an initialized exception pointer
  448.  * return the video height
  449.  */
  450. VLC_PUBLIC_API int libvlc_video_get_height( libvlc_media_player_t *, libvlc_exception_t * );
  451. /**
  452.  * Get current video width.
  453.  *
  454.  * param p_mediaplayer the media player
  455.  * param p_e an initialized exception pointer
  456.  * return the video width
  457.  */
  458. VLC_PUBLIC_API int libvlc_video_get_width( libvlc_media_player_t *, libvlc_exception_t * );
  459. /**
  460.  * Get the current video scaling factor.
  461.  * See also libvlc_video_set_scale().
  462.  *
  463.  * param p_mediaplayer the media player
  464.  * param p_e an initialized exception pointer
  465.  * return the currently configured zoom factor, or 0. if the video is set
  466.  * to fit to the output window/drawable automatically.
  467.  */
  468. VLC_PUBLIC_API float libvlc_video_get_scale( libvlc_media_player_t *,
  469.                                              libvlc_exception_t *p_e );
  470. /**
  471.  * Set the video scaling factor. That is the ratio of the number of pixels on
  472.  * screen to the number of pixels in the original decoded video in each
  473.  * dimension. Zero is a special value; it will adjust the video to the output
  474.  * window/drawable (in windowed mode) or the entire screen.
  475.  *
  476.  * Note that not all video outputs support scaling.
  477.  *
  478.  * param p_mediaplayer the media player
  479.  * param i_factor the scaling factor, or zero
  480.  * param p_e an initialized exception pointer
  481.  */
  482. VLC_PUBLIC_API void libvlc_video_set_scale( libvlc_media_player_t *, float,
  483.                                             libvlc_exception_t *p_e );
  484. /**
  485.  * Get current video aspect ratio.
  486.  *
  487.  * param p_mediaplayer the media player
  488.  * param p_e an initialized exception pointer
  489.  * return the video aspect ratio
  490.  */
  491. VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_media_player_t *, libvlc_exception_t * );
  492. /**
  493.  * Set new video aspect ratio.
  494.  *
  495.  * param p_mediaplayer the media player
  496.  * param psz_aspect new video aspect-ratio
  497.  * param p_e an initialized exception pointer
  498.  */
  499. VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_media_player_t *, char *, libvlc_exception_t * );
  500. /**
  501.  * Get current video subtitle.
  502.  *
  503.  * param p_mediaplayer the media player
  504.  * param p_e an initialized exception pointer
  505.  * return the video subtitle selected
  506.  */
  507. VLC_PUBLIC_API int libvlc_video_get_spu( libvlc_media_player_t *, libvlc_exception_t * );
  508. /**
  509.  * Get the number of available video subtitles.
  510.  *
  511.  * param p_mediaplayer the media player
  512.  * param p_e an initialized exception pointer
  513.  * return the number of available video subtitles
  514.  */
  515. VLC_PUBLIC_API int libvlc_video_get_spu_count( libvlc_media_player_t *, libvlc_exception_t * );
  516. /**
  517.  * Get the description of available video subtitles.
  518.  *
  519.  * param p_mediaplayer the media player
  520.  * param p_e an initialized exception pointer
  521.  * return list containing description of available video subtitles
  522.  */
  523. VLC_PUBLIC_API libvlc_track_description_t *
  524.         libvlc_video_get_spu_description( libvlc_media_player_t *, libvlc_exception_t * );
  525. /**
  526.  * Set new video subtitle.
  527.  *
  528.  * param p_mediaplayer the media player
  529.  * param i_spu new video subtitle to select
  530.  * param p_e an initialized exception pointer
  531.  */
  532. VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_media_player_t *, int , libvlc_exception_t * );
  533. /**
  534.  * Set new video subtitle file.
  535.  *
  536.  * param p_mediaplayer the media player
  537.  * param psz_subtitle new video subtitle file
  538.  * param p_e an initialized exception pointer
  539.  * return the success status (boolean)
  540.  */
  541. VLC_PUBLIC_API int libvlc_video_set_subtitle_file( libvlc_media_player_t *, char *, libvlc_exception_t * );
  542. /**
  543.  * Get the description of available titles.
  544.  *
  545.  * param p_mediaplayer the media player
  546.  * param p_e an initialized exception pointer
  547.  * return list containing description of available titles
  548.  */
  549. VLC_PUBLIC_API libvlc_track_description_t *
  550.         libvlc_video_get_title_description( libvlc_media_player_t *, libvlc_exception_t * );
  551. /**
  552.  * Get the description of available chapters for specific title.
  553.  *
  554.  * param p_mediaplayer the media player
  555.  * param i_title selected title
  556.  * param p_e an initialized exception pointer
  557.  * return list containing description of available chapter for title i_title
  558.  */
  559. VLC_PUBLIC_API libvlc_track_description_t *
  560.         libvlc_video_get_chapter_description( libvlc_media_player_t *, int, libvlc_exception_t * );
  561. /**
  562.  * Get current crop filter geometry.
  563.  *
  564.  * param p_mediaplayer the media player
  565.  * param p_e an initialized exception pointer
  566.  * return the crop filter geometry
  567.  */
  568. VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_media_player_t *, libvlc_exception_t * );
  569. /**
  570.  * Set new crop filter geometry.
  571.  *
  572.  * param p_mediaplayer the media player
  573.  * param psz_geometry new crop filter geometry
  574.  * param p_e an initialized exception pointer
  575.  */
  576. VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_media_player_t *, char *, libvlc_exception_t * );
  577. /**
  578.  * Toggle teletext transparent status on video output.
  579.  *
  580.  * param p_mediaplayer the media player
  581.  * param p_e an initialized exception pointer
  582.  */
  583. VLC_PUBLIC_API void libvlc_toggle_teletext( libvlc_media_player_t *, libvlc_exception_t * );
  584. /**
  585.  * Get current teletext page requested.
  586.  *
  587.  * param p_mediaplayer the media player
  588.  * param p_e an initialized exception pointer
  589.  * return the current teletext page requested.
  590.  */
  591. VLC_PUBLIC_API int libvlc_video_get_teletext( libvlc_media_player_t *, libvlc_exception_t * );
  592. /**
  593.  * Set new teletext page to retrieve.
  594.  *
  595.  * param p_mediaplayer the media player
  596.  * param i_page teletex page number requested
  597.  * param p_e an initialized exception pointer
  598.  */
  599. VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_player_t *, int, libvlc_exception_t * );
  600. /**
  601.  * Get number of available video tracks.
  602.  *
  603.  * param p_mi media player
  604.  * param p_e an initialized exception
  605.  * return the number of available video tracks (int)
  606.  */
  607. VLC_PUBLIC_API int libvlc_video_get_track_count( libvlc_media_player_t *,  libvlc_exception_t * );
  608. /**
  609.  * Get the description of available video tracks.
  610.  *
  611.  * param p_mi media player
  612.  * param p_e an initialized exception
  613.  * return list with description of available video tracks
  614.  */
  615. VLC_PUBLIC_API libvlc_track_description_t *
  616.         libvlc_video_get_track_description( libvlc_media_player_t *,  libvlc_exception_t * );
  617. /**
  618.  * Get current video track.
  619.  *
  620.  * param p_mi media player
  621.  * param p_e an initialized exception pointer
  622.  * return the video track (int)
  623.  */
  624. VLC_PUBLIC_API int libvlc_video_get_track( libvlc_media_player_t *, libvlc_exception_t * );
  625. /**
  626.  * Set video track.
  627.  *
  628.  * param p_mi media player
  629.  * param i_track the track (int)
  630.  * param p_e an initialized exception pointer
  631.  */
  632. VLC_PUBLIC_API void libvlc_video_set_track( libvlc_media_player_t *, int, libvlc_exception_t * );
  633. /**
  634.  * Take a snapshot of the current video window.
  635.  *
  636.  * If i_width AND i_height is 0, original size is used.
  637.  * If i_width XOR i_height is 0, original aspect-ratio is preserved.
  638.  *
  639.  * param p_mi media player instance
  640.  * param psz_filepath the path where to save the screenshot to
  641.  * param i_width the snapshot's width
  642.  * param i_height the snapshot's height
  643.  * param p_e an initialized exception pointer
  644.  */
  645. VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_player_t *, const char *,unsigned int, unsigned int, libvlc_exception_t * );
  646. /** @} video */
  647. /** defgroup libvlc_audio libvlc_audio
  648.  * ingroup libvlc_media_player
  649.  * LibVLC Audio handling
  650.  * @{
  651.  */
  652. /**
  653.  * Audio device types
  654.  */
  655. typedef enum libvlc_audio_output_device_types_t {
  656.     libvlc_AudioOutputDevice_Error  = -1,
  657.     libvlc_AudioOutputDevice_Mono   =  1,
  658.     libvlc_AudioOutputDevice_Stereo =  2,
  659.     libvlc_AudioOutputDevice_2F2R   =  4,
  660.     libvlc_AudioOutputDevice_3F2R   =  5,
  661.     libvlc_AudioOutputDevice_5_1    =  6,
  662.     libvlc_AudioOutputDevice_6_1    =  7,
  663.     libvlc_AudioOutputDevice_7_1    =  8,
  664.     libvlc_AudioOutputDevice_SPDIF  = 10
  665. } libvlc_audio_output_device_types_t;
  666. /**
  667.  * Audio channels
  668.  */
  669. typedef enum libvlc_audio_output_channel_t {
  670.     libvlc_AudioChannel_Error   = -1,
  671.     libvlc_AudioChannel_Stereo  =  1,
  672.     libvlc_AudioChannel_RStereo =  2,
  673.     libvlc_AudioChannel_Left    =  3,
  674.     libvlc_AudioChannel_Right   =  4,
  675.     libvlc_AudioChannel_Dolbys  =  5
  676. } libvlc_audio_output_channel_t;
  677. /**
  678.  * Get the list of available audio outputs
  679.  *
  680.  * param p_instance libvlc instance
  681.  * param p_e an initialized exception pointer
  682.  * return list of available audio outputs, at the end free it with
  683. *          see libvlc_audio_output_list_release see libvlc_audio_output_t
  684.  */
  685. VLC_PUBLIC_API libvlc_audio_output_t *
  686.         libvlc_audio_output_list_get( libvlc_instance_t *,
  687.                                       libvlc_exception_t * );
  688. /**
  689.  * Free the list of available audio outputs
  690.  *
  691.  * param p_list list with audio outputs for release
  692.  */
  693. VLC_PUBLIC_API void libvlc_audio_output_list_release( libvlc_audio_output_t * );
  694. /**
  695.  * Set the audio output.
  696.  * Change will be applied after stop and play.
  697.  *
  698.  * param p_instance libvlc instance
  699.  * param psz_name name of audio output,
  700.  *               use psz_name of see libvlc_audio_output_t
  701.  * return true if function succeded
  702.  */
  703. VLC_PUBLIC_API int libvlc_audio_output_set( libvlc_instance_t *,
  704.                                             const char * );
  705. /**
  706.  * Get count of devices for audio output, these devices are hardware oriented
  707.  * like analor or digital output of sound card
  708.  *
  709.  * param p_instance libvlc instance
  710.  * param psz_audio_output - name of audio output, see libvlc_audio_output_t
  711.  * return number of devices
  712.  */
  713. VLC_PUBLIC_API int libvlc_audio_output_device_count( libvlc_instance_t *,
  714.                                                      const char * );
  715. /**
  716.  * Get long name of device, if not available short name given
  717.  *
  718.  * param p_instance libvlc instance
  719.  * param psz_audio_output - name of audio output, see libvlc_audio_output_t
  720.  * param i_device device index
  721.  * return long name of device
  722.  */
  723. VLC_PUBLIC_API char * libvlc_audio_output_device_longname( libvlc_instance_t *,
  724.                                                            const char *,
  725.                                                            int );
  726. /**
  727.  * Get id name of device
  728.  *
  729.  * param p_instance libvlc instance
  730.  * param psz_audio_output - name of audio output, see libvlc_audio_output_t
  731.  * param i_device device index
  732.  * return id name of device, use for setting device, need to be free after use
  733.  */
  734. VLC_PUBLIC_API char * libvlc_audio_output_device_id( libvlc_instance_t *,
  735.                                                      const char *,
  736.                                                      int );
  737. /**
  738.  * Set device for using
  739.  *
  740.  * param p_instance libvlc instance
  741.  * param psz_audio_output - name of audio output, see libvlc_audio_output_t
  742.  * param psz_device_id device
  743.  */
  744. VLC_PUBLIC_API void libvlc_audio_output_device_set( libvlc_instance_t *,
  745.                                                     const char *,
  746.                                                     const char * );
  747. /**
  748.  * Get current audio device type. Device type describes something like
  749.  * character of output sound - stereo sound, 2.1, 5.1 etc
  750.  *
  751.  * param p_instance vlc instance
  752.  * param p_e an initialized exception pointer
  753.  * return the audio devices type see libvlc_audio_output_device_types_t
  754.  */
  755. VLC_PUBLIC_API int libvlc_audio_output_get_device_type(
  756.         libvlc_instance_t *, libvlc_exception_t * );
  757. /**
  758.  * Set current audio device type.
  759.  *
  760.  * param p_instance vlc instance
  761.  * param device_type the audio device type,
  762.           according to see libvlc_audio_output_device_types_t
  763.  * param p_e an initialized exception pointer
  764.  */
  765. VLC_PUBLIC_API void libvlc_audio_output_set_device_type( libvlc_instance_t *,
  766.                                                          int,
  767.                                                          libvlc_exception_t * );
  768. /**
  769.  * Toggle mute status.
  770.  *
  771.  * param p_instance libvlc instance
  772.  * param p_e an initialized exception pointer
  773.  */
  774. VLC_PUBLIC_API void libvlc_audio_toggle_mute( libvlc_instance_t *, libvlc_exception_t * );
  775. /**
  776.  * Get current mute status.
  777.  *
  778.  * param p_instance libvlc instance
  779.  * param p_e an initialized exception pointer
  780.  * return the mute status (boolean)
  781.  */
  782. VLC_PUBLIC_API int libvlc_audio_get_mute( libvlc_instance_t *, libvlc_exception_t * );
  783. /**
  784.  * Set mute status.
  785.  *
  786.  * param p_instance libvlc instance
  787.  * param status If status is true then mute, otherwise unmute
  788.  * param p_e an initialized exception pointer
  789.  */
  790. VLC_PUBLIC_API void libvlc_audio_set_mute( libvlc_instance_t *, int , libvlc_exception_t * );
  791. /**
  792.  * Get current audio level.
  793.  *
  794.  * param p_instance libvlc instance
  795.  * param p_e an initialized exception pointer
  796.  * return the audio level (int)
  797.  */
  798. VLC_PUBLIC_API int libvlc_audio_get_volume( libvlc_instance_t *, libvlc_exception_t * );
  799. /**
  800.  * Set current audio level.
  801.  *
  802.  * param p_instance libvlc instance
  803.  * param i_volume the volume (int)
  804.  * param p_e an initialized exception pointer
  805.  */
  806. VLC_PUBLIC_API void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
  807. /**
  808.  * Get number of available audio tracks.
  809.  *
  810.  * param p_mi media player
  811.  * param p_e an initialized exception
  812.  * return the number of available audio tracks (int)
  813.  */
  814. VLC_PUBLIC_API int libvlc_audio_get_track_count( libvlc_media_player_t *,  libvlc_exception_t * );
  815. /**
  816.  * Get the description of available audio tracks.
  817.  *
  818.  * param p_mi media player
  819.  * param p_e an initialized exception
  820.  * return list with description of available audio tracks
  821.  */
  822. VLC_PUBLIC_API libvlc_track_description_t *
  823.         libvlc_audio_get_track_description( libvlc_media_player_t *,  libvlc_exception_t * );
  824. /**
  825.  * Get current audio track.
  826.  *
  827.  * param p_mi media player
  828.  * param p_e an initialized exception pointer
  829.  * return the audio track (int)
  830.  */
  831. VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_media_player_t *, libvlc_exception_t * );
  832. /**
  833.  * Set current audio track.
  834.  *
  835.  * param p_mi media player
  836.  * param i_track the track (int)
  837.  * param p_e an initialized exception pointer
  838.  */
  839. VLC_PUBLIC_API void libvlc_audio_set_track( libvlc_media_player_t *, int, libvlc_exception_t * );
  840. /**
  841.  * Get current audio channel.
  842.  *
  843.  * param p_instance vlc instance
  844.  * param p_e an initialized exception pointer
  845.  * return the audio channel see libvlc_audio_output_channel_t
  846.  */
  847. VLC_PUBLIC_API int
  848.     libvlc_audio_get_channel( libvlc_instance_t *, libvlc_exception_t * );
  849. /**
  850.  * Set current audio channel.
  851.  *
  852.  * param p_instance vlc instance
  853.  * param channel the audio channel, see libvlc_audio_output_channel_t
  854.  * param p_e an initialized exception pointer
  855.  */
  856. VLC_PUBLIC_API void libvlc_audio_set_channel( libvlc_instance_t *,
  857.                                               int,
  858.                                               libvlc_exception_t * );
  859. /** @} audio */
  860. /** @} media_player */
  861. #endif /* VLC_LIBVLC_MEDIA_PLAYER_H */