# @name TI Decoder Tests
# @desc Test functionality of Texas Instruments' video decoders
# @requires tidec
# @setup_requires

## IMG CASES

TIDEC_S_FUNC_DECODE_WB_10BIT_QP21_I-ONLY_1920X1088_10FR.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 num-buffers=25 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 3213538938653bbb77bfba57eeede34c || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_DECODE_NETFLIX_FOODMARKET_4096X2160_60FPS_IPB_51LEVEL_MAIN_40MBPS.265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265 ! h265parse ! v4l2h265dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "Decode operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_DECODE_NETFLIX_FOODMARKET_HIGH_3840X2160_IPB_40MBPS_5.1.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "Decode operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_DECODE_NETFLIX_FOODMARKET_HIGH_4096X2304_IPB_220MBPS.265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_4096x2304_IPB_220mbps.265; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_4096x2304_IPB_220mbps.265 ! h265parse ! v4l2h265dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "Decode operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_DECODE_H264_176_144_5_CHROMA2_422_HIGH_25FR.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/h264_176_144_5_chroma2_422_high_25fr.264; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/h264_176_144_5_chroma2_422_high_25fr.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV16 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep e1104644169f026a6b7b126f74e09204 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_DECODE_CROWDRUN_352X288_P25_CGRLEVELS_SINC_FILTER_SVTDEC05_10BIT_422P_30FR.265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/CrowdRun_352x288_p25_CgrLevels_SINC_FILTER_SVTdec05_10bit_422p_30fr.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/CrowdRun_352x288_p25_CgrLevels_SINC_FILTER_SVTdec05_10bit_422p_30fr.265 ! h265parse ! v4l2h265dec ! video/x-raw, format=NV16 ! filesink location=$F  || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 29d672cf98dc4584aaf222097278de5c || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_DECODE_ITX_AI_CUSTOMER_ERROR.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder CustomerErrorStreams/ch3.mp4; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/ch3.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! video/x-raw,format=NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; dmesg | grep "MMCO error accured when processing the current frame. May have corruption" && die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_DECODE_VTC1NW_422_CIF_8BIT_352X288.265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/vtc1nw_422_cif_8bit_352x288.265; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/vtc1nw_422_cif_8bit_352x288.265 ! h265parse ! v4l2h265dec ! video/x-raw,format=NV16 ! fakesink || die "Decode operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_DECODE_FOREMAN_128X64.h265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 ! h265parse ! v4l2h265dec ! video/x-raw,format=NV12 ! fakesink || die "Decode operation did not complete successfully"; remove_media decoder

# JPEG Decoder Cases

TIDEC_S_FUNC_DECODE_MOTHER_320x240_422_5FR_MJPG source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/mother_320x240_422_5fr.mjpg; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/mother_320x240_422_5fr.mjpg ! jpegparse ! v4l2jpegdec ! video/x-raw, format=NV16 ! filesink location=$F || die "Decode operation did not complete successfully";

TIDEC_S_FUNC_DECODE_CS32000x128_10FR_MJPG source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/cs32000x128_10fr.mjpg; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/cs32000x128_10fr.mjpg ! jpegparse ! v4l2jpegdec ! video/x-raw, format=I420 ! filesink location=$F || die "Decode operation did not complete successfully";

TIDEC_S_FUNC_DECODE_FLOWER_176x144_420P_5FR_MJPG source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/flower_176x144_420p_5fr.mjpg; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/flower_176x144_420p_5fr.mjpg ! jpegparse ! v4l2jpegdec ! video/x-raw, format=I420 ! filesink location=$F || die "Decode operation did not complete successfully";


# Original Cases

