- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
on linux use libva, ffmpeg vaapi decode get a hw avframe, format is p010.
use libav overlay a bgra vasurface on video surface.
pipeline paramater is:
VAProcPipelineParameterBuffer overlay_param{0};
VABlendState blend_state = {0};
blend_state.flags = VA_BLEND_PREMULTIPLIED_ALPHA;
blend_state.global_alpha = 1.0f;
VARectangle subrect= {0,0,1280,720};
overlay_param.surface = (VASurfaceID)(uintptr_t)subtitle_frame_->data[3];
overlay_param.output_background_color = 0x00000000;
overlay_param.surface_region = nullptr;
overlay_param.output_region = subrect;
overlay_param.filter_flags = VA_FRAME_PICTURE;
overlay_param.pipeline_flags = 0;
overlay_param.blend_state = &blend_state;
overlay_param.surface_color_standard =VAProcColorStandardSRGB;
overlay_param.output_color_standard =VAProcColorStandardBT2020; //try other value like VAProcColorStandardNone etc
source surface is smaller then 1920x1080;
target surface when 1920x1080, it work
when 3840x2160, not work.
my paramter have any problem? or hardware have limitation?
driver is : Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.2.2 (9741b50)
コピーされたリンク
0 返答(返信)