Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6188031
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T02:09:36+00:00 2026-05-24T02:09:36+00:00

What I need to do is to decode video frames and render the frames

  • 0

What I need to do is to decode video frames and render the frames on a trapezoidal surface. I’m using Android 2.2 as my development platform

I’m not using the mediaplayer service since I need access to the decoded frames.

Here’s what I have so far:

  • I am using stagefright framework to extract decoded video frames.
  • each frame is then converted from YUV420 to RGB format
  • the converted frames are then copied to a texture and rendered to an OpenGL surface
  • Note that I am using Processing and not using OpenGL calls directly.

So now my problems are

  • i can only decode mp4 files with stagefright
  • the rendering is too slow, around 100ms for a 320×420 frame
  • there is no audio yet, I can only render videos but I still don’t know how to synchronize the playing of the audio frames.

So for my questions…

  • how can I support other video formats? Shoud I use stagefright or should I switch to ffmpeg?
  • how can I improve the performance? I should be able to support at least 720p?
  • Should I use OpenGL calls directly instead of Processing? Will this improve the performance?
  • How can I sync the audio frames during playback?
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T02:09:37+00:00Added an answer on May 24, 2026 at 2:09 am

    Adding other video formats and codecs to stagefright

    If you have parsers for “other” video formats, then you need to implement Stagefright media extractor plug-in and integrate into awesome player. Similarly if you have OMX Components for required Video Codecs, you need to integrate them into OMXCodec class.
    Using FFMPEG components in stagefright, or using FFMPEG player instead of stagefright does not seem trivial.
    However if required formats are already available in Opencore, then you can modify Android Stack so that Opencore gets chosen for those formats. You need to port the logic of getting YUV data to Opencore.
    (get dirty with MIOs)

    Playback performance

    The surface flinger, used for normal playback uses Overlay for rendering. It usually provides around 4 – 8 video buffers (so far what I have seen). So you can check how many different buffers you are getting in OPEN GL rendering. Increasing buffer will definitely improve the performance.
    Also, check time taken for YUV to RGB conversion. Can optimize or use opensource library to improve performance.
    Usually Open GL is not used for Video Rendering (known for Graphics). So not sure on the performance.

    Audio Video Sync

    Audio time is used as reference. In Stagefright, awesome player uses Audio Player for playing out audio. This player implements an interface for providing time data. Awesome player uses this for rendering Video. Basically Video frames are rendered when their presentation time matches with that of audio sample being played.

    Shash

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to decode a packet sent using TIBCO-RV and pull fields out of
I have some files that are uuencoded, and I need to decode them, using
Android can play a variety of video formats , but I need to choose
I need to decode e-mails saved from Outlook as Text Only. Unfortunately they're not
I'm grabbing video frames from the camera via v4l, and i need to transcode
I need to decode JSONObject in Android 2.1 with Base64.I know that Base64 class
I need to decode an QR image using the zxing library for iOS. I'm
I need to join several jpg files into video using FFmpeg library. But I
I need to encode/decode UTF-16 byte arrays to and from java.lang.String . The byte
I need to extract and decode barcodes and text from images. Is there any

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.