TIDEC_S_FUNC_GST_DECODE_AUD_MW_E.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FOREMAN_128X64.h265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; insert_video_modules; gst-launch-1.0 playbin uri=file:///usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 video-sink="kmssink driver-name=tidss" || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FAKESINK_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILESINK_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=/tmp/AUD_MW_E.yuv || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_KMSSINK_BA1_FT_C.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder ITU-T_conformance/BA1_FT_C.264; insert_video_modules; gst-launch-1.0 playbin uri=file:///usr/share/ti/tidec-decode/BA1_FT_C.264 video-sink="kmssink driver-name=tidss" || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AV_KMSSINK_BAMQ2_JVC_C.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder ITU-T_conformance/BAMQ2_JVC_C.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ2_JVC_C.264 ! h264parse ! v4l2h264dec ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_BA1_FT_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BA1_FT_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BA1_FT_C.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep c5e3240f286b6bb8faffa9180af75352 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_BAMQ1_JVC_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BAMQ1_JVC_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ1_JVC_C.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep bad372deef52c08fc1e384ecd1a43137 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_BAMQ2_JVC_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BAMQ2_JVC_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ2_JVC_C.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  e3f5d5b0774b55370745f2d04f009575 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_BA_MW_D.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BA_MW_D.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BA_MW_D.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  7d5d351ad061640294bf43a43150fbca || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_BANM_MW_D.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BANM_MW_D.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BANM_MW_D.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  e637d38ed004df3540218e3d84b43e42 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_YUVFULL_544x480.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/yuvfull_544x480.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/yuvfull_544x480.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  9775dc9c706a96f1b52cd04c0c617ad3 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_AKIYO_QCIF_420_HP_LEV10_DB_BFRAME.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/akiyo_qcif_420_hp_lev10_db_BFrame.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/akiyo_qcif_420_hp_lev10_db_BFrame.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  225fbbed4724432f83f416ebd0a2bf0a || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_H264_176_144_5_CHROMA2_422_HIGH_25FR.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/h264_176_144_5_chroma2_422_high_25fr.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/h264_176_144_5_chroma2_422_high_25fr.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  8ff8d5fb2bc833c42a4af8acd288bce0 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_NETFLIX_FOODMARKET_HIGH_4096X2160_IPB_40MBPS_5.1.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264 num-buffers=80 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  71cd265695a5bb95acc08badda354e13 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_NETFLIX_FOODMARKET_HIGH_3840X2160_IPB_40MBPS_5.1.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264 num-buffers=80 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 6f192d915a58da86bed5c0bf6e6abe70 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_FOREMAN_128X64.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 ! h265parse ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  7447afe0672de60c7ee24d47eac1111a || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_NETFLIX_FOODMARKET_4096X2160_60FPS_IPB_51LEVEL_MAIN_40MBPS.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265 num-buffers=80 ! h265parse ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep f01060b06a50fa9f5548c62513ea4f97 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUN_GST_DECODE_FILE_FLOWER_176x144_420P_5FR_MJPG source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/flower_176x144_420p_5fr.mjpg; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/flower_176x144_420p_5fr.mjpg ! jpegparse ! v4l2jpegdec ! video/x-raw,format=I420 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep c13e7b6ac9293e233ceaab6101479d86 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FILE_MOTHER_320x240_422_5FR_MJPG source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/mother_320x240_422_5fr.mjpg; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/mother_320x240_422_5fr.mjpg ! jpegparse ! v4l2jpegdec ! video/x-raw,format=I420 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep e003158fc4749391e25107f64cd22663 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AV_KMSSINK_DMA_BAMQ2_JVC_C.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder ITU-T_conformance/BAMQ2_JVC_C.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ2_JVC_C.264 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AV_KMSSINK_DMA_CROWD_RUN.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_70mbps_60fps.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_70mbps_60fps.264 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AV_KMSSINK_DMA_JELLYFISH.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/jellyfish_1920x1080_H264_HP_Bframes_10sec.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/jellyfish_1920x1080_H264_HP_Bframes_10sec.264 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AV_KMSSINK_DMA_NETFLIX_4K.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

