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)
......@@ -2334,9 +2334,10 @@ AC_ARG_ENABLE([mpc],
AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
if test "${enable_mpc}" != "no"
then
AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
VLC_ADD_PLUGIN([mpc])
VLC_ADD_LIBS([mpc],[-lmpcdec])])
AC_CHECK_HEADERS([mpc/mpcdec.h], [
VLC_ADD_PLUGIN([mpc])
VLC_ADD_LIBS([mpc],[-lmpcdec])
])
fi
dnl
......
......@@ -33,7 +33,7 @@
#include <vlc_codec.h>
#include <math.h>
#include <mpcdec/mpcdec.h>
#include <mpc/mpcdec.h>
/* TODO:
* - test stream version 4..6
......@@ -73,19 +73,19 @@ typedef struct
es_out_id_t *p_es;
/* */
mpc_decoder decoder;
mpc_demux *decoder;
mpc_reader reader;
mpc_streaminfo info;
/* */
int64_t i_position;
mpc_uint64_t i_position;
} demux_sys_t;
static mpc_int32_t ReaderRead( void *p_private, void *dst, mpc_int32_t i_size );
static mpc_bool_t ReaderSeek( void *p_private, mpc_int32_t i_offset );
static mpc_int32_t ReaderTell( void *p_private);
static mpc_int32_t ReaderGetSize( void *p_private );
static mpc_bool_t ReaderCanSeek( void *p_private );
static mpc_int32_t ReaderRead(mpc_reader *, void *dst, mpc_int32_t i_size);
static mpc_bool_t ReaderSeek(mpc_reader *, mpc_int32_t i_offset);
static mpc_int32_t ReaderTell(mpc_reader *);
static mpc_int32_t ReaderGetSize(mpc_reader *);
static mpc_bool_t ReaderCanSeek(mpc_reader *);
/*****************************************************************************
* Open: initializes ES structures
......@@ -124,18 +124,16 @@ static int Open( vlc_object_t * p_this )
p_sys->reader.tell = ReaderTell;
p_sys->reader.get_size = ReaderGetSize;
p_sys->reader.canseek = ReaderCanSeek;
p_sys->reader.data = p_demux;
/* Load info */
mpc_streaminfo_init( &p_sys->info );
if( mpc_streaminfo_read( &p_sys->info, &p_sys->reader ) != ERROR_CODE_OK )
return VLC_EGENERIC;
p_sys->reader.data = p_demux->s;
/* */
mpc_decoder_setup( &p_sys->decoder, &p_sys->reader );
if( !mpc_decoder_initialize( &p_sys->decoder, &p_sys->info ) )
p_sys->decoder = mpc_demux_init( &p_sys->reader );
if( !p_sys->decoder )
return VLC_EGENERIC;
/* Load info */
mpc_demux_get_info( p_sys->decoder, &p_sys->info );
/* Fill p_demux fields */
p_demux->pf_demux = Demux;
p_demux->pf_control = Control;
......@@ -201,24 +199,28 @@ static int Demux( demux_t *p_demux )
{
demux_sys_t *p_sys = p_demux->p_sys;
block_t *p_data;
int i_ret;
mpc_frame_info frame;
mpc_status err;
p_data = block_New( p_demux,
MPC_DECODER_BUFFER_LENGTH*sizeof(MPC_SAMPLE_FORMAT) );
if( !p_data )
p_data = block_Alloc( MPC_DECODER_BUFFER_LENGTH*sizeof(MPC_SAMPLE_FORMAT) );
if( unlikely(!p_data) )
return VLC_DEMUXER_EGENERIC;
i_ret = mpc_decoder_decode( &p_sys->decoder,
(MPC_SAMPLE_FORMAT*)p_data->p_buffer,
NULL, NULL );
if( i_ret <= 0 )
frame.buffer = (MPC_SAMPLE_FORMAT*)p_data->p_buffer;
err = mpc_demux_decode( p_sys->decoder, &frame );
if( err != MPC_STATUS_OK )
{
block_Release( p_data );
return i_ret < 0 ? VLC_DEMUXER_EGENERIC : VLC_DEMUXER_EOF;
return VLC_DEMUXER_EGENERIC;
}
else if( frame.bits == -1 || frame.samples == 0 )
{
block_Release( p_data );
return VLC_DEMUXER_EOF;
}
/* */
p_data->i_buffer = i_ret * sizeof(MPC_SAMPLE_FORMAT) * p_sys->info.channels;
p_data->i_buffer = frame.samples * sizeof(MPC_SAMPLE_FORMAT) * p_sys->info.channels;
p_data->i_dts = p_data->i_pts =
VLC_TICK_0 + vlc_tick_from_samples(p_sys->i_position, p_sys->info.sample_freq);
......@@ -227,7 +229,7 @@ static int Demux( demux_t *p_demux )
es_out_Send( p_demux->out, p_sys->p_es, p_data );
/* */
p_sys->i_position += i_ret;
p_sys->i_position += frame.samples;
return VLC_DEMUXER_SUCCESS;
}
......@@ -238,10 +240,6 @@ static int Demux( demux_t *p_demux )
static int Control( demux_t *p_demux, int i_query, va_list args )
{
demux_sys_t *p_sys = p_demux->p_sys;
double f, *pf;
vlc_tick_t i64;
vlc_tick_t *pi64;
bool *pb_bool;
switch( i_query )
{
......@@ -249,22 +247,17 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
return vlc_stream_vaControl( p_demux->s, i_query, args );
case DEMUX_HAS_UNSUPPORTED_META:
pb_bool = va_arg( args, bool* );
*pb_bool = true;
*va_arg( args, bool* ) = true;
return VLC_SUCCESS;
case DEMUX_GET_LENGTH:
*va_arg( args, vlc_tick_t * ) =
vlc_tick_from_samples(p_sys->info.pcm_samples, p_sys->info.sample_freq);
vlc_tick_from_samples(p_sys->info.samples, p_sys->info.sample_freq);
return VLC_SUCCESS;
case DEMUX_GET_POSITION:
pf = va_arg( args, double * );
pi64 = (int64_t*)va_arg( args, int64_t * );
*pi64 = INT64_C(1000000) * p_sys->info.pcm_samples /
p_sys->info.sample_freq;
else
*pf = 0.0;
*va_arg( args, double * ) = (double)p_sys->i_position /
p_sys->info.samples;
return VLC_SUCCESS;
case DEMUX_GET_TIME:
......@@ -273,19 +266,20 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
return VLC_SUCCESS;
case DEMUX_SET_POSITION:
f = va_arg( args, double );
i64 = (int64_t)(f * p_sys->info.pcm_samples);
if( mpc_decoder_seek_sample( &p_sys->decoder, i64 ) )
{
mpc_uint64_t i64 = va_arg( args, double ) * p_sys->info.samples;
if( mpc_demux_seek_sample( p_sys->decoder, i64 ) )
{
p_sys->i_position = i64;
return VLC_SUCCESS;
}
return VLC_EGENERIC;
}
case DEMUX_SET_TIME:
{
vlc_tick_t i64 = va_arg( args, vlc_tick_t );
if( mpc_decoder_seek_sample( &p_sys->decoder, i64 ) )
if( mpc_demux_seek_sample( p_sys->decoder, i64 ) )
{
p_sys->i_position = i64;
return VLC_SUCCESS;
......@@ -304,36 +298,36 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
}
}
static mpc_int32_t ReaderRead( void *p_private, void *dst, mpc_int32_t i_size )
mpc_int32_t ReaderRead(mpc_reader *p_private, void *dst, mpc_int32_t i_size)
{
demux_t *p_demux = (demux_t*)p_private;
return vlc_stream_Read( p_demux->s, dst, i_size );
stream_t *stream = p_private->data;
return vlc_stream_Read( stream, dst, i_size );
}
static mpc_bool_t ReaderSeek( void *p_private, mpc_int32_t i_offset )
mpc_bool_t ReaderSeek(mpc_reader *p_private, mpc_int32_t i_offset)
{
demux_t *p_demux = (demux_t*)p_private;
return !vlc_stream_Seek( p_demux->s, i_offset );
stream_t *stream = p_private->data;
return !vlc_stream_Seek( stream, i_offset );
}
static mpc_int32_t ReaderTell( void *p_private)
mpc_int32_t ReaderTell(mpc_reader *p_private)
{
demux_t *p_demux = (demux_t*)p_private;
return vlc_stream_Tell( p_demux->s );
stream_t *stream = p_private->data;
return vlc_stream_Tell( stream );
}
static mpc_int32_t ReaderGetSize( void *p_private )
mpc_int32_t ReaderGetSize(mpc_reader *p_private)
{
demux_t *p_demux = (demux_t*)p_private;
return stream_Size( p_demux->s );
stream_t *stream = p_private->data;
return stream_Size( stream );
}
static mpc_bool_t ReaderCanSeek( void *p_private )
mpc_bool_t ReaderCanSeek(mpc_reader *p_private)
{
demux_t *p_demux = (demux_t*)p_private;
stream_t *stream = p_private->data;
bool b_canseek;
vlc_stream_Control( p_demux->s, STREAM_CAN_SEEK, &b_canseek );
vlc_stream_Control( stream, STREAM_CAN_SEEK, &b_canseek );
return b_canseek;
}