decode byte-stream video without gmainloop

Matthew Waters ystreet00 at gmail.com
Mon Feb 3 08:00:41 UTC 2020


On 3/2/20 6:24 pm, Karl Lattimer wrote:
>
>>> and push that data into a gstreamer pipeline. As far as I understand
>>> the raop_ntp_t struct contains information regarding time
>>> synchronisation and pts provides an accurate timestamp. In my tests
>>> with gstreamer so far I’ve taken the buffer, dumped it to disk as an
>>> MP4 file, then used a simple playbin pipeline to open the file and
>>> play it. 
>>
>> Have you looked at the appsrc element ? Note that GStreamer processing
>> is asynchronous, so you may have to copy the pointer, or make sure that
>> your wrapped buffer is consumed before returning.
>>
>> https://gstreamer.freedesktop.org/documentation/tutorials/basic/short-cutting-the-pipeline.html?gi-language=c
>
> It’s my understanding that for that to work I’d need a gmainloop in
> order to callback the appropriate functions for need data and have
> enough data, as well as being able to emit the signal push-data which
> seems to be where the data is inserted into the pipeline. 
>
> Is this correct? I don’t think I can shove a gmainloop into RPiPlay
> it’s pretty much dependent on the data stream and has it’s own
> mainloop for that purpose.

You don't need a mainloop running to emit or retrieve those signals on
appsrc.  Nothing in GStreamer requires there to be any kind of mainloop
running except for platform or plugin specifics which are few and far
between (e.g. MacOS video output).

Cheers
-Matt

>>
>>>
>>> I’d also like to know if it’s possible to get a playbin to dump the
>>> pipeline that it’s using out somehow, there’s quite a lot of
>>> information in the verbose output, but I can’t seem to spot a
>>> pipeline which I could use on the command line in place of playbin, I
>>> think that would help me in the final goal. 
>>
>> When you are using gst-launch-1.0 you can dump the pipeline into DOT
>> files using the env GST_DEBUG_DUMP_DOT_DIR=
>>
>> To get the same thing in your application, you have to call:
>>
>>  GST_DEBUG_BIN_TO_DOT_FILE(bin, GST_DEBUG_GRAPH_SHOW_ALL, file_name);
>
> perfect thanks! 
>
> K,
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200203/ebc237fc/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200203/ebc237fc/attachment.sig>


More information about the gstreamer-devel mailing list