# Section dedicated to AHP Specific Second Instance

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 9f0a93088c16686fc314ebc5dde79e1f || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_BA1_FT_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BA1_FT_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BA1_FT_C.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep c5e3240f286b6bb8faffa9180af75352 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_BAMQ1_JVC_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BAMQ1_JVC_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ1_JVC_C.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep bad372deef52c08fc1e384ecd1a43137 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_BAMQ2_JVC_C.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BAMQ2_JVC_C.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BAMQ2_JVC_C.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep e3f5d5b0774b55370745f2d04f009575 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_BA_MW_D.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BA_MW_D.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BA_MW_D.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 7d5d351ad061640294bf43a43150fbca || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_BANM_MW_D.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/BANM_MW_D.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/BANM_MW_D.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep e637d38ed004df3540218e3d84b43e42 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_YUVFULL_544x480.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/yuvfull_544x480.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/yuvfull_544x480.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  9775dc9c706a96f1b52cd04c0c617ad3 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_AKIYO_QCIF_420_HP_LEV10_DB_BFRAME.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/akiyo_qcif_420_hp_lev10_db_BFrame.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/akiyo_qcif_420_hp_lev10_db_BFrame.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  6f5dea3da4409110b1d5ee767258041a || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_H264_176_144_5_CHROMA2_422_HIGH_25FR.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/h264_176_144_5_chroma2_422_high_25fr.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/h264_176_144_5_chroma2_422_high_25fr.264 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  5182f975b59b21bc8a7c5a7a2a919f6c || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_NETFLIX_FOODMARKET_HIGH_4096X2160_IPB_40MBPS_5.1.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_4096x2160_IPB_40mbps_5.1.264 num-buffers=80 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  71cd265695a5bb95acc08badda354e13 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_NETFLIX_FOODMARKET_HIGH_3840X2160_IPB_40MBPS_5.1.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_high_3840x2160_IPB_40mbps_5.1.264 num-buffers=80 ! h264parse ! v4l2video2h264dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  6f192d915a58da86bed5c0bf6e6abe70 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_FOREMAN_128X64.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 ! h265parse ! v4l2video2h265dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 7447afe0672de60c7ee24d47eac1111a || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_NETFLIX_FOODMARKET_4096X2160_60FPS_IPB_51LEVEL_MAIN_40MBPS.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/Netflix_FoodMarket_4096x2160_60fps_IPB_51level_main_40mbps.265 num-buffers=80 ! h265parse ! v4l2video2h265dec ! video/x-raw,format='(string)'NV12 ! filesink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep f01060b06a50fa9f5548c62513ea4f97 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_AHP_FILE_JELLYFISH_1920x1080_H264_HP_BFRAMES.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/jellyfish_1920x1080_H264_HP_Bframes_10sec.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/jellyfish_1920x1080_H264_HP_Bframes_10sec.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'I420 ! videocodectestsink location=$F || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep e278d15226fedb87debe3dba4ae95ac2 || die "decoded file does not match expected md5sum"; remove_media decoder

#Multistream Testcases

TIDEC_S_FUNC_GST_DECODE_AHP_MULTICHANNEL_FILE_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format=I420 ! videocodectestsink location=$F filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "Decode operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  e96fe5054de0329a8868d06003375cdb || die "decoded file does not match expected md5sum"; remove_media decoder

#FPS check Testcases

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_1080p60_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p60_30s.h264 $INPUT; F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 60 || die "fps mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_1080p30_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 $INPUT;  F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 30 || die "fps mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_MULTI_DECODE_FPS_BBB_1080p30_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 $INPUT;  F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h264parse ! tee name=t ! queue ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink1 sync=true t. ! queue ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink2 -v > $F || die "Decode operation did not complete successfully"; FPS1=`cat $F | grep fpssink1 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; FPS2=`cat $F | grep fpssink2 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'` ; echo $FPS1 | grep 30 || die "fps1 mismatch w.r.t input file"; echo $FPS2 | grep 30 || die "fps2 mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_4kp30_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_4kp30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_4kp30_30s.h264 $INPUT;  F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 30 || die "fps mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_MULTI_DECODE_FPS_BBB_4kp30_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_4kp30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_4kp30_30s.h264 $INPUT;  F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h264parse ! tee name=t ! queue ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink1 sync=true t. ! queue ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink2 -v > $F || die "Decode operation did not complete successfully"; FPS1=`cat $F | grep fpssink1 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; FPS2=`cat $F | grep fpssink2 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'` ; echo $FPS1 | grep 30 || die "fps1 mismatch w.r.t input file"; echo $FPS2 | grep 30 || die "fps2 mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_1080p60_30s.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h265; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p60_30s.h265 $INPUT; F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h265parse ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 60 || die "fps mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_1080p30_30s.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 $INPUT; F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h265parse ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 30 || die "fps mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_MULTI_DECODE_FPS_BBB_1080p30_30s.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 $INPUT; F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h265parse ! tee name=t ! queue ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink1 sync=true t. ! queue ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink2 sync=true -v > $F || die "Decode operation did not complete successfully"; FPS1=`cat $F | grep fpssink1 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; FPS2=`cat $F | grep fpssink2 | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'` ; echo $FPS1 | grep 30 || die "fps1 mismatch w.r.t input file"; echo $FPS2 | grep 30 || die "fps2 mismatch w.r.t input file"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_FPS_BBB_4kp30_30s.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_4kp30_30s.h265; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_4kp30_30s.h265 $INPUT; F=$(mktemp); gst-launch-1.0 filesrc location=$INPUT ! h265parse ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 30 || die "fps mismatch w.r.t input file"; remove_media decoder

