Не то, чтобы я знал об этом, нет. Обычно вы «расширяете» макросы и правила запросов, связанные с атрибутами типа, чтобы найти их значение, имена макросов и атрибутов обычно довольно наглядны. Вы также можете запросить журнал git -, чтобы узнать, есть ли в сообщении git commit дополнительная информация.
Существует сценарий, помогающий расширять макросы, который называется «расширитель макросов -», и набор инструментов для анализа политик setools, помогающий находить правила, связанные с атрибутами.
Правило в вашем примере похоже на использование безымянного канала. Обычно это часть макросов перехода домена, чтобы обеспечить конвейерную передачу во входной поток цели, поскольку это довольно часто используется для обработки stdin/stdout/stderr, например:(app_b | app_a
)
https://github.com/SELinuxProject/refpolicy/blob/master/policy/support/misc_patterns.spt#L58
Таким образом, если приложение _b запускает приложение _a с переходом домена, приложению _a разрешено читать/записывать канал, унаследованный от приложения _b. Итак, речь идет об обработке stdin, stdout, stderr. Например. цели перехода домена автоматически разрешается использовать унаследованные каналы источника перехода домена.
Но да, анализ сложной политики, написанной другими, может быть проблемой. setools и скрипты, такие как макрорасширитель, делают это немного менее болезненным, а политика самодокументирования -со строгими правилами стиля тоже помогает. Многие из этих вещей являются общими моделями.
Решение, которое сработало для меня, заключалось в том, чтобы также указать control-rate
, поэтому в моем случае
... ! omxh264enc target-bitrate=500000 control-rate=1 !...
$ gst-inspect-1.0 omxh264enc
Factory Details:
Rank primary + 1 (257)
Long-name OpenMAX H.264 Video Encoder
Klass Codec/Encoder/Video
Description Encode H.264 video streams
Author Sebastian Dröge <sebastian.droege@collabora.co.uk>
Plugin Details:
Name omx
Description GStreamer OpenMAX Plug-ins
Filename /usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstomx.so
Version 1.0.0.1
License LGPL
Source module gst-omx
Source release date 2015-11-11 17:35 (UTC)
Binary package GStreamer OpenMAX Plug-ins git
Origin URL Unknown package origin
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstVideoEncoder
+----GstOMXVideoEnc
+----GstOMXH264Enc
+----GstOMXH264Enc-omxh264enc
Implemented Interfaces:
GstPreset
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
video/x-raw
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
SRC template: 'src'
Availability: Always
Capabilities:
video/x-h264
width: [ 16, 4096 ]
height: [ 16, 4096 ]
Element Flags:
no flags set
Element Implementation:
Has change_state() function: gst_omx_video_enc_change_state
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
SINK: 'sink'
Implementation:
Has chainfunc(): gst_video_encoder_chain
Has custom eventfunc(): gst_video_encoder_sink_event
Has custom queryfunc(): gst_video_encoder_sink_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Pad Template: 'sink'
SRC: 'src'
Implementation:
Has custom eventfunc(): gst_video_encoder_src_event
Has custom queryfunc(): gst_video_encoder_src_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Pad Template: 'src'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "omxh264enc-omxh264enc0"
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
control-rate : Bitrate control method
flags: readable, writable, changeable only in NULL or READY state
Enum "GstOMXVideoEncControlRate" Default: -1, "default"
(0): disable - Disable
(1): variable - Variable
(2): constant - Constant
(3): variable-skip-frames - Variable Skip Frames
(4): constant-skip-frames - Constant Skip Frames
(-1): default - Component Default
target-bitrate : Target bitrate (0xffffffff=component default)
flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295
quant-i-frames : Quantization parameter for I-frames (0xffffffff=component default)
flags: readable, writable, changeable only in NULL or READY state
Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295
quant-p-frames : Quantization parameter for P-frames (0xffffffff=component default)
flags: readable, writable, changeable only in NULL or READY state
Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295
quant-b-frames : Quantization parameter for B-frames (0xffffffff=component default)
flags: readable, writable, changeable only in NULL or READY state
Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295