Jump to content

kprasadvnsi

Members
  • Posts

    23
  • Joined

  • Last visited

Posts posted by kprasadvnsi

  1. 12 hours ago, usual user said:

    Sorry, I don't understand. For gstreamer and the kernel the support has already landed, i.e with the release of gstreamer-1.0 1.22 and kernel 5.17.0 it is working out of the box. FFMPEG still needs some floating around patches applied [1]. How this is already to be had as an early bird, is discussed in the previous posts. Either you know how to apply it for your distribution or you wait until the respective releases trickle down via updates. Unfortunately, I can't help for Armbian because I don't have the required build requirements available. With my distribution I build on target (aarch64). Kernel wise I could probably help out, but with the applications it stops because my builds will not work in your environment.
    [1] @jernej pointed to the repositories of the respective versions.

     

    I have tried ffmpeg few months ago. I have no idea how to work with gstreamer.

    Some things are not clear from the previous discussion.

    1. What OS you are using?

    2. is it using Wayland or X11?

    3. What is the kernel version? if any patches are applied then where can I find them?

    4. Which gstreamer you are using? I can only see version 1.19 

  2. 10 hours ago, ArkhanLK said:

    Hello o/

    I have a Tanix tx6s and, as far as I could tell, there isn't much about it online on how to start armbian on it. I tried the general instructions for the orangepi zero 2 but the box just remains unbootable. 

    Now, I have looked at the sunxi webpage and there is a, somewhat, set of instructions to get the bootloader and dtb properly working for this box...

    I doubt it but, has anyone done/tried it?
    And do you recommend a different approach?

    Thanks!

     

    Please don't hijack this for your random TV Box. Its uses the same SoC doesn't mean we have any idea what goes into your particular TV box. There is a section for TV boxes in this forum. You can post your queries there. 

  3. On 12/11/2021 at 6:33 PM, usual user said:

    Damn, missed the rebase of the  "Draft: v4l2codecs: Implement VP9 v4l2 decoder" patches and the source branch has been deleted.
    With gstreamer main branch as of 11.12.2021 I get this video-pipeline-vp9.pdf and everything is working as expected.

    Just discovered how to gather some video playback statistics while playing online videos. I still don't know which backend is used, but since I can play e.g. three videos in parallel, I'm pretty sure the VPU will be used.YouTube.thumb.png.5eb8b97b19a1de2629512356028c8a20.png

    The eagle  has landed. \o/

    Please let us know how to replicate this on a SBC. very excited to see VP9 video playing on a browser.

  4. Quote

    Last time I heard, this patch was needed: https://github.com/Kwiboo/mpv/commit/91f2b090eef12f48cf1d9e9157e5eefe6a60be6a If this doesn't work, then I don't know.

     

    These changes are already merged in upstream mpv. The patch was for cedrus driver and tested on a Allwinner H3 device with following parameters.

    --vo=gpu --gpu-context=drm --hwdec=drm

     

    Using these parameters with my mpv build it gives the following error.

    kp@orangepi4:~/trails/mpv-build/mpv/build$ ./mpv --log-file=mpv_sucks.log --vo=gpu --gpu-context=drm --hwdec=drm  bbb_sunflower_1080p_30fps_normal.mp4 
    Error parsing option gpu-context (option parameter could not be parsed)
    Setting commandline option --gpu-context=drm failed.
    Exiting... (Fatal error)
    

     

    The only option that didn't throw error is --gpu-context=x11egl 

  5. 37 minutes ago, jernej said:

    Test command would be something like:

    ffmpeg -loglevel debug -hwaccel drm -hwaccel_output_format drm_prime -i video.mkv -f null -

     

    I think it should be pretty self evident from the log if request api is used or not.

     

    Notes:

    1. If you don't use LE kernel patches, decoding interlaced H264 content won't work on RK. HEVC also won't work without kernel patches.

    2. mpv most probably needs patching. At least it did in the past.

     

    I am getting much better performance using your test commands. I am getting 235 fps at 5% average CPU load.

    Where should I look for patching in the mpv to get this working?

  6. FFmpeg build fine with v4l2-request-hwaccel-4.3.1-new branch. The media file bbb_sunflower_1080p_30fps_normal.mp4 decoding fine at 90fps with one A72 core at 100% uses.

     

    I have tried building MPV player with it but it doesn't look like using the VPU. A72 cores are at 30-40% and A53 are around 15-20%. How can I check if it actually using VPU?

     

    MPV playback log file.

     

    mpv_sucks.log

  7. I am building FFmpeg from here on a Orange Pi 4 with Armbian Hirsute edge 5.13.12 kernel. I have configured FFmpeg with following parameters.

     

    ./configure --enable-libdrm --enable-v4l2-request --enable-libudev --enable-static --disable-shared

     

    I am getting these errors on compile.

     

    AR	libavdevice/libavdevice.a
    AR	libavfilter/libavfilter.a
    AR	libavformat/libavformat.a
    CC	libavcodec/v4l2_request_mpeg2.o
    CC	libavcodec/vaapi_encode.o
    CC	libavcodec/vaapi_encode_h264.o
    CC	libavcodec/vaapi_encode_h265.o
    libavcodec/v4l2_request_mpeg2.c:24:37: error: field ‘sequence’ has incomplete type
       24 |     struct v4l2_ctrl_mpeg2_sequence sequence;
          |                                     ^~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:25:36: error: field ‘picture’ has incomplete type
       25 |     struct v4l2_ctrl_mpeg2_picture picture;
          |                                    ^~~~~~~
    libavcodec/v4l2_request_mpeg2.c:26:41: error: field ‘quantisation’ has incomplete type
       26 |     struct v4l2_ctrl_mpeg2_quantisation quantisation;
          |                                         ^~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c: In function ‘v4l2_request_mpeg2_start_frame’:
    libavcodec/v4l2_request_mpeg2.c:39:10: error: ‘struct v4l2_ctrl_mpeg2_sequence’ has no member named ‘horizontal_size’
       39 |         .horizontal_size = s->width,
          |          ^~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:39:28: warning: excess elements in struct initializer
       39 |         .horizontal_size = s->width,
          |                            ^
    libavcodec/v4l2_request_mpeg2.c:39:28: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:40:10: error: ‘struct v4l2_ctrl_mpeg2_sequence’ has no member named ‘vertical_size’
       40 |         .vertical_size = s->height,
          |          ^~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:40:26: warning: excess elements in struct initializer
       40 |         .vertical_size = s->height,
          |                          ^
    libavcodec/v4l2_request_mpeg2.c:40:26: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:41:10: error: ‘struct v4l2_ctrl_mpeg2_sequence’ has no member named ‘vbv_buffer_size’
       41 |         .vbv_buffer_size = req->output.size,
          |          ^~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:41:28: warning: excess elements in struct initializer
       41 |         .vbv_buffer_size = req->output.size,
          |                            ^~~
    libavcodec/v4l2_request_mpeg2.c:41:28: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:44:10: error: ‘struct v4l2_ctrl_mpeg2_sequence’ has no member named ‘profile_and_level_indication’
       44 |         .profile_and_level_indication = 0,
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:44:41: warning: excess elements in struct initializer
       44 |         .profile_and_level_indication = 0,
          |                                         ^
    libavcodec/v4l2_request_mpeg2.c:44:41: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:45:10: error: ‘struct v4l2_ctrl_mpeg2_sequence’ has no member named ‘chroma_format’
       45 |         .chroma_format = s->chroma_format,
          |          ^~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:45:26: warning: excess elements in struct initializer
       45 |         .chroma_format = s->chroma_format,
          |                          ^
    libavcodec/v4l2_request_mpeg2.c:45:26: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:37:60: error: invalid use of undefined type ‘struct v4l2_ctrl_mpeg2_sequence’
       37 |     controls->sequence = (struct v4l2_ctrl_mpeg2_sequence) {
          |                                                            ^
    libavcodec/v4l2_request_mpeg2.c:49:37: error: ‘V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE’ undeclared (first use in this function); did you mean ‘V4L2_DV_BT_CAP_PROGRESSIVE’?
       49 |         controls->sequence.flags |= V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE;
          |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                     V4L2_DV_BT_CAP_PROGRESSIVE
    libavcodec/v4l2_request_mpeg2.c:49:37: note: each undeclared identifier is reported only once for each function it appears in
    libavcodec/v4l2_request_mpeg2.c:53:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘picture_coding_type’
       53 |         .picture_coding_type = s->pict_type,
          |          ^~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:53:32: warning: excess elements in struct initializer
       53 |         .picture_coding_type = s->pict_type,
          |                                ^
    libavcodec/v4l2_request_mpeg2.c:53:32: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:56:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘f_code’
       56 |         .f_code[0][0] = s->mpeg_f_code[0][0],
          |          ^~~~~~
    libavcodec/v4l2_request_mpeg2.c:56:25: warning: excess elements in struct initializer
       56 |         .f_code[0][0] = s->mpeg_f_code[0][0],
          |                         ^
    libavcodec/v4l2_request_mpeg2.c:56:25: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:57:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘f_code’
       57 |         .f_code[0][1] = s->mpeg_f_code[0][1],
          |          ^~~~~~
    libavcodec/v4l2_request_mpeg2.c:57:25: warning: excess elements in struct initializer
       57 |         .f_code[0][1] = s->mpeg_f_code[0][1],
          |                         ^
    libavcodec/v4l2_request_mpeg2.c:57:25: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:58:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘f_code’
       58 |         .f_code[1][0] = s->mpeg_f_code[1][0],
          |          ^~~~~~
    libavcodec/v4l2_request_mpeg2.c:58:25: warning: excess elements in struct initializer
       58 |         .f_code[1][0] = s->mpeg_f_code[1][0],
          |                         ^
    libavcodec/v4l2_request_mpeg2.c:58:25: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:59:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘f_code’
       59 |         .f_code[1][1] = s->mpeg_f_code[1][1],
          |          ^~~~~~
    libavcodec/v4l2_request_mpeg2.c:59:25: warning: excess elements in struct initializer
       59 |         .f_code[1][1] = s->mpeg_f_code[1][1],
          |                         ^
    libavcodec/v4l2_request_mpeg2.c:59:25: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:60:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘picture_structure’
       60 |         .picture_structure = s->picture_structure,
          |          ^~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:60:30: warning: excess elements in struct initializer
       60 |         .picture_structure = s->picture_structure,
          |                              ^
    libavcodec/v4l2_request_mpeg2.c:60:30: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:61:10: error: ‘struct v4l2_ctrl_mpeg2_picture’ has no member named ‘intra_dc_precision’
       61 |         .intra_dc_precision = s->intra_dc_precision,
          |          ^~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:61:31: warning: excess elements in struct initializer
       61 |         .intra_dc_precision = s->intra_dc_precision,
          |                               ^
    libavcodec/v4l2_request_mpeg2.c:61:31: note: (near initialization for ‘(anonymous)’)
    libavcodec/v4l2_request_mpeg2.c:51:58: error: invalid use of undefined type ‘struct v4l2_ctrl_mpeg2_picture’
       51 |     controls->picture = (struct v4l2_ctrl_mpeg2_picture) {
          |                                                          ^
    libavcodec/v4l2_request_mpeg2.c:65:36: error: ‘V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST’ undeclared (first use in this function)
       65 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:68:36: error: ‘V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT’ undeclared (first use in this function)
       68 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:71:36: error: ‘V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV’ undeclared (first use in this function)
       71 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:74:36: error: ‘V4L2_MPEG2_PIC_FLAG_INTRA_VLC’ undeclared (first use in this function)
       74 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_INTRA_VLC;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:77:36: error: ‘V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE’ undeclared (first use in this function)
       77 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:80:36: error: ‘V4L2_MPEG2_PIC_FLAG_ALT_SCAN’ undeclared (first use in this function)
       80 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_ALT_SCAN;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:83:36: error: ‘V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST’ undeclared (first use in this function)
       83 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    libavcodec/v4l2_request_mpeg2.c:86:36: error: ‘V4L2_MPEG2_PIC_FLAG_PROGRESSIVE’ undeclared (first use in this function); did you mean ‘V4L2_DV_BT_CAP_PROGRESSIVE’?
       86 |         controls->picture.flags |= V4L2_MPEG2_PIC_FLAG_PROGRESSIVE;
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                    V4L2_DV_BT_CAP_PROGRESSIVE
    libavcodec/v4l2_request_mpeg2.c: In function ‘v4l2_request_mpeg2_end_frame’:
    libavcodec/v4l2_request_mpeg2.c:121:19: error: ‘V4L2_CID_STATELESS_MPEG2_SEQUENCE’ undeclared (first use in this function); did you mean ‘V4L2_CID_STATELESS_VP8_FRAME’?
      121 |             .id = V4L2_CID_STATELESS_MPEG2_SEQUENCE,
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                   V4L2_CID_STATELESS_VP8_FRAME
    libavcodec/v4l2_request_mpeg2.c:126:19: error: ‘V4L2_CID_STATELESS_MPEG2_PICTURE’ undeclared (first use in this function); did you mean ‘V4L2_CID_STATELESS_VP8_FRAME’?
      126 |             .id = V4L2_CID_STATELESS_MPEG2_PICTURE,
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                   V4L2_CID_STATELESS_VP8_FRAME
    libavcodec/v4l2_request_mpeg2.c:131:19: error: ‘V4L2_CID_STATELESS_MPEG2_QUANTISATION’ undeclared (first use in this function)
      131 |             .id = V4L2_CID_STATELESS_MPEG2_QUANTISATION,
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    make: *** [ffbuild/common.mak:59: libavcodec/v4l2_request_mpeg2.o] Error 1
    make: *** Waiting for unfinished jobs....

     

  8. On 8/6/2021 at 2:18 AM, rubenvb said:

    I just tested this with vanilla Linux 5.13.7 and at least H264 playback with DRM Prime Direct To Plane rendering in Kodi 19.1 works as expected.

    HEVC content still just doesn't render at all, but maybe I need some extra kernel patches for that still.

    Thanks for the link to the up to date FFmpeg patches, you're a lifesaver!

    I am trying to compile FFmpeg on Armbian with 5.13.12  kernel. I am getting compilation errors. maybe I did configuration wrong. what configure parameters you use?

  9. 37 minutes ago, lampra said:

    This is what I did here

    ATFSOURCE='https://github.com/ARM-software/arm-trusted-firmware'
    ATFBRANCH='branch:master'

    edit: You also need all the patches (for h616 and opz2). I did not check if the patches are present or not in armbian master, as I had included them in previous builds. If not, you need to include them. 

    where did you get those H616 patches?

  10. On 7/24/2021 at 8:36 PM, ZILtoid1991 said:

    Hi,

     

    I'm new to this thing, but I did some digging.

     

    There's a possibility that the AW859A is either a rebadged UWE5622, or is compatible with it. There's also a reference to a device, that is SC2355.

     

    I only managed to find a little info about the UWE5622, and it might have some connections to Unisoc, a yet another Chinese fabless semiconductor maker, but not sure. You can get a bit more info by googling, including the name of some binary file.

    Here is the Datasheet for AW859A

    CDW-20U5622-02_SPECIFICATIONS_20200306(全志专用AW859A).pdf

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines