Android 6.0 gstreamer 1.0: frame is not writable

Gregoire Gentil gregoire at gentil.com
Thu Nov 26 11:11:25 PST 2015



On 11/25/2015 11:41 PM, Gregoire Gentil wrote:
>
>
> On 11/25/2015 07:43 PM, Sebastian Dröge wrote:
>> On Mi, 2015-11-25 at 12:40 -0800, Gregoire Gentil wrote:
>>> Hello,
>>>
>>> Do understand that the same code is working on Nexus 7 2013 running
>>> Android 5.1.1.
>>>
>>> To answer precisely your question, I do:
>>>
>>> playbin uri=... video-sink="... ! glimagesink"
>>>
>>> video_sink = gst_bin_get_by_interface(GST_BIN(bin),
>>> GST_TYPE_VIDEO_OVERLAY);
>>> GstPad *pad = gst_element_get_static_pad(video_sink, "sink");
>>> gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER,
>>> (GstPadProbeCallback)cb, NULL, NULL);
>>
>> You need to provide some more details about your pipeline here, what
>> are those dots exactly and what kind of media file are you playing?
>>
>> Did you also check that the same decoder (or at least another
>> amcvideodec-* decoder) is used in both cases? Which version of
>> GStreamer are you using, 1.6.1 or something else?
> On Android 6.0, it seems to be working with 1.6.1 + ndk-r10e (not r9
> which prevents from compiling) but then the performance becomes
> catastrophic on Android 5.1.1,
>
> Grégoire
>
For the records, the problem is that on Android 6.0, the system was 
using software decoding and the buffer going out of the decoder are not 
writable while on Android 5.1.1, the system was using hardware decoding 
and the buffer is writable. The problem boils down to make work hardware 
decoding on Android 6.0 which works with Gstreamer latest 1.6.1 while 
it's not with 1.5.0. But 1.6.1 on Android 5.1.1 has catastrophic 
performance...

Grégoire


More information about the gstreamer-devel mailing list