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 (16)
......@@ -73,11 +73,19 @@ static inline void vlc_seekpoint_Delete( seekpoint_t *point )
static inline seekpoint_t *vlc_seekpoint_Duplicate( const seekpoint_t *src )
{
seekpoint_t *point = vlc_seekpoint_New();
if( likely(point) )
if (unlikely(point == NULL))
return NULL;
if (src->psz_name)
{
if( src->psz_name ) point->psz_name = strdup( src->psz_name );
point->i_time_offset = src->i_time_offset;
point->psz_name = strdup(src->psz_name);
if (point->psz_name == NULL)
{
vlc_seekpoint_Delete(point);
return NULL;
}
}
point->i_time_offset = src->i_time_offset;
return point;
}
......
......@@ -475,6 +475,9 @@ static int ReadICYMeta( stream_t *p_access )
/* msg_Dbg( p_access, "ICY meta size=%u", i_size); */
psz_meta = malloc( i_size + 1 );
if (psz_meta == NULL)
return VLC_ENOMEM;
for( i_read = 0; i_read < i_size; )
{
int i_tmp;
......
......@@ -864,6 +864,11 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
{
psz_vcdfile = malloc( strlen(filename) +
(p_pos - psz_cuefile + 1) + 1 );
if (psz_vcdfile == NULL)
{
i_ret = VLC_ENOMEM;
goto error;
}
strncpy( psz_vcdfile, psz_cuefile, (p_pos - psz_cuefile + 1) );
strcpy( psz_vcdfile + (p_pos - psz_cuefile + 1), filename );
} else psz_vcdfile = strdup( filename );
......@@ -1685,4 +1690,3 @@ int ioctl_GetCdText( vlc_object_t *p_object, const vcddev_t *p_vcddev,
free( p_text );
return 0;
}
......@@ -302,6 +302,8 @@ static int DecOpen( decoder_t *p_dec )
VIDEOINFOHEADER *p_vih = NULL;
WAVEFORMATEX *p_wf = NULL;
int i_ret = VLC_EGENERIC;
/* Initialize OLE/COM */
if( FAILED(CoInitializeEx( NULL, COINIT_MULTITHREADED )) )
vlc_assert_unreachable();
......@@ -323,6 +325,8 @@ static int DecOpen( decoder_t *p_dec )
uint16_t i_tag;
int i_size = sizeof(WAVEFORMATEX) + p_dec->fmt_in->i_extra;
p_wf = malloc( i_size );
if (p_wf == NULL)
goto allocation_failure;
memset( p_wf, 0, sizeof(WAVEFORMATEX) );
if( p_dec->fmt_in->i_extra )
......@@ -356,6 +360,8 @@ static int DecOpen( decoder_t *p_dec )
int i_size = sizeof(VIDEOINFOHEADER) + p_dec->fmt_in->i_extra;
p_vih = malloc( i_size );
if (p_vih == NULL)
goto allocation_failure;
memset( p_vih, 0, sizeof(VIDEOINFOHEADER) );
if( p_dec->fmt_in->i_extra )
......@@ -571,8 +577,10 @@ static int DecOpen( decoder_t *p_dec )
return VLC_SUCCESS;
error:
allocation_failure:
i_ret = VLC_ENOMEM;
error:
if( p_dmo ) IMediaObject_Release( p_dmo );
if( hmsdmo_dll ) FreeLibrary( hmsdmo_dll );
......@@ -586,7 +594,7 @@ static int DecOpen( decoder_t *p_dec )
p_sys->b_ready = true;
vlc_cond_signal( &p_sys->wait_output );
vlc_mutex_unlock( &p_sys->lock );
return VLC_EGENERIC;
return i_ret;
}
/*****************************************************************************
......@@ -1179,6 +1187,11 @@ static int EncoderSetVideoType( encoder_t *p_enc, IMediaObject *p_dmo )
}
p_data = malloc( i_data );
if (p_data == NULL)
{
DMOFreeMediaType( &dmo_type );
return VLC_ENOMEM;
}
i_err = p_privdata->vt->GetPrivateData( p_privdata, p_data, &i_data );
/* Update the media type with the private data */
......
......@@ -141,8 +141,18 @@ static int ControlHEIF( demux_t *p_demux, int i_query, va_list args )
return VLC_EGENERIC;
*pi_int = 1;
*ppp_title = malloc( sizeof( input_title_t*) );
(*ppp_title)[0] = vlc_input_title_Duplicate( p_sys->p_title );
input_title_t **titles = malloc(sizeof(*titles));
if (titles == NULL)
return VLC_ENOMEM;
titles[0] = vlc_input_title_Duplicate(p_sys->p_title);
if (titles[0] == NULL)
{
free(titles);
return VLC_ENOMEM;
}
*ppp_title = titles;
*pi_title_offset = 0;
*pi_seekpoint_offset = 0;
return VLC_SUCCESS;
......
......@@ -3497,6 +3497,7 @@ static int MP4_ReadBox_cmvd( stream_t *p_stream, MP4_Box_t *p_box )
static int MP4_ReadBox_cmov( stream_t *p_stream, MP4_Box_t *p_box )
{
#ifndef HAVE_ZLIB
(void)p_box;
msg_Dbg( p_stream, "read box: \"cmov\" zlib unsupported" );
return 0;
#else
......
......@@ -2341,8 +2341,17 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
return VLC_EGENERIC;
*pi_int = 1;
*ppp_title = malloc( sizeof( input_title_t*) );
(*ppp_title)[0] = vlc_input_title_Duplicate( p_sys->p_title );
input_title_t **titles = malloc(sizeof(*titles));
if (titles == NULL)
return VLC_ENOMEM;
titles[0] = vlc_input_title_Duplicate(p_sys->p_title);
if (titles[0] == NULL)
{
free(titles);
return VLC_ENOMEM;
}
*ppp_title = titles;
*pi_title_offset = 0;
*pi_seekpoint_offset = 0;
return VLC_SUCCESS;
......@@ -2457,7 +2466,10 @@ static void LoadChapterGpac( demux_t *p_demux, MP4_Box_t *p_chpl )
return;
p_sys->p_title = vlc_input_title_New();
for( int i = 0; i < BOXDATA(p_chpl)->i_chapter && p_sys->p_title; i++ )
if (p_sys->p_title == NULL)
return;
for( int i = 0; i < BOXDATA(p_chpl)->i_chapter; i++ )
{
seekpoint_t *s = vlc_seekpoint_New();
if( s == NULL) continue;
......
......@@ -855,22 +855,40 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
int *pi_title_offset = va_arg( args, int* );
int *pi_seekpoint_offset = va_arg( args, int* );
if( p_sys->i_seekpoints > 0 )
if( p_sys->i_seekpoints == 0 )
return VLC_EGENERIC;
*pi_int = 1;
input_title_t **titles = malloc(sizeof(*titles));
if (titles == NULL)
return VLC_ENOMEM;
titles[0] = vlc_input_title_New();
if (titles[0] == NULL)
{
free(titles);
return VLC_ENOMEM;
}
for( int i = 0; i < p_sys->i_seekpoints; i++ )
{
*pi_int = 1;
*ppp_title = malloc( sizeof( input_title_t* ) );
input_title_t *p_title = (*ppp_title)[0] = vlc_input_title_New();
for( int i = 0; i < p_sys->i_seekpoints; i++ )
seekpoint_t *p_seekpoint_copy = vlc_seekpoint_Duplicate( p_sys->pp_seekpoints[i] );
if (unlikely(p_seekpoint_copy == NULL))
{
seekpoint_t *p_seekpoint_copy = vlc_seekpoint_Duplicate( p_sys->pp_seekpoints[i] );
if ( likely( p_seekpoint_copy ) )
TAB_APPEND( p_title->i_seekpoint, p_title->seekpoint, p_seekpoint_copy );
for (int j = 0; j < i; ++j)
{
vlc_seekpoint_Delete(titles[0]->seekpoint[i]);
}
vlc_input_title_Delete(titles[0]);
free(titles);
return VLC_ENOMEM;
}
*pi_title_offset = 0;
*pi_seekpoint_offset = 0;
return VLC_SUCCESS;
TAB_APPEND(titles[0]->i_seekpoint, titles[0]->seekpoint, p_seekpoint_copy);
}
return VLC_EGENERIC;
*ppp_title = titles;
*pi_title_offset = 0;
*pi_seekpoint_offset = 0;
return VLC_SUCCESS;
}
case DEMUX_SET_TITLE:
{
......
......@@ -134,7 +134,9 @@ static bool mp4mux_trackinfo_Init(mp4mux_trackinfo_t *p_stream, unsigned i_id,
static void mp4mux_trackinfo_Clear(mp4mux_trackinfo_t *p_stream)
{
es_format_Clean(&p_stream->fmt);
mp4mux_track_SetSamplePriv(p_stream, NULL, 0);
int ret = mp4mux_track_SetSamplePriv(p_stream, NULL, 0);
assert(ret == VLC_SUCCESS);
free(p_stream->samples);
free(p_stream->p_edits);
}
......@@ -295,8 +297,8 @@ enum mp4mux_interlacing mp4mux_track_GetInterlacing(const mp4mux_trackinfo_t *t)
return t->e_interlace;
}
void mp4mux_track_SetSamplePriv(mp4mux_trackinfo_t *t,
const uint8_t *p_data, size_t i_data)
int mp4mux_track_SetSamplePriv(mp4mux_trackinfo_t *t,
const uint8_t *p_data, size_t i_data)
{
if(t->sample_priv.p_data)
{
......@@ -308,12 +310,12 @@ void mp4mux_track_SetSamplePriv(mp4mux_trackinfo_t *t,
if(p_data && i_data)
{
t->sample_priv.p_data = malloc(i_data);
if(i_data)
{
memcpy(t->sample_priv.p_data, p_data, i_data);
t->sample_priv.i_data = i_data;
}
if (t->sample_priv.p_data == NULL)
return VLC_ENOMEM;
memcpy(t->sample_priv.p_data, p_data, i_data);
t->sample_priv.i_data = i_data;
}
return VLC_SUCCESS;
}
bool mp4mux_track_HasSamplePriv(const mp4mux_trackinfo_t *t)
......
......@@ -59,7 +59,7 @@ enum mp4mux_interlacing
};
void mp4mux_track_SetInterlacing(mp4mux_trackinfo_t *, enum mp4mux_interlacing);
enum mp4mux_interlacing mp4mux_track_GetInterlacing(const mp4mux_trackinfo_t *);
void mp4mux_track_SetSamplePriv(mp4mux_trackinfo_t *, const uint8_t *, size_t);
int mp4mux_track_SetSamplePriv(mp4mux_trackinfo_t *, const uint8_t *, size_t);
bool mp4mux_track_HasSamplePriv(const mp4mux_trackinfo_t *);
vlc_tick_t mp4mux_track_GetDefaultSampleDuration(const mp4mux_trackinfo_t *);
uint32_t mp4mux_track_GetDefaultSampleSize(const mp4mux_trackinfo_t *);
......@@ -103,4 +103,3 @@ void box_fix (bo_t *box, uint32_t);
void box_gather (bo_t *box, bo_t *box2);
bool mp4mux_CanMux(vlc_object_t *, const es_format_t *, vlc_fourcc_t, bool);
......@@ -604,21 +604,33 @@ static bool CreateCurrentEdit(mp4_stream_t *p_stream, vlc_tick_t i_mux_start_dts
return mp4mux_track_AddEdit(p_stream->tinfo, &newedit);
}
static block_t * BlockDequeue(sout_input_t *p_input, mp4_stream_t *p_stream)
static int BlockDequeue(sout_input_t *p_input, mp4_stream_t *p_stream, block_t **out)
{
assert(out);
block_t *p_block = block_FifoGet(p_input->p_fifo);
if(unlikely(!p_block))
return NULL;
{
*out = NULL;
return VLC_SUCCESS;
}
/* Create on the fly extradata as packetizer is not in the loop */
if(p_stream->extrabuilder && !mp4mux_track_HasSamplePriv(p_stream->tinfo))
{
mux_extradata_builder_Feed(p_stream->extrabuilder,
p_block->p_buffer, p_block->i_buffer);
const uint8_t *p_extra;
size_t i_extra = mux_extradata_builder_Get(p_stream->extrabuilder, &p_extra);
if(i_extra)
mp4mux_track_SetSamplePriv(p_stream->tinfo, p_extra, i_extra);
mux_extradata_builder_Feed(p_stream->extrabuilder,
p_block->p_buffer, p_block->i_buffer);
const uint8_t *p_extra;
size_t i_extra = mux_extradata_builder_Get(p_stream->extrabuilder, &p_extra);
if (i_extra)
{
int ret = mp4mux_track_SetSamplePriv(p_stream->tinfo, p_extra, i_extra);
if (ret != VLC_SUCCESS)
{
block_Release(p_block);
return ret;
}
}
}
switch(mp4mux_track_GetFmt(p_stream->tinfo)->i_codec)
......@@ -637,7 +649,8 @@ static block_t * BlockDequeue(sout_input_t *p_input, mp4_stream_t *p_stream)
break;
}
return p_block;
*out = p_block;
return VLC_SUCCESS;
}
static inline vlc_tick_t dts_fb_pts( const block_t *p_data )
......@@ -1455,7 +1468,12 @@ static int MuxFrag(sout_mux_t *p_mux)
sout_input_t *p_input = p_mux->pp_inputs[i_stream];
mp4_stream_t *p_stream = (mp4_stream_t*) p_input->p_sys;
block_t *p_currentblock = BlockDequeue(p_input, p_stream);
block_t *p_currentblock;
int ret = BlockDequeue(p_input, p_stream, &p_currentblock);
if (ret != VLC_SUCCESS)
return ret;
if( !p_currentblock )
return VLC_SUCCESS;
......
......@@ -1312,6 +1312,11 @@ static int HttpCallback( httpd_file_sys_t *p_args,
{
*pi_data = strlen( p_sys->psz_sdp );
*pp_data = malloc( *pi_data );
if (*pp_data == NULL)
{
vlc_mutex_unlock(&p_sys->lock_sdp);
return VLC_ENOMEM;
}
memcpy( *pp_data, p_sys->psz_sdp, *pi_data );
}
else
......
......@@ -1089,17 +1089,27 @@ static picture_t *pic_new_unaligned(const video_format_t *fmt)
{
/* Allocate a no-aligned picture in order to ease buffer overflow detection
* from the source picture */
unsigned i = 0;
const vlc_chroma_description_t *dsc = vlc_fourcc_GetChromaDescription(fmt->i_chroma);
assert(dsc);
picture_resource_t rsc = { .pf_destroy = pic_rsc_destroy };
for (unsigned i = 0; i < dsc->plane_count; i++)
for (; i < dsc->plane_count; i++)
{
rsc.p[i].i_lines = ((fmt->i_visible_height + (dsc->p[i].h.den - 1)) / dsc->p[i].h.den) * dsc->p[i].h.num;
rsc.p[i].i_pitch = ((fmt->i_visible_width + (dsc->p[i].w.den - 1)) / dsc->p[i].w.den) * dsc->p[i].w.num * dsc->pixel_size;
rsc.p[i].p_pixels = malloc(rsc.p[i].i_lines * rsc.p[i].i_pitch);
assert(rsc.p[i].p_pixels);
if (rsc.p[i].p_pixels == NULL)
goto cleanup;
}
return picture_NewFromResource(fmt, &rsc);
picture_t *pic = picture_NewFromResource(fmt, &rsc);
if (pic == NULL)
goto cleanup;
return pic;
cleanup:
while (i != 0)
free(rsc.p[--i].p_pixels);
return NULL;
}
int main(void)
......