Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (2)
......@@ -288,6 +288,7 @@ libvlccore_la_SOURCES = \
input/info.h \
input/meta.c \
input/attachment.c \
input/parse.c \
player/player.c \
player/player.h \
player/input.c \
......@@ -316,6 +317,8 @@ libvlccore_la_SOURCES = \
input/resource.h \
input/resource.c \
input/services_discovery.c \
input/source.c \
input/source.h \
input/stats.c \
input/stream.c \
input/stream_fifo.c \
......
......@@ -46,6 +46,7 @@
#include <vlc_tracer.h>
#include "input_internal.h"
#include "./source.h"
#include "../clock/input_clock.h"
#include "../clock/clock.h"
#include "decoder.h"
......
......@@ -2790,36 +2790,6 @@ static int InputSourceInit( input_source_t *in, input_thread_t *p_input,
return VLC_SUCCESS;
}
input_source_t *input_source_Hold( input_source_t *in )
{
vlc_atomic_rc_inc( &in->rc );
return in;
}
void input_source_Release( input_source_t *in )
{
if( vlc_atomic_rc_dec( &in->rc ) )
{
free( in->str_id );
free( in );
}
}
const char *input_source_GetStrId( input_source_t *in )
{
return in->str_id;
}
int input_source_GetNewAutoId( input_source_t *in )
{
return in->auto_id++;
}
bool input_source_IsAutoSelected( input_source_t *in )
{
return in->autoselected;
}
/*****************************************************************************
* InputSourceDestroy:
*****************************************************************************/
......
......@@ -27,6 +27,7 @@
#include <vlc_input.h>
#include "input_interface.h"
#include "../misc/interrupt.h"
#include "./source.h"
struct input_stats;
......@@ -373,53 +374,6 @@ input_item_t* input_GetItem( input_thread_t * ) VLC_USED;
#define INPUT_CONTROL_FIFO_SIZE 100
/* input_source_t: gathers all information per input source */
struct input_source_t
{
vlc_atomic_rc_t rc;
demux_t *p_demux; /**< Demux object (most downstream) */
es_out_t *p_slave_es_out; /**< Slave es out */
char *str_id;
int auto_id;
bool autoselected;
/* Title infos for that input */
bool b_title_demux; /* Titles/Seekpoints provided by demux */
int i_title;
input_title_t **title;
int i_title_offset;
int i_seekpoint_offset;
int i_title_start;
int i_title_end;
int i_seekpoint_start;
int i_seekpoint_end;
/* Properties */
bool b_can_pause;
bool b_can_pace_control;
bool b_can_rate_control;
bool b_can_stream_record;
bool b_rescale_ts;
double f_fps;
/* sub-fps handling */
bool b_slave_sub;
float sub_rate;
/* */
vlc_tick_t i_pts_delay;
/* Read-write protected by es_out.c lock */
vlc_tick_t i_normal_time;
bool b_eof; /* eof of demuxer */
};
typedef union
{
vlc_value_t val;
......@@ -683,37 +637,6 @@ input_attachment_t *input_GetAttachment(input_thread_t *input, const char *name)
bool input_CanPaceControl(input_thread_t *input);
/**
* Hold the input_source_t
*/
input_source_t *input_source_Hold( input_source_t *in );
/**
* Release the input_source_t
*/
void input_source_Release( input_source_t *in );
/**
* Returns the string identifying this input source
*
* @return a string id or NULL if the source is the master
*/
const char *input_source_GetStrId( input_source_t *in );
/**
* Get a new fmt.i_id from the input source
*
* This auto id will be relative to this input source. It allows to have stable
* ids across different playback instances, by not relying on the input source
* addition order.
*/
int input_source_GetNewAutoId( input_source_t *in );
/**
* Returns true if a given source should be auto-selected
*/
bool input_source_IsAutoSelected( input_source_t *in );
/* Bound pts_delay */
#define INPUT_PTS_DELAY_MAX VLC_TICK_FROM_SEC(60)
......
......@@ -1299,89 +1299,6 @@ char *input_item_CreateFilename(input_item_t *item,
return path;
}
struct input_item_parser_id_t
{
input_thread_t *input;
input_state_e state;
const input_item_parser_cbs_t *cbs;
void *userdata;
};
static void
input_item_parser_InputEvent(input_thread_t *input,
const struct vlc_input_event *event, void *parser_)
{
input_item_parser_id_t *parser = parser_;
switch (event->type)
{
case INPUT_EVENT_TIMES:
input_item_SetDuration(input_GetItem(input), event->times.length);
break;
case INPUT_EVENT_STATE:
parser->state = event->state.value;
break;
case INPUT_EVENT_DEAD:
{
int status = parser->state == END_S ? VLC_SUCCESS : VLC_EGENERIC;
parser->cbs->on_ended(input_GetItem(input), status, parser->userdata);
break;
}
case INPUT_EVENT_SUBITEMS:
if (parser->cbs->on_subtree_added)
parser->cbs->on_subtree_added(input_GetItem(input),
event->subitems, parser->userdata);
break;
case INPUT_EVENT_ATTACHMENTS:
if (parser->cbs->on_attachments_added != NULL)
parser->cbs->on_attachments_added(input_GetItem(input),
event->attachments.array,
event->attachments.count,
parser->userdata);
break;
default:
break;
}
}
input_item_parser_id_t *
input_item_Parse(input_item_t *item, vlc_object_t *obj,
const input_item_parser_cbs_t *cbs, void *userdata)
{
assert(cbs && cbs->on_ended);
input_item_parser_id_t *parser = malloc(sizeof(*parser));
if (!parser)
return NULL;
parser->state = INIT_S;
parser->cbs = cbs;
parser->userdata = userdata;
parser->input = input_Create(obj, input_item_parser_InputEvent, parser,
item, INPUT_TYPE_PREPARSING, NULL, NULL);
if (!parser->input || input_Start(parser->input))
{
if (parser->input)
input_Close(parser->input);
free(parser);
return NULL;
}
return parser;
}
void
input_item_parser_id_Interrupt(input_item_parser_id_t *parser)
{
input_Stop(parser->input);
}
void
input_item_parser_id_Release(input_item_parser_id_t *parser)
{
input_item_parser_id_Interrupt(parser);
input_Close(parser->input);
free(parser);
}
static int rdh_compar_type(input_item_t *p1, input_item_t *p2)
{
if (p1->i_type != p2->i_type)
......
/*****************************************************************************
* parse.c: input_item parsing management
*****************************************************************************
* Copyright (C) 1998-2004 VLC authors and VideoLAN
*
* Authors: Clément Stenac <zorglub@videolan.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include <time.h>
#include <limits.h>
#include <ctype.h>
#include <vlc_common.h>
#include <vlc_arrays.h>
#include <vlc_url.h>
#include <vlc_strings.h>
#include "item.h"
#include "info.h"
#include "input_internal.h"
#include <vlc_charset.h>
struct input_item_parser_id_t
{
input_thread_t *input;
input_state_e state;
const input_item_parser_cbs_t *cbs;
void *userdata;
};
static void
input_item_parser_InputEvent(input_thread_t *input,
const struct vlc_input_event *event, void *parser_)
{
input_item_parser_id_t *parser = parser_;
switch (event->type)
{
case INPUT_EVENT_TIMES:
input_item_SetDuration(input_GetItem(input), event->times.length);
break;
case INPUT_EVENT_STATE:
parser->state = event->state.value;
break;
case INPUT_EVENT_DEAD:
{
int status = parser->state == END_S ? VLC_SUCCESS : VLC_EGENERIC;
parser->cbs->on_ended(input_GetItem(input), status, parser->userdata);
break;
}
case INPUT_EVENT_SUBITEMS:
if (parser->cbs->on_subtree_added)
parser->cbs->on_subtree_added(input_GetItem(input),
event->subitems, parser->userdata);
break;
case INPUT_EVENT_ATTACHMENTS:
if (parser->cbs->on_attachments_added != NULL)
parser->cbs->on_attachments_added(input_GetItem(input),
event->attachments.array,
event->attachments.count,
parser->userdata);
break;
default:
break;
}
}
input_item_parser_id_t *
input_item_Parse(input_item_t *item, vlc_object_t *obj,
const input_item_parser_cbs_t *cbs, void *userdata)
{
assert(cbs && cbs->on_ended);
input_item_parser_id_t *parser = malloc(sizeof(*parser));
if (!parser)
return NULL;
parser->state = INIT_S;
parser->cbs = cbs;
parser->userdata = userdata;
parser->input = input_Create(obj, input_item_parser_InputEvent, parser,
item, INPUT_TYPE_PREPARSING, NULL, NULL);
if (!parser->input || input_Start(parser->input))
{
if (parser->input)
input_Close(parser->input);
free(parser);
return NULL;
}
return parser;
}
void
input_item_parser_id_Interrupt(input_item_parser_id_t *parser)
{
input_Stop(parser->input);
}
void
input_item_parser_id_Release(input_item_parser_id_t *parser)
{
input_item_parser_id_Interrupt(parser);
input_Close(parser->input);
free(parser);
}
/*****************************************************************************
* source.c: input thread source handling
*****************************************************************************
* Copyright (C) 1998-2007 VLC authors and VideoLAN
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "./source.h"
input_source_t *input_source_Hold(input_source_t *in)
{
vlc_atomic_rc_inc( &in->rc );
return in;
}
void input_source_Release(input_source_t *in)
{
if( vlc_atomic_rc_dec( &in->rc ) )
{
free( in->str_id );
free( in );
}
}
const char *input_source_GetStrId(input_source_t *in)
{
return in->str_id;
}
int input_source_GetNewAutoId(input_source_t *in)
{
return in->auto_id++;
}
bool input_source_IsAutoSelected(input_source_t *in)
{
return in->autoselected;
}
/*****************************************************************************
* source.h: Internal input source structures
*****************************************************************************
* Copyright (C) 1998-2006 VLC authors and VideoLAN
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef LIBVLC_INPUT_SOURCE_H
#define LIBVLC_INPUT_SOURCE_H 1
#include <vlc_common.h>
#include <vlc_tick.h>
#include <vlc_atomic.h>
typedef struct input_title_t input_title_t;
/* input_source_t: gathers all information per input source */
struct input_source_t
{
vlc_atomic_rc_t rc;
demux_t *p_demux; /**< Demux object (most downstream) */
es_out_t *p_slave_es_out; /**< Slave es out */
char *str_id;
int auto_id;
bool autoselected;
/* Title infos for that input */
bool b_title_demux; /* Titles/Seekpoints provided by demux */
int i_title;
input_title_t **title;
int i_title_offset;
int i_seekpoint_offset;
int i_title_start;
int i_title_end;
int i_seekpoint_start;
int i_seekpoint_end;
/* Properties */
bool b_can_pause;
bool b_can_pace_control;
bool b_can_rate_control;
bool b_can_stream_record;
bool b_rescale_ts;
double f_fps;
/* sub-fps handling */
bool b_slave_sub;
float sub_rate;
/* */
vlc_tick_t i_pts_delay;
/* Read-write protected by es_out.c lock */
vlc_tick_t i_normal_time;
bool b_eof; /* eof of demuxer */
};
/**
* Hold the input_source_t
*/
input_source_t *input_source_Hold( input_source_t *in );
/**
* Release the input_source_t
*/
void input_source_Release( input_source_t *in );
/**
* Returns the string identifying this input source
*
* @return a string id or NULL if the source is the master
*/
const char *input_source_GetStrId( input_source_t *in );
/**
* Get a new fmt.i_id from the input source
*
* This auto id will be relative to this input source. It allows to have stable
* ids across different playback instances, by not relying on the input source
* addition order.
*/
int input_source_GetNewAutoId( input_source_t *in );
/**
* Returns true if a given source should be auto-selected
*/
bool input_source_IsAutoSelected( input_source_t *in );
#endif
......@@ -139,7 +139,10 @@ libvlccore_sources_base = files(
'input/input.c',
'input/info.h',
'input/meta.c',
'input/parse.c',
'input/attachment.c',
'input/source.c',
'input/source.h',
'player/player.c',
'player/player.h',
'player/input.c',
......