xine-lib: xine-lib-1.2.13/src/input/vcd/vcdplayer.h File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Typedefs | Enumerations | Functions
vcdplayer.h File Reference
`#include "libvcd/info.h"`

Go to the source code of this file.

## Data Structures
struct | vcdplayer_play_item_info_t
struct | vcdplayer_s

## Macros
#define | _(String) (String)
#define | INPUT_DEBUG 1
#define | INPUT_DBG_META 1 /* Meta information */
#define | INPUT_DBG_EVENT 2 /* input (keyboard/mouse) events */
#define | INPUT_DBG_MRL 4 /* MRL parsing */
#define | INPUT_DBG_EXT 8 /* Calls from external routines */
#define | INPUT_DBG_CALL 16 /* routine calls */
#define | INPUT_DBG_LSN 32 /* LSN changes */
#define | INPUT_DBG_PBC 64 /* Playback control */
#define | INPUT_DBG_CDIO 128 /* Debugging from CDIO */
#define | INPUT_DBG_SEEK_SET 256 /* Seeks to set location */
#define | INPUT_DBG_SEEK_CUR 512 /* Seeks to find current location */
#define | INPUT_DBG_STILL 1024 /* Still-frame */
#define | INPUT_DBG_VCDINFO 2048 /* Debugging from VCDINFO */
#define | VCDPLAYER_IN_STILL 65535
#define | STILL_INDEFINITE_WAIT 3000
#define | STILL_READING -5

## Typedefs
typedef int(* | debug_fn) (void *user_data, unsigned int mask, const char *fmt,...)
typedef struct vcdplayer_s | vcdplayer_t

## Enumerations
enum | vcdplayer_slider_length_t { VCDPLAYER_SLIDER_LENGTH_AUTO , VCDPLAYER_SLIDER_LENGTH_TRACK , VCDPLAYER_SLIDER_LENGTH_ENTRY }
enum | vcdplayer_autoplay_t { VCDPLAYER_AUTOPLAY_TRACK = VCDINFO_ITEM_TYPE_TRACK , VCDPLAYER_AUTOPLAY_ENTRY = VCDINFO_ITEM_TYPE_ENTRY , VCDPLAYER_AUTOPLAY_SEGMENT = VCDINFO_ITEM_TYPE_SEGMENT , VCDPLAYER_AUTOPLAY_PBC = VCDINFO_ITEM_TYPE_LID }
enum | vcdplayer_read_status_t { READ_BLOCK , READ_STILL_FRAME , READ_ERROR , READ_END }

## Functions
bool | vcdplayer_pbc_is_on (const vcdplayer_t *p_vcdplayer)
char * | vcdplayer_format_str (vcdplayer_t *p_vcdplayer, const char format_str[])
void | vcdplayer_update_nav (vcdplayer_t *p_vcdplayer)
void | vcdplayer_update_title_display (vcdplayer_t *p_vcdplayer)
void | vcdplayer_play (vcdplayer_t *p_vcdplayer, vcdinfo_itemid_t itemid)
bool | vcdplayer_open (vcdplayer_t *p_vcdplayer, char *intended_vcd_device)
vcdplayer_read_status_t | vcdplayer_read (vcdplayer_t *p_vcdplayer, uint8_t *p_buf, const off_t nlen)
off_t | vcdplayer_seek (vcdplayer_t *p_vcdplayer, off_t offset, int origin)
void | vcdplayer_send_button_update (vcdplayer_t *p_vcdplayer, int mode)

## Macro Definition Documentation

## ◆ _

#define _ | ( |  | String | ) | (String)