# Memory Consumption Cases

TIDEC_S_FUNC_GST_DECODE_MEMORY_BBB_1080p30_30s.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 $INPUT;  F=$(mktemp); get_pipe_mem_consumption "filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 ! h264parse ! tee name=t ! queue ! v4l2h264dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink1 sync=true" "$F" || die "Decode operation failed"; Mem=`(cat $F | grep -E '^[0-9]+$') && Mem=$((Mem)) && [ $Mem -lt 100000 ]` || die "Mem consumption is too high"; echo "Mem consumption is $Mem"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_MEMORY_BBB_1080p30_30s.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 $INPUT;  F=$(mktemp); get_pipe_mem_consumption "filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 ! h265parse ! tee name=t ! queue ! v4l2h265dec capture-io-mode=dmabuf ! fpsdisplaysink text-overlay=false video-sink=fakevideosink name=fpssink1 sync=true" "$F" || die "Decode operation failed"; Mem=`(cat $F | grep -E '^[0-9]+$') && Mem=$((Mem)) && [ $Mem -lt 100000 ]` || die "Mem consumption is too high"; echo "Mem consumption is $Mem"; remove_media decoder

# CPU Utilization Cases

TIDEC_S_FUNC_CPU_UTILIZATION_DECODE source 'ti_codecs.sh'; F=$(mktemp); get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 $INPUT; get_pipe_cpu_utilization "filesrc location=$INPUT ! h264parse ! v4l2h264dec ! fakevideosink" "$F"|| die "Decoder operation not working correctly"; CPU=`(cat $F | grep -E '^[0-9]+(\.[0-9]+)?$') && CPU=$((CPU)) && [ $CPU -lt 4 ]` || die "CPU utilization is too high"; echo "CPU utilization is $CPU END";  remove_media decoder

# DevFreq Cases

TIDEC_S_FUNC_LOWER_FREQ_DECODE_H264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; F=$(mktemp); INPUT=$(mktemp); cp /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 $INPUT; echo 400000000 > /sys/class/devfreq/30210000.video-codec/userspace/set_freq; k3conf dump clock 204 | grep 400000000 || die "Devfreq not set properly"; gst-launch-1.0 filesrc location=$INPUT ! h264parse ! v4l2h264dec capture-io-mode=4 ! fpsdisplaysink text-overlay=false video-sink=fakevideosink sync=true -v > $F || die "Decode operation did not complete successfully"; FPS=`cat $F | grep average | tail -1  | awk -F"average: " '{print $2}' | awk -F"," '{print $1}'`; echo $FPS | grep 30 || die "fps mismatch w.r.t input file"; remove_media decoder


## New cases that are being used as trial run for new verification

