Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
1faaba73
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1faaba73
编写于
4月 03, 2016
作者:
J
jp9000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
obs-ffmpeg: Allow user to set color range on media source
上级
d8a357e0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
0 deletion
+25
-0
plugins/obs-ffmpeg/data/locale/en-US.ini
plugins/obs-ffmpeg/data/locale/en-US.ini
+4
-0
plugins/obs-ffmpeg/obs-ffmpeg-source.c
plugins/obs-ffmpeg/obs-ffmpeg-source.c
+21
-0
未找到文件。
plugins/obs-ffmpeg/data/locale/en-US.ini
浏览文件 @
1faaba73
...
...
@@ -22,6 +22,10 @@ DiscardNonIntra="Non-Intra Frames"
DiscardNonKey
=
"Non-Key Frames"
DiscardAll
=
"All Frames (Careful!)"
RestartWhenActivated
=
"Restart playback when source becomes active"
ColorRange
=
"YUV Color Range"
ColorRange.Auto
=
"Auto"
ColorRange.Partial
=
"Partial"
ColorRange.Full
=
"Full"
MediaFileFilter.AllMediaFiles
=
"All Media Files"
MediaFileFilter.VideoFiles
=
"Video Files"
...
...
plugins/obs-ffmpeg/obs-ffmpeg-source.c
浏览文件 @
1faaba73
...
...
@@ -49,6 +49,7 @@ struct ffmpeg_source {
char
*
input
;
char
*
input_format
;
enum
AVDiscard
frame_drop
;
enum
video_range_type
range
;
int
audio_buffer_size
;
int
video_buffer_size
;
bool
is_advanced
;
...
...
@@ -81,6 +82,9 @@ static bool set_obs_frame_colorprops(struct ff_frame *frame,
obs_frame
->
full_range
=
frame
->
frame
->
color_range
==
AVCOL_RANGE_JPEG
;
if
(
s
->
range
!=
VIDEO_RANGE_DEFAULT
)
obs_frame
->
full_range
=
s
->
range
==
VIDEO_RANGE_FULL
;
range
=
obs_frame
->
full_range
?
VIDEO_RANGE_FULL
:
VIDEO_RANGE_PARTIAL
;
if
(
!
video_format_get_parameters
(
obs_cs
,
...
...
@@ -316,10 +320,12 @@ static bool is_advanced_modified(obs_properties_t *props,
obs_property_t
*
abuf
=
obs_properties_get
(
props
,
"audio_buffer_size"
);
obs_property_t
*
vbuf
=
obs_properties_get
(
props
,
"video_buffer_size"
);
obs_property_t
*
frame_drop
=
obs_properties_get
(
props
,
"frame_drop"
);
obs_property_t
*
color_range
=
obs_properties_get
(
props
,
"color_range"
);
obs_property_set_visible
(
fscale
,
enabled
);
obs_property_set_visible
(
abuf
,
enabled
);
obs_property_set_visible
(
vbuf
,
enabled
);
obs_property_set_visible
(
frame_drop
,
enabled
);
obs_property_set_visible
(
color_range
,
enabled
);
return
true
;
}
...
...
@@ -444,6 +450,18 @@ static obs_properties_t *ffmpeg_source_getproperties(void *data)
obs_property_set_visible
(
prop
,
false
);
prop
=
obs_properties_add_list
(
props
,
"color_range"
,
obs_module_text
(
"ColorRange"
),
OBS_COMBO_TYPE_LIST
,
OBS_COMBO_FORMAT_INT
);
obs_property_list_add_int
(
prop
,
obs_module_text
(
"ColorRange.Auto"
),
VIDEO_RANGE_DEFAULT
);
obs_property_list_add_int
(
prop
,
obs_module_text
(
"ColorRange.Partial"
),
VIDEO_RANGE_PARTIAL
);
obs_property_list_add_int
(
prop
,
obs_module_text
(
"ColorRange.Full"
),
VIDEO_RANGE_FULL
);
obs_property_set_visible
(
prop
,
false
);
return
props
;
}
...
...
@@ -560,6 +578,7 @@ static void ffmpeg_source_update(void *data, obs_data_t *settings)
s
->
restart_on_activate
=
obs_data_get_bool
(
settings
,
"restart_on_activate"
);
s
->
is_forcing_scale
=
true
;
s
->
range
=
VIDEO_RANGE_DEFAULT
;
if
(
is_advanced
)
{
s
->
audio_buffer_size
=
(
int
)
obs_data_get_int
(
settings
,
...
...
@@ -570,6 +589,8 @@ static void ffmpeg_source_update(void *data, obs_data_t *settings)
"frame_drop"
);
s
->
is_forcing_scale
=
obs_data_get_bool
(
settings
,
"force_scale"
);
s
->
range
=
(
enum
video_range_type
)
obs_data_get_int
(
settings
,
"color_range"
);
if
(
s
->
audio_buffer_size
<
1
)
{
s
->
audio_buffer_size
=
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录