Referenced by _alsa_query_dev(), _cdda_cddb_retrieve(), _cdda_cddb_socket_open(), _get_instance(), _insert_node(), _load_plugin_class(), _meta_info_set_encoding(), _register_config(), _register_plugins_internal(), _unload_unref_plugin(), _vcdplayer_get_item_size(), _vcdplayer_set_entry(), _vcdplayer_set_segment(), _x_alphablend_init(), _x_ao_new_port(), _x_audio_decoder_init(), _x_config_change_opt(), _x_demux_control_headers_done(), _x_find_demux_plugin(), _x_find_demux_plugin_last_probe(), _x_input_register_default_servers(), _x_input_register_show_hidden_files(), _x_io_select(), _x_io_tcp_connect_finish(), _x_load_audio_output_plugin(), _x_message(), _x_metronom_clock_init(), _x_metronom_init(), _x_osd_renderer_init(), _x_real_codecs_init(), _x_report_audio_format_tag(), _x_report_video_fourcc(), _x_rip_plugin_get_instance(), _x_scan_plugins(), _x_spu_misc_init(), _x_use_proxy(), _x_video_decoder_init(), _x_vo_new_port(), _x_vo_scale_init(), alsa_apply_speaker_arrangement(), ao_alsa_mixer_init(), ao_alsa_open(), ao_change_settings(), ao_dx2_close(), ao_dx2_control(), ao_dx2_exit(), ao_dx2_open(), ao_esd_open(), ao_loop(), ao_oss_open(), ao_sun_open(), ao_sun_open_plugin(), asf_read_header(), audio_create_buffers(), audio_decoder_loop(), audio_fill(), audio_play(), audio_seek(), audio_set_volume(), audio_stop(), audio_tell(), bd_init_plugin(), bitplane_decode_data(), bluray_init_plugin(), buffer_pool_free(), buffer_service(), cache_plugin_new(), cache_plugin_open(), catalog_filename(), collect_plugins(), config_save_cb(), create_ximage(), create_ximage(), create_ximage(), create_ximage(), create_ximage(), decode_vorbis_header(), deinterlace_init_plugin(), demux_loop(), demux_mpc_send_chunk(), demux_mpeg_block_parse_pack(), demux_mpeg_pes_parse_pack(), demux_mve_send_chunk(), dsound_create(), dsound_strerror(), duplicate_frame(), dvaudio_decode_data(), dvb_class_get_autoplay_list(), dvb_plugin_open(), dvd_plugin_open(), dvd_plugin_read_block(), dxr3_decode_data(), dxr3_flush(), dxr3_open_plugin(), dxr3_scr_init(), dxr3_spudec_decode_data(), dxr3_spudec_dispose(), dxr3_spudec_open_plugin(), dxr3_spudec_process_nav(), dxr3_update_frame_format(), dxr3_vo_open_plugin(), event_handler(), event_handler_external(), expand_get_help(), external_stream_play(), faad_apply_conf(), faad_apply_frame(), faad_init_plugin(), faad_reopen_dec(), fb_open_plugin(), ff_audio_decode_data(), ff_audio_ensure_buffer_size(), ff_audio_init_codec(), ff_audio_open_codec(), ff_check_bufsize(), ff_dispose(), ff_video_open_plugin(), file_input_init_plugin(), file_input_open(), get_answer(), get_buffer(), get_duration(), get_fb_fix_screeninfo(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_help(), get_static_help(), get_win32_codecs_path(), gnomevfs_plugin_open(), goom_init_plugin(), host_connect(), host_connect_attempt(), http_plugin_handshake(), http_plugin_open(), http_plugin_read_int(), init_audio_plugin(), init_class(), init_class(), init_class(), init_class(), init_class(), init_class(), init_codec(), init_config(), init_device(), init_plugin(), init_plugin(), init_plugin(), init_radio_class(), init_spu_decoder_plugin(), init_spu_decoder_plugin(), init_spu_decoder_plugin(), init_sputext_demux_class(), init_subpicture(), init_video_class(), init_video_codec(), init_video_plugin(), input_http_init_class(), input_plugin_read_loop(), lavc_on_update_format(), load_channels(), load_syms_linux(), load_syms_linux(), map_decoder_list(), media_eject_media(), mmsh_connect(), mode_visual(), mosaico_get_help(), mpc_decode_data(), multirate_pref_get(), next_frame(), open_fb_device(), open_film_file(), open_internal(), open_jack_plugin(), open_mve_file(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin(), open_plugin_2(), open_plugin_fb(), open_snd_file(), open_tta_file(), open_voc_file(), opengl2_open_plugin(), opengl_open_plugin(), osd_get_text_size(), osd_render_text(), osd_renderer_load_font(), osd_set_encoding(), parse_pes_for_pts(), parse_pes_for_pts(), parse_private_stream_1(), pgx64_display_frame(), pgx64_init_driver(), play_internal(), pnm_connect(), pnm_get_stream_chunk(), pvr_break_rec_page(), pvr_event_handler(), pvr_loop(), pvr_play_file(), pvr_plugin_open(), query_fourccs(), raw_init_class(), read_iff_chunk(), report_progress(), report_progress(), report_progress(), report_progress(), report_progress(), rip_plugin_open(), rip_plugin_read(), rip_plugin_read_block(), rip_plugin_seek(), rip_read_file_read_1a(), rip_read_file_read_1b(), rip_read_file_read_2(), rip_read_file_start(), rip_seek_original(), rtp_plugin_dispose(), rtp_plugin_open(), rtsp_connect(), rtsp_session_start(), save_catalog(), search_by_channel(), seek_flv_file(), send_command(), setup_buffers(), setup_dga(), setup_dga(), spucc_register_cfg_vars(), spucmml_class_open_plugin(), stdin_plugin_open(), switch_channel(), switch_get_help(), test_capabilities(), test_make(), tls_register_config_keys(), upmix_mono_port_open(), vaapi_open_plugin(), vaapi_update_csc(), vcd_build_mrl_list(), vcd_class_get_autoplay_list(), vcd_class_get_dir(), vcd_get_default_device(), vcd_handle_events(), vcd_init(), vcd_plugin_get_mrl(), vcd_plugin_open(), vcdio_seek(), vcdplayer_play_single_item(), vdpau_open_plugin(), vdr_execute_rpc_command(), vdr_plugin_dispose(), vdr_plugin_open(), vdr_plugin_open_fifo_mrl(), vdr_plugin_open_socket(), vdr_plugin_open_sockets(), vdr_video_draw(), video_decoder_loop(), video_out_loop(), vo_exit(), vo_frame_draw(), vo_get_frame(), vorbis_check_bufsize(), w32a_decode_data(), w32a_init_audio(), w32v_decode_data(), w32v_init_codec(), w32v_init_ds_dmo_codec(), x11osd_create(), xcbosd_create(), xine_config_load(), xine_config_save(), XINE_FORMAT_PRINTF(), xine_get_log_names(), xine_init(), xine_open_audio_driver(), xine_probe_fast_memcpy(), xine_probe_fast_memcpy_int(), xine_stream_new(), xio_err(), xshm_open_plugin(), xshm_open_plugin_2(), xv_open_port(), and xv_open_port().

## ◆ INPUT_DBG_CALL

#define INPUT_DBG_CALL 16 /* routine calls */

Referenced by _vcdplayer_inc_play_item(), _vcdplayer_set_origin(), vcd_class_dispose(), vcd_class_eject_media(), vcd_class_get_autoplay_list(), vcd_class_get_dir(), vcd_class_get_instance(), vcd_get_default_device(), vcd_get_optional_data(), vcd_handle_events(), vcd_parse_mrl(), vcd_plugin_dispose(), vcd_plugin_get_blocksize(), vcd_plugin_get_capabilities(), vcd_plugin_get_mrl(), vcd_plugin_read(), vcd_plugin_read_block(), vcd_update_title_display(), vcdio_open(), vcdplayer_play(), and vcdplayer_play_single_item().

## ◆ INPUT_DBG_CDIO

#define INPUT_DBG_CDIO 128 /* Debugging from CDIO */

## ◆ INPUT_DBG_EVENT

#define INPUT_DBG_EVENT 2 /* input (keyboard/mouse) events */

Referenced by vcd_handle_events().

## ◆ INPUT_DBG_EXT

#define INPUT_DBG_EXT 8 /* Calls from external routines */

Referenced by vcd_class_dispose(), vcd_class_eject_media(), vcd_class_get_autoplay_list(), vcd_class_get_dir(), vcd_class_get_instance(), vcd_get_optional_data(), vcd_plugin_dispose(), vcd_plugin_get_blocksize(), vcd_plugin_get_capabilities(), and vcd_plugin_read().

## ◆ INPUT_DBG_LSN

#define INPUT_DBG_LSN 32 /* LSN changes */

Referenced by _vcdplayer_set_entry(), _vcdplayer_set_origin(), _vcdplayer_set_segment(), _vcdplayer_set_track(), vcdplayer_pbc_nav(), and vcdplayer_read().

## ◆ INPUT_DBG_META

#define INPUT_DBG_META 1 /* Meta information */

Referenced by meta_info_assign().

## ◆ INPUT_DBG_MRL

#define INPUT_DBG_MRL 4 /* MRL parsing */

Referenced by vcd_add_mrl_slot(), vcd_build_mrl_list(), vcd_class_get_autoplay_list(), vcd_class_get_instance(), vcd_plugin_get_length(), and vcd_update_title_display().

## ◆ INPUT_DBG_PBC

#define INPUT_DBG_PBC 64 /* Playback control */

Referenced by _vcdplayer_inc_play_item(), _vcdplayer_set_entry(), vcd_class_get_instance(), vcd_handle_events(), vcdplayer_pbc_nav(), vcdplayer_play_single_item(), and vcdplayer_read().

## ◆ INPUT_DBG_SEEK_CUR

#define INPUT_DBG_SEEK_CUR 512 /* Seeks to find current location */

Referenced by vcdio_seek().

## ◆ INPUT_DBG_SEEK_SET

#define INPUT_DBG_SEEK_SET 256 /* Seeks to set location */

Referenced by vcdio_seek().

## ◆ INPUT_DBG_STILL

#define INPUT_DBG_STILL 1024 /* Still-frame */

Referenced by vcd_plugin_read_block().

## ◆ INPUT_DBG_VCDINFO

#define INPUT_DBG_VCDINFO 2048 /* Debugging from VCDINFO */

## ◆ INPUT_DEBUG

#define INPUT_DEBUG 1

## ◆ STILL_INDEFINITE_WAIT

#define STILL_INDEFINITE_WAIT 3000

Referenced by vcd_plugin_read_block(), and vcdplayer_pbc_nav().

## ◆ STILL_READING

#define STILL_READING -5

Referenced by vcd_plugin_read_block(), vcdplayer_pbc_nav(), and vcdplayer_play_single_item().

## ◆ VCDPLAYER_IN_STILL

#define VCDPLAYER_IN_STILL 65535

## Typedef Documentation

## ◆ debug_fn

typedef int(* debug_fn) (void *user_data, unsigned int mask, const char *fmt,...)

## ◆ vcdplayer_t

typedef struct vcdplayer_s vcdplayer_t

## Enumeration Type Documentation

## ◆ vcdplayer_autoplay_t

enum vcdplayer_autoplay_t

Enumerator
VCDPLAYER_AUTOPLAY_TRACK |
VCDPLAYER_AUTOPLAY_ENTRY |
VCDPLAYER_AUTOPLAY_SEGMENT |
VCDPLAYER_AUTOPLAY_PBC |

## ◆ vcdplayer_read_status_t

enum vcdplayer_read_status_t

Enumerator
READ_BLOCK |
READ_STILL_FRAME |
READ_ERROR |
READ_END |

## ◆ vcdplayer_slider_length_t

enum vcdplayer_slider_length_t

Enumerator
VCDPLAYER_SLIDER_LENGTH_AUTO |
VCDPLAYER_SLIDER_LENGTH_TRACK |
VCDPLAYER_SLIDER_LENGTH_ENTRY |

## Function Documentation

## ◆ vcdplayer_format_str()

char * vcdplayer_format_str | ( | vcdplayer_t * | p_vcdplayer,
|  | const char | format_str[] )

Take a format string and expand escape sequences, that is sequences that begin with %, with information from the current VCD. The expanded string is returned. Here is a list of escape sequences:

A : The album information C : The VCD volume count - the number of CD's in the collection. c : The VCD volume num - the number of the CD in the collection. F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD I : The current entry/segment/playback type, e.g. ENTRY, TRACK, SEGMENT... L : The playlist ID prefixed with " LID" if it exists N : The current number of the above - a decimal number P : The publisher ID p : The preparer ID V : The volume set ID v : The volume ID A number between 1 and the volume count. %% : a %

Take a format string and expand escape sequences, that is sequences that begin with %, with information from the current VCD. The expanded string is returned. Here is a list of escape sequences:

A : The album information C : The VCD volume count - the number of CD's in the collection. c : The VCD volume num - the number of the CD in the collection. F : The VCD Format, e.g. VCD 1.0, VCD 1.1, VCD 2.0, or SVCD I : The current entry/segment/playback type, e.g. ENTRY, TRACK, SEGMENT... L : The playlist ID prefixed with " LID" if it exists N : The current number of the above - a decimal number P : The publisher ID p : The preparer ID S : If we are in a segment (menu), the kind of segment T : The track number V : The volume set ID v : The volume ID A number between 1 and the volume count. %% : a %

References add_format_num_info, add_format_str_info, vcdplayer_s::i_lid, vcdplayer_s::i_track, vcdplayer_s::play_item, TEMP_STR_LEN, TEMP_STR_SIZE, vcdplayer_s::vcd, and vcdplayer_pbc_is_on().

Referenced by vcd_set_meta_info(), and vcd_update_title_display().

## ◆ vcdplayer_open()

bool vcdplayer_open | ( | vcdplayer_t * | p_vcdplayer,
|  | char * | intended_vcd_device )

## ◆ vcdplayer_pbc_is_on()

bool vcdplayer_pbc_is_on | ( | const vcdplayer_t * | p_vcdplayer | ) |

Return true if playback control (PBC) is on

References vcdplayer_s::i_lid.

Referenced by vcd_handle_events(), vcd_plugin_get_mrl(), vcdio_seek(), vcdplayer_format_str(), vcdplayer_play(), vcdplayer_read(), and vcdplayer_update_nav().

## ◆ vcdplayer_play()

void vcdplayer_play | ( | vcdplayer_t * | p_vcdplayer,
|  | vcdinfo_itemid_t | itemid )

Play title part. If part is -1, use the first title.

References _vcdplayer_inc_play_item(), dbg_print, vcdplayer_s::i_lid, vcdplayer_s::i_loop, INPUT_DBG_CALL, vcdplayer_s::loop_item, NULL, vcdplayer_s::pdi, vcdplayer_s::pxd, vcdplayer_s::vcd, vcdplayer_pbc_is_on(), and vcdplayer_play_single_item().

Referenced by vcd_class_get_instance(), vcd_handle_events(), and vcdplayer_pbc_nav().

## ◆ vcdplayer_read()

vcdplayer_read_status_t vcdplayer_read | ( | vcdplayer_t * | p_vcdplayer,
|  | uint8_t * | p_buf,
|  | const off_t | i_len )

Read nlen bytes into buf and return the status back.

Read i_len bytes into buf and return the status back.

This routine is a bit complicated because on reaching the end of a track or entry we may automatically advance to the item, or interpret the next item in the playback-control list.

References dbg_print, vcdplayer_s::end_lsn, vcdplayer_s::i_lsn, vcdplayer_s::i_still, INPUT_DBG_LSN, INPUT_DBG_PBC, READ_BLOCK, READ_ERROR, READ_STILL_FRAME, vcdplayer_s::vcd, vcdplayer_non_pbc_nav(), vcdplayer_pbc_is_on(), and vcdplayer_pbc_nav().

Referenced by vcd_plugin_read_block().

## ◆ vcdplayer_seek()

off_t vcdplayer_seek | ( | vcdplayer_t * | p_vcdplayer,
|  | off_t | offset,
|  | int | origin )

seek position, return new position

if seeking failed, -1 is returned

## ◆ vcdplayer_send_button_update()

void vcdplayer_send_button_update | ( | vcdplayer_t * | p_vcdplayer,
|  | int | mode )

Get the number of tracks or titles of the VCD. The result is stored in "titles".

References mode().

Referenced by vcd_handle_events().

## ◆ vcdplayer_update_nav()

void vcdplayer_update_nav | ( | vcdplayer_t * | p_vcdplayer | ) |

Update next/prev/return/default navigation buttons.

Update next/prev/return/default navigation buttons (via p_vcdplayer->i_lid). Update size of play-item (via p_vcdplayer->play_item).

References _vcdplayer_set_origin(), _vcdplayer_update_entry(), vcdplayer_s::default_entry, vcdplayer_s::end_lsn, vcdplayer_s::i_entries, vcdplayer_s::i_lid, vcdplayer_s::i_lsn, vcdplayer_s::i_segments, vcdplayer_s::i_track, vcdplayer_s::i_tracks, vcdplayer_s::next_entry, NULL, vcdplayer_s::origin_lsn, vcdplayer_s::play_item, vcdplayer_s::prev_entry, vcdplayer_s::pxd, vcdplayer_s::return_entry, vcdplayer_s::track_lsn, vcdplayer_s::update_title, vcdplayer_s::user_data, vcdplayer_s::vcd, and vcdplayer_pbc_is_on().

Referenced by vcdplayer_non_pbc_nav(), and vcdplayer_play_single_item().

## ◆ vcdplayer_update_title_display()

void vcdplayer_update_title_display | ( | vcdplayer_t * | p_vcdplayer | ) |

Update the player title text.