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 (6)
......@@ -248,8 +248,10 @@ static inline int ParseBitmapInfoHeader( VLC_BITMAPINFOHEADER *p_bih, size_t i_b
return VLC_SUCCESS;
}
static inline VLC_BITMAPINFOHEADER * CreateBitmapInfoHeader( const es_format_t *fmt,
size_t *pi_total )
static inline int CreateBitmapInfoHeader( const es_format_t *fmt,
VLC_BITMAPINFOHEADER *p_bih,
uint8_t **p_bih_extra,
size_t *pi_total )
{
uint16_t biBitCount = 0;
uint32_t biCompression = BI_RGB;
......@@ -308,13 +310,11 @@ static inline VLC_BITMAPINFOHEADER * CreateBitmapInfoHeader( const es_format_t *
else
i_bih_extra = fmt->i_extra;
VLC_BITMAPINFOHEADER *p_bih = malloc( sizeof(VLC_BITMAPINFOHEADER) +
i_bih_extra + i_bmiColors );
if( p_bih == NULL )
return NULL;
*p_bih_extra = malloc( i_bih_extra + i_bmiColors );
if( *p_bih_extra == NULL && (i_bih_extra + i_bmiColors) != 0 )
return VLC_ENOMEM;
uint8_t *p_bih_extra = (uint8_t *) &p_bih[1];
uint8_t *p_bmiColors = p_bih_extra + i_bih_extra;
uint8_t *p_bmiColors = *p_bih_extra;
p_bih->biClrUsed = 0;
if( biCompression == BI_BITFIELDS )
{
......@@ -343,7 +343,7 @@ static inline VLC_BITMAPINFOHEADER * CreateBitmapInfoHeader( const es_format_t *
}
else if( fmt->i_extra )
{
memcpy( p_bih_extra, fmt->p_extra, fmt->i_extra );
memcpy( *p_bih_extra, fmt->p_extra, fmt->i_extra );
}
p_bih->biSize = sizeof(VLC_BITMAPINFOHEADER) + i_bih_extra;
......@@ -357,6 +357,6 @@ static inline VLC_BITMAPINFOHEADER * CreateBitmapInfoHeader( const es_format_t *
p_bih->biYPelsPerMeter = 0;
p_bih->biClrImportant = 0;
*pi_total = sizeof(VLC_BITMAPINFOHEADER) + i_bih_extra + i_bmiColors;
return p_bih;
*pi_total = i_bih_extra + i_bmiColors;
return VLC_SUCCESS;
}
......@@ -88,7 +88,7 @@ static int Mux ( sout_mux_t * );
typedef struct avi_stream_s
{
int i_cat;
enum es_format_category_e i_cat;
char fcc[4];
......@@ -100,9 +100,17 @@ typedef struct avi_stream_s
float f_fps;
int i_bitrate;
VLC_BITMAPINFOHEADER *p_bih;
size_t i_bih;
WAVEFORMATEX *p_wf;
union {
struct {
VLC_BITMAPINFOHEADER bih;
uint8_t *p_bitmap_extra;
size_t i_bitmap_extra;
};
struct {
uint8_t *p_wav_extra;
WAVEFORMATEX wf;
};
};
} avi_stream_t;
......@@ -259,8 +267,10 @@ static void Close( vlc_object_t * p_this )
{
avi_stream_t *p_stream;
p_stream = &p_sys->stream[i_stream];
free( p_stream->p_bih );
free( p_stream->p_wf );
if ( p_stream->i_cat == VIDEO_ES )
free( p_stream->p_bitmap_extra );
else if ( p_stream->i_cat == AUDIO_ES )
free( p_stream->p_wav_extra );
}
free( p_sys->idx1.entry );
free( p_sys );
......@@ -316,23 +326,21 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
p_stream->fcc[1] = '0' + p_sys->i_streams % 10;
p_stream->fcc[2] = 'w';
p_stream->fcc[3] = 'b';
p_stream->p_wav_extra = NULL;
p_stream->p_bih = NULL;
p_stream->i_bih = 0;
WAVEFORMATEX *p_wf = malloc( sizeof( WAVEFORMATEX ) +
p_input->p_fmt->i_extra );
if( !p_wf )
{
free( p_input->p_sys );
p_input->p_sys = NULL;
return VLC_ENOMEM;
}
WAVEFORMATEX *p_wf = &p_stream->wf;
p_wf->cbSize = p_input->p_fmt->i_extra;
if( p_wf->cbSize > 0 )
{
memcpy( &p_wf[1],
p_stream->p_wav_extra = malloc( p_wf->cbSize );
if ( unlikely(p_stream->p_wav_extra == NULL) )
{
free( p_input->p_sys );
p_input->p_sys = NULL;
return VLC_ENOMEM;
}
memcpy( p_stream->p_wav_extra,
p_input->p_fmt->p_extra,
p_input->p_fmt->i_extra );
}
......@@ -405,12 +413,11 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
p_wf->nSamplesPerSec * p_wf->nChannels;
break;
default:
free( p_wf );
free( p_stream->p_wav_extra );
free( p_input->p_sys );
p_input->p_sys = NULL;
return VLC_EGENERIC;
}
p_stream->p_wf = p_wf;
break;
case VIDEO_ES:
p_stream->i_cat = VIDEO_ES;
......@@ -418,13 +425,14 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
p_stream->fcc[1] = '0' + p_sys->i_streams % 10;
p_stream->fcc[2] = 'd';
p_stream->fcc[3] = 'c';
p_stream->p_bitmap_extra = NULL;
if( p_sys->i_stream_video < 0 )
{
p_sys->i_stream_video = p_sys->i_streams;
}
p_stream->p_wf = NULL;
p_stream->p_bih = CreateBitmapInfoHeader( &p_input->fmt, &p_stream->i_bih );
if( !p_stream->p_bih )
if( CreateBitmapInfoHeader( &p_input->fmt, &p_stream->bih,
&p_stream->p_bitmap_extra,
&p_stream->i_bitmap_extra ) != VLC_SUCCESS )
{
free( p_input->p_sys );
p_input->p_sys = NULL;
......@@ -463,22 +471,21 @@ static int PrepareSamples( const avi_stream_t *p_stream,
{
/* Add header present at the end of BITMAP info header
to first frame in case of XVID */
if( p_stream->p_bih->biCompression == VLC_FOURCC( 'X', 'V', 'I', 'D' ) )
if( p_stream->bih.biCompression == VLC_FOURCC( 'X', 'V', 'I', 'D' ) )
{
size_t i_header_length =
p_stream->p_bih->biSize - sizeof(VLC_BITMAPINFOHEADER);
size_t i_header_length = p_stream->i_bitmap_extra;
*pp_block = block_Realloc( *pp_block, i_header_length,
(*pp_block)->i_buffer );
if( !*pp_block )
return VLC_ENOMEM;
memcpy((*pp_block)->p_buffer,&p_stream->p_bih[1], i_header_length);
memcpy((*pp_block)->p_buffer,p_stream->p_bitmap_extra, i_header_length);
}
}
/* RV24 is only BGR in AVI, and we can't use BI_BITFIELD */
if( p_stream->i_cat == VIDEO_ES &&
p_stream->p_bih->biCompression == BI_RGB &&
p_stream->p_bih->biBitCount == 24 &&
p_stream->bih.biCompression == BI_RGB &&
p_stream->bih.biBitCount == 24 &&
(p_fmt->video.i_bmask != 0xFF0000 ||
p_fmt->video.i_rmask != 0x0000FF) )
{
......@@ -684,8 +691,8 @@ static int avi_HeaderAdd_avih( sout_mux_t *p_mux,
bo_add_32le( p_bo, 1024 * 1024 ); /* suggested buffer size */
if( p_video )
{
bo_add_32le( p_bo, p_video->p_bih->biWidth );
bo_add_32le( p_bo, p_video->p_bih->biHeight );
bo_add_32le( p_bo, p_video->bih.biWidth );
bo_add_32le( p_bo, p_video->bih.biHeight );
}
else
{
......@@ -708,13 +715,13 @@ static int avi_HeaderAdd_strh( bo_t *p_bo, avi_stream_t *p_stream )
case VIDEO_ES:
{
bo_add_fourcc( p_bo, "vids" );
if( p_stream->p_bih->biBitCount )
if( p_stream->bih.biBitCount )
bo_add_fourcc( p_bo, "DIB " );
else
#ifdef WORDS_BIGENDIAN
bo_add_32be( p_bo, p_stream->p_bih->biCompression );
bo_add_32be( p_bo, p_stream->bih.biCompression );
#else
bo_add_32le( p_bo, p_stream->p_bih->biCompression );
bo_add_32le( p_bo, p_stream->bih.biCompression );
#endif
bo_add_32le( p_bo, 0 ); /* flags */
bo_add_16le( p_bo, 0 ); /* priority */
......@@ -729,15 +736,15 @@ static int avi_HeaderAdd_strh( bo_t *p_bo, avi_stream_t *p_stream )
bo_add_32le( p_bo, 0 ); /* samplesize */
bo_add_16le( p_bo, 0 ); /* ??? */
bo_add_16le( p_bo, 0 ); /* ??? */
bo_add_16le( p_bo, p_stream->p_bih->biWidth );
bo_add_16le( p_bo, p_stream->p_bih->biHeight );
bo_add_16le( p_bo, p_stream->bih.biWidth );
bo_add_16le( p_bo, p_stream->bih.biHeight );
}
break;
case AUDIO_ES:
{
int i_rate, i_scale, i_samplesize;
i_samplesize = p_stream->p_wf->nBlockAlign;
i_samplesize = p_stream->wf.nBlockAlign;
if( i_samplesize > 1 )
{
i_scale = i_samplesize;
......@@ -768,6 +775,9 @@ static int avi_HeaderAdd_strh( bo_t *p_bo, avi_stream_t *p_stream )
bo_add_16le( p_bo, 0 );
}
break;
default:
// unsupported track type
break;
}
AVI_BOX_EXIT( 0 );
......@@ -780,34 +790,35 @@ static int avi_HeaderAdd_strf( bo_t *p_bo, avi_stream_t *p_stream )
switch( p_stream->i_cat )
{
case AUDIO_ES:
bo_add_16le( p_bo, p_stream->p_wf->wFormatTag );
bo_add_16le( p_bo, p_stream->p_wf->nChannels );
bo_add_32le( p_bo, p_stream->p_wf->nSamplesPerSec );
bo_add_32le( p_bo, p_stream->p_wf->nAvgBytesPerSec );
bo_add_16le( p_bo, p_stream->p_wf->nBlockAlign );
bo_add_16le( p_bo, p_stream->p_wf->wBitsPerSample );
bo_add_16le( p_bo, p_stream->p_wf->cbSize );
bo_add_mem( p_bo, p_stream->p_wf->cbSize, (uint8_t*)&p_stream->p_wf[1] );
bo_add_16le( p_bo, p_stream->wf.wFormatTag );
bo_add_16le( p_bo, p_stream->wf.nChannels );
bo_add_32le( p_bo, p_stream->wf.nSamplesPerSec );
bo_add_32le( p_bo, p_stream->wf.nAvgBytesPerSec );
bo_add_16le( p_bo, p_stream->wf.nBlockAlign );
bo_add_16le( p_bo, p_stream->wf.wBitsPerSample );
bo_add_16le( p_bo, p_stream->wf.cbSize );
bo_add_mem( p_bo, p_stream->wf.cbSize, p_stream->p_wav_extra );
break;
case VIDEO_ES:
bo_add_32le( p_bo, p_stream->p_bih->biSize );
bo_add_32le( p_bo, p_stream->p_bih->biWidth );
bo_add_32le( p_bo, p_stream->p_bih->biHeight );
bo_add_16le( p_bo, p_stream->p_bih->biPlanes );
bo_add_16le( p_bo, p_stream->p_bih->biBitCount );
bo_add_32le( p_bo, p_stream->bih.biSize );
bo_add_32le( p_bo, p_stream->bih.biWidth );
bo_add_32le( p_bo, p_stream->bih.biHeight );
bo_add_16le( p_bo, p_stream->bih.biPlanes );
bo_add_16le( p_bo, p_stream->bih.biBitCount );
#ifdef WORDS_BIGENDIAN
bo_add_32be( p_bo, p_stream->p_bih->biCompression );
bo_add_32be( p_bo, p_stream->bih.biCompression );
#else
bo_add_32le( p_bo, p_stream->p_bih->biCompression );
bo_add_32le( p_bo, p_stream->bih.biCompression );
#endif
bo_add_32le( p_bo, p_stream->p_bih->biSizeImage );
bo_add_32le( p_bo, p_stream->p_bih->biXPelsPerMeter );
bo_add_32le( p_bo, p_stream->p_bih->biYPelsPerMeter );
bo_add_32le( p_bo, p_stream->p_bih->biClrUsed );
bo_add_32le( p_bo, p_stream->p_bih->biClrImportant );
bo_add_mem( p_bo,
p_stream->i_bih - sizeof( VLC_BITMAPINFOHEADER ),
(uint8_t*)&p_stream->p_bih[1] );
bo_add_32le( p_bo, p_stream->bih.biSizeImage );
bo_add_32le( p_bo, p_stream->bih.biXPelsPerMeter );
bo_add_32le( p_bo, p_stream->bih.biYPelsPerMeter );
bo_add_32le( p_bo, p_stream->bih.biClrUsed );
bo_add_32le( p_bo, p_stream->bih.biClrImportant );
bo_add_mem( p_bo, p_stream->i_bitmap_extra, p_stream->p_bitmap_extra );
break;
default:
// unsupported track type
break;
}
......