TIDEC_GST_multi_fakesink_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AUD_MW_E.264 ! h264parse ! tee name=t t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_GST_multi_fakesink_hevc_takeoff.265 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/hevc_takeoff_1920x1080_10bit_1frame.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/hevc_takeoff_1920x1080_10bit_1frame.265 ! h265parse ! tee name=t t. ! queue ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h265dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_GST_multi_fakesink_bbb_1080p30_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 ! h264parse ! tee name=t t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_GST_multi_fakesink_crowdrun_p720x480_cbr_6mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/crowdrun_p720x480_cbr_6mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowdrun_p720x480_cbr_6mbps.264 ! h264parse ! tee name=t t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_GST_multi_fakesink_jellyfish_1920x1080_H264_HP_Bframes_10sec.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/jellyfish_1920x1080_H264_HP_Bframes_10sec.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/jellyfish_1920x1080_H264_HP_Bframes_10sec.264 ! h264parse ! tee name=t t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink t. ! queue ! v4l2h264dec ! video/x-raw,format='(string)'NV12 ! fakesink || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_GST_filesink_bbb_4kp30_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_4kp30_30s.h264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_4kp30_30s.h264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep d8868c7a2d36bac072a57252627acde8 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_bbb_4kp30_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_4kp30_30s.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_4kp30_30s.h265 num-buffers=10 ! h265parse ! v4l2h265dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep bc031dcd8b7a17eae691643e814aea7d || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_bbb_1080p30_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=I420 ! videocodectestsink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 2a21ff0200999be3df70ff83e08dd841 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_bbb_1080p30_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 num-buffers=10 ! h265parse ! v4l2h265dec ! video/x-raw,format=I420 ! videocodectestsink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep dc4b326e1e111e1c11ace9cf871ffd28 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_bbb_1080p60_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p60_30s.h264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=I420 ! videocodectestsink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep f172a8db29b36028f2c82b23819b0b01 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_bbb_1080p60_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p60_30s.h265 num-buffers=10 ! h265parse ! v4l2h265dec ! video/x-raw, format=I420 ! videocodectestsink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 670a6281fe776c109338744f4bf6c313 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_crowd_run_2560x1440_350frame_70mbps_60fps.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_70mbps_60fps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_70mbps_60fps.264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 2560 -h 1440 -r /usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_70mbps_60fps.264 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_filesink_crowd_run_2560x1440_350frame_75mbps_60fps.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_75mbps_60fps.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_75mbps_60fps.265 num-buffers=10 ! h265parse ! v4l2h265dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 2560 -h 1440 -r /usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_75mbps_60fps.265 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_filesink_foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 ! h265parse ! v4l2h265dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 128 -h 64 -r /usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_filesink_h264_176_144_5_chroma2_422_high_25fr.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/h264_176_144_5_chroma2_422_high_25fr.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/h264_176_144_5_chroma2_422_high_25fr.264 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 8ff8d5fb2bc833c42a4af8acd288bce0 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_jellyfish_1920x1080_H264_HP_Bframes_10sec.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/jellyfish_1920x1080_H264_HP_Bframes_10sec.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/jellyfish_1920x1080_H264_HP_Bframes_10sec.264 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 7068e5f5724bb8d1caacaf67a188cf8d || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_pedestrian_1920x1080_cbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/pedestrian_1920x1080_cbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/pedestrian_1920x1080_cbr_10mbps.264 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep e301d5fa849408eb18f202ada559e67b || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_pedestrian_1920x1080_vbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/pedestrian_1920x1080_vbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/pedestrian_1920x1080_vbr_10mbps.264 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep 68e61c744caacdf96c756dbc1a407612 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_rush_hour_p1920x1080_cbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/rush_hour_p1920x1080_cbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/rush_hour_p1920x1080_cbr_10mbps.264 ! h264parse ! v4l2h264dec ! video/x-raw,format=I420 ! videocodectestsink location=$F -v || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep  e1f712c9962751d8662aadb13ba17c77 || die "Decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_filesink_rush_hour_p1920x1080_vbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/rush_hour_p1920x1080_vbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/rush_hour_p1920x1080_vbr_10mbps.264 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 1920 -h 1080 -r /usr/share/ti/tidec-decode/rush_hour_p1920x1080_vbr_10mbps.264 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_filesink_stockholm_p1280x720_cbr_6mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/stockholm_p1280x720_cbr_6mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/stockholm_p1280x720_cbr_6mbps.264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 1280 -h 720 -r /usr/share/ti/tidec-decode/stockholm_p1280x720_cbr_6mbps.264 -b 10 | grep "Status: Pass" || die "Verification Failed"

