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
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
405 results
Show changes
Commits on Source (3)
...@@ -810,19 +810,20 @@ h264_helper_get_current_sps(const struct hxxx_helper *hh) ...@@ -810,19 +810,20 @@ h264_helper_get_current_sps(const struct hxxx_helper *hh)
int int
hxxx_helper_get_current_picture_size(const struct hxxx_helper *hh, hxxx_helper_get_current_picture_size(const struct hxxx_helper *hh,
unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h, unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh) unsigned *p_vw, unsigned *p_vh)
{ {
if(hh->i_codec == VLC_CODEC_H264) if(hh->i_codec == VLC_CODEC_H264)
{ {
const struct hxxx_helper_nal *hsps = h264_helper_get_current_sps(hh); const struct hxxx_helper_nal *hsps = h264_helper_get_current_sps(hh);
if (hsps && h264_get_picture_size(hsps->h264_sps, p_w, p_h, p_vw, p_vh)) if (hsps && h264_get_picture_size(hsps->h264_sps, p_ox, p_oy, p_w, p_h, p_vw, p_vh))
return VLC_SUCCESS; return VLC_SUCCESS;
} }
else if(hh->i_codec == VLC_CODEC_HEVC) else if(hh->i_codec == VLC_CODEC_HEVC)
{ {
const struct hxxx_helper_nal *hsps = &hh->hevc.sps_list[hh->hevc.i_current_sps]; const struct hxxx_helper_nal *hsps = &hh->hevc.sps_list[hh->hevc.i_current_sps];
if(hsps && hsps->hevc_sps && hevc_get_picture_size(hsps->hevc_sps, p_w, p_h, p_vw, p_vh)) if(hsps && hsps->hevc_sps && hevc_get_picture_size(hsps->hevc_sps, p_ox, p_oy, p_w, p_h, p_vw, p_vh))
return VLC_SUCCESS; return VLC_SUCCESS;
} }
return VLC_EGENERIC; return VLC_EGENERIC;
......
...@@ -112,6 +112,7 @@ block_t * hxxx_helper_get_extradata_chain(const struct hxxx_helper *hh); ...@@ -112,6 +112,7 @@ block_t * hxxx_helper_get_extradata_chain(const struct hxxx_helper *hh);
block_t * hxxx_helper_get_extradata_block(const struct hxxx_helper *hh); block_t * hxxx_helper_get_extradata_block(const struct hxxx_helper *hh);
int hxxx_helper_get_current_picture_size(const struct hxxx_helper *hh, int hxxx_helper_get_current_picture_size(const struct hxxx_helper *hh,
unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h, unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh); unsigned *p_vw, unsigned *p_vh);
......
...@@ -68,12 +68,15 @@ DecodeBlock(decoder_t *dec, block_t *block) ...@@ -68,12 +68,15 @@ DecodeBlock(decoder_t *dec, block_t *block)
dec->fmt_out.video.color_range = full_range; dec->fmt_out.video.color_range = full_range;
} }
unsigned width, height, vis_width, vis_height; unsigned offx, offy, width, height, vis_width, vis_height;
ret = hxxx_helper_get_current_picture_size(&sys->hh, ret = hxxx_helper_get_current_picture_size(&sys->hh,
&offx, &offy,
&width, &height, &width, &height,
&vis_width, &vis_height); &vis_width, &vis_height);
if (ret == VLC_SUCCESS) if (ret == VLC_SUCCESS)
{ {
dec->fmt_out.video.i_x_offset = offx;
dec->fmt_out.video.i_y_offset = offy;
dec->fmt_out.video.i_width = dec->fmt_out.video.i_width =
dec->fmt_out.video.i_visible_width = vis_width; dec->fmt_out.video.i_visible_width = vis_width;
dec->fmt_out.video.i_height = dec->fmt_out.video.i_height =
......
...@@ -131,6 +131,7 @@ typedef struct decoder_sys_t ...@@ -131,6 +131,7 @@ typedef struct decoder_sys_t
struct android_picture_ctx apic_ctxs[MAX_PIC]; struct android_picture_ctx apic_ctxs[MAX_PIC];
void *p_surface, *p_jsurface; void *p_surface, *p_jsurface;
unsigned i_angle; unsigned i_angle;
unsigned i_input_offset_x, i_input_offset_y;
unsigned i_input_width, i_input_height; unsigned i_input_width, i_input_height;
unsigned i_input_visible_width, i_input_visible_height; unsigned i_input_visible_width, i_input_visible_height;
unsigned int i_stride, i_slice_height; unsigned int i_stride, i_slice_height;
...@@ -269,14 +270,16 @@ static void HXXXInitSize(decoder_t *p_dec, bool *p_size_changed) ...@@ -269,14 +270,16 @@ static void HXXXInitSize(decoder_t *p_dec, bool *p_size_changed)
{ {
decoder_sys_t *p_sys = p_dec->p_sys; decoder_sys_t *p_sys = p_dec->p_sys;
struct hxxx_helper *hh = &p_sys->video.hh; struct hxxx_helper *hh = &p_sys->video.hh;
unsigned i_w, i_h, i_vw, i_vh; unsigned i_ox, i_oy, i_w, i_h, i_vw, i_vh;
if(hxxx_helper_get_current_picture_size(hh, &i_w, &i_h, &i_vw, &i_vh) if(hxxx_helper_get_current_picture_size(hh, &i_ox, &i_oy, &i_w, &i_h, &i_vw, &i_vh)
== VLC_SUCCESS) == VLC_SUCCESS)
{ {
*p_size_changed = (i_w != p_sys->video.i_input_width *p_size_changed = (i_w != p_sys->video.i_input_width
|| i_h != p_sys->video.i_input_height || i_h != p_sys->video.i_input_height
|| i_vw != p_sys->video.i_input_visible_width || i_vw != p_sys->video.i_input_visible_width
|| i_vh != p_sys->video.i_input_visible_height); || i_vh != p_sys->video.i_input_visible_height);
p_sys->video.i_input_offset_x = i_ox;
p_sys->video.i_input_offset_y = i_oy;
p_sys->video.i_input_width = i_w; p_sys->video.i_input_width = i_w;
p_sys->video.i_input_height = i_h; p_sys->video.i_input_height = i_h;
p_sys->video.i_input_visible_width = i_vw; p_sys->video.i_input_visible_width = i_vw;
......
...@@ -561,12 +561,15 @@ static bool ConfigureVoutH264(decoder_t *p_dec) ...@@ -561,12 +561,15 @@ static bool ConfigureVoutH264(decoder_t *p_dec)
if (!p_dec->fmt_in->video.i_visible_width || !p_dec->fmt_in->video.i_visible_height) if (!p_dec->fmt_in->video.i_visible_width || !p_dec->fmt_in->video.i_visible_height)
{ {
unsigned i_width, i_height, i_vis_width, i_vis_height; unsigned i_offset_x, i_offset_y, i_width, i_height, i_vis_width, i_vis_height;
if (VLC_SUCCESS == if (VLC_SUCCESS ==
hxxx_helper_get_current_picture_size(&h264ctx->hh, hxxx_helper_get_current_picture_size(&h264ctx->hh,
&i_offset_x, &i_offset_y,
&i_width, &i_height, &i_width, &i_height,
&i_vis_width, &i_vis_height)) &i_vis_width, &i_vis_height))
{ {
p_dec->fmt_out.video.i_x_offset = i_offset_x;
p_dec->fmt_out.video.i_y_offset = i_offset_y;
p_dec->fmt_out.video.i_visible_width = i_vis_width; p_dec->fmt_out.video.i_visible_width = i_vis_width;
p_dec->fmt_out.video.i_width = vlc_align(i_width, VT_ALIGNMENT); p_dec->fmt_out.video.i_width = vlc_align(i_width, VT_ALIGNMENT);
p_dec->fmt_out.video.i_visible_height = i_vis_height; p_dec->fmt_out.video.i_visible_height = i_vis_height;
...@@ -596,10 +599,10 @@ static bool VideoToolboxNeedsToRestartH264(decoder_t *p_dec, ...@@ -596,10 +599,10 @@ static bool VideoToolboxNeedsToRestartH264(decoder_t *p_dec,
struct vt_h264_context *h264ctx = p_sys->p_codec_context; struct vt_h264_context *h264ctx = p_sys->p_codec_context;
const struct hxxx_helper *hh = &h264ctx->hh; const struct hxxx_helper *hh = &h264ctx->hh;
unsigned w, h, vw, vh; unsigned ox, oy, w, h, vw, vh;
int sarn, sard; int sarn, sard;
if (hxxx_helper_get_current_picture_size(hh, &w, &h, &vw, &vh) != VLC_SUCCESS) if (hxxx_helper_get_current_picture_size(hh, &ox, &oy, &w, &h, &vw, &vh) != VLC_SUCCESS)
return true; return true;
if (hxxx_helper_get_current_sar(hh, &sarn, &sard) != VLC_SUCCESS) if (hxxx_helper_get_current_sar(hh, &sarn, &sard) != VLC_SUCCESS)
......
...@@ -884,8 +884,8 @@ static int OpenDecoder(vlc_object_t *p_this) ...@@ -884,8 +884,8 @@ static int OpenDecoder(vlc_object_t *p_this)
goto error; goto error;
cudaChroma = MapChomaIDC(i_chroma_idc); cudaChroma = MapChomaIDC(i_chroma_idc);
unsigned i_w, i_h, i_vw, i_vh; unsigned i_ox, i_oy, i_w, i_h, i_vw, i_vh;
result = hxxx_helper_get_current_picture_size(&p_sys->hh, &i_w, &i_h, &i_vw, &i_vh); result = hxxx_helper_get_current_picture_size(&p_sys->hh, &i_ox, &i_oy, &i_w, &i_h, &i_vw, &i_vh);
if (result != VLC_SUCCESS) if (result != VLC_SUCCESS)
goto error; goto error;
...@@ -911,6 +911,9 @@ static int OpenDecoder(vlc_object_t *p_this) ...@@ -911,6 +911,9 @@ static int OpenDecoder(vlc_object_t *p_this)
p_dec->fmt_out.video.i_width = vlc_align(i_w, OUTPUT_WIDTH_ALIGN); p_dec->fmt_out.video.i_width = vlc_align(i_w, OUTPUT_WIDTH_ALIGN);
p_dec->fmt_out.video.i_height = i_h; p_dec->fmt_out.video.i_height = i_h;
p_dec->fmt_out.video.i_x_offset = i_ox;
p_dec->fmt_out.video.i_y_offset = i_oy;
if (!p_dec->fmt_in->video.i_visible_width || !p_dec->fmt_in->video.i_visible_height) if (!p_dec->fmt_in->video.i_visible_width || !p_dec->fmt_in->video.i_visible_height)
{ {
p_dec->fmt_out.video.i_visible_width = i_vw; p_dec->fmt_out.video.i_visible_width = i_vw;
......
...@@ -205,7 +205,10 @@ static void ActivateSets( decoder_t *p_dec, const h264_sequence_parameter_set_t ...@@ -205,7 +205,10 @@ static void ActivateSets( decoder_t *p_dec, const h264_sequence_parameter_set_t
p_dec->fmt_out.i_profile = p_sps->i_profile; p_dec->fmt_out.i_profile = p_sps->i_profile;
p_dec->fmt_out.i_level = p_sps->i_level; p_dec->fmt_out.i_level = p_sps->i_level;
(void) h264_get_picture_size( p_sps, &p_dec->fmt_out.video.i_width, (void) h264_get_picture_size( p_sps,
&p_dec->fmt_out.video.i_x_offset,
&p_dec->fmt_out.video.i_y_offset,
&p_dec->fmt_out.video.i_width,
&p_dec->fmt_out.video.i_height, &p_dec->fmt_out.video.i_height,
&p_dec->fmt_out.video.i_visible_width, &p_dec->fmt_out.video.i_visible_width,
&p_dec->fmt_out.video.i_visible_height ); &p_dec->fmt_out.video.i_visible_height );
......
...@@ -845,7 +845,9 @@ bool h264_get_dpb_values( const h264_sequence_parameter_set_t *p_sps, ...@@ -845,7 +845,9 @@ bool h264_get_dpb_values( const h264_sequence_parameter_set_t *p_sps,
return true; return true;
} }
bool h264_get_picture_size( const h264_sequence_parameter_set_t *p_sps, unsigned *p_w, unsigned *p_h, bool h264_get_picture_size( const h264_sequence_parameter_set_t *p_sps,
unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh ) unsigned *p_vw, unsigned *p_vh )
{ {
unsigned CropUnitX = 1; unsigned CropUnitX = 1;
...@@ -871,6 +873,8 @@ bool h264_get_picture_size( const h264_sequence_parameter_set_t *p_sps, unsigned ...@@ -871,6 +873,8 @@ bool h264_get_picture_size( const h264_sequence_parameter_set_t *p_sps, unsigned
*p_h = 16 * p_sps->pic_height_in_map_units_minus1 + 16; *p_h = 16 * p_sps->pic_height_in_map_units_minus1 + 16;
*p_h *= ( 2 - p_sps->frame_mbs_only_flag ); *p_h *= ( 2 - p_sps->frame_mbs_only_flag );
*p_ox = p_sps->frame_crop.left_offset * CropUnitX;
*p_oy = p_sps->frame_crop.top_offset * CropUnitY;
*p_vw = *p_w - ( p_sps->frame_crop.left_offset + p_sps->frame_crop.right_offset ) * CropUnitX; *p_vw = *p_w - ( p_sps->frame_crop.left_offset + p_sps->frame_crop.right_offset ) * CropUnitX;
*p_vh = *p_h - ( p_sps->frame_crop.bottom_offset + p_sps->frame_crop.top_offset ) * CropUnitY; *p_vh = *p_h - ( p_sps->frame_crop.bottom_offset + p_sps->frame_crop.top_offset ) * CropUnitY;
......
...@@ -207,7 +207,9 @@ uint8_t * h264_avcC_to_AnnexB_NAL( const uint8_t *p_buf, size_t i_buf, ...@@ -207,7 +207,9 @@ uint8_t * h264_avcC_to_AnnexB_NAL( const uint8_t *p_buf, size_t i_buf,
bool h264_get_dpb_values( const h264_sequence_parameter_set_t *, bool h264_get_dpb_values( const h264_sequence_parameter_set_t *,
uint8_t *pi_depth, unsigned *pi_delay ); uint8_t *pi_depth, unsigned *pi_delay );
bool h264_get_picture_size( const h264_sequence_parameter_set_t *, unsigned *p_w, unsigned *p_h, bool h264_get_picture_size( const h264_sequence_parameter_set_t *,
unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh ); unsigned *p_vw, unsigned *p_vh );
bool h264_get_chroma_luma( const h264_sequence_parameter_set_t *, uint8_t *pi_chroma_format, bool h264_get_chroma_luma( const h264_sequence_parameter_set_t *, uint8_t *pi_chroma_format,
uint8_t *pi_depth_luma, uint8_t *pi_depth_chroma ); uint8_t *pi_depth_luma, uint8_t *pi_depth_chroma );
......
...@@ -616,16 +616,19 @@ static void ActivateSets(decoder_t *p_dec, ...@@ -616,16 +616,19 @@ static void ActivateSets(decoder_t *p_dec,
&p_dec->fmt_out.video.color_range); &p_dec->fmt_out.video.color_range);
} }
unsigned sizes[4]; unsigned sizes[6];
if( hevc_get_picture_size( p_sps, &sizes[0], &sizes[1], if( hevc_get_picture_size( p_sps, &sizes[0], &sizes[1],
&sizes[2], &sizes[3] ) ) &sizes[2], &sizes[3],
&sizes[4], &sizes[5] ) )
{ {
p_dec->fmt_out.video.i_width = sizes[0]; p_dec->fmt_out.video.i_x_offset = sizes[0];
p_dec->fmt_out.video.i_height = sizes[1]; p_dec->fmt_out.video.i_y_offset = sizes[1];
p_dec->fmt_out.video.i_width = sizes[2];
p_dec->fmt_out.video.i_height = sizes[3];
if(p_dec->fmt_in->video.i_visible_width == 0) if(p_dec->fmt_in->video.i_visible_width == 0)
{ {
p_dec->fmt_out.video.i_visible_width = sizes[2]; p_dec->fmt_out.video.i_visible_width = sizes[4];
p_dec->fmt_out.video.i_visible_height = sizes[3]; p_dec->fmt_out.video.i_visible_height = sizes[5];
} }
} }
......
...@@ -1054,7 +1054,9 @@ bool hevc_get_sps_profile_tier_level( const hevc_sequence_parameter_set_t *p_sps ...@@ -1054,7 +1054,9 @@ bool hevc_get_sps_profile_tier_level( const hevc_sequence_parameter_set_t *p_sps
} }
bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *p_sps, bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *p_sps,
unsigned *p_w, unsigned *p_h, unsigned *p_vw, unsigned *p_vh ) unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh )
{ {
*p_w = *p_vw = p_sps->pic_width_in_luma_samples; *p_w = *p_vw = p_sps->pic_width_in_luma_samples;
*p_h = *p_vh = p_sps->pic_height_in_luma_samples; *p_h = *p_vh = p_sps->pic_height_in_luma_samples;
...@@ -1078,6 +1080,8 @@ bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *p_sps, ...@@ -1078,6 +1080,8 @@ bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *p_sps,
sub_height_c = 1; sub_height_c = 1;
} }
*p_oy = p_sps->conf_win.top_offset * sub_height_c;
*p_ox = p_sps->conf_win.left_offset * sub_width_c;
*p_vh -= (p_sps->conf_win.bottom_offset + p_sps->conf_win.top_offset) * sub_height_c; *p_vh -= (p_sps->conf_win.bottom_offset + p_sps->conf_win.top_offset) * sub_height_c;
*p_vw -= (p_sps->conf_win.left_offset + p_sps->conf_win.right_offset) * sub_width_c; *p_vw -= (p_sps->conf_win.left_offset + p_sps->conf_win.right_offset) * sub_width_c;
} }
......
...@@ -283,7 +283,9 @@ bool hevc_get_sps_profile_tier_level( const hevc_sequence_parameter_set_t *, ...@@ -283,7 +283,9 @@ bool hevc_get_sps_profile_tier_level( const hevc_sequence_parameter_set_t *,
uint8_t *pi_profile, uint8_t *pi_level ); uint8_t *pi_profile, uint8_t *pi_level );
enum vlc_hevc_profile_e enum vlc_hevc_profile_e
hevc_get_vlc_profile( const hevc_sequence_parameter_set_t * ); hevc_get_vlc_profile( const hevc_sequence_parameter_set_t * );
bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *, unsigned *p_w, unsigned *p_h, bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *,
unsigned *p_ox, unsigned *p_oy,
unsigned *p_w, unsigned *p_h,
unsigned *p_vw, unsigned *p_vh ); unsigned *p_vw, unsigned *p_vh );
bool hevc_get_frame_rate( const hevc_sequence_parameter_set_t *, bool hevc_get_frame_rate( const hevc_sequence_parameter_set_t *,
const hevc_video_parameter_set_t * /* can be NULL */, const hevc_video_parameter_set_t * /* can be NULL */,
......