Следующие python операторы берут видеокадр из приемника Gstreamer, конвертируют его в png и сохраняют в файле. Работает без ошибок. Моя проблема состоит в том, чтобы перевести эти операторы в java (см. Ниже).
Код python:
sample = videoSink.get_property( "last-sample" )
if not sample: return
capsTo = Gst.caps_from_string( "image/png" )
sample = GstVideo.video_convert_sample( sample, capsTo, Gst.CLOCK_TIME_NONE )
buffer = sample.get_buffer()
if not buffer: return
res, mapInfo = buffer.map( Gst.MapFlags.READ )
GLib.file_set_contents( "test.png", mapInfo.data )
, а мой текущий java с ошибками:
Sample sample = (Sample) photoSink.get( "last-sample" );
if( sample == null ) return;
Caps capsTo = Caps.fromString( "image/png" );
Sample sample2 = GstVideo.video_convert_sample( sample, capsTo, null );
Buffer buffer = sample.getBuffer();
if( buffer == null ) return;
ByteBuffer mapInfo = buffer.map( false );
GLib.file_set_contents( null, mapInfo );
, который содержит две ошибки из-за отсутствия функций: GstVideo.video_convert_sample и GLib.file_set_contents.
Кто-нибудь знает, как использовать эти или эквивалентные методы в Java?