This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

  • TI Thinks Resolved

Linux/DRA750: Input file for null_src_decode_display use case is not compatible

Part Number: DRA750

Tool/software: Linux

Hello everyone,

What is being tried: I am trying to execute "null_src_decode_display" usecase on TDA2xx setup.
Steps followed to achieve:
1. I tried with 1280x720_00.h264 and 1280x720_00.hdr files (e2e.ti.com/.../2391227. With which usecase in not dispplaying output(only green screen)
2. Thinking that we can only use 1920x1080 resolution files I tried to covert mkv file into 1920x1080 resolution .h264 and .hdr files through below commands but

    1. Generate index file( all info of video sample) with ffprobe command.

    ffprobe -show_packets ./H264_artifacts_motion.h264 >index.idx

    2. Extract just "Size" from above generated index file with sed command.

    PAT=size
    sed -n "/$PAT/p" index.idx | cut -d' ' -f3 >> size_extracted.txt

    3. Now generate binary file from size extracted file, with below command. Please note that " size_extracted.txt should not contain any string just numbers i.e         size of frame " .

    cat size_extracted_jelly.txt | perl -n -e 'printf("%08x\n",$_)' | sed 's/\(..\)\(..\)\(..\)\(..\)/0x\4\n0x\3\n0x\2\n0x\1/' | xxd -r -p > Size_test.bin && du -b     Size_test.bin

 It's giving me Size_test.bin file.
Issues facing: Not able to create 1920x1080 resolution .h264 and .hdr files


Thanks,

Nitin

www.blackpeppertech.com/

  • Hello Nitin,

    Default use-case works with 1080P resolution but you can change it to work with 1280x720.

    You need to edit use-case file to change below macros and data file names.

    #define ENCDEC_MAX_FRAME_WIDTH (1920)
    #define ENCDEC_MAX_FRAME_HEIGHT (1080)

    Do you want to test it only for 1920x1080 resolution?

    Regards,

    Prasad Jondhale
    Sr. Software Engineer, Automotive Processors, TI India

  • In reply to Prasad Jondhale:

    8562.log.txtHello Prasad,

    Thank you for your prompt response.

    I have done following  experiments:

    720p :

    What and where you modified:

    #define ENCDEC_MAX_FRAME_WIDTH (1280)

    #define ENCDEC_MAX_FRAME_HEIGHT (720)

    strncpy(pPrm->channelParams[chId].nameDataFile, "/home/1280x720_00.h264", 260);

    strncpy(pPrm->channelParams[chId].nameIndexFile, "/home/1280x720_00.hdr", 260);

    Current behavior: Not showing video on HDMI screen. log is attached.

    1080p :

    What and where you  changed:

    I have tried changes same as above with 1920x1080 parameters and creating Size_test.bin from ffprobe command.

    How to generate .h264  and .hdr file: But I have no idea of creating .h264 and .hdr files for 1920x1080 resolution.

    Thanks,

    Nitin

    www.blackpeppertech.com/

  • In reply to Nitin Kumar:

    Nitin,

    The steps are mentioned in other e2e post. With 1280x720 resolution, can you try below images?

    /cfs-file/__key/communityserver-discussions-components-files/791/3817.1018.1280x720_5F00_00.zip

    Also if you have windows machine steps to generate header and index files are easy as below

    ffprobe.exe -show_packets inData.h264 > index.idx

    sizeBin.exe index.idx inHeader

    Regards,

    Prasad Jondhale
    Sr. Software Engineer, Automotive Processors, TI India

  • In reply to Prasad Jondhale:

    Hi Prasad,

    Thanks for your kind reply.

    I am writing the following mail in continuation of the experiments done by my colleague Nitin :

    We basically want to get nullSrc decode display working from the pipeline NullSrc->A15->IPU->Decode->VPE->Display.

    We are using the usecase provided by vision SDK and have not modified anything the source code.

    We want to try this using 1080p, .h264 video. We have downloaded  h264 sample video from

    Size of the video is 18MB, Bit rate is 5 Mbps.

    We have used following commands as per your previous posts :

    On Ubuntu 14.04 :

    1. Generate index file( all info of video sample) with ffprobe command.

       ffprobe -show_packets ./<video-file-name.h264 >index.idx

       2. Extract just "Size" from above generated index file with sed command.

       PAT=size

       sed -n "/$PAT/p" index.idx | cut -d' ' -f3 >> size_extracted.txt

       3. Now generate binary file from size extracted file, with below command.

       cat size_extracted.txt | perl -n -e 'printf("%08x\n",$_)' | sed 's/\(..\)\(..\)\(..\)\(..\)/0x\4\n0x\3\n0x\2\n0x\1/' | xxd -r -p > Size_test.bin && du -b     Size_test.bin

    So, we get the following files :

    Size_test.bin file, index.idx and size_extracted.txt files

     

    On Windows :

    C:\ffmpeg\bin>ffprobe.exe -show_packets jellyfish-5-mbps-hd.h264 > index.idx

    ffprobe version N-89674-g57d0c24132 Copyright (c) 2007-2018 the FFmpeg developers

    built with gcc 7.2.0 (GCC)

    configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx

    libavutil      56.  7.100 / 56.  7.100

    libavcodec     58.  9.100 / 58.  9.100

    libavformat    58.  3.100 / 58.  3.100

    libavdevice    58.  0.100 / 58.  0.100

    libavfilter     7.  8.100 /  7.  8.100

    libswscale      5.  0.101 /  5.  0.101

    libswresample   3.  0.101 /  3.  0.101

    libpostproc    55.  0.100 / 55.  0.100

    Input #0, matroska,webm, from 'jellyfish-5-mbps-hd.h264':

    Metadata:

      encoder         : libebml v1.2.0 + libmatroska v1.1.0

      creation_time   : 2016-02-06T04:00:51.000000Z

    Duration: 00:00:30.03, start: 0.000000, bitrate: 4976 kb/s

      Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)

    C:\ffmpeg\bin>sizeBin.exe index.idx inHeader

    'sizeBin.exe' is not recognized as an internal or external command,

    operable program or batch file.

    Index.idx

    Issues we are facing :

    1) In order to play the video, we need

        a) .h264 video

        b) .hdr file

    So, how can we get the .hdr file from ffprobe command? We only see .bin, .idx and .txt files as mentioned above.

    2) The chains_nullSrc_Display.c has following code

        strncpy(pPrm->channelParams[chId].nameDataFile, "/home/1920x1080_00.h264", 260);

        strncpy(pPrm->channelParams[chId].nameIndexFile, "/home/1920x1080_00.hdr", 260);

       Do we need to modify the size - 260 parameters to play the video of 18MB?

    Please let us know.

    Thanks,

    Prabhuraj

     

  • In reply to prabhuraj tavag20:

    Hello Prabhuraj,

    >>So, how can we get the .hdr file from ffprobe command? We only see .bin, .idx and .txt files as mentioned above.

    For windows output of below command generated header file. You need to rename inHeader to 1280x720_00.hdr and put it into SD card.

    sizeBin.exe index.idx inHeader

    From your logs I see you dont have sizeBin.exe, can you please mail me  at prasad.jondhale@ti.com so i can share binary with you?

    For Linux I have never tried method specified by e2e user but i guess the size_test.bin is the header file. I will confirm this. Can you please try that file meanwhile?

    Regards,

    Prasad Jondhale
    Sr. Software Engineer, Automotive Processors, TI India

  • In reply to Prasad Jondhale:

    Hi Prasad,

    We are able to display the nullSRC example. Linux commands for creating the .hdr also works.
    The issue was with the HDMI display we were using. We got another HDMI which can support different resolutions and with proper settings we could get it working.


    Thanks,
    Prabhuraj

     

  • In reply to prabhuraj tavag20:

    Hi Prabhuraj,

    it's great the issue is resolved. I will close the thread now. If you have further question on this topic you can write here and reopen it.

    Regards,
    Yordan

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.