TIDEC_GST_filesink_stockholm_p1280x720_vbr_6mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/stockholm_p1280x720_vbr_6mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/stockholm_p1280x720_vbr_6mbps.264 num-buffers=10 ! h264parse ! v4l2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 1280 -h 720 -r /usr/share/ti/tidec-decode/stockholm_p1280x720_vbr_6mbps.264 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_AHP_filesink_bbb_1080p60_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/bbb_1080p60_30s.h265 num-buffers=10 ! h265parse ! v4l2video2h265dec ! video/x-raw, format=I420 ! videocodectestsink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep  670a6281fe776c109338744f4bf6c313 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_crowd_run_2560x1440_350frame_70mbps_60fps.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_70mbps_60fps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_70mbps_60fps.264 num-buffers=10 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep ced9df355459718b8f32a87488c9f7af || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_crowd_run_2560x1440_350frame_75mbps_60fps.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_75mbps_60fps.265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_75mbps_60fps.265 num-buffers=10 ! h265parse ! v4l2video2h265dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 2560 -h 1440 -r /usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_75mbps_60fps.265 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_AHP_filesink_foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 ! h265parse ! v4l2video2h265dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 128 -h 64 -r /usr/share/ti/tidec-decode/foreman_128x64_128x64_8bit_10frames_ctu32_qp32_Inter_SAO_AMP_Debl_NoPCM.h265 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_AHP_filesink_h264_176_144_5_chroma2_422_high_25fr.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/h264_176_144_5_chroma2_422_high_25fr.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/h264_176_144_5_chroma2_422_high_25fr.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 8ff8d5fb2bc833c42a4af8acd288bce0 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_jellyfish_1920x1080_H264_HP_Bframes_10sec.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/jellyfish_1920x1080_H264_HP_Bframes_10sec.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/jellyfish_1920x1080_H264_HP_Bframes_10sec.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 7068e5f5724bb8d1caacaf67a188cf8d || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_pedestrian_1920x1080_cbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/pedestrian_1920x1080_cbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/pedestrian_1920x1080_cbr_10mbps.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep  e301d5fa849408eb18f202ada559e67b || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_pedestrian_1920x1080_vbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/pedestrian_1920x1080_vbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/pedestrian_1920x1080_vbr_10mbps.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep 68e61c744caacdf96c756dbc1a407612 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_rush_hour_p1920x1080_cbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/rush_hour_p1920x1080_cbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/rush_hour_p1920x1080_cbr_10mbps.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep 538b2179c7abdbe364c3da7ac50da101 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_rush_hour_p1920x1080_vbr_10mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/rush_hour_p1920x1080_vbr_10mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/rush_hour_p1920x1080_vbr_10mbps.264 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F || die "GStreamer operation did not complete successfully"; MD5=$(md5sum ${F}); echo $MD5 | grep 39f4f161cd83ac9eef15b19d764f23a2 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_GST_AHP_filesink_stockholm_p1280x720_cbr_6mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/stockholm_p1280x720_cbr_6mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/stockholm_p1280x720_cbr_6mbps.264 num-buffers=10 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 1280 -h 720 -r /usr/share/ti/tidec-decode/stockholm_p1280x720_cbr_6mbps.264 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

TIDEC_GST_AHP_filesink_stockholm_p1280x720_vbr_6mbps.264 source 'ti_codecs.sh'; get_media decoder StreamsGeneratedFromIVAHD/stockholm_p1280x720_vbr_6mbps.264; insert_video_modules; F=$(mktemp); gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/stockholm_p1280x720_vbr_6mbps.264 num-buffers=10 ! h264parse ! v4l2video2h264dec ! video/x-raw, format=NV12 ! filesink location=$F -v > /tmp/out.txt || die "GStreamer operation did not complete successfully"; verify.py -t $F -p /tmp/out.txt -w 1280 -h 720 -r /usr/share/ti/tidec-decode/stockholm_p1280x720_vbr_6mbps.264 -b 10 | grep "Status: Pass" || die "Verification Failed"; remove_media decoder

## Error Streams

