After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 761167 - video crc generator for video decoder verification
video crc generator for video decoder verification
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-01-27 10:18 UTC by Rajesh
Modified: 2018-11-03 13:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
videocrc patch (19.46 KB, patch)
2016-01-27 10:18 UTC, Rajesh
none Details | Review
videocrc patch (19.27 KB, patch)
2016-01-28 09:37 UTC, Rajesh
none Details | Review
video frame crc generator patch (19.36 KB, patch)
2016-06-29 10:44 UTC, Rajesh
none Details | Review

Description Rajesh 2016-01-27 10:18:12 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
Comment 1 Rajesh 2016-01-27 11:27:16 UTC
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
Comment 2 Rajesh 2016-01-28 09:12:40 UTC
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
Comment 3 Rajesh 2016-01-28 09:37:40 UTC
Created attachment 319904 [details] [review]
videocrc patch

new patch with LGPL V2.1 header, the rest of the patch is same.
Comment 4 Rajesh 2016-02-09 02:10:39 UTC
This VideCRC plugin has been developed in STMicroelectronics to validate the  video decoder on our STB platform.
Comment 5 Rajesh 2016-06-20 03:40:52 UTC
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
Comment 6 Tim-Philipp Müller 2016-06-20 08:04:49 UTC
Looks similar to bug #763006.
Comment 7 Rajesh 2016-06-20 16:25:08 UTC
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
Comment 8 Tim-Philipp Müller 2016-06-20 16:44:06 UTC
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.
Comment 9 Rajesh 2016-06-20 16:57:46 UTC
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
Comment 10 Nicolas Dufresne (ndufresne) 2016-06-20 17:36:00 UTC
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.
Comment 11 Rajesh 2016-06-21 02:27:25 UTC
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
Comment 12 Rajesh 2016-06-29 10:44:25 UTC
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.
Comment 13 Rajesh 2016-06-29 10:46:09 UTC
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
Comment 14 Rajesh 2016-06-29 10:47:34 UTC
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
Comment 15 GStreamer system administrator 2018-11-03 13:45:53 UTC
-- 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.