Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hardware video decoding on Android using GStreamer

I have to implement a GStreamer pipeline on Android which will get a live mpegts stream from a mpegts server on a linux machine(also implemented through GStreamer).

Now, I have a Samdung Galaxy Tab2, 5113, which has Android-4.1.2-JellyBean and API level=16

My receiver pipeline is as follows: data->pipeline = gst_parse_launch("udpsrc caps=\"video/mpegts, systemstream=true, packet-size=188\" ! tsdemux ! queue ! h264parse ! amcviddec-omxgoogleh264decoder ! eglglessink", &error);

This as per Android-Tutorial-3 of GStreamerSDK.

When I press the play button, I get this error: 06-26 00:04:56.927: D/GStreamer+tutorial-3(7201): 0:00:05.920807000 0x5a65c320 jni/tutorial-3.c:88:set_ui_message Setting message to: Error received from element amcvideodec-omxgoogleh264decoder0: GStreamer encountered a general supporting library error.

A more detailed log of the application as shown on the logcat of the Eclipse IDE:http://pastebin.com/EX8sgcEp

So it seems that the amcviddec-omxgoogleh264decoder element cannot dequeue the input data as well as GStreamer encounters a library error.

I would appreciate any help or suggestions.

like image 438
Yusuf Husainy Avatar asked Oct 03 '22 13:10

Yusuf Husainy


1 Answers

We had solved the problem some time back.

Just putting it here for any body else's reference.

The problem was, if we are to use amcviddec-omxgoogleh264decoder, there are some dependent files which need to be installed besides the gstreamer application. Don't knopw exactly what they were.

Anyways, if one sees the /etc/media-codec.xml file in the android root, we will get to know all the multimedia codecs supported by one's android device. This includes the codec supported by hardware codec chips also.

For us, we tried the amcviddec-omxtiducati1videodecoder, and it worked like a charm.

Regards, Yusuf Husainy.

like image 179
Yusuf Husainy Avatar answered Oct 11 '22 11:10

Yusuf Husainy