Кодировщик Gstreamer OMX не принимает параметры?

Не то, чтобы я знал об этом, нет. Обычно вы «расширяете» макросы и правила запросов, связанные с атрибутами типа, чтобы найти их значение, имена макросов и атрибутов обычно довольно наглядны. Вы также можете запросить журнал 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 и скрипты, такие как макрорасширитель, делают это немного менее болезненным, а политика самодокументирования -со строгими правилами стиля тоже помогает. Многие из этих вещей являются общими моделями.

0
05.10.2019, 05:37
1 ответ

Решение, которое сработало для меня, заключалось в том, чтобы также указать 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

0
12.05.2020, 14:35

Теги

Похожие вопросы