TIDEC_S_FUNC_GST_DECODE_KMSSINK_AV_TOYSTORY.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder CustomerErrorStreams/AV_001180_Toy_Story3Official_Trailer_in_FullHD1080p_h264_1920x1080_24fps_HP_L4_3Mbps_AAC_44100Hz.mp4; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/AV_001180_Toy_Story3Official_Trailer_in_FullHD1080p_h264_1920x1080_24fps_HP_L4_3Mbps_AAC_44100Hz.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_KMSSINK_CRASH.265 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder CustomerErrorStreams/crash_h265_old.mp4; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/crash_h265_old.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 !  kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_KMSSINK_CH3.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder CustomerErrorStreams/ch3.264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/ch3.264 ! h264parse ! v4l2h264dec capture-io-mode=4 ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_GST_DECODE_KMSSINK_DYN_RES_SWITCH.264 source 'ti_codecs.sh'; stop_daemon emptty; get_media decoder CustomerErrorStreams/switch_1080p_720p_240frames.h264; insert_video_modules; gst-launch-1.0 filesrc location=/usr/share/ti/tidec-decode/switch_1080p_720p_240frames.h264 ! h264parse ! v4l2h264dec capture-io-mode=4 ! kmssink driver-name=tidss || die "GStreamer operation did not complete successfully"; remove_media decoder


## FFmpeg Cases

TIDEC_S_FUNC_FFMPEG_DECODE_AUD_MW_E.264 source 'ti_codecs.sh'; get_media decoder ITU-T_conformance/AUD_MW_E.264; insert_video_modules; F=$(mktemp); ffmpeg -re -codec:v h264_v4l2m2m -nostdin -y -i /usr/share/ti/tidec-decode/AUD_MW_E.264 -fps_mode:v passthrough -f rawvideo $F || die "FFmpeg operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep e96fe5054de0329a8868d06003375cdb || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_FFMPEG_DECODE_bbb_1080p30_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; insert_video_modules; F=$(mktemp); ffmpeg -re -codec:v h264_v4l2m2m -nostdin -y -i /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 -fps_mode:v passthrough -f rawvideo $F || die "FFmpeg operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 0dea2cf660e5000ac7d59c0983a47113 || die "decoded file does not match expected md5sum"; remove_media decoder

TIDEC_S_FUNC_FFMPEG_DECODE_bbb_1080p30_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; insert_video_modules; F=$(mktemp); ffmpeg -re -codec:v hevc_v4l2m2m -nostdin -y -i /usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 -fps_mode:v passthrough -f rawvideo $F || die "FFmpeg operation did not complete successfully"; MD5=$(md5sum ${F}) ; echo $MD5 | grep 605a2e592fdf7b2cde8b2a29c22279bb || die "decoded file does not match expected md5sum"; remove_media decoder

## MPV Cases

TIDEC_S_FUNC_MPV_DECODE_bbb_1080p30_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h264; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=30 /usr/share/ti/tidec-decode/bbb_1080p30_30s.h264 || die "MPV operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_MPV_DECODE_bbb_1080p30_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p30_30s.h265; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=30 /usr/share/ti/tidec-decode/bbb_1080p30_30s.h265 || die "MPV operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_MPV_DECODE_bbb_1080p60_30s.h264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h264; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=60 /usr/share/ti/tidec-decode/bbb_1080p60_30s.h264 || die "MPV operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_MPV_DECODE_bbb_1080p60_30s.h265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/bbb_1080p60_30s.h265; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=60 /usr/share/ti/tidec-decode/bbb_1080p60_30s.h265 || die "MPV operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_MPV_DECODE_crowd_run_2560x1440_350frame_70mbps_60fps.264 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_70mbps_60fps.264; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=60 /usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_70mbps_60fps.264 || die "MPV operation did not complete successfully"; remove_media decoder

TIDEC_S_FUNC_MPV_DECODE_crowd_run_2560x1440_350frame_75mbps_60fps.265 source 'ti_codecs.sh'; get_media decoder SDK_Release_Streams/crowd_run_2560x1440_350frame_75mbps_60fps.265; export WAYLAND_DISPLAY=/run/user/1000/wayland-1; mpv --vo=gpu --hwdec=auto --no-correct-pts --fps=60 /usr/share/ti/tidec-decode/crowd_run_2560x1440_350frame_75mbps_60fps.265 || die "MPV operation did not complete successfully"; remove_media decoder
