GNOME Bugzilla – Bug 761167
video crc generator for video decoder verification
Last modified: 2018-11-03 13:45:53 UTC
Created attachment 319809 [details] [review] videocrc patch Its a new development of videocrc plugin, which can be highly useful for video decoder verification in embedded domain for HW decoder verification. videocrc is a passthrough element which generates a CRC for each video frame. the CRC is emitted through a GstMessage that application must handle. Uses the standard CRC algorithm to compute CRC values for every video frame. This element accepts selected YUV planar formats NV12, I420 and YV12. The element computes 32 bit CRC of luma and chroma for every video frame. Uses the standard CRC algorithm to compute CRC values for every video frame. Implements table based optimized CRC computation algorithm available in public domain. This element accepts selected YUV planar formats NV12, I420 and YV12. The element computes 32 bit CRC of luma and chroma for every video frame. Generated CRC can be used to validate the decoded video frames to a exisiting database of pre-computed CRC files. CRC is sent as messsage to application, so these messages should be processed in application to generate CRC file. CRC message to application can be switched off by setting crc-message property to FALSE. The default polynomial used is 0X04c11db7U but it can be changed before processing using crc-mask property. CRC values can also be printed on terminal using --gst-debug=videocrc:5
link to input video files and output logs having video crc. https://drive.google.com/open?id=0B95ADktWIGAFSllaVEliRW9RZWc the abopve link contains following video files and respective o/p video crc files generated using videocrc component. 1> video-file.nv12 2> video-file.yuv 3> video-file-crc-NV12.txt 4> video-file-crc-I420.txt commands used to generate video crc logs: export GST_DEBUG_FILE=video_crc.txt gst-launch-1.0 filesrc blocksize=622080 location=./video-file.nv12 ! "video/x-raw , width=720 , height=576 , framerate=(fraction)1/1 , format=NV12" ! videocrc ! fakesink --gst-debug=videocrc:5 gst-launch-1.0 filesrc blocksize=622080 location=./video-file.yuv ! "video/x-raw , width=720 , height=576 , framerate=(fraction)1/1 , format=I420" ! videocrc ! fakesink --gst-debug=videocrc:5
below commands can be used to generate videocrc from messages sent to application: gst-launch-1.0 -m filesrc blocksize=622080 location=~/streams/video-file.nv12 ! "video/x-raw , width=720 , height=576 , framerate=(fraction)1/1 , format=NV12" ! videocrc ! fakesink | grep crc-chroma gst-launch-1.0 -m filesrc blocksize=622080 location=~/streams/video-file.yuv ! "video/x-raw , width=720 , height=576 , framerate=(fraction)1/1 , format=I420" ! videocrc ! fakesink | grep crc-chroma
Created attachment 319904 [details] [review] videocrc patch new patch with LGPL V2.1 header, the rest of the patch is same.
This VideCRC plugin has been developed in STMicroelectronics to validate the video decoder on our STB platform.
It has been five months and there is no feedback about this plugin submission. It has not been even assigned to anyone for review or feedback. what is the usual proces of taking an enhancement forward ? BR/ Rajesh
Looks similar to bug #763006.
It seems like that bug763006 submission has many things similar to my submission and overall purpose is same. I had submitted this plugin on 27th Jan 2016. The main diffrence which I see is that plugin is a sink (checksumsink name) and my plugin is a video analyser element and therefore can work in a video playback pipeline to generate CRC for chroma / luma components. after review checksumsink has been changed into videospy element like my submit I am really surprised that this submission is not even checked for five months and bug763006 submitted on 2nd April 2016 is properly reviewed within one month. BR/ Rajesh
I'm sorry your patch has not been reviewed yet, but it sounds like you're not very familiar with how open source projects work. Please keep in mind that the reviewing is done mostly by unpaid volunteers in their spare time and things can easily fall through the cracks.
Hi Tim, I understand your view point about review process and thats why I was just waiting for review prcoess to start but another submission of similar type is submitted two months after my submission and reviewed quickly. There must be something lacking in my submission. what will happen to my submission now ? BR/ Rajesh
It's developers job to create interest around their project, even for small projects within a larger project. When there is a competing effort, it's again developer job to reach to the other developers. In general, developers will agree on which base is the best, and try to make sure both use cases can be achieved, and provide their parts.
Thanks Nicolas, as I see that you and Tim have reviewed Bug 763006 therefore I can get better feedback from you two about my plugin videocrc. Two review comments which I observed there are already in this plugin. Its a separate plugin derived from videofilter class and can work in a running video playback pipeline. it post messages to application instead of printing on stdout. It can be used to carry out allegro test suite verification of H264 video decoder. This element accepts selected YUV planar formats NV12, I420 and YV12. The element computes 32 bit CRC of luma and chroma for every video frame. Uses the standard CRC algorithm to compute CRC values for every video frame. Implements table based optimized CRC computation algorithm available in public domain. CRC is sent as messsage to application CRC message can be switched off by setting crc-message property to FALSE. The default polynomial used is 0X04c11db7U it can be changed before processing using crc-mask property. CRC values can also be printed on terminal using --gst-debug=videocrc:5 BR/ Rajesh
Created attachment 330553 [details] [review] video frame crc generator patch video frame crc generator patch aligned to master branch This plugin computes 32 bit CRC of luma and chroma for every video frame. The CRC values are posted to appication as message. It uses standard CRC algorithm to compute CRC values for every video frame. The default polynomial, CRC mask, used for CRC generation is 0X04c11db7U Different 32 bit CRC mask can be set through a crc-mask property. It accepts selected YUV planar formats NV12, I420 and YV12. Its a separate plugin which can be used in a video playing pipeline. It can be used to carry out SW or HW decoder validation like H.264 or HEVC It can be also used to carry out Allegro test suite verification.
link to input video files and output logs having video crc. https://drive.google.com/open?id=0B95ADktWIGAFSllaVEliRW9RZWc the abopve link contains following video files and respective o/p video crc files generated using videocrc component. 1> video-file.nv12 2> video-file.yuv 3> video-file-crc-NV12.txt 4> video-file-crc-I420.txt
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/345.