From 1eaede838bc42e5ecb4ac6e6ea060a2e3e4e0076 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Tue, 12 Mar 2024 10:29:29 -0700 Subject: [PATCH 01/21] Release 1.10.0 (#1910) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Log ice candidate protocol appropriately (#1230) * Log ice candidate protocol appropriately * Add develop to travis CI * Address comments * Realign branches during transition (#1257) * create data channel sample (#1203) * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * removed unused variables, moved variable declarations to the top of a block * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * Cancel the thread once mediaThreadStarted flag is set to false (#1227) * Initial stale PR template (#1226) * Update stale issue template * Testing every minute * Fix stale issue PR template (#1234) No code changed. Just a template change. So merging * Add bug and question label * Switch stale PR action to daily cadence * [FIX] When protocol in DCEP header of data channel open command is not empty, there is a check preventing the data channel to be opened. Now protocol length is correctly handled to avoid check failing. (#1228) Co-authored-by: Niyati Maheshwari Co-authored-by: Divya Sampath Kumar Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> * set protocol value following the spec (#1259) Co-authored-by: liyufang * filter out invalid candidate in sdp (#1260) Co-authored-by: liyufang * Added targets for cmake clean (#1253) * added targets for cmake clean * added new line, updated readme * added missing new line * updated readme to include folder details * updated readme to include folder details * viewer sample: wrap datachannel callback with `ENABLE_DATA_CHANNEL` (#1261) * create data channel sample (#1203) * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * removed unused variables, moved variable declarations to the top of a block * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * Cancel the thread once mediaThreadStarted flag is set to false (#1227) * Initial stale PR template (#1226) * Update stale issue template * Testing every minute * Fix stale issue PR template (#1234) No code changed. Just a template change. So merging * Add bug and question label * Switch stale PR action to daily cadence * [FIX] When protocol in DCEP header of data channel open command is not empty, there is a check preventing the data channel to be opened. Now protocol length is correctly handled to avoid check failing. (#1228) * viewer sample: wrap datachannel callback with `ENABLE_DATA_CHANNEL` Signed-off-by: zhiqinli@amazon.com Co-authored-by: Niyati Maheshwari Co-authored-by: Divya Sampath Kumar Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> * libwebsockets: add patch to fix pipe fd leak issue (#1264) Signed-off-by: Alex.Li * Fix scripts/pare_status.py for non-status #defines (#1268) (#1274) Co-authored-by: Kevin Allen * fix a few bugs * Revert "fix a few bugs" This reverts commit 093902432fb24f42ade2857c23eca950e0b41a2f. * fix some bugs (#1277) * Fix bugs (#1279) * fix edge case try to unlock a mutex which is not locked in teh acse the sample config was NULL (#1286) * cmake: allow user to specify OPEN_SRC_INSTALL_PREFIX (#1293) Signed-off-by: Alex.Li * Fix inconsistent log priority (#1309) Patch reduces priority of a few info level log messages to verbose level to be consistent with other functions in file and rest of code base. * Modify protocol loggin design in develop (#1311) * typo: typo fix (#1317) Signed-off-by: Alex.Li * Signaling state machine rework (#1323) * replaced recursive calls to stepSignalingStateMachine with loops * removed recursive calls to stepSignalingStateMachine * replaced stepSignalingstatemachine with signalingStateMachineIterator * removed stepUntil, continueOnReady; removed status from iterator signature; set signalingclient version; added a lock in refreshIceConfiguration * changed the declaration for i from int to UINT32 * added signaling version; removed unnecessary comment * removed redeclaration; changed value in an existing macro * Fix issue with API call failures being treated as success (#1328) * return proper error, do not reset call result value * for non retriable failures, set the terminal exit status for state in… (#1320) * for non retriable failures, set the terminal exit status for state in state machine * address comments * adjust tests set retry max to 1 * Update LwsApiCalls.c trigger travis ci * Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1326) * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Signaling state machine rework (#1323) * replaced recursive calls to stepSignalingStateMachine with loops * removed recursive calls to stepSignalingStateMachine * replaced stepSignalingstatemachine with signalingStateMachineIterator * removed stepUntil, continueOnReady; removed status from iterator signature; set signalingclient version; added a lock in refreshIceConfiguration * changed the declaration for i from int to UINT32 * added signaling version; removed unnecessary comment * removed redeclaration; changed value in an existing macro * Fix issue with API call failures being treated as success (#1328) * return proper error, do not reset call result value * for non retriable failures, set the terminal exit status for state in… (#1320) * for non retriable failures, set the terminal exit status for state in state machine * address comments * adjust tests set retry max to 1 * Update LwsApiCalls.c trigger travis ci * Add retry strategy to client info to avoiud changing create signaling channel API signature * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Add retry strategy to client info to avoiud changing create signaling channel API signature * Adding more debug logs in the code * fix merge conflicts * PR feedback Co-authored-by: Niyati Maheshwari Co-authored-by: Hassan Sahibzada * Revert " Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1326)" (#1339) This reverts commit 06bffcecd7f60571e29e51eb15fa8e4549638213. * Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1341) * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Add a n optional check for free retry strategy * Remove unused goto label * add missing sleep in get token state machine execute API * update log line * Update Producer hash * Adding a high level retry strategy while creating signaling client * Add Retry count retrieval in hook (#1335) * Add Retry count retrieval in hook * Fix compile issue on travis * Pull in latest changes in retry structures * Rebasing off develop with successful travis run for retry * Log git hash (#1345) * Log git hash * Update CMakeLists.txt white space change to trigger travis Co-authored-by: Hassan Sahibzada * Fix retry count to indicate count only after a retry has occured (#1348) Fix retry count to indicate count only after a retry has occurred * add support for automatic clock skew detection and correction (#1344) * add support for automatic clock skew detection and correction * auto fix clock skew and add tests * enable test to check clock recovery * remove stuff left over from debugging, reset logging default to WARN * remove unused variable * get rid of verbose logging in unit tests causes static build to fail due to excessive log output * simplify code get rid of extra call to length because the lws_hdr_copy returns the same value * handle null stream track in case of recvonly (#1346) * handle null stream track in case of recvonly * a test with null stream track for revconly * Fix a comment * whitespace change * State machine preparation is decoupled from the constructor (#1343) * Merge master into develop (#1352) * Missing the public API switch in the other samples (#1356) * Fix Fetch error retry cases (#1359) * Fix Fetch error retry cases * update comment * added implementation and a test to use remote sdp to construct local sdp (#1238) * added implementation and a test to use remote sdp to construct local sdp * used same strings in offer and test * updated tests * Update stale action workflow (#1381) * Modify issue triaging management * test on branch * Update ga for stale issue to use aws-actions instead of the one publicly available * Travis to ga (#1347) * Test github actions * Clang format * Change platform * Add macos gtest * Ubuntu latest * Address sanitizer * Add ubsan, tsan and old gcc build * Fix macos build * Allow mac and ubsan to fail * Fixing clang format * Testing allow on failure * Run github actions only on PR and merge * Test mbedtls * Rebase on develop and fix clang failure * Test if travis builds without ga * Restore travis * Test mac build and add sample check * Fix sample check and revert mac to allow fail * Travis CI to GHA migration phase 1 * Set clang for mbedtls and test msan * Split files * Comment out failing tests * Add codecov * Travis CI to GHA migration phase 1 * new Chrome v98 produces extra sdp attributes, up the limit so we do n… (#1391) * new Chrome v98 produces extra sdp attributes, up the limit so we do not reject * Fix test and change count to unit16 to avoid overflow issues * fix issue reported by codeql Co-authored-by: Divya Sampath Kumar * GitHub actions setup (#1390) * add additional tests * fix syntax error * fix syntax error * fix syntax error * fix syntax error * fix syntax error * static build and msan without docker * fix msan * use dependencies with msan build * use gcc 9 for mac * use gcc 4.2 for mac gcc build * use gcc 4.9 for mac gcc build * check gcc version; use macos 10.15 * use clang-7 for ubsan * arm cross compilation * missed cloning the repository * use gcc * remove compiler from env * fix install deps * use clang7, macos10.15, ubuntu18.04 * fix windows build * fix test instruction * fix static build * fix static build * fix static build * fix static build * setup docker for static build * use alpine for the static build * use alpine for the static build * install dependencies * install dependencies * fix errors in static build * install dependencies * enable ipv6 * use gcc for static build * fix ubsan * fix ubsan * collate all working github actions builds * fix errors * have static,msan,windows,doxygen in travis * comment failing builds;fix ci rules * fix travis comments, os, remove exports * update log level, mac build-name * add CC * update gcc * update gcc * check cc and cxx for mac gcc * Revert "check cc and cxx for mac gcc" This reverts commit 2db1e0e4b7a9291a389cbae0f3793edd7f88c7ae. * remove travis statement * Fix swapped SSL_free() and SSL_CTX_free() (#1401) * Hangup value included in LWS retry strategy (#1403) * GitHub actions setup static build (#1405) * fix static build * remove static build from travis * fix warnings in mac builds; setup iam role for sample-check * Migrate Doxygen to GitHub Actions (#1416) * add doxygen workflow to ga * install graphviz * install ttf-freefont * specify doxyfile * use enc key * use enc key * use marketplace action to deploy * use marketplace action to deploy * use marketplace action to deploy * check current folder * check current folder * check current folder * check current folder * check current folder * check current folder * check current folder * fix deployment * fix deployment * fix deployment * fix deployment * specify doxyfile path * fix syntax * fix paths in doxyfile * fix forked branch ci * add develop branch * Fix ResourceEndpoint length check (#1411) ResourceEndpoint length check mistakenly uses ChannelName max length. * update cross-compilation builds ga (#1429) * Addressing error handling concerns for an edge case (#1443) * Addressing error handling concerns for an edge case * Clang format * Removed useless status_success check, changed test to look for correct error value * sample: fix possible timerQueue deadlock when freeSampleStreamingSession (#1448) Signed-off-by: zhiqinli@amazon.com * metrics: allow viewer sample to get ice candidate pair stats (#1406) Signed-off-by: Alex.Li * account for hexidecimal numbers (#1465) * Fix default data channel ordering mode (#1476) * Invoke gst_object_unref on allocated elements (#1477) * Fix typo (#1478) * Fix typo * Add unit test * find gcc version for static build * revert gtest version update and change alpine version * fix memory leak issue and abort trap in test * fix video delay 4s (#1525) * fix mips compile error (#1532) * fix mips compile error * fix mips compile error * fix mips compile error * Fix file caching (#1575) * Fix file caching * Update test to count entries, remove unnecessary memcpy * UT uses MEMFREE * Fix deadlock getIceCandidatePairStatsCallback (#1561) * sample: fix possible timerQueue deadlock when freeSampleStreamingSession * minor change (formatting) * Fix missing SDP m-line problem (#1458) * use fake transceiver for missing m-line * use hashtable to track previously seen transceivers * fix failing tests with updates to seenTransceivers hashtable * use hashtables for unknown codec rtpmap and payloadtype * fix firstCodec value in case of only a single codec in m-line * rename variables * clang build * fix mac-gcc build * add test * add test for missingAudioTransceiver * add comments * add comments * remove unused variable to fix mac buils * Fix GHA CI build issues (#1631) * separate builds and tests * fix clang format issues * update libgtest version to 1.12.1 * fix deprecation in libgtest * update test suite call * run tests from build * remove build from tst instruction * fix san options * fix windows build * fix path in windows build * update bat file for windows * build openssl on windows * add openssl path for windows build * specify path to openssl root folder * specify path to openssl root folder * specify path to openssl root folder * upgrade cmake version * fix windows build * update checkoutv2 to v3 * fix checkout and install pthreads * remove windows build temporarily * move to v1-node16 for aws credentials * add sudo clean * add sudo to both commanda * use event triggers * Fix CI for forked branches (#1634) * use only target * use only target * remove branch name * blank space change to trigger CI * fix WSAPoll failed when set POLLPRI flag (#1636) Co-authored-by: weishao * Update README.md (#1637) Co-authored-by: Hassan Sahibzada * add paths for fedora (#1638) Co-authored-by: Hassan Sahibzada * Add clarifying comment for fallthrough (#1639) * Bkneff patch 2 (#1640) * Update kvsWebRTCClientMasterGstreamerSample.c Provide an example gstreamer pipeline for Raspberry Pi hardware encoding. Tested on Raspberry Pi 3 * Clang --------- Co-authored-by: bkneff <44409173+bkneff@users.noreply.github.com> * thread cancel memory leak, recreate signaling client & lws_context whenever a significant error has occurred, verbose and debug logging for ice & turn (#1641) * recreate signaling client & lws_context whenever a significant error has occurred * clang-format * recreate signaling client & lws_context whenever a significant error has occurred * Clang * adding local and remote null checks * More verbose and debug logging for ice & turn * Thread cancel on the media sender thread leads to memory leaks from writeFrame() not freeing all its heap usage * Clang again --------- Co-authored-by: James Delaplane * wrong port/address on debug log (#1642) Co-authored-by: Alex Zhukov * Update openssl version (#1643) * Update openssl version and fix unused param typo * Pull in producer C openssl update * fix(project): fix issue--1614 (#1644) Co-authored-by: niedb * update versions for actions (#1647) * Seggregaated Audio and Video frame handling, updated Master sample to handle audio and video both (#1646) Co-authored-by: Vikram(VS) * Mark Datachannel specific code explicitly (#1666) Co-authored-by: Dmitry Ilyin * Fix turn allocation taken long time when credential is incorrect (#1667) * fix turn allocation use long time sometimes * update some code style * fix compile error * Update IceAgent.c * fix clang format * fix prflx update interrupted connectivity check * fix clang format --------- Co-authored-by: Gordon * Update RtcpPacket.h (#1680) * Update RtcpPacket.h * Clang format * Changed sample frames to have 1 second GOP size, and removed overly verbose log (#1686) * Jitter buffer overflows (#1677) * Modified jitterbuffer to include checks for timestamp overflow * All tests passing, some new tests still need to be added * More tests and accompanying fixes * Resolve coverity finding of multiplication causing type overflow * Change function order * Clang format * Mac compile errors fixed * Commenting out long-running test, adding timestamp overflow test * Fix port printf in log (#1682) * Fix port printf in log * Fix the clang-format Fix the clang-format use ./scripts/clang-format.sh -d src/ * fix turn permission delay 2s (#1675) * fix turn permission delay 2s * Fix the clang-format Fix the clang-format use ./scripts/clang-format.sh -d src/ * Instruction to build on MacOS M1 (#1689) * Fix build dependencies off and add version requirements in readme (#1691) * Unlock mutex in case of error (#1696) * Unlock in case of error * fix typos (#1697) Co-authored-by: Ben Mesander * IoT CertificateId as Stream Name. (#1721) * IoT CertificateId as Stream Name. * Fix the clang-format use ./scripts/clang-format.sh -d src/ --------- Co-authored-by: Lina Chen * If local ICE is invalid, return from sending packet. (#1718) * If local ICE is invalid, return from sending packet. * Fix the clang-format use ./scripts/clang-format.sh -d src/ --------- Co-authored-by: Lina Chen * Adds RTSP Source to GStreamer Sample (#1740) * Adds rtsp source support, modifies source-type determination * All use cases tested and debugged. * Clang formatting. * Clang formatting. * Updates credentials configuration to fix sample-check error. * Sample-check fix attempt #2 * Sample-check fix attempt 3 * Sample-check fix attempt 4 * Sample-check fix attempt * "" * " " * " " * " " * Update README.md * Updates sample run instructions structure, adds RTSP source instructions * Update README.md * Renames sample file to be same as executable, updates CMakeLists to reflect this. * Update README.md Co-authored-by: Niyati Maheshwari * Update README.md * Updates usage statement to new sample executable name --------- Co-authored-by: Niyati Maheshwari * replace stun with sctp (#1743) * Modify the PR template (#1745) * modify the PR template * Use bullets * Update raspberry pi hardware encode to current gstreamer (#1746) * Update raspberry pi hardware encode to current gstreamer * - Provide build instructions for 32-bit raspbian on 64-bit hardware --------- Co-authored-by: Ben Mesander * Set a default user agent if not provided (#1739) * Connection timeout sleep (#1744) * Remove thread_detach and looping sleep, add thread_join * Added support for socketpair() and added it to connectionlistener * Clang formatting * Fix test that previously expected TID to be invalid * remove unused variables * Fixing incorrect typing on comparison * clang formatting * strlen -> STRLEN macro * Off by 1 error in poll rfds * clang formatting * Fix comment typo regarding default source in Gst sample (#1750) * Parse IP address if the hostname conforms to Public ipv4 DNS format (#1759) * Parse IP address if the hostname conforms to Public ipv4 DNS format * Unit test for ipIpAddr function * Include and use threadpool for signaling channel messages (#1761) * Include and use threadpool for signaling channel messages * Fix clang and linux gcc compile errors * Fix pointer cast * Using SignalingClientInfo to pass information about Threadpool * edit README.md * Not necessary to change struct version * Update struct version again, add fall-through * clang formatting * Clang formatting, again * Fix the Windows build in the CI (#1764) * modify libwebsockets to work on Windows * set LWS_WITH_STATIC 1 * resume windows ci * add rest of the options * fix syntax in ci.yml * remove other options * set cmd vard * missing space in bat * add missing = in build_windows.bat * introduce cmake arguments * find_package openssl for non-windows builds * static + shared for rest of the builds * set static + shared true for shared builds always * add back ssl and crypto paths * rename vars in libwebsockets' cmake, rearrange, pthread fix * static=1 always * remove ssl and crypto paths * with_threadpool=1 * correction * correction 2 * correction 3 * correction 4 * correction 5 static * install gstreamer on windows * test mbedtls on windows * use if(WIN32) with set vars * 1671 * remove openssl arg from mbedtls build * fix mbedtls windows later * Introducing profiling of code sections and APIs (#1755) * Adds RTSP Source to GStreamer Sample (#1740) * Adds rtsp source support, modifies source-type determination * All use cases tested and debugged. * Clang formatting. * Clang formatting. * Updates credentials configuration to fix sample-check error. * Sample-check fix attempt #2 * Sample-check fix attempt 3 * Sample-check fix attempt 4 * Sample-check fix attempt * "" * " " * " " * " " * Update README.md * Updates sample run instructions structure, adds RTSP source instructions * Update README.md * Renames sample file to be same as executable, updates CMakeLists to reflect this. * Update README.md Co-authored-by: Niyati Maheshwari * Update README.md * Updates usage statement to new sample executable name --------- Co-authored-by: Niyati Maheshwari * Connection timeout sleep (#1744) * Remove thread_detach and looping sleep, add thread_join * Added support for socketpair() and added it to connectionlistener * Clang formatting * Fix test that previously expected TID to be invalid * remove unused variables * Fixing incorrect typing on comparison * clang formatting * strlen -> STRLEN macro * Off by 1 error in poll rfds * clang formatting * Fix comment typo regarding default source in Gst sample (#1750) * Initial commit * New structures to track signaling latency in diagnostics * Make peer connection stats accessible in application * Fix ice agent profling to store in variables, new APIs for getting ice agent metrics * Profile create peer connection * Macro fixes * More macro fix --------- Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Co-authored-by: Niyati Maheshwari Co-authored-by: jdelapla * Fix Windows tests (#1769) * enable verbose logs * fix syntax * without gtest filter * env path * cmd.exe /c * give permissions to file * move to C: instead of D: * don't move anything * add paths to pthread, ssl, crypto, websockets dlls * cd missing * uncomment other builds * comment msan * filter out tests * Refactor issue templates (#1770) * add support for CN region (#1612) (#1777) Signed-off-by: Alex Li Co-authored-by: Alex.D.Scofield * sample: remove unused pIotCoreThingName (#1720) Signed-off-by: Alex.Li * Fix refresh permission test by checking more regularly (#1779) * PR description GHA (#1781) * Run unit tests which require creds (#1780) * Run unit tests which require creds * TSAN supp to get past this and check if other tests pass * Reenable tsan failure * Isolate tsan * Enable all tests * Add locks around connectionClosed modification * Update SignalingApiFunctionalityTest.cpp * Have a different signaling send timeout for windows and non-windows platform * Change timer for timeout test to be unrealistic to actually force a timeout * Enable tests with codecov * Update SignalingApiFunctionalityTest.cpp fix broken test. future commit will include code change so arn doesn't take the place of the channel name so the channel end point cache numbers will also be low * Update SignalingApiTest.cpp if using temp creds need to use the temp creds file format --------- Co-authored-by: Hassan Sahibzada Co-authored-by: James Delaplane * Release branch update and readme update (#1785) * DTLS socket no longer pre-preemptively closed (#1792) * Fix issue with aggressive nomination viewers causing master to potentially close the socket negotiating DTLS connection. Added two tests to confirm this behavior can no longer occur for aggressive nomination or standard ICE/nomination. Changed the ICE statemachine Ready and Connected setups. Connected will only set DataSending pair in an aggressive nomination case, and Ready will no longer change the DataSending pair if it has already been assigned (because if it has, DTLS handshaked could be actively happening on that socket). This means that in the current ICE state machine design DTLS negotiation will only occur after nomination, where before it would start earlier and the client would assume which pair the viewer would nominate. * clang formatting * Reset test values in each run * update transactionId for SrflxCandidateRequest (#1684) * update transactionId for SrflxCandidateRequest * Fix the clang-format * Fix wrong log headers * Change usrsctp initialization function to not open raw sockets (#1796) * Create a CMake flag to enable KVS Threadpool (#1806) * create a cmake flag to enable kvs threadpool and pass it to the SDK * create a cmake flag to enable kvs threadpool and pass it to the SDK * missed one spot * add debug logs to fix tests * fix tests attempt 1 - initialize min and max for the threadpool * silly syntax error * setting min value for threadpool in test fixture * fix clang format * fixing client info initializations in other tests * More initializations for tests * Add sleep at end of tests to avoid false flags of memory leaks as threads end asynchronously * add tsan supp * tsan sup -2 * missing # in details in supp * more sleeps to allow threadpool to close out all threads * add suppressions to threadpool * add suppressions to threadpool push * race:pthread_mutex_unlock * add test name instead of threadpool function names * rename the cmake var to control only signaling threadpool * try without . in the test name * use mutex instead of race * remove mutex:lock * add back mutex:lock * deadlock:iceServerConfigRefreshConnectedAuthExpiration * deadlock:createSignalingSync * Update producer dependency to include modified threadpool teardown * Remove previous suppressions * cleanup + rename * update git tag --------- Co-authored-by: James Delaplane * Threadpool context for WebRTC (#1810) * Threadpool context for WebRTC * Disable for windows * Include directory to shared library for windows * Remove context object, use envs to allow configuring threadpool * Include README changes * Get back threadpool context This reverts commit 23070567312595da555d1688cf21c335105543f7. * Move thread sleep to unit tests * Revert sleep from test to main file * Remove threadpool usage from signaling * Rebased off develop * Add locks around threadpool calls * Add a=ice-options:trickle to session level of SDP as viewer (#1813) * Add a=ice-options:trickle to session level of SDP as viewer * negative test case added * clang format * add chk_log_err to confirm what is null in the stack * WebRTC Client singleton and early STUN DNS resolution (#1812) * STUN DNS resolution and webrtc client singleton * Add initializer flag for the main context * Move lock out of Stun context * Add semaphore for the singleton access * Lock on the sempahore before freeing to ensure clean shutdown * Cleanup sem acquired bool flag * Use atomic refcounter * Clang format issues * Have initialized check in thread * Move context initialize setting to top of cleanup * Remove '$' from ReadMe command * Fix mbedtls build failure for 22.04 (#1823) * Fix mbedtls build failure for 22.04 * Fix CI gcc 11 mbedtls * Dont install gcc4.4 * Use the c flags in mbedtls object * Move string op error elsewhere * Fixed an issue where sctpSessionWriteMessage referenced an uninitialized value (#1814) * Allow using channel names different than the thing name (#1819) * Allow using channel names different than the thing name * Reverted the changes related to channel name in the README * Defaulting channel name to iot thing name * IAM best practices added for IoT --------- Co-authored-by: Ozan Cihangir * Dtls handshake process optimization (#1824) * DTLS initialization optimization * Fix mbedtls build, remove free ICE agent * Fix breaking change of overwriting sctp packet * API unit tests, move acquire to before null check * Unused variable issue in UT * Change ice server count value (#1826) * CI modification (#1827) * CI modification * Fix label * Add more clarity * Handle situation where callback is invoked before hostname is populated (#1829) * Revert CI for fork (#1831) * Dtls err handling (#1832) * Improve DTLS error handling * Add check for SSL_do_handshake too * Ice turn sleepless state machine (#1825) * Starting point for turn state machine * Add timerqueue kick and checks for ice agent state machine * Completing turn connection state machine * improved error logging * Better error logging around ICE_STATE_FAILED * Adding lock around step state machine to prevent race conditions with iceAgentStatus * Only lock the iterator during stepstate * Add turn state transition after handling stun packets for turn * add null check to iceagentrestart * Use producer-c develop * Fix data race * Cleanup commented out code * remove excessive buffer check in dtls_openssl * Profile STUN DNS resolution time (#1828) * Fix regression in stun dns resolve value (#1836) * DLOGS readme update (#1838) * add deps (#1837) * Fix frame indexing in master sample to handle SRTP connection not ready yet (#1833) * Add fix to kvsWebRTCClientMaster.c * Change printf-s to DLOG-s * Add log for frame drop due to srtp not ready yet * Add missing sample prefix to log lines * Semicolon * CLANG * Remove \n from logs * " " * CLANG * Move lock out of checkStateMachine and instead have it present in from* functions (#1839) * Update SessionDescription.c (#1842) * Update SessionDescription.c Adds trickle ice option to application m-line (data channel). * Update SessionDescription.c respect the boolean value for trickle ice so it's consistent across all media level and session level * clang format * M1 build (#1849) * m1 build * try m clang instead of gcc * remove ldflags and cpath * add back * unlink openssl in m1 * -Wno-nullability-extension * -Wno-nullability-extension in compile options * -Wno-nullability-extension in compile options * try cmake twice * add wno to libsrtp in cmake_c_flags * llvm * llvm@15 * llvm@15 removed tests * run cmake only once on m1 * run cmake twice with tests * check the contents of build * don't run the tests * remove wno * gcc * Update Readme to include Windows build instructions (#1858) * update windows readme * update windows readme * typo * Sample: Ignore empty session token (#1857) * Allow empty session token to be set without interfering * Use getenv macro * Set session token to empty string in test * missing null check (#1874) * Asynchronous get ice config (#1854) * Asynchronous get ice config * Fixing mac compile error, addressing comments, correcting spelling error * clang format * fixing test util functions to include new APIs * Unused variables for certain compile time flags breaking mac compile * fixing more compile errors for mac * Fix a dead lock, and fix a test with the API changes * iceAgentRestart does not remove the IceServers since the old design required them to be supplied at object creation. Initialize relay candidates at end of iceAgentRestart. * Update PIC build in an attempt to fix static build on Mac * Moving git tag back to develop, since develop has been updated * remove geticeconfig from standard connect state machine flow * Async test, and moving geticeserverconfig out of the standard signaling state machine flow * clang format * Incorrect state transition * fixing async test * Up the sleep time * change async func for test to handle answer and offer * change location of creating pointer pointer * Fixing tests * Fix gathering to allow reporting relay candidates even after all srflx candidates have been recieved * unit test, longer sleep on teardown of threadpool * Fixing tests * Update samples based off feedback, fix clang compile error in test * Moved iceUriCount increment, added comments to public API * fix mac compile error from unused variable for specific ifdef * Merge release into develop (#1865) * No more detaching threads in tests (#1889) * No more detaching threads in tests * Missed joining in one test * lock around adding thread to vector * terminate adding threads flag * reset bool in tests * Change on Ice handler after done with test to stop accessing out of scope variables after scope is closed * unused params * Time-to-first-frame metrics benchmarking using datachannel (#1846) * data channel benchmarking message * fix calculation * send peerconnection, iceagent, signaling metrics to viewer via dc * signaling breakdown * data channel benchmarking message * fix calculation * send peerconnection, iceagent, signaling metrics to viewer via dc * signaling breakdown * cmake flag, ifdef * move signaling and offer / answer metrics out of signaling stats * remove callTime for start and end times in signaling * remove new lines * clang format * fix clang format * fix macos-gcc-ci * put cleanup in ifdef * add cmake flag * additional builds with cmake flags for mac and ubuntu, max string size for dc, no strlen calc in max string sizes * fix clang-format * mac-os-dc-metrics-build-gcc * increase signaling metrics message size * address comments: bool, add back calltimes, remove hns * missed an hns * dlogp * fix the build * remove extra space from ci * cleanup-1 * clang-format * fix git_tag from master to fix the ci * Revert "fix git_tag from master to fix the ci" This reverts commit 870deb3ddaf7c3676bebd267b0d61a76ad562751. * move message defs to common * remove unused var * remove unused var * cleanup-3 * cleanup-4 * fix macos build * Revert "fix macos build" This reverts commit 041c858ce47adb1a812b24da86d7ac91b824fd8c. * use double quotes instead of single for char array * forgot to rename in the string * fix initialization + readme * remove offerTime and use offerReceivedTime instead * move globals to streamingsession * rename + memset * fix clang format * add null check for streaming session * null check for streaming session and psampleconfigurtion * add error messages * clang * error message * ubuntu sample check update * fix sample check * Update lws version (#1820) * Update lws version * Remove patch * Use old gcc patch * Old gcc patch update * Fix windows patching failure * Add verbose logging for patch failure * Remove newline in the patch file * Trying a windows friendly patch file * Move to another patch file * Revert "Move to another patch file" This reverts commit d94a3da44226e10164f03d99a26e7eb699459055. * Revert "Trying a windows friendly patch file" This reverts commit a6c7de25bfbf756301b17db888ede803fbfd0a8a. * Revert "Remove newline in the patch file" This reverts commit 9e5d47e463271626684b0e0a335d0e2bc00d6e0c. * Windows patch fix * Update to 4.3.3 * Reintro gcc patch for lws_map * Rebase develop * DTLS API test * Revert "DTLS API test" This reverts commit 83f104b2bc53305d35fc7ca3e8bfa9a08ebcc924. * WINDOW_UPDATE failure on mbedtls, enable an option * Revert to 4.3.2 to check if mbedtls passes there * Disable alpn * codingspirit PR #1869 (#1872) * fix compiling issue caused by "stringop-overflow" in old gcc * Add quotes around version number * Add mbedtls-ubuntu-gcc-4_4-build to CI * Separate flag setting * Add else clause for detected compiler Co-authored-by: zhiqinli * Create state machines with names (#1894) * Create state machines with names * Add turn object in logs * Add links and enhance formatting (#1895) * Add links and enhance formatting * Update README.md Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> --------- Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> * Turn improvements and profiling (#1896) * Use timeout value instead of counter for allocation * Add timeout for get credentials too and change all timeouts to a standard 5 seconds * Added internal profiling and SM labels * Add IPv4 check while adding peer * Nit * debug string cleanup * Profile create perm and bind channel only first time and profile per peer * Add README * Fix compiler ubused variable warnings * Fix the problem that the session is not released when handleOffer processing fails (#1668) * Update Common.c Fix the problem that the session is not released when handleOffer processing fails * fix clang format * add cleanup * missed the & * remove pSampleStreamingSession->offerReceiveTime = GETTIME(); * move the bool --------- Co-authored-by: Kelephant * Update issue template (#1898) * Request more information on the issue template * Update yaml indenting * Update bug_report.yml * Update bug_report.yml * Update bug_report.yml * Update bug_report.yml * Update bug_report.yml * Add information on sanitizers in CI * Adjust linebreaks * Fix packetsDiscarded tracking operation (#1903) * CMAKE_BUILD_TYPE=Release build (#1897) * Release build * Enable build type setting on all dependencies and update README * Remove SPRINTF usage throughout... * Fix disable data channel unit test build failure and reduce SDP character array lengths wherever relevant following spec * Set count to 7 since the structure member sizes are set to count + 1 * remove debug * Add snprintf checks * Set file size to 10 kb and increase log rotation to avoid high memalloc * Remove unused threadpool in signaling (#1907) * New release cut * testing release with media storage support (#1783) * Log ice candidate protocol appropriately (#1230) * Log ice candidate protocol appropriately * Add develop to travis CI * Address comments * Realign branches during transition (#1257) * create data channel sample (#1203) * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * removed unused variables, moved variable declarations to the top of a block * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * Cancel the thread once mediaThreadStarted flag is set to false (#1227) * Initial stale PR template (#1226) * Update stale issue template * Testing every minute * Fix stale issue PR template (#1234) No code changed. Just a template change. So merging * Add bug and question label * Switch stale PR action to daily cadence * [FIX] When protocol in DCEP header of data channel open command is not empty, there is a check preventing the data channel to be opened. Now protocol length is correctly handled to avoid check failing. (#1228) Co-authored-by: Niyati Maheshwari Co-authored-by: Divya Sampath Kumar Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> * set protocol value following the spec (#1259) Co-authored-by: liyufang * filter out invalid candidate in sdp (#1260) Co-authored-by: liyufang * Added targets for cmake clean (#1253) * added targets for cmake clean * added new line, updated readme * added missing new line * updated readme to include folder details * updated readme to include folder details * viewer sample: wrap datachannel callback with `ENABLE_DATA_CHANNEL` (#1261) * create data channel sample (#1203) * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * removed unused variables, moved variable declarations to the top of a block * create data channel sample * moved variables to Samples.h, encapsulated with ENABLE_DATA_CHANNEL directive * Cancel the thread once mediaThreadStarted flag is set to false (#1227) * Initial stale PR template (#1226) * Update stale issue template * Testing every minute * Fix stale issue PR template (#1234) No code changed. Just a template change. So merging * Add bug and question label * Switch stale PR action to daily cadence * [FIX] When protocol in DCEP header of data channel open command is not empty, there is a check preventing the data channel to be opened. Now protocol length is correctly handled to avoid check failing. (#1228) * viewer sample: wrap datachannel callback with `ENABLE_DATA_CHANNEL` Signed-off-by: zhiqinli@amazon.com Co-authored-by: Niyati Maheshwari Co-authored-by: Divya Sampath Kumar Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> * libwebsockets: add patch to fix pipe fd leak issue (#1264) Signed-off-by: Alex.Li * Fix scripts/pare_status.py for non-status #defines (#1268) (#1274) Co-authored-by: Kevin Allen * fix a few bugs * Revert "fix a few bugs" This reverts commit 093902432fb24f42ade2857c23eca950e0b41a2f. * fix some bugs (#1277) * Fix bugs (#1279) * fix edge case try to unlock a mutex which is not locked in teh acse the sample config was NULL (#1286) * cmake: allow user to specify OPEN_SRC_INSTALL_PREFIX (#1293) Signed-off-by: Alex.Li * Fix inconsistent log priority (#1309) Patch reduces priority of a few info level log messages to verbose level to be consistent with other functions in file and rest of code base. * Modify protocol loggin design in develop (#1311) * typo: typo fix (#1317) Signed-off-by: Alex.Li * Signaling state machine rework (#1323) * replaced recursive calls to stepSignalingStateMachine with loops * removed recursive calls to stepSignalingStateMachine * replaced stepSignalingstatemachine with signalingStateMachineIterator * removed stepUntil, continueOnReady; removed status from iterator signature; set signalingclient version; added a lock in refreshIceConfiguration * changed the declaration for i from int to UINT32 * added signaling version; removed unnecessary comment * removed redeclaration; changed value in an existing macro * Fix issue with API call failures being treated as success (#1328) * return proper error, do not reset call result value * for non retriable failures, set the terminal exit status for state in… (#1320) * for non retriable failures, set the terminal exit status for state in state machine * address comments * adjust tests set retry max to 1 * Update LwsApiCalls.c trigger travis ci * Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1326) * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Signaling state machine rework (#1323) * replaced recursive calls to stepSignalingStateMachine with loops * removed recursive calls to stepSignalingStateMachine * replaced stepSignalingstatemachine with signalingStateMachineIterator * removed stepUntil, continueOnReady; removed status from iterator signature; set signalingclient version; added a lock in refreshIceConfiguration * changed the declaration for i from int to UINT32 * added signaling version; removed unnecessary comment * removed redeclaration; changed value in an existing macro * Fix issue with API call failures being treated as success (#1328) * return proper error, do not reset call result value * for non retriable failures, set the terminal exit status for state in… (#1320) * for non retriable failures, set the terminal exit status for state in state machine * address comments * adjust tests set retry max to 1 * Update LwsApiCalls.c trigger travis ci * Add retry strategy to client info to avoiud changing create signaling channel API signature * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Add retry strategy to client info to avoiud changing create signaling channel API signature * Adding more debug logs in the code * fix merge conflicts * PR feedback Co-authored-by: Niyati Maheshwari Co-authored-by: Hassan Sahibzada * Revert " Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1326)" (#1339) This reverts commit 06bffcecd7f60571e29e51eb15fa8e4549638213. * Incorporating PIC state machine level retry changes into webrtc signaling state machine (#1341) * Incorporating PIC state machine level retry changes into webrtc signaling state machine * Add a n optional check for free retry strategy * Remove unused goto label * add missing sleep in get token state machine execute API * update log line * Update Producer hash * Adding a high level retry strategy while creating signaling client * Add Retry count retrieval in hook (#1335) * Add Retry count retrieval in hook * Fix compile issue on travis * Pull in latest changes in retry structures * Rebasing off develop with successful travis run for retry * Log git hash (#1345) * Log git hash * Update CMakeLists.txt white space change to trigger travis Co-authored-by: Hassan Sahibzada * Fix retry count to indicate count only after a retry has occured (#1348) Fix retry count to indicate count only after a retry has occurred * add support for automatic clock skew detection and correction (#1344) * add support for automatic clock skew detection and correction * auto fix clock skew and add tests * enable test to check clock recovery * remove stuff left over from debugging, reset logging default to WARN * remove unused variable * get rid of verbose logging in unit tests causes static build to fail due to excessive log output * simplify code get rid of extra call to length because the lws_hdr_copy returns the same value * handle null stream track in case of recvonly (#1346) * handle null stream track in case of recvonly * a test with null stream track for revconly * Fix a comment * whitespace change * State machine preparation is decoupled from the constructor (#1343) * Merge master into develop (#1352) * Missing the public API switch in the other samples (#1356) * Fix Fetch error retry cases (#1359) * Fix Fetch error retry cases * update comment * added implementation and a test to use remote sdp to construct local sdp (#1238) * added implementation and a test to use remote sdp to construct local sdp * used same strings in offer and test * updated tests * Update stale action workflow (#1381) * Modify issue triaging management * test on branch * Update ga for stale issue to use aws-actions instead of the one publicly available * Travis to ga (#1347) * Test github actions * Clang format * Change platform * Add macos gtest * Ubuntu latest * Address sanitizer * Add ubsan, tsan and old gcc build * Fix macos build * Allow mac and ubsan to fail * Fixing clang format * Testing allow on failure * Run github actions only on PR and merge * Test mbedtls * Rebase on develop and fix clang failure * Test if travis builds without ga * Restore travis * Test mac build and add sample check * Fix sample check and revert mac to allow fail * Travis CI to GHA migration phase 1 * Set clang for mbedtls and test msan * Split files * Comment out failing tests * Add codecov * Travis CI to GHA migration phase 1 * new Chrome v98 produces extra sdp attributes, up the limit so we do n… (#1391) * new Chrome v98 produces extra sdp attributes, up the limit so we do not reject * Fix test and change count to unit16 to avoid overflow issues * fix issue reported by codeql Co-authored-by: Divya Sampath Kumar * GitHub actions setup (#1390) * add additional tests * fix syntax error * fix syntax error * fix syntax error * fix syntax error * fix syntax error * static build and msan without docker * fix msan * use dependencies with msan build * use gcc 9 for mac * use gcc 4.2 for mac gcc build * use gcc 4.9 for mac gcc build * check gcc version; use macos 10.15 * use clang-7 for ubsan * arm cross compilation * missed cloning the repository * use gcc * remove compiler from env * fix install deps * use clang7, macos10.15, ubuntu18.04 * fix windows build * fix test instruction * fix static build * fix static build * fix static build * fix static build * setup docker for static build * use alpine for the static build * use alpine for the static build * install dependencies * install dependencies * fix errors in static build * install dependencies * enable ipv6 * use gcc for static build * fix ubsan * fix ubsan * collate all working github actions builds * fix errors * have static,msan,windows,doxygen in travis * comment failing builds;fix ci rules * fix travis comments, os, remove exports * update log level, mac build-name * add CC * update gcc * update gcc * check cc and cxx for mac gcc * Revert "check cc and cxx for mac gcc" This reverts commit 2db1e0e4b7a9291a389cbae0f3793edd7f88c7ae. * remove travis statement * Fix swapped SSL_free() and SSL_CTX_free() (#1401) * Hangup value included in LWS retry strategy (#1403) * GitHub actions setup static build (#1405) * fix static build * remove static build from travis * fix warnings in mac builds; setup iam role for sample-check * Migrate Doxygen to GitHub Actions (#1416) * add doxygen workflow to ga * install graphviz * install ttf-freefont * specify doxyfile * use enc key * use enc key * use marketplace action to deploy * use marketplace action to deploy * use marketplace action to deploy * check current folder * check current folder * check current folder * check current folder * check current folder * check current folder * check current folder * fix deployment * fix deployment * fix deployment * fix deployment * specify doxyfile path * fix syntax * fix paths in doxyfile * fix forked branch ci * add develop branch * Fix ResourceEndpoint length check (#1411) ResourceEndpoint length check mistakenly uses ChannelName max length. * update cross-compilation builds ga (#1429) * Addressing error handling concerns for an edge case (#1443) * Addressing error handling concerns for an edge case * Clang format * Removed useless status_success check, changed test to look for correct error value * sample: fix possible timerQueue deadlock when freeSampleStreamingSession (#1448) Signed-off-by: zhiqinli@amazon.com * metrics: allow viewer sample to get ice candidate pair stats (#1406) Signed-off-by: Alex.Li * account for hexidecimal numbers (#1465) * Fix default data channel ordering mode (#1476) * Invoke gst_object_unref on allocated elements (#1477) * Fix typo (#1478) * Fix typo * Add unit test * find gcc version for static build * revert gtest version update and change alpine version * fix memory leak issue and abort trap in test * fix video delay 4s (#1525) * fix mips compile error (#1532) * fix mips compile error * fix mips compile error * fix mips compile error * Fix file caching (#1575) * Fix file caching * Update test to count entries, remove unnecessary memcpy * UT uses MEMFREE * Fix deadlock getIceCandidatePairStatsCallback (#1561) * sample: fix possible timerQueue deadlock when freeSampleStreamingSession * minor change (formatting) * wrtc stream ingestion support * clean up * default to disable data channel for wrtc ingestion * Fix missing SDP m-line problem (#1458) * use fake transceiver for missing m-line * use hashtable to track previously seen transceivers * fix failing tests with updates to seenTransceivers hashtable * use hashtables for unknown codec rtpmap and payloadtype * fix firstCodec value in case of only a single codec in m-line * rename variables * clang build * fix mac-gcc build * add test * add test for missingAudioTransceiver * add comments * add comments * remove unused variable to fix mac buils * wrtc stream ingestion support (#1605) * update readme (#1608) * update readme * update description * remove gst based storage sample (#1619) * Fix GHA CI build issues (#1631) * separate builds and tests * fix clang format issues * update libgtest version to 1.12.1 * fix deprecation in libgtest * update test suite call * run tests from build * remove build from tst instruction * fix san options * fix windows build * fix path in windows build * update bat file for windows * build openssl on windows * add openssl path for windows build * specify path to openssl root folder * specify path to openssl root folder * specify path to openssl root folder * upgrade cmake version * fix windows build * update checkoutv2 to v3 * fix checkout and install pthreads * remove windows build temporarily * move to v1-node16 for aws credentials * add sudo clean * add sudo to both commanda * use event triggers * Fix ice candidate issue with GStreamer sample (#1629) * fix gst sample * add branch to ci * fix clang * fix os versions in ci * remove unused vars to fix mac-clang build * remove unused vars to fix mac-gcc build * separate builds and tests * separate builds and tests * change test instruction for ci * change test instruction for ci * fix failing builds * add branch * Fix CI for forked branches (#1634) * use only target * use only target * remove branch name * blank space change to trigger CI * fix WSAPoll failed when set POLLPRI flag (#1636) Co-authored-by: weishao * Update README.md (#1637) Co-authored-by: Hassan Sahibzada * add paths for fedora (#1638) Co-authored-by: Hassan Sahibzada * Add clarifying comment for fallthrough (#1639) * Bkneff patch 2 (#1640) * Update kvsWebRTCClientMasterGstreamerSample.c Provide an example gstreamer pipeline for Raspberry Pi hardware encoding. Tested on Raspberry Pi 3 * Clang --------- Co-authored-by: bkneff <44409173+bkneff@users.noreply.github.com> * thread cancel memory leak, recreate signaling client & lws_context whenever a significant error has occurred, verbose and debug logging for ice & turn (#1641) * recreate signaling client & lws_context whenever a significant error has occurred * clang-format * recreate signaling client & lws_context whenever a significant error has occurred * Clang * adding local and remote null checks * More verbose and debug logging for ice & turn * Thread cancel on the media sender thread leads to memory leaks from writeFrame() not freeing all its heap usage * Clang again --------- Co-authored-by: James Delaplane * wrong port/address on debug log (#1642) Co-authored-by: Alex Zhukov * Update openssl version (#1643) * Update openssl version and fix unused param typo * Pull in producer C openssl update * fix(project): fix issue--1614 (#1644) Co-authored-by: niedb * update versions for actions (#1647) * Seggregaated Audio and Video frame handling, updated Master sample to handle audio and video both (#1646) Co-authored-by: Vikram(VS) * Mark Datachannel specific code explicitly (#1666) Co-authored-by: Dmitry Ilyin * Fix turn allocation taken long time when credential is incorrect (#1667) * fix turn allocation use long time sometimes * update some code style * fix compile error * Update IceAgent.c * fix clang format * fix prflx update interrupted connectivity check * fix clang format --------- Co-authored-by: Gordon * Update RtcpPacket.h (#1680) * Update RtcpPacket.h * Clang format * Changed sample frames to have 1 second GOP size, and removed overly verbose log (#1686) * Jitter buffer overflows (#1677) * Modified jitterbuffer to include checks for timestamp overflow * All tests passing, some new tests still need to be added * More tests and accompanying fixes * Resolve coverity finding of multiplication causing type overflow * Change function order * Clang format * Mac compile errors fixed * Commenting out long-running test, adding timestamp overflow test * Fix port printf in log (#1682) * Fix port printf in log * Fix the clang-format Fix the clang-format use ./scripts/clang-format.sh -d src/ * fix turn permission delay 2s (#1675) * fix turn permission delay 2s * Fix the clang-format Fix the clang-format use ./scripts/clang-format.sh -d src/ * Instruction to build on MacOS M1 (#1689) * Fix build dependencies off and add version requirements in readme (#1691) * Unlock mutex in case of error (#1696) * Unlock in case of error * fix typos (#1697) Co-authored-by: Ben Mesander * IoT CertificateId as Stream Name. (#1721) * IoT CertificateId as Stream Name. * Fix the clang-format use ./scripts/clang-format.sh -d src/ --------- Co-authored-by: Lina Chen * If local ICE is invalid, return from sending packet. (#1718) * If local ICE is invalid, return from sending packet. * Fix the clang-format use ./scripts/clang-format.sh -d src/ --------- Co-authored-by: Lina Chen * Adds RTSP Source to GStreamer Sample (#1740) * Adds rtsp source support, modifies source-type determination * All use cases tested and debugged. * Clang formatting. * Clang formatting. * Updates credentials configuration to fix sample-check error. * Sample-check fix attempt #2 * Sample-check fix attempt 3 * Sample-check fix attempt 4 * Sample-check fix attempt * "" * " " * " " * " " * Update README.md * Updates sample run instructions structure, adds RTSP source instructions * Update README.md * Renames sample file to be same as executable, updates CMakeLists to reflect this. * Update README.md Co-authored-by: Niyati Maheshwari * Update README.md * Updates usage statement to new sample executable name --------- Co-authored-by: Niyati Maheshwari * replace stun with sctp (#1743) * Modify the PR template (#1745) * modify the PR template * Use bullets * Update raspberry pi hardware encode to current gstreamer (#1746) * Update raspberry pi hardware encode to current gstreamer * - Provide build instructions for 32-bit raspbian on 64-bit hardware --------- Co-authored-by: Ben Mesander * Set a default user agent if not provided (#1739) * Connection timeout sleep (#1744) * Remove thread_detach and looping sleep, add thread_join * Added support for socketpair() and added it to connectionlistener * Clang formatting * Fix test that previously expected TID to be invalid * remove unused variables * Fixing incorrect typing on comparison * clang formatting * strlen -> STRLEN macro * Off by 1 error in poll rfds * clang formatting * Do Not Send SCTP Packets when Data Channel is Disabled (#1749) * no sctp packets when data channel is disabled * fix clang format * Fix comment typo regarding default source in Gst sample (#1750) * Parse IP address if the hostname conforms to Public ipv4 DNS format (#1759) * Parse IP address if the hostname conforms to Public ipv4 DNS format * Unit test for ipIpAddr function * Include and use threadpool for signaling channel messages (#1761) * Include and use threadpool for signaling channel messages * Fix clang and linux gcc compile errors * Fix pointer cast * Using SignalingClientInfo to pass information about Threadpool * edit README.md * Not necessary to change struct version * Update struct version again, add fall-through * clang formatting * Clang formatting, again * Fix the Windows build in the CI (#1764) * modify libwebsockets to work on Windows * set LWS_WITH_STATIC 1 * resume windows ci * add rest of the options * fix syntax in ci.yml * remove other options * set cmd vard * missing space in bat * add missing = in build_windows.bat * introduce cmake arguments * find_package openssl for non-windows builds * static + shared for rest of the builds * set static + shared true for shared builds always * add back ssl and crypto paths * rename vars in libwebsockets' cmake, rearrange, pthread fix * static=1 always * remove ssl and crypto paths * with_threadpool=1 * correction * correction 2 * correction 3 * correction 4 * correction 5 static * install gstreamer on windows * test mbedtls on windows * use if(WIN32) with set vars * 1671 * remove openssl arg from mbedtls build * fix mbedtls windows later * Introducing profiling of code sections and APIs (#1755) * Adds RTSP Source to GStreamer Sample (#1740) * Adds rtsp source support, modifies source-type determination * All use cases tested and debugged. * Clang formatting. * Clang formatting. * Updates credentials configuration to fix sample-check error. * Sample-check fix attempt #2 * Sample-check fix attempt 3 * Sample-check fix attempt 4 * Sample-check fix attempt * "" * " " * " " * " " * Update README.md * Updates sample run instructions structure, adds RTSP source instructions * Update README.md * Renames sample file to be same as executable, updates CMakeLists to reflect this. * Update README.md Co-authored-by: Niyati Maheshwari * Update README.md * Updates usage statement to new sample executable name --------- Co-authored-by: Niyati Maheshwari * Connection timeout sleep (#1744) * Remove thread_detach and looping sleep, add thread_join * Added support for socketpair() and added it to connectionlistener * Clang formatting * Fix test that previously expected TID to be invalid * remove unused variables * Fixing incorrect typing on comparison * clang formatting * strlen -> STRLEN macro * Off by 1 error in poll rfds * clang formatting * Fix comment typo regarding default source in Gst sample (#1750) * Initial commit * New structures to track signaling latency in diagnostics * Make peer connection stats accessible in application * Fix ice agent profling to store in variables, new APIs for getting ice agent metrics * Profile create peer connection * Macro fixes * More macro fix --------- Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Co-authored-by: Niyati Maheshwari Co-authored-by: jdelapla * Fix Windows tests (#1769) * enable verbose logs * fix syntax * without gtest filter * env path * cmd.exe /c * give permissions to file * move to C: instead of D: * don't move anything * add paths to pthread, ssl, crypto, websockets dlls * cd missing * uncomment other builds * comment msan * filter out tests * Refactor issue templates (#1770) * Update commit * fix issues * update ci to run, always memset SignalingFileCacheEntry to zero to avoid cache corruption for uninitialized members, add arn validation and signaling channel name parsing out of arn, add and update tests * add media storage enabled flag to cache, fix state machine issues with newly introduced states * clang format * remove unused, adjust print * mark unused param as unused * support temp creds in test * if needed allocate channel name inside the create validate channel info to properly free, fix cache to actually update items * clang format * adjust test timeout * free channel info in test * need mutex around initScptSession because it could be called from two different threads, alerted by address sanitizer. free every instance of channel info * false to FALSE * use global init make sctpIsEnabled an atomic bool since it is used per peer connection and can be modified/read across different threads this is necessary to ensure we will not attempt to send any sctp packets when data channel has not been requested in the offer or the client application has not asked for an offer to be constructed with a data channel * lock around global init/de-init calls, may move this inside the public APIs themselves so they are thread safe * fail test if could not init signaling * remove merge left over items * resolve merge issues * remove extra sctp init, add aws sdk to test project * fix data race * remove unused vars * testing adding aws sdks * working tests for join storage session * wrap up tests changes * adjust transitions * fix compile Werror * fix * jss metric 0 if no storage * build on OSX Clang without needing to set CPATH * build seamlessly Clang * get libcurl in CI for aws sdk builds * more ci tweaks * skip aws sdk related tests when building with gcc4.4 * clang format from update 17.0.2 version of clang-format * signal jss wait cvar during termination sequence to avoid data race when free siganling client is called and callback routines are still running we may attempt to broadcast this cvar when it was already deleted * do not build aws sdk or related tests in ci, fix free order to free lock first and then cvar for jssWaitLock * install libcurl so aws sdk cpp can be installed * fix issues * clang fix and set useMediaStorage variable in tests * copy use media storage field from client supplied channel info * fix some tests * differentiate between offer received and offer sent times, fixes tsan issue no longer racing betwen same value in callback, was previously hidden due to entire if block inside messageReceiveFn null check and test sets that to null so that code path was not exercised in test * fix clang formatting and compile issue * print error message when we fail to update media storage configuration * introduce lock to resolve thread data race * free mutex * adjust behavior for join session 1 hr termination. include 44a93a1d35c318ba80b5b582adfe6f0c03cd0ccb mbedtls ci build failure fix for ubuntu 22.04 * clang format and add libcurl to ci build for aws sdk * connect call will call new join session so need to increment counts. address some cr comments * fix clang format * cleanup, revert some timeout values * cleanup, revert some timeout defaults * add correlationId to answer in sample, other cleanup * when stepping out of join session connect if signaling is still connected move to get ice config so it will be refreshed before next join session call * update state transition counts based on new transitions * address remaining PR comments * cleanup, update readme, enable feature with extra command line arg in sample * clang formatting * add media server flag to gst master sample as well and update readme * remove unused timeout * update readme * move code coverage to its own file so auto comment in pr can work * tag must match exactly linux-gcc-codecov * add missing jobs tag --------- Signed-off-by: Alex.Li Signed-off-by: zhiqinli@amazon.com Co-authored-by: Divya Sampath Kumar Co-authored-by: jdelapla Co-authored-by: Niyati Maheshwari Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> Co-authored-by: northteam Co-authored-by: liyufang Co-authored-by: Alex.D.Scofield Co-authored-by: Kevin Allen Co-authored-by: Chris Hiszpanski Co-authored-by: Anurag Katey Co-authored-by: Chris Hiszpanski Co-authored-by: Gordon Co-authored-by: Thomas Ruf Co-authored-by: Jeremy Gunawan Co-authored-by: weishao Co-authored-by: Jeremy Gunawan Co-authored-by: bkneff <44409173+bkneff@users.noreply.github.com> Co-authored-by: Alex Zhukov Co-authored-by: helloworld098765 <108649814+helloworld098765@users.noreply.github.com> Co-authored-by: niedb Co-authored-by: Vikram Shitole Co-authored-by: Vikram(VS) Co-authored-by: Dmitry Ilyin Co-authored-by: Ben Mesander Co-authored-by: Ben Mesander Co-authored-by: chenln1124 <112364884+chenln1124@users.noreply.github.com> Co-authored-by: Lina Chen Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> * More rebase fixes * Fix segfault in non-threadpool path * Add logging * Remove ipv6 check for turnAddPeer in remote since the family is likely to be unknown for local relay * remove additional logging * Rebase fixes * Update to release branch * Fix signaling cache and GStreamer sample build on Windows (#1935) * fix readFile signaling cache windows * fix branch name * enable signaling api functionality tests on windows ci * try install zlib * zlib condition cmake * fix file cachine tests on Windows +Gstreamer sample build * filter failing signaling tests on Windows * dummy commit * strnlen * cleanup * Gstreamer windows build fix (#1940) * non windows * Set c drive default * Set via bat script and change logic * Modify path slash * Fix the conditional * Filter out non-operational and loopback interfaces (#1937) * update producer c to latest release v1.5.2 update producer c to latest release 1.5.2 * set version 1.10.0 --------- Signed-off-by: Alex.Li Signed-off-by: zhiqinli@amazon.com Signed-off-by: Alex Li Co-authored-by: jdelapla Co-authored-by: Niyati Maheshwari Co-authored-by: ela34 <8700736+ela34@users.noreply.github.com> Co-authored-by: northteam Co-authored-by: liyufang Co-authored-by: Alex.D.Scofield Co-authored-by: Kevin Allen Co-authored-by: Hassan Sahibzada Co-authored-by: Chris Hiszpanski Co-authored-by: Anurag Katey Co-authored-by: Chris Hiszpanski Co-authored-by: Gordon Co-authored-by: Thomas Ruf Co-authored-by: Jeremy Gunawan Co-authored-by: weishao Co-authored-by: Jeremy Gunawan Co-authored-by: bkneff <44409173+bkneff@users.noreply.github.com> Co-authored-by: Alex Zhukov Co-authored-by: helloworld098765 <108649814+helloworld098765@users.noreply.github.com> Co-authored-by: niedb Co-authored-by: Vikram Shitole Co-authored-by: Vikram(VS) Co-authored-by: Dmitry Ilyin Co-authored-by: Ben Mesander Co-authored-by: Ben Mesander Co-authored-by: chenln1124 <112364884+chenln1124@users.noreply.github.com> Co-authored-by: Lina Chen Co-authored-by: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Co-authored-by: Yuma.M Co-authored-by: kiyotsu <100079760+kiyotsu@users.noreply.github.com> Co-authored-by: Ozan Cihangir Co-authored-by: Ozan Cihangir Co-authored-by: Kelephant --- .github/ISSUE_TEMPLATE/bug_report.yml | 23 +- .github/ISSUE_TEMPLATE/questions-help.md | 18 - .github/build_windows.bat | 6 - .github/build_windows_openssl.bat | 2 +- .github/workflows/ci.yml | 104 ++- CMake/Dependencies/libawscpp-CMakeLists.txt | 4 +- .../libkvsCommonLws-CMakeLists.txt | 2 +- CMake/Dependencies/libmbedtls-CMakeLists.txt | 2 +- CMake/Dependencies/libusrsctp-CMakeLists.txt | 3 +- .../Dependencies/libwebsockets-CMakeLists.txt | 5 +- ...bsockets-old-gcc-fix-cast-cmakelists.patch | 45 +- CMakeLists.txt | 51 +- README.md | 159 +++- configs/config_mbedtls.h | 2 + samples/CMakeLists.txt | 20 +- samples/Common.c | 343 ++++++-- samples/Samples.h | 50 +- samples/kvsWebRTCClientMaster.c | 15 +- samples/kvsWebRTCClientViewer.c | 8 +- samples/kvsWebrtcClientMasterGstSample.c | 26 +- scripts/check-sample.sh | 2 +- .../kinesis/video/webrtcclient/Include.h | 88 +- .../kinesis/video/webrtcclient/Stats.h | 19 + src/source/Crypto/Dtls.h | 14 +- src/source/Crypto/Dtls_mbedtls.c | 14 +- src/source/Crypto/Dtls_openssl.c | 296 +++++-- src/source/Ice/IceAgent.c | 175 +++- src/source/Ice/IceAgent.h | 23 +- src/source/Ice/IceAgentStateMachine.c | 128 ++- src/source/Ice/IceAgentStateMachine.h | 3 +- src/source/Ice/IceUtils.c | 33 +- src/source/Ice/IceUtils.h | 1 + src/source/Ice/Network.c | 83 +- src/source/Ice/TurnConnection.c | 515 +++--------- src/source/Ice/TurnConnection.h | 50 +- src/source/Ice/TurnConnectionStateMachine.c | 771 ++++++++++++++++++ src/source/Ice/TurnConnectionStateMachine.h | 82 ++ src/source/Include_i.h | 15 +- src/source/PeerConnection/PeerConnection.c | 318 +++++++- src/source/PeerConnection/PeerConnection.h | 21 + src/source/PeerConnection/Rtcp.c | 1 - .../PeerConnection/SessionDescription.c | 233 ++++-- src/source/Sctp/Sctp.c | 6 +- src/source/Sdp/Sdp.h | 64 +- src/source/Signaling/FileCache.c | 3 +- src/source/Signaling/LwsApiCalls.c | 5 +- src/source/Signaling/Signaling.c | 35 +- src/source/Signaling/Signaling.h | 20 +- src/source/Signaling/StateMachine.c | 46 +- src/source/Stun/Stun.c | 2 + src/source/Threadpool/ThreadPoolContext.c | 94 +++ src/source/Threadpool/ThreadpoolContext.h | 31 + tst/CMakeLists.txt | 2 + tst/DataChannelApiTest.cpp | 3 + tst/DataChannelFunctionalityTest.cpp | 3 + tst/DtlsApiTest.cpp | 45 + tst/DtlsFunctionalityTest.cpp | 90 +- tst/IceFunctionalityTest.cpp | 25 +- tst/IngestionFunctionalityTests.cpp | 23 +- tst/MetricsApiTest.cpp | 11 +- tst/PeerConnectionApiTest.cpp | 18 +- tst/PeerConnectionFunctionalityTest.cpp | 372 ++++++++- tst/SdpApiTest.cpp | 62 +- tst/SignalingApiFunctionalityTest.cpp | 221 +++-- tst/SignalingApiTest.cpp | 53 +- tst/TurnConnectionFunctionalityTest.cpp | 1 + tst/WebRTCClientTestFixture.cpp | 227 +++++- tst/WebRTCClientTestFixture.h | 37 +- tst/suppressions/TSAN.supp | 2 +- 69 files changed, 4127 insertions(+), 1147 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/questions-help.md delete mode 100644 .github/build_windows.bat create mode 100644 src/source/Ice/TurnConnectionStateMachine.c create mode 100644 src/source/Ice/TurnConnectionStateMachine.h create mode 100644 src/source/Threadpool/ThreadPoolContext.c create mode 100644 src/source/Threadpool/ThreadpoolContext.h diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d7cf3d882e..d865ceb261 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -6,6 +6,7 @@ labels: ["bug", "needs-triage"] assignees: [] body: - type: checkboxes + id: confirm attributes: label: Please confirm you have already done the following options: @@ -13,6 +14,14 @@ body: - label: I have all the details the issue requires validations: required: true + - type: checkboxes + id: prompt + attributes: + label: Please answer the following prompt + options: + - label: This issue is replicable using the unmodified sample application + validations: + required: false - type: textarea id: description attributes: @@ -37,6 +46,9 @@ body: Please include full errors, uncaught exceptions, stack traces, and relevant VERBOSE logs. To get relevant VERBOSE logs from the SDK, you can retrieve by running `export AWS_KVS_LOG_LEVEL=1` + + If you are reporting a memory leak, please provide sufficient evidence such as a `valgrind` output. + Note that the CI for this repository uses [Google Sanitizers](https://github.com/google/sanitizers) to minimize software issues and vulnerabilities. validations: required: true - type: textarea @@ -44,7 +56,10 @@ body: attributes: label: Reproduction Steps description: | - Provide a self-contained, concise snippet of code that can be used to reproduce the issue. + Provide a self-contained, concise snippet of code that can be used to + reproduce the issue, or the command used to run the unmodified sample application. Please share + which SDK you are using as master and as viewer, and also any timing-related information, if + applicable. For more complex issues provide a repo with the smallest sample that reproduces the bug. Avoid including business logic or unrelated code, it makes diagnosis more difficult. validations: @@ -55,6 +70,12 @@ body: label: WebRTC C SDK version being used validations: required: true + - type: input + id: sdk-previous-version + attributes: + label: If it was working in a previous version, which one? + validations: + required: false - type: input id: compiler-version attributes: diff --git a/.github/ISSUE_TEMPLATE/questions-help.md b/.github/ISSUE_TEMPLATE/questions-help.md deleted file mode 100644 index 83d1501847..0000000000 --- a/.github/ISSUE_TEMPLATE/questions-help.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Questions/Help -about: Describe this issue template's purpose here. -title: "[QUESTION]" -labels: question,needs-triage -assignees: '' - ---- - -A one liner description about the use case and what you are trying to achieve - -** Logging ** -Add relevent SDK logging. IMPORTANT NOTE: Please make sure to NOT share AWS access credentials under any circumstance! Please make sure they are not in the logs. - -** Any design considerations/constraints ** -Explain in detail how you would like to integrate our SDK into your solution - -** If you would not like to open an issue to discuss your solution in open-platform, please email your question to kinesis-video-support@amazon.com ** diff --git a/.github/build_windows.bat b/.github/build_windows.bat deleted file mode 100644 index 66fc5f2093..0000000000 --- a/.github/build_windows.bat +++ /dev/null @@ -1,6 +0,0 @@ -call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" amd64 -mkdir build -cd build -cmd.exe /c cmake -G "NMake Makefiles" .. -cmake -G "NMake Makefiles" -DBUILD_TEST=TRUE .. -nmake diff --git a/.github/build_windows_openssl.bat b/.github/build_windows_openssl.bat index 3fb65e786d..f067cc0e43 100644 --- a/.github/build_windows_openssl.bat +++ b/.github/build_windows_openssl.bat @@ -2,5 +2,5 @@ call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Buil mkdir build cd build cmd.exe /c cmake -G "NMake Makefiles" .. -cmake -G "NMake Makefiles" -DBUILD_TEST=TRUE -DENABLE_AWS_SDK_IN_TESTS=OFF -DEXT_PTHREAD_INCLUDE_DIR="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/include/" -DEXT_PTHREAD_LIBRARIES="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/lib/x64/libpthreadGC2.a" .. +cmake -G "NMake Makefiles" -DBUILD_TEST=TRUE -DENABLE_AWS_SDK_IN_TESTS=OFF -DPKG_CONFIG_EXECUTABLE="D:\\gstreamer\\1.0\\x86_64\\bin\\pkg-config.exe" -DEXT_PTHREAD_INCLUDE_DIR="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/include/" -DEXT_PTHREAD_LIBRARIES="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/lib/x64/libpthreadGC2.a" .. nmake \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 280659f4c7..0f4380f213 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ on: - master jobs: clang-format-check: - runs-on: macos-11 + runs-on: macos-latest steps: - name: Clone repository uses: actions/checkout@v3 @@ -74,6 +74,31 @@ jobs: run: | cd build ./tst/webrtc_client_test + mac-os-m1-build-clang: + runs-on: macos-13-xlarge + env: + AWS_KVS_LOG_LEVEL: 2 + permissions: + id-token: write + contents: read + steps: + - name: Clone repository + uses: actions/checkout@v3 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Build repository + run: | + brew unlink openssl + mkdir build && cd build + sh -c 'cmake .. -DBUILD_TEST=TRUE -DCMAKE_C_COMPILER=$(brew --prefix llvm@15)/bin/clang -DCMAKE_CXX_COMPILER=$(brew --prefix llvm@15)/bin/clang++' + make + - name: Run tests + run: | + cd build + ./tst/webrtc_client_test static-build-mac: runs-on: macos-11 env: @@ -137,7 +162,7 @@ jobs: undefined-behavior-sanitizer: runs-on: ubuntu-20.04 env: - UBSAN_OPTIONS: halt_on_error=1 + UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1 CC: clang CXX: clang++ AWS_KVS_LOG_LEVEL: 2 @@ -356,6 +381,39 @@ jobs: run: | cd build timeout --signal=SIGABRT 60m ./tst/webrtc_client_test + + mbedtls-ubuntu-gcc-4_4-build: + runs-on: ubuntu-20.04 + env: + AWS_KVS_LOG_LEVEL: 2 + CC: gcc-4.4 + permissions: + id-token: write + contents: read + steps: + - name: Clone repository + uses: actions/checkout@v3 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Install deps + run: | + sudo apt clean && sudo apt update + sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty main' + sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty universe' + sudo apt-get -q update + sudo apt-get -y install gcc-4.4 + sudo apt-get -y install gdb + - name: Build repository + run: | + mkdir build && cd build + cmake .. -DUSE_OPENSSL=OFF -DUSE_MBEDTLS=ON + make + mbedtls-ubuntu-clang: runs-on: ubuntu-20.04 env: @@ -391,7 +449,7 @@ jobs: timeout --signal=SIGABRT 60m ./tst/webrtc_client_test sample-check: if: github.repository == 'awslabs/amazon-kinesis-video-streams-webrtc-sdk-c' - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest env: AWS_KVS_LOG_LEVEL: 2 permissions: @@ -399,19 +457,47 @@ jobs: contents: read steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 + uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} aws-region: ${{ secrets.AWS_REGION }} + role-duration-seconds: 10800 - name: Build repository run: | sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' mkdir build && cd build cmake .. make - cd .. + - name: Sample check + run: | + ./scripts/check-sample.sh + sample-check-no-data-channel: + if: github.repository == 'awslabs/amazon-kinesis-video-streams-webrtc-sdk-c' + runs-on: ubuntu-latest + env: + AWS_KVS_LOG_LEVEL: 2 + permissions: + id-token: write + contents: read + steps: + - name: Clone repository + uses: actions/checkout@v4 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: ${{ secrets.AWS_REGION }} + role-duration-seconds: 10800 + - name: Build repository + run: | + sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' + mkdir build && cd build + cmake .. -DENABLE_DATA_CHANNEL=OFF + make + - name: Sample check without data channel + run: | ./scripts/check-sample.sh ubuntu-os-build: runs-on: ubuntu-20.04 @@ -493,8 +579,8 @@ jobs: - name: Run tests shell: powershell run: | - $env:Path += ';C:\webrtc\open-source\bin;C:\tools\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64' - & "C:\webrtc\build\tst\webrtc_client_test.exe" --gtest_filter="-DataChannelFunctionalityTest.*:IceApiTest.*:IceFunctionalityTest.*:PeerConnectionFunctionalityTest.*:SignalingApiFunctionalityTest.*:TurnConnectionFunctionalityTest.*:RtpFunctionalityTest.marshallUnmarshallH264Data:RtpFunctionalityTest.packingUnpackingVerifySameH264Frame:RtcpFunctionalityTest.onRtcpPacketCompound:RtcpFunctionalityTest.twcc3" + $env:Path += ';C:\webrtc\open-source\bin;C:\tools\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64;C:\webrtc\build' + & "C:\webrtc\build\tst\webrtc_client_test.exe" --gtest_filter="-SignalingApiFunctionalityTest.receivingIceConfigOffer_SlowClockSkew:SignalingApiFunctionalityTest.iceServerConfigRefreshConnectedAuthExpiration:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew_VerifyOffsetRemovedWhenClockFixed:DataChannelFunctionalityTest.*:DtlsApiTest.*:IceApiTest.*:IceFunctionalityTest.*:PeerConnectionFunctionalityTest.*:TurnConnectionFunctionalityTest.*:RtpFunctionalityTest.marshallUnmarshallH264Data:RtpFunctionalityTest.packingUnpackingVerifySameH264Frame:RtcpFunctionalityTest.onRtcpPacketCompound:RtcpFunctionalityTest.twcc3" # windows-msvc-mbedtls: # runs-on: windows-2022 # env: @@ -576,4 +662,4 @@ jobs: sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6' mkdir build && cd build cmake .. -DBUILD_OPENSSL=TRUE -DBUILD_OPENSSL_PLATFORM=linux-generic32 -DBUILD_LIBSRTP_HOST_PLATFORM=x86_64-unknown-linux-gnu -DBUILD_LIBSRTP_DESTINATION_PLATFORM=arm-unknown-linux-uclibcgnueabi - make \ No newline at end of file + make diff --git a/CMake/Dependencies/libawscpp-CMakeLists.txt b/CMake/Dependencies/libawscpp-CMakeLists.txt index 062e4110a8..60f6bee6f8 100644 --- a/CMake/Dependencies/libawscpp-CMakeLists.txt +++ b/CMake/Dependencies/libawscpp-CMakeLists.txt @@ -4,11 +4,11 @@ include(ExternalProject) ExternalProject_Add(libawscpp-download GIT_REPOSITORY https://github.com/aws/aws-sdk-cpp.git - GIT_TAG 1.11.157 + GIT_TAG 1.11.217 LIST_SEPARATOR "|" CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DBUILD_ONLY=kinesisvideo|kinesis-video-webrtc-storage -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} BUILD_ALWAYS TRUE TEST_COMMAND "" -) \ No newline at end of file +) diff --git a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt index 08ae3908db..c8cfa179a8 100644 --- a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt +++ b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt @@ -6,7 +6,7 @@ include(ExternalProject) ExternalProject_Add(libkvsCommonLws-download GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git - GIT_TAG 178109a5dbfc5288ba5cf7fab1dc1afd5e2e182b + GIT_TAG v1.5.2 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} diff --git a/CMake/Dependencies/libmbedtls-CMakeLists.txt b/CMake/Dependencies/libmbedtls-CMakeLists.txt index aad9516994..2aa6f7ba72 100644 --- a/CMake/Dependencies/libmbedtls-CMakeLists.txt +++ b/CMake/Dependencies/libmbedtls-CMakeLists.txt @@ -26,7 +26,7 @@ ExternalProject_Add( CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} -DUSE_SHARED_MBEDTLS_LIBRARY=${BUILD_SHARED} - -DCMAKE_BUILD_TYPE=Release + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_MACOSX_RPATH=${CMAKE_MACOSX_RPATH} -DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF diff --git a/CMake/Dependencies/libusrsctp-CMakeLists.txt b/CMake/Dependencies/libusrsctp-CMakeLists.txt index 7ccc63f5bf..ab99cf4c15 100644 --- a/CMake/Dependencies/libusrsctp-CMakeLists.txt +++ b/CMake/Dependencies/libusrsctp-CMakeLists.txt @@ -8,7 +8,8 @@ ExternalProject_Add(project_libusrsctp GIT_REPOSITORY https://github.com/sctplab/usrsctp.git GIT_TAG 1ade45cbadfd19298d2c47dc538962d4425ad2dd PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fPIC" -Dsctp_werror=0 BUILD_ALWAYS TRUE diff --git a/CMake/Dependencies/libwebsockets-CMakeLists.txt b/CMake/Dependencies/libwebsockets-CMakeLists.txt index 90bec7d553..8e0f068ca1 100644 --- a/CMake/Dependencies/libwebsockets-CMakeLists.txt +++ b/CMake/Dependencies/libwebsockets-CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.6.3) project(libwebsocket-download NONE) -SET(PATCH_COMMAND git apply --ignore-whitespace ${CMAKE_CURRENT_LIST_DIR}/libwebsockets-old-gcc-fix-cast-cmakelists.patch ${CMAKE_CURRENT_LIST_DIR}/libwebsockets-leak-pipe-fix.patch) +SET(PATCH_COMMAND git apply --verbose --ignore-whitespace ${CMAKE_CURRENT_LIST_DIR}/libwebsockets-old-gcc-fix-cast-cmakelists.patch) include(ExternalProject) if (BUILD_STATIC_LIBS) @@ -30,13 +30,14 @@ endif() ExternalProject_Add(project_libwebsockets GIT_REPOSITORY https://github.com/warmcat/libwebsockets.git - GIT_TAG v4.2.2 + GIT_TAG v4.3.3 PATCH_COMMAND ${PATCH_COMMAND} PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build LIST_SEPARATOR | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DLWS_WITH_HTTP2=1 -DLWS_HAVE_HMAC_CTX_new=1 -DLWS_HAVE_SSL_EXTRA_CHAIN_CERTS=1 diff --git a/CMake/Dependencies/libwebsockets-old-gcc-fix-cast-cmakelists.patch b/CMake/Dependencies/libwebsockets-old-gcc-fix-cast-cmakelists.patch index 61e25e8a35..6fd33a5bef 100644 --- a/CMake/Dependencies/libwebsockets-old-gcc-fix-cast-cmakelists.patch +++ b/CMake/Dependencies/libwebsockets-old-gcc-fix-cast-cmakelists.patch @@ -11,31 +11,22 @@ index 68629e6f..6ef628b8 100644 prev = h2n->hpack_pos; h2n->hpack_pos = (uint16_t)huftable_decode( (int)h2n->hpack_pos, b); -diff --git a/lib/tls/CMakeLists.txt b/lib/tls/CMakeLists.txt -index b214df75..06eaf255 100644 ---- a/lib/tls/CMakeLists.txt -+++ b/lib/tls/CMakeLists.txt -@@ -57,10 +57,10 @@ if (LWS_WITH_BORINGSSL) - endif() +diff --git a/lib/core/lws_map.c b/lib/core/lws_map.c +index d149d86752..b319d79f49 100644 +--- a/lib/core/lws_map.c ++++ b/lib/core/lws_map.c +@@ -29,11 +29,11 @@ typedef struct lws_map_hashtable { + lws_dll2_owner_t ho; + } lws_map_hashtable_t; - if (LWS_WITH_SSL AND NOT LWS_WITH_WOLFSSL AND NOT LWS_WITH_MBEDTLS) -- if ("${LWS_OPENSSL_LIBRARIES}" STREQUAL "" OR "${LWS_OPENSSL_INCLUDE_DIRS}" STREQUAL "") -+ if (("${LWS_OPENSSL_LIBRARIES}" STREQUAL "" AND ("${LWS_OPENSSL_SSL_LIBRARY}" STREQUAL "" OR "${LWS_OPENSSL_CRYPTO_LIBRARY}" STREQUAL "")) OR "${LWS_OPENSSL_INCLUDE_DIRS}" STREQUAL "") - else() - if (NOT LWS_PLAT_FREERTOS) -- set(OPENSSL_LIBRARIES ${LWS_OPENSSL_LIBRARIES}) -+ list(APPEND OPENSSL_LIBRARIES ${LWS_OPENSSL_LIBRARIES} ${LWS_OPENSSL_SSL_LIBRARY} ${LWS_OPENSSL_CRYPTO_LIBRARY}) - endif() - set(OPENSSL_INCLUDE_DIRS ${LWS_OPENSSL_INCLUDE_DIRS}) - set(OPENSSL_FOUND 1) -@@ -248,7 +248,9 @@ if (LWS_WITH_SSL) - find_package(PkgConfig QUIET) - pkg_check_modules(PC_OPENSSL openssl QUIET) - find_package(OpenSSL REQUIRED) -- list(APPEND OPENSSL_LIBRARIES ${PC_OPENSSL_LIBRARIES}) -+ if (NOT LWS_WITH_STATIC) -+ list(APPEND OPENSSL_LIBRARIES ${PC_OPENSSL_LIBRARIES}) -+ endif() - set(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} PARENT_SCOPE) - endif() - set(OPENSSL_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}") +-typedef struct lws_map { ++struct lws_map { + lws_map_info_t info; + + /* array of info.modulo x lws_map_hashtable_t overallocated */ +-} lws_map_t; ++}; + + typedef struct lws_map_item { + lws_dll2_t list; /* owned by hashtable */ + diff --git a/CMakeLists.txt b/CMakeLists.txt index 96aa15ce33..33f9b92aca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,9 @@ include(CheckIncludeFiles) include(CheckFunctionExists) # The version MUST be updated before every release -project(KinesisVideoWebRTCClient VERSION 1.8.1 LANGUAGES C) +project(KinesisVideoWebRTCClient VERSION 1.10.0 LANGUAGES C) + + # User Flags @@ -19,6 +21,7 @@ option(BUILD_LIBSRTP_HOST_PLATFORM "If buildng LibSRTP what is the current platf option(BUILD_LIBSRTP_DESTINATION_PLATFORM "If buildng LibSRTP what is the destination platform" OFF) option(BUILD_SAMPLE "Build available samples" ON) option(ENABLE_DATA_CHANNEL "Enable support for data channel" ON) +option(ENABLE_KVS_THREADPOOL "Enable support for KVS thread pool in signaling" ON) option(INSTRUMENTED_ALLOCATORS "Enable memory instrumentation" OFF) option(ENABLE_AWS_SDK_IN_TESTS "Enable support for compiling AWS SDKs for tests" ON) @@ -38,6 +41,10 @@ if(WIN32) set(EXT_PTHREAD_LIBRARIES "" CACHE FILEPATH "Path to PThread libraries") endif() +if(NOT CMAKE_BUILD_TYPE) + message(STATUS "Setting CMAKE_BUILD_TYPE to Release by default") + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE) +endif() execute_process( COMMAND git rev-parse HEAD @@ -101,6 +108,10 @@ message(STATUS "dependencies install path is ${OPEN_SRC_INSTALL_PREFIX}") add_definitions(-DKVS_CA_CERT_PATH="${CMAKE_SOURCE_DIR}/certs/cert.pem") add_definitions(-DCMAKE_DETECTED_CACERT_PATH) +if (ENABLE_KVS_THREADPOOL) + add_definitions(-DENABLE_KVS_THREADPOOL) +endif() + if(USE_OPENSSL) add_definitions(-DKVS_USE_OPENSSL) elseif(USE_MBEDTLS) @@ -110,10 +121,16 @@ elseif(USE_MBEDTLS) message(STATUS "Detected clang") set(CMAKE_C_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_CXX_FLAGS}") - else() + elseif("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") message(STATUS "Detected gcc") - set(CMAKE_C_FLAGS "-Wno-error=stringop-overflow -I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "-Wno-error=stringop-overflow -I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/configs -DMBEDTLS_USER_CONFIG_FILE=\"\" ${CMAKE_CXX_FLAGS}") + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER "7.0") + set(CMAKE_C_FLAGS "-Wno-error=stringop-overflow ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-Wno-error=stringop-overflow ${CMAKE_CXX_FLAGS}") + endif() + else() + message(FATAL_ERROR "Detected unsupported compiler: ${CMAKE_C_COMPILER_ID}") endif() endif() @@ -137,14 +154,16 @@ if(BUILD_DEPENDENCIES) if (USE_OPENSSL) set(BUILD_ARGS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_OPENSSL_PLATFORM=${BUILD_OPENSSL_PLATFORM} -DOPENSSL_EXTRA=${OPENSSL_EXTRA}) build_dependency(openssl ${BUILD_ARGS}) set(OPENSSL_ROOT_DIR ${OPEN_SRC_INSTALL_PREFIX}) elseif(USE_MBEDTLS) set(BUILD_ARGS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} - "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -std=c99") - build_dependency(mbedtls ${BUILD_ARGS}) + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + "-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -std=c99") + build_dependency(mbedtls ${BUILD_ARGS}) endif() @@ -155,8 +174,9 @@ if(BUILD_DEPENDENCIES) set(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) string(REPLACE ";" "|" OPENSSL_LIBRARIES_ALT_SEP "${OPENSSL_LIBRARIES}") set(BUILD_ARGS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DUSE_OPENSSL=${USE_OPENSSL} - -DUSE_MBEDTLS=${USE_MBEDTLS} + -DUSE_MBEDTLS=${USE_MBEDTLS} -DLWS_EXT_PTHREAD_INCLUDE_DIR=${EXT_PTHREAD_INCLUDE_DIR} -DLWS_EXT_PTHREAD_LIBRARIES=${EXT_PTHREAD_LIBRARIES} -DLWS_OPENSSL_INCLUDE_DIRS=${OPENSSL_INCLUDE_DIRS} @@ -164,6 +184,7 @@ if(BUILD_DEPENDENCIES) -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}) else() set(BUILD_ARGS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DOPENSSL_DIR=${OPEN_SRC_INSTALL_PREFIX} -DUSE_OPENSSL=${USE_OPENSSL} -DUSE_MBEDTLS=${USE_MBEDTLS} @@ -176,16 +197,18 @@ if(BUILD_DEPENDENCIES) set(BUILD_ARGS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DOPENSSL_DIR=${OPEN_SRC_INSTALL_PREFIX} -DBUILD_LIBSRTP_HOST_PLATFORM=${BUILD_LIBSRTP_HOST_PLATFORM} -DBUILD_LIBSRTP_DESTINATION_PLATFORM=${BUILD_LIBSRTP_DESTINATION_PLATFORM} -DUSE_OPENSSL=${USE_OPENSSL} -DUSE_MBEDTLS=${USE_MBEDTLS} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}) - + build_dependency(srtp ${BUILD_ARGS}) set(BUILD_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}) build_dependency(usrsctp ${BUILD_ARGS}) @@ -349,7 +372,6 @@ file(GLOB WEBRTC_SIGNALING_CLIENT_SOURCE_FILES "src/source/Signaling/*.c") include_directories(${OPEN_SRC_INCLUDE_DIRS}) include_directories(${OPEN_SRC_INSTALL_PREFIX}/include) include_directories(${KINESIS_VIDEO_WEBRTC_CLIENT_SRC}/src/include) -include_directories(${KINESIS_VIDEO_WEBRTC_CLIENT_SRC}/src/ice) add_library(kvsWebrtcClient ${LINKAGE} ${WEBRTC_CLIENT_SOURCE_FILES} ${DATACHANNEL_SRC}) @@ -357,6 +379,13 @@ if(USE_MBEDTLS) target_compile_definitions(kvsWebrtcClient PRIVATE LWS_WITH_MBEDTLS) endif() +if(ENABLE_KVS_THREADPOOL) + file(GLOB THREADPOOL_SOURCE_FILES "src/source/Threadpool/*.c") + add_library(kvsWebRtcThreadpool ${LINKAGE} ${THREADPOOL_SOURCE_FILES}) + target_link_libraries(kvsWebRtcThreadpool PRIVATE kvspicUtils) + set(EXTRA_DEPS ${EXTRA_DEPS} kvsWebRtcThreadpool) +endif() + target_link_libraries( kvsWebrtcClient PRIVATE kvspicUtils @@ -420,7 +449,9 @@ endif() if(BUILD_TEST) # adding ZLIB because aws sdk static link seems to be broken when zlib is needed - find_package(ZLIB REQUIRED) + if(NOT WIN32) + find_package(ZLIB REQUIRED) + endif() add_subdirectory(tst) endif() diff --git a/README.md b/README.md index ab08aee972..51dca36d64 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Please refer to the release notes in [Releases](https://github.com/awslabs/amazo - G.711 PCM (µ-law) * Developer Controlled Media Pipeline - Raw Media for Input/Output - - Callbacks for [Congestion Control](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/pull/201), FIR and PLI (set on RtcRtpTransceiver) + - Callbacks for [Congestion Control](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/pull/201), FIR and PLI (set on [RtcRtpTransceiver](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/structRtcInboundRtpStreamStats.html)) * DataChannels * NACKs * STUN/TURN Support @@ -59,7 +59,8 @@ To download run the following command: You will also need to install `pkg-config` and `CMake` and a build environment -### Configure +### Configuring on Ubuntu / Unix + Create a build directory in the newly checked out repository, and execute CMake from it. `mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c/build; cd amazon-kinesis-video-streams-webrtc-sdk-c/build; cmake .. ` @@ -68,12 +69,52 @@ We have provided an example of using GStreamer to capture/encode video, and then GStreamer is installed on your system. On Ubuntu and Raspberry Pi OS you can get the libraries by running +```shell +sudo apt-get install cmake m4 pkg-config libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools +``` + +By default we download all the libraries from GitHub and build them locally, so should require nothing to be installed ahead of time. If you do wish to link to existing libraries you can use the following flags to customize your build. + +### Configuring on Windows + +Install [MS Visual Studio Community / Enterprise](https://visualstudio.microsoft.com/vs/community/), [Strawberry perl](https://strawberryperl.com/), and [Chocolatey](https://chocolatey.org/install) if not installed already + +Get the libraries by running the following in powershell +```shell +choco install gstreamer +choco install gstreamer-devel +curl.exe -o C:\tools\pthreads-w32-2-9-1-release.zip ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip +mkdir C:\tools\pthreads-w32-2-9-1-release\ +Expand-Archive -Path C:\tools\pthreads-w32-2-9-1-release.zip -DestinationPath C:\tools\pthreads-w32-2-9-1-release +``` + +Modify the path to the downloaded and unzipped PThreads in cmake in `build_windows_openssl.bat` if needed / unzipped at a path other than the one mentioned above +```shell +cmake -G "NMake Makefiles" -DBUILD_TEST=TRUE -DEXT_PTHREAD_INCLUDE_DIR="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/include/" -DEXT_PTHREAD_LIBRARIES="C:/tools/pthreads-w32-2-9-1-release/Pre-built.2/lib/x64/libpthreadGC2.a" .. +``` +Modify the path to MSVC as well in the `build_windows_openssl.bat` if needed / installed a different version / location + +```shell +call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 +``` + +Allow long paths before we start the build +```shell +git config --system core.longpaths true ``` -$ sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools + +Note that if the paths are still too long (which can cause the build to fail unfortunately), we recommend renaming the folders to use shorter names and moving them to `C:/` + +Build the SDK + +```shell +.github\build_windows_openssl.bat ``` -By default we download all the libraries from GitHub and build them locally, so should require nothing to be installed ahead of time. -If you do wish to link to existing libraries you can use the following flags to customize your build. +To run the sample application, make sure that you've exported the following paths and appended them to env:Path for powershell +```shell +$env:Path += ';C:\webrtc\open-source\bin;C:\tools\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64;C:\webrtc\build' +``` ### Dependency requirements @@ -108,13 +149,15 @@ You can pass the following options to `cmake ..`. * `-DMEMORY_SANITIZER` -- Build with MemorySanitizer * `-DTHREAD_SANITIZER` -- Build with ThreadSanitizer * `-DUNDEFINED_BEHAVIOR_SANITIZER` -- Build with UndefinedBehaviorSanitizer +* `-DCMAKE_BUILD_TYPE` -- Build Release/Debug libraries. By default, the SDK generates Release build. The standard options are listed [here](https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#default-and-custom-configurations) * `-DLINK_PROFILER` -- Link with gperftools (available profiler options are listed [here](https://github.com/gperftools/gperftools)) +* `-DPKG_CONFIG_EXECUTABLE` -- Set pkg config path. This might be required to find gstreamer's pkg config specifically on Windows. To clean up the `open-source` and `build` folders from previous build, use `cmake --build . --target clean` from the `build` folder For windows builds, you will have to include additional flags for libwebsockets CMake. Add the following flags to your cmake command, or edit the CMake file in ./CMake/Dependencies/libwebsockets-CMakeLists.txt with the following: -``` +```shell cmake .. -DLWS_HAVE_PTHREAD_H=1 -DLWS_EXT_PTHREAD_INCLUDE_DIR="C:\Program Files (x86)\pthreads\include" -DLWS_EXT_PTHREAD_LIBRARIES="C:\Program Files (x86)\pthreads\lib\x64\libpthreadGC2.a" -DLWS_WITH_MINIMAL_EXAMPLES=1 ``` @@ -136,12 +179,12 @@ On MacOS: `brew install srtp libusrsctp libwebsockets ` To use OpenSSL: -``` +```shell cmake .. -DBUILD_DEPENDENCIES=OFF -DUSE_OPENSSL=ON ``` To use MBedTLS: -``` +```shell cmake .. -DBUILD_DEPENDENCIES=OFF -DUSE_OPENSSL=OFF -DUSE_MBEDTLS=ON ``` @@ -152,21 +195,21 @@ If the versions are not satisfied, this option would not work and enabling the S ### Setup your environment with your AWS account credentials and AWS region: * First set the appropriate environment variables so you can connect to KVS. If you want to use IoT certificate instead, check Setup IoT. -``` -export AWS_ACCESS_KEY_ID= -export AWS_SECRET_ACCESS_KEY= +```shell +export AWS_ACCESS_KEY_ID= +export AWS_SECRET_ACCESS_KEY= ``` * Optionally, set AWS_SESSION_TOKEN if integrating with temporary token -``` +```shell export AWS_SESSION_TOKEN= ``` * Region is optional, if not being set, then us-west-2 will be used as default region. -``` -export AWS_DEFAULT_REGION= +```shell +export AWS_DEFAULT_REGION= ``` ### Setup logging: @@ -181,13 +224,13 @@ Set up the desired log level. The log levels and corresponding values currently 8. `LOG_LEVEL_PROFILE` ---- 8 To set a log level, run the following command: -``` -export AWS_KVS_LOG_LEVEL = +```shell +export AWS_KVS_LOG_LEVEL= ``` -For example: -``` -export AWS_KVS_LOG_LEVEL = 2 switches on DEBUG level logs while runnning the samples +For example, the following command switches on `DEBUG` level logs while runnning the samples. +```shell +export AWS_KVS_LOG_LEVEL=2 ``` Note: The default log level is `LOG_LEVEL_WARN`. @@ -195,15 +238,25 @@ Note: The default log level is `LOG_LEVEL_WARN`. Starting v1.8.0, by default, the SDK creates a log file that would have execution timing details of certain steps in connection establishment. It would be stored in the `build` directory as `kvsFileLogFilter.x`. In case you do not want to use defaults, you can modify certain parameters such as log file directory, log file size and file rotation index in the `createFileLoggerWithLevelFiltering` function in the samples. In addition to these logs, if you would like to have other level logs in a file as well, run: -``` +```shell export AWS_ENABLE_FILE_LOGGING=TRUE ``` +The SDK also tracks entry and exit of functions which increases the verbosity of the logs. This will be useful when you want to track the transitions within the codebase. To do so, you need to set log level to `LOG_LEVEL_VERBOSE` and add the following to the CMakeLists.txt file: +`add_definitions(-DLOG_STREAMING)` +Note: This log level is extremely VERBOSE and could flood the files if using file based logging strategy. + +
+ Time-to-first-frame breakdown metrics + +There is a flag in the sample application which (pSampleConfiguration->enableSendingMetricsToViewerViaDc) can be set to TRUE to send metrics from the master to the [JS viewer](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). This helps get a detailed breakdown of time-to-first-frame and all the processes and API calls on master and the viewer both. This is intended to be used with the KVS WebRTC C SDK running as the master and the JS SDK as the viewer. The master sends peer, ice-agent, signaling and data-channel metrics to the viewer which are plotted ~ 20 seconds after the viewer is started. Since the timeline plot is intended to understand the time-to-first-frame, the sample web page needs to be refreshed and the master needs to be restarted if a new / updated plot is needed. While using the SDK in this mode, it is expected that all datachannel messages are JSON messages. This feature is only meant to be used for a single viewer at a time. +
+ ### Set path to SSL CA certificate (**Optional**) If you have a custom CA certificate path to set, you can set it using: -``` +```shell export AWS_KVS_CACERT_PATH=../certs/cert.pem ``` @@ -214,30 +267,31 @@ After executing `make` you will have sample applications in your `build/samples` #### Sample: kvsWebrtcClientMaster This application sends sample H264/Opus frames (path: `/samples/h264SampleFrames` and `/samples/opusSampleFrames`) via WebRTC. It also accepts incoming audio, if enabled in the browser. When checked in the browser, it prints the metadata of the received audio packets in your terminal. To run: -``` +```shell ./samples/kvsWebrtcClientMaster ``` To use the **Storage for WebRTC** feature, run the same command as above but with an additional command line arg to enable the feature. -``` +```shell ./samples/kvsWebrtcClientMaster 1 ``` #### Sample: kvsWebrtcClientMasterGstSample This application can send media from a GStreamer pipeline using test H264/Opus frames, device `autovideosrc` and `autoaudiosrc` input, or a received RTSP stream. It also will playback incoming audio via an `autoaudiosink`. To run: -``` +```shell ./samples/kvsWebrtcClientMasterGstSample ``` Pass the desired media and source type when running the sample. The mediaType can be `audio-video` or `video-only`. To use the **Storage For WebRTC** feature, use `audio-video-storage` as the mediaType. The source type can be `testsrc`, `devicesrc`, or `rtspsrc`. Specify the RTSP URI if using `rtspsrc`: -``` + +```shell ./samples/kvsWebrtcClientMasterGstSample rtspsrc rtsp:// ``` #### Sample: kvsWebrtcClientViewer This application accepts sample H264/Opus frames and prints them out. To run: -``` +```shell ./samples/kvsWebrtcClientViewer ``` @@ -257,7 +311,7 @@ Then choose Start Viewer to start live video streaming of the sample H264/Opus f * To use IoT certificate to authenticate with KVS signaling, please refer to [Controlling Access to Kinesis Video Streams Resources Using AWS IoT](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html) for provisioning details. * A sample IAM policy for the IoT role looks like below, policy can be modified based on your permission requirement. -``` +```json { "Version":"2012-10-17", "Statement":[ @@ -276,39 +330,42 @@ Then choose Start Viewer to start live video streaming of the sample H264/Opus f } ``` +We recommend following [best practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) while setting up the IAM policy and not allow access to all channels in the account, but allow access to only the REQUIRED channel names if the use case demands it. KVS recommendation is to use iot thing name as channel name as per public docs. +https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html + Note: "kinesisvideo:CreateSignalingChannel" can be removed if you are running with existing KVS signaling channels. Viewer sample requires "kinesisvideo:ConnectAsViewer" permission. Integration test requires both "kinesisvideo:ConnectAsViewer" and "kinesisvideo:DeleteSignalingChannel" permission. * With the IoT certificate, IoT credentials provider endpoint (Note: it is not the endpoint on IoT AWS Console!), public key and private key ready, you can replace the static credentials provider createStaticCredentialProvider() and freeStaticCredentialProvider() with IoT credentials provider like below, the credentials provider for [samples](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/samples/Common.c) is in createSampleConfiguration(): -``` +```c createLwsIotCredentialProvider( "coxxxxxxxx168.credentials.iot.us-west-2.amazonaws.com", // IoT credentials endpoint "/Users/username/Downloads/iot-signaling/certificate.pem", // path to iot certificate "/Users/username/Downloads/iot-signaling/private.pem.key", // path to iot private key "/Users/username/Downloads/iot-signaling/cacert.pem", // path to CA cert "KinesisVideoSignalingCameraIoTRoleAlias", // IoT role alias - channelName, // iot thing name, recommended to be same as your channel name + "IoTThingName", // iot thing name, recommended to be same as your channel name &pSampleConfiguration->pCredentialProvider)); freeIotCredentialProvider(&pSampleConfiguration->pCredentialProvider); ``` ## Use Pre-generated Certificates -The certificate generating function (createCertificateAndKey) in createDtlsSession() can take between 5 - 15 seconds in low performance embedded devices, it is called for every peer connection creation when KVS WebRTC receives an offer. To avoid this extra start-up latency, certificate can be pre-generated and passed in when offer comes. +The certificate generating function ([createCertificateAndKey](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/Dtls__openssl_8c.html#a451c48525b0c0a8919a880d6834c1f7f)) in createDtlsSession() can take between 5 - 15 seconds in low performance embedded devices, it is called for every peer connection creation when KVS WebRTC receives an offer. To avoid this extra start-up latency, certificate can be pre-generated and passed in when offer comes. **Important Note: It is recommended to rotate the certificates often - preferably for every peer connection to avoid a compromised client weakening the security of the new connections.** -Take kvsWebRTCClientMaster as sample, add RtcCertificate certificates[CERT_COUNT]; to **SampleConfiguration** in Samples.h. -Then pass in the pre-generated certificate in initializePeerConnection() in Common.c. +Take `kvsWebRTCClientMaster` as sample, add `RtcCertificate certificates[CERT_COUNT];` to **SampleConfiguration** in [Samples.h](./samples/Samples.h). +Then pass in the pre-generated certificate in initializePeerConnection() in [Common.c](./samples/Common.c). -``` +```c configuration.certificates[0].pCertificate = pSampleConfiguration->certificates[0].pCertificate; configuration.certificates[0].pPrivateKey = pSampleConfiguration->certificates[0].pPrivateKey; +``` -where, `configuration` is of type `RtcConfiguration` in the function that calls `initializePeerConnection()`. +where, `configuration` is of type [`RtcConfiguration`](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/structRtcConfiguration.html) in the function that calls `initializePeerConnection()`. -Doing this will make sure that `createCertificateAndKey() would not execute since a certificate is already available.` -``` +Doing this will make sure that [`createCertificateAndKey()`](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/Dtls__openssl_8c.html#a451c48525b0c0a8919a880d6834c1f7f) would not execute since a certificate is already available. ## Provide Hardware Entropy Source @@ -368,10 +425,32 @@ When building on MacOS M1, if the build fails while trying to build OpenSSL or W To build on a 32-bit Raspbian GNU/Linux 11 on 64-bit hardware, the OpenSSL library must be manually configured. This is due to the OpenSSL autoconfiguration script detecting 64-bit hardware and emitting 64-bit ARM assembly instructions which are not allowed in 32-bit executables. A 32-bit ARM version of OpenSSL can be configured by setting 32-bit ARM platform: `cmake .. -DBUILD_OPENSSL_PLATFORM=linux-armv4` -### Threadpool for Signaling Channel messages -The threadpool is enabled by default, and starts with 3 threads that it can increase up to 5 if all 3 are actively in use. To change these values to better match the resources of your use case -please edit samples/Samples.h defines `KVS_SIGNALING_THREADPOOL_MIN` and `KVS_SIGNALING_THREADPOOL_MAX`. You can also disable the threadpool to instead create and detach each thread -to handle signaling messages by commenting out `KVS_USE_SIGNALING_CHANNEL_THREADPOOL`. +### Threadpool for the SDK +The threadpool is enabled by default, and starts with 3 threads that it can increase up to 10 if all are actively in use. To change these values to better match the resources of your use case you can set the environment variables to do so: +1. `export AWS_KVS_WEBRTC_THREADPOOL_MIN_THREADS=` +2. `export AWS_KVS_WEBRTC_THREADPOOL_MAX_THREADS=` + +To disable threadpool, run `cmake .. -DENABLE_KVS_THREADPOOL=OFF` + +Starting version 1.10.0, threadpool usage provides latency improvements in connection establishment. Note, that increasing the number of minimum threads can increase stack memory usage. So, ensure to increase with caution. + +### Setting ICE related timeouts + +There are some default timeout values set for different steps in ICE in the [KvsRtcConfiguration](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/structKvsRtcConfiguration.html). These are configurable in the application. While the defaults are generous, there could be applications that might need more flexibility to improve chances of connection establishment because of poor network. + +You can find the default setting in the logs: +``` +2024-01-08 19:43:44.433 INFO iceAgentValidateKvsRtcConfig(): + iceLocalCandidateGatheringTimeout: 10000 ms + iceConnectionCheckTimeout: 12000 ms + iceCandidateNominationTimeout: 12000 ms + iceConnectionCheckPollingInterval: 50 ms +``` +Let us look into when each of these could be changed: +1. `iceCandidateNominationTimeout`: Say the connection with host/srflx could not be established and TURN seems to be the only resort. Let us assume it takes about 15 seconds to gather the first local relay candidate, the application could set the timeout to a value more than 15 seconds to ensure candidate pairs with the local relay candidate are tried for success. If the value is set to less than 15 seconds in this case, the SDK would lose out on trying a potential candidate pair leading to connection establishment failure +2. `iceLocalCandidateGatheringTimeout`: Say the host candidates would not work and srflx/relay candidates need to be tried. Due to poor network, it is anticipated the candidates are gathered slowly and the application does not want to spend more than 20 seconds on this step. The goal is to try all possible candidate pairs. Increasing the timeout helps in giving some more time to gather more potential candidates to try for connection. Also note, this parameter increase would not make a difference in the situation unless `iceCandidateNominationTimeout` > `iceLocalCandidateGatheringTimeout` since nomination step should also be given time to work with the new candidates +3. `iceConnectionCheckTimeout`: It is useful to increase this timeout in unstable/slow network where the packet exchange takes time and hence the binding request/response. Essentially, increasing it will allow atleast one candidate pair to be tried for nomination by the other peer. +4. `iceConnectionCheckPollingInterval`: This value is set to a default of 50 ms per [spec](https://datatracker.ietf.org/doc/html/rfc8445#section-14.2). Changing this would change the frequency of connectivity checks and essentially, the ICE state machine transitions. Decreasing the value could help in faster connection establishment in a reliable high performant network setting with good system resources. Increasing the value could help in reducing the network load, however, the connection establishment could slow down. Unless there is a strong reasoning, it is **NOT** recommended to deviate from spec/default. ## Documentation All Public APIs are documented in our [Include.h](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h), we also generate a [Doxygen](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/) each commit for easier navigation. diff --git a/configs/config_mbedtls.h b/configs/config_mbedtls.h index 52cc0ab10f..a642be21dc 100644 --- a/configs/config_mbedtls.h +++ b/configs/config_mbedtls.h @@ -19,6 +19,8 @@ extern "C" { #undef MBEDTLS_ECP_DP_SECP224K1_ENABLED #undef MBEDTLS_ECP_DP_SECP256K1_ENABLED +#undef MBEDTLS_SSL_ALPN + /** * \def MBEDTLS_ENTROPY_HARDWARE_ALT * diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index aaecb4dd1f..112c2c21d5 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -6,6 +6,18 @@ project(KinesisVideoWebRTCClientSamples LANGUAGES C) message("OPEN_SRC_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}") +if (WIN32) + if(NOT DEFINED PKG_CONFIG_EXECUTABLE) + if(EXISTS "C:\\gstreamer\\1.0\\x86_64\\bin\\pkg-config.exe") + set(PKG_CONFIG_EXECUTABLE "C:\\gstreamer\\1.0\\x86_64\\bin\\pkg-config.exe") + endif() + elseif(DEFINED PKG_CONFIG_EXECUTABLE) + message(STATUS "Gstreamer pkg-config path set to ${PKG_CONFIG_EXECUTABLE}") + else() + message(FATAL_ERROR "Gstreamer not found in default path. Set the appropriate path with -DPKG_CONFIG_EXECUTABLE=") + endif() +endif() + find_package(PkgConfig REQUIRED) pkg_check_modules(GST gstreamer-1.0) @@ -49,18 +61,18 @@ add_executable( kvsWebrtcClientMaster Common.c kvsWebRTCClientMaster.c) -target_link_libraries(kvsWebrtcClientMaster kvsWebrtcClient kvsWebrtcSignalingClient kvsCommonLws kvspicUtils websockets) +target_link_libraries(kvsWebrtcClientMaster kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets) add_executable( kvsWebrtcClientViewer Common.c kvsWebRTCClientViewer.c) -target_link_libraries(kvsWebrtcClientViewer kvsWebrtcClient kvsWebrtcSignalingClient kvsCommonLws kvspicUtils websockets) +target_link_libraries(kvsWebrtcClientViewer kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} kvsCommonLws kvspicUtils websockets) add_executable( discoverNatBehavior discoverNatBehavior.c) -target_link_libraries(discoverNatBehavior kvsWebrtcClient) +target_link_libraries(discoverNatBehavior kvsWebrtcClient ${EXTRA_DEPS}) if(GST_FOUND) add_executable( @@ -68,7 +80,7 @@ if(GST_FOUND) Common.c kvsWebrtcClientMasterGstSample.c ) - target_link_libraries(kvsWebrtcClientMasterGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets) + target_link_libraries(kvsWebrtcClientMasterGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets) install(TARGETS kvsWebrtcClientMasterGstSample RUNTIME DESTINATION bin diff --git a/samples/Common.c b/samples/Common.c index dbc12b5c99..2deb9d6175 100644 --- a/samples/Common.c +++ b/samples/Common.c @@ -32,28 +32,6 @@ STATUS signalingCallFailed(STATUS status) STATUS_SIGNALING_DESCRIBE_MEDIA_CALL_FAILED == status); } -VOID onDataChannelMessage(UINT64 customData, PRtcDataChannel pDataChannel, BOOL isBinary, PBYTE pMessage, UINT32 pMessageLen) -{ - UNUSED_PARAM(customData); - if (isBinary) { - DLOGI("DataChannel Binary Message"); - } else { - DLOGI("DataChannel String Message: %.*s\n", pMessageLen, pMessage); - } - // Send a response to the message sent by the viewer - STATUS retStatus = STATUS_SUCCESS; - retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) MASTER_DATA_CHANNEL_MESSAGE, STRLEN(MASTER_DATA_CHANNEL_MESSAGE)); - if (retStatus != STATUS_SUCCESS) { - DLOGI("[KVS Master] dataChannelSend(): operation returned status code: 0x%08x \n", retStatus); - } -} - -VOID onDataChannel(UINT64 customData, PRtcDataChannel pRtcDataChannel) -{ - DLOGI("New DataChannel has been opened %s \n", pRtcDataChannel->name); - dataChannelOnMessage(pRtcDataChannel, customData, onDataChannelMessage); -} - VOID onConnectionStateChange(UINT64 customData, RTC_PEER_CONNECTION_STATE newState) { STATUS retStatus = STATUS_SUCCESS; @@ -68,6 +46,8 @@ VOID onConnectionStateChange(UINT64 customData, RTC_PEER_CONNECTION_STATE newSta ATOMIC_STORE_BOOL(&pSampleConfiguration->connected, TRUE); CVAR_BROADCAST(pSampleConfiguration->cvar); + pSampleStreamingSession->peerConnectionMetrics.peerConnectionStats.peerConnectionConnectedTime = + GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; CHK_STATUS(peerConnectionGetMetrics(pSampleStreamingSession->pPeerConnection, &pSampleStreamingSession->peerConnectionMetrics)); CHK_STATUS(iceAgentGetMetrics(pSampleStreamingSession->pPeerConnection, &pSampleStreamingSession->iceMetrics)); @@ -360,13 +340,51 @@ VOID onIceCandidateHandler(UINT64 customData, PCHAR candidateJson) CHK_LOG_ERR(retStatus); } +PVOID asyncGetIceConfigInfo(PVOID args) +{ + STATUS retStatus = STATUS_SUCCESS; + AsyncGetIceStruct* data = (AsyncGetIceStruct*) args; + PIceConfigInfo pIceConfigInfo = NULL; + UINT32 uriCount = 0; + UINT32 i = 0, maxTurnServer = 1; + + if (data != NULL) { + /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize + * candidate gathering latency. But user can also choose to use more than 1 turn server. */ + for (uriCount = 0, i = 0; i < maxTurnServer; i++) { + /* + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN + * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS + * + * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. + */ + CHK_STATUS(signalingClientGetIceConfigInfo(data->signalingClientHandle, i, &pIceConfigInfo)); + CHECK(uriCount < MAX_ICE_SERVERS_COUNT); + uriCount += pIceConfigInfo->uriCount; + CHK_STATUS(addConfigToServerList(&(data->pRtcPeerConnection), pIceConfigInfo)); + } + } + *(data->pUriCount) += uriCount; + +CleanUp: + SAFE_MEMFREE(data); + CHK_LOG_ERR(retStatus); + return NULL; +} + STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcPeerConnection* ppRtcPeerConnection) { ENTERS(); STATUS retStatus = STATUS_SUCCESS; RtcConfiguration configuration; - UINT32 i, j, iceConfigCount, uriCount = 0, maxTurnServer = 1; +#ifndef ENABLE_KVS_THREADPOOL + UINT32 i, j, maxTurnServer = 1; PIceConfigInfo pIceConfigInfo; + UINT32 uriCount = 0; +#endif UINT64 data; PRtcCertificate pRtcCertificate = NULL; @@ -389,37 +407,6 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, pSampleConfiguration->channelInfo.pRegion, pKinesisVideoStunUrlPostFix); - if (pSampleConfiguration->useTurn) { - // Set the URIs from the configuration - CHK_STATUS(signalingClientGetIceConfigInfoCount(pSampleConfiguration->signalingClientHandle, &iceConfigCount)); - - /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize - * candidate gathering latency. But user can also choose to use more than 1 turn server. */ - for (uriCount = 0, i = 0; i < maxTurnServer; i++) { - CHK_STATUS(signalingClientGetIceConfigInfo(pSampleConfiguration->signalingClientHandle, i, &pIceConfigInfo)); - for (j = 0; j < pIceConfigInfo->uriCount; j++) { - CHECK(uriCount < MAX_ICE_SERVERS_COUNT); - /* - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN - * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS - * - * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. - */ - - STRNCPY(configuration.iceServers[uriCount + 1].urls, pIceConfigInfo->uris[j], MAX_ICE_CONFIG_URI_LEN); - STRNCPY(configuration.iceServers[uriCount + 1].credential, pIceConfigInfo->password, MAX_ICE_CONFIG_CREDENTIAL_LEN); - STRNCPY(configuration.iceServers[uriCount + 1].username, pIceConfigInfo->userName, MAX_ICE_CONFIG_USER_NAME_LEN); - - uriCount++; - } - } - } - - pSampleConfiguration->iceUriCount = uriCount + 1; - // Check if we have any pregenerated certs and use them // NOTE: We are running under the config lock retStatus = stackQueueDequeue(pSampleConfiguration->pregeneratedCertificates, &data); @@ -434,6 +421,40 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP } CHK_STATUS(createPeerConnection(&configuration, ppRtcPeerConnection)); + + if (pSampleConfiguration->useTurn) { +#ifdef ENABLE_KVS_THREADPOOL + pSampleConfiguration->iceUriCount = 1; + AsyncGetIceStruct* pAsyncData = NULL; + + pAsyncData = (AsyncGetIceStruct*) MEMCALLOC(1, SIZEOF(AsyncGetIceStruct)); + pAsyncData->signalingClientHandle = pSampleConfiguration->signalingClientHandle; + pAsyncData->pRtcPeerConnection = *ppRtcPeerConnection; + pAsyncData->pUriCount = &(pSampleConfiguration->iceUriCount); + CHK_STATUS(peerConnectionAsync(asyncGetIceConfigInfo, (PVOID) pAsyncData)); +#else + + /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize + * candidate gathering latency. But user can also choose to use more than 1 turn server. */ + for (uriCount = 0, i = 0; i < maxTurnServer; i++) { + /* + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN + * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS + * + * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. + */ + CHK_STATUS(signalingClientGetIceConfigInfo(pSampleConfiguration->signalingClientHandle, i, &pIceConfigInfo)); + CHECK(uriCount < MAX_ICE_SERVERS_COUNT); + uriCount += pIceConfigInfo->uriCount; + CHK_STATUS(addConfigToServerList(ppRtcPeerConnection, pIceConfigInfo)); + } + pSampleConfiguration->iceUriCount = uriCount + 1; +#endif + } + CleanUp: CHK_LOG_ERR(retStatus); @@ -511,14 +532,17 @@ STATUS createSampleStreamingSession(PSampleConfiguration pSampleConfiguration, P ATOMIC_STORE_BOOL(&pSampleStreamingSession->terminateFlag, FALSE); ATOMIC_STORE_BOOL(&pSampleStreamingSession->candidateGatheringDone, FALSE); + pSampleStreamingSession->peerConnectionMetrics.peerConnectionStats.peerConnectionStartTime = GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; CHK_STATUS(initializePeerConnection(pSampleConfiguration, &pSampleStreamingSession->pPeerConnection)); CHK_STATUS(peerConnectionOnIceCandidate(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, onIceCandidateHandler)); CHK_STATUS( peerConnectionOnConnectionStateChange(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, onConnectionStateChange)); +#ifdef ENABLE_DATA_CHANNEL if (pSampleConfiguration->onDataChannel != NULL) { CHK_STATUS(peerConnectionOnDataChannel(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, pSampleConfiguration->onDataChannel)); } +#endif // Declare that we support H264,Profile=42E01F,level-asymmetry-allowed=1,packetization-mode=1 and Opus CHK_STATUS(addSupportedCodec(pSampleStreamingSession->pPeerConnection, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE)); @@ -757,18 +781,23 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE CHK(NULL != (pSampleConfiguration = (PSampleConfiguration) MEMCALLOC(1, SIZEOF(SampleConfiguration))), STATUS_NOT_ENOUGH_MEMORY); #ifdef IOT_CORE_ENABLE_CREDENTIALS - PCHAR pIotCoreCredentialEndPoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias; + PCHAR pIotCoreCredentialEndPoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreCertificateId, pIotCoreThingName; CHK_ERR((pIotCoreCredentialEndPoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set"); CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set"); CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set"); CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set"); + CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set"); #else CHK_ERR((pAccessKey = GETENV(ACCESS_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_ACCESS_KEY_ID must be set"); CHK_ERR((pSecretKey = GETENV(SECRET_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_SECRET_ACCESS_KEY must be set"); #endif pSessionToken = GETENV(SESSION_TOKEN_ENV_VAR); + if (pSessionToken != NULL && IS_EMPTY_STRING(pSessionToken)) { + DLOGW("Session token is set but its value is empty. Ignoring."); + pSessionToken = NULL; + } // If the env is set, we generate normal log files apart from filtered profile log files // If not set, we generate only the filtered profile log files @@ -800,7 +829,7 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE #ifdef IOT_CORE_ENABLE_CREDENTIALS CHK_STATUS(createLwsIotCredentialProvider(pIotCoreCredentialEndPoint, pIotCoreCert, pIotCorePrivateKey, pSampleConfiguration->pCaCertPath, - pIotCoreRoleAlias, channelName, &pSampleConfiguration->pCredentialProvider)); + pIotCoreRoleAlias, pIotCoreThingName, &pSampleConfiguration->pCredentialProvider)); #else CHK_STATUS( createStaticCredentialProvider(pAccessKey, 0, pSecretKey, 0, pSessionToken, 0, MAX_UINT64, &pSampleConfiguration->pCredentialProvider)); @@ -818,9 +847,15 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE * not ahead of time. */ pSampleConfiguration->trickleIce = trickleIce; pSampleConfiguration->useTurn = useTurn; + pSampleConfiguration->enableSendingMetricsToViewerViaDc = FALSE; pSampleConfiguration->channelInfo.version = CHANNEL_INFO_CURRENT_VERSION; pSampleConfiguration->channelInfo.pChannelName = channelName; +#ifdef IOT_CORE_ENABLE_CREDENTIALS + if ((pIotCoreCertificateId = GETENV(IOT_CORE_CERTIFICATE_ID)) != NULL) { + pSampleConfiguration->channelInfo.pChannelName = pIotCoreCertificateId; + } +#endif pSampleConfiguration->channelInfo.pKmsKeyId = NULL; pSampleConfiguration->channelInfo.tagCount = 0; pSampleConfiguration->channelInfo.pTags = NULL; @@ -843,8 +878,6 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE pSampleConfiguration->clientInfo.loggingLevel = logLevel; pSampleConfiguration->clientInfo.cacheFilePath = NULL; // Use the default path pSampleConfiguration->clientInfo.signalingClientCreationMaxRetryAttempts = CREATE_SIGNALING_CLIENT_RETRY_ATTEMPTS_SENTINEL_VALUE; - pSampleConfiguration->clientInfo.signalingMessagesMinimumThreads = KVS_SIGNALING_THREADPOOL_MIN; - pSampleConfiguration->clientInfo.signalingMessagesMaximumThreads = KVS_SIGNALING_THREADPOOL_MAX; pSampleConfiguration->iceCandidatePairStatsTimerId = MAX_UINT32; pSampleConfiguration->pregenerateCertTimerId = MAX_UINT32; pSampleConfiguration->signalingClientMetrics.version = SIGNALING_CLIENT_METRICS_CURRENT_VERSION; @@ -1366,7 +1399,7 @@ STATUS signalingMessageReceived(UINT64 customData, PReceivedSignalingMessage pRe { STATUS retStatus = STATUS_SUCCESS; PSampleConfiguration pSampleConfiguration = (PSampleConfiguration) customData; - BOOL peerConnectionFound = FALSE, locked = FALSE, startStats = FALSE; + BOOL peerConnectionFound = FALSE, locked = FALSE, startStats = FALSE, freeStreamingSession = FALSE; UINT32 clientIdHash; UINT64 hashValue = 0; PPendingMessageQueue pPendingMessageQueue = NULL; @@ -1412,10 +1445,7 @@ STATUS signalingMessageReceived(UINT64 customData, PReceivedSignalingMessage pRe } CHK_STATUS(createSampleStreamingSession(pSampleConfiguration, pReceivedSignalingMessage->signalingMessage.peerClientId, TRUE, &pSampleStreamingSession)); - MUTEX_LOCK(pSampleConfiguration->streamingSessionListReadLock); - pSampleConfiguration->sampleStreamingSessionList[pSampleConfiguration->streamingSessionCount++] = pSampleStreamingSession; - MUTEX_UNLOCK(pSampleConfiguration->streamingSessionListReadLock); - + freeStreamingSession = TRUE; CHK_STATUS(handleOffer(pSampleConfiguration, pSampleStreamingSession, &pReceivedSignalingMessage->signalingMessage)); CHK_STATUS(hashTablePut(pSampleConfiguration->pRtcPeerConnectionForRemoteClient, clientIdHash, (UINT64) pSampleStreamingSession)); @@ -1429,6 +1459,11 @@ STATUS signalingMessageReceived(UINT64 customData, PReceivedSignalingMessage pRe pPendingMessageQueue = NULL; } + MUTEX_LOCK(pSampleConfiguration->streamingSessionListReadLock); + pSampleConfiguration->sampleStreamingSessionList[pSampleConfiguration->streamingSessionCount++] = pSampleStreamingSession; + MUTEX_UNLOCK(pSampleConfiguration->streamingSessionListReadLock); + freeStreamingSession = FALSE; + startStats = pSampleConfiguration->iceCandidatePairStatsTimerId == MAX_UINT32; break; @@ -1513,6 +1548,10 @@ STATUS signalingMessageReceived(UINT64 customData, PReceivedSignalingMessage pRe freeMessageQueue(pPendingMessageQueue); } + if (freeStreamingSession && pSampleStreamingSession != NULL) { + freeSampleStreamingSession(&pSampleStreamingSession); + } + if (locked) { MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock); } @@ -1630,3 +1669,181 @@ STATUS removeExpiredMessageQueues(PStackQueue pPendingQueue) return retStatus; } + +#ifdef ENABLE_DATA_CHANNEL +VOID onDataChannelMessage(UINT64 customData, PRtcDataChannel pDataChannel, BOOL isBinary, PBYTE pMessage, UINT32 pMessageLen) +{ + STATUS retStatus = STATUS_SUCCESS; + UINT32 i, strLen, tokenCount; + CHAR pMessageSend[MAX_DATA_CHANNEL_METRICS_MESSAGE_SIZE], errorMessage[200]; + PCHAR json; + PSampleStreamingSession pSampleStreamingSession = (PSampleStreamingSession) customData; + PSampleConfiguration pSampleConfiguration; + DataChannelMessage dataChannelMessage; + jsmn_parser parser; + jsmntok_t tokens[MAX_JSON_TOKEN_COUNT]; + + CHK(pMessage != NULL && pDataChannel != NULL, STATUS_NULL_ARG); + + if (pSampleStreamingSession == NULL) { + STRCPY(errorMessage, "Could not generate stats since the streaming session is NULL"); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) errorMessage, STRLEN(errorMessage)); + DLOGE("%s", errorMessage); + goto CleanUp; + } + + pSampleConfiguration = pSampleStreamingSession->pSampleConfiguration; + if (pSampleConfiguration == NULL) { + STRCPY(errorMessage, "Could not generate stats since the sample configuration is NULL"); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) errorMessage, STRLEN(errorMessage)); + DLOGE("%s", errorMessage); + goto CleanUp; + } + + if (pSampleConfiguration->enableSendingMetricsToViewerViaDc) { + jsmn_init(&parser); + json = (PCHAR) pMessage; + tokenCount = jsmn_parse(&parser, json, STRLEN(json), tokens, SIZEOF(tokens) / SIZEOF(jsmntok_t)); + + MEMSET(dataChannelMessage.content, '\0', SIZEOF(dataChannelMessage.content)); + MEMSET(dataChannelMessage.firstMessageFromViewerTs, '\0', SIZEOF(dataChannelMessage.firstMessageFromViewerTs)); + MEMSET(dataChannelMessage.firstMessageFromMasterTs, '\0', SIZEOF(dataChannelMessage.firstMessageFromMasterTs)); + MEMSET(dataChannelMessage.secondMessageFromViewerTs, '\0', SIZEOF(dataChannelMessage.secondMessageFromViewerTs)); + MEMSET(dataChannelMessage.secondMessageFromMasterTs, '\0', SIZEOF(dataChannelMessage.secondMessageFromMasterTs)); + MEMSET(dataChannelMessage.lastMessageFromViewerTs, '\0', SIZEOF(dataChannelMessage.lastMessageFromViewerTs)); + + if (tokenCount > 1) { + if (tokens[0].type != JSMN_OBJECT) { + STRCPY(errorMessage, "Invalid JSON received, please send a valid json as the SDK is operating in datachannel-benchmarking mode"); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) errorMessage, STRLEN(errorMessage)); + DLOGE("%s", errorMessage); + retStatus = STATUS_INVALID_API_CALL_RETURN_JSON; + goto CleanUp; + } + DLOGI("DataChannel json message: %.*s\n", pMessageLen, pMessage); + + for (i = 1; i < tokenCount; i++) { + if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "content")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + if (strLen != 0) { + STRNCPY(dataChannelMessage.content, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } + } else if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "firstMessageFromViewerTs")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + // parse and retain this message from the viewer to send it back again + if (strLen != 0) { + // since the length is not zero, we have already attached this timestamp to structure in the last iteration + STRNCPY(dataChannelMessage.firstMessageFromViewerTs, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } + } else if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "firstMessageFromMasterTs")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + if (strLen != 0) { + // since the length is not zero, we have already attached this timestamp to structure in the last iteration + STRNCPY(dataChannelMessage.firstMessageFromMasterTs, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } else { + // if this timestamp was not assigned during the previous message session, add it now + SNPRINTF(dataChannelMessage.firstMessageFromMasterTs, 20, "%llu", GETTIME() / 10000); + break; + } + } else if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "secondMessageFromViewerTs")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + // parse and retain this message from the viewer to send it back again + if (strLen != 0) { + STRNCPY(dataChannelMessage.secondMessageFromViewerTs, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } + } else if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "secondMessageFromMasterTs")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + if (strLen != 0) { + // since the length is not zero, we have already attached this timestamp to structure in the last iteration + STRNCPY(dataChannelMessage.secondMessageFromMasterTs, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } else { + // if this timestamp was not assigned during the previous message session, add it now + SNPRINTF(dataChannelMessage.secondMessageFromMasterTs, 20, "%llu", GETTIME() / 10000); + break; + } + } else if (compareJsonString(json, &tokens[i], JSMN_STRING, (PCHAR) "lastMessageFromViewerTs")) { + strLen = (UINT32) (tokens[i + 1].end - tokens[i + 1].start); + if (strLen != 0) { + STRNCPY(dataChannelMessage.lastMessageFromViewerTs, json + tokens[i + 1].start, tokens[i + 1].end - tokens[i + 1].start); + } + } + } + + if (STRLEN(dataChannelMessage.lastMessageFromViewerTs) == 0) { + // continue sending the data_channel_metrics_message with new timestamps until we receive the lastMessageFromViewerTs from the viewer + SNPRINTF(pMessageSend, MAX_DATA_CHANNEL_METRICS_MESSAGE_SIZE, DATA_CHANNEL_MESSAGE_TEMPLATE, MASTER_DATA_CHANNEL_MESSAGE, + dataChannelMessage.firstMessageFromViewerTs, dataChannelMessage.firstMessageFromMasterTs, + dataChannelMessage.secondMessageFromViewerTs, dataChannelMessage.secondMessageFromMasterTs, + dataChannelMessage.lastMessageFromViewerTs); + DLOGI("Master's response: %s", pMessageSend); + + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) pMessageSend, STRLEN(pMessageSend)); + } else { + // now that we've received the last message, send across the signaling, peerConnection, ice metrics + SNPRINTF(pSampleStreamingSession->pSignalingClientMetricsMessage, MAX_SIGNALING_CLIENT_METRICS_MESSAGE_SIZE, + SIGNALING_CLIENT_METRICS_JSON_TEMPLATE, pSampleConfiguration->signalingClientMetrics.signalingStartTime, + pSampleConfiguration->signalingClientMetrics.signalingEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.offerReceivedTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.answerTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.describeChannelStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.describeChannelEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getSignalingChannelEndpointStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getSignalingChannelEndpointEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getIceServerConfigStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getIceServerConfigEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getTokenStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.getTokenEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.createChannelStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.createChannelEndTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.connectStartTime, + pSampleConfiguration->signalingClientMetrics.signalingClientStats.connectEndTime); + DLOGI("Sending signaling metrics to the viewer: %s", pSampleStreamingSession->pSignalingClientMetricsMessage); + + CHK_STATUS(peerConnectionGetMetrics(pSampleStreamingSession->pPeerConnection, &pSampleStreamingSession->peerConnectionMetrics)); + SNPRINTF(pSampleStreamingSession->pPeerConnectionMetricsMessage, MAX_PEER_CONNECTION_METRICS_MESSAGE_SIZE, + PEER_CONNECTION_METRICS_JSON_TEMPLATE, + pSampleStreamingSession->peerConnectionMetrics.peerConnectionStats.peerConnectionStartTime, + pSampleStreamingSession->peerConnectionMetrics.peerConnectionStats.peerConnectionConnectedTime); + DLOGI("Sending peer-connection metrics to the viewer: %s", pSampleStreamingSession->pPeerConnectionMetricsMessage); + + CHK_STATUS(iceAgentGetMetrics(pSampleStreamingSession->pPeerConnection, &pSampleStreamingSession->iceMetrics)); + SNPRINTF(pSampleStreamingSession->pIceAgentMetricsMessage, MAX_ICE_AGENT_METRICS_MESSAGE_SIZE, ICE_AGENT_METRICS_JSON_TEMPLATE, + pSampleStreamingSession->iceMetrics.kvsIceAgentStats.candidateGatheringStartTime, + pSampleStreamingSession->iceMetrics.kvsIceAgentStats.candidateGatheringEndTime); + DLOGI("Sending ice-agent metrics to the viewer: %s", pSampleStreamingSession->pIceAgentMetricsMessage); + + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) pSampleStreamingSession->pSignalingClientMetricsMessage, + STRLEN(pSampleStreamingSession->pSignalingClientMetricsMessage)); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) pSampleStreamingSession->pPeerConnectionMetricsMessage, + STRLEN(pSampleStreamingSession->pPeerConnectionMetricsMessage)); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) pSampleStreamingSession->pIceAgentMetricsMessage, + STRLEN(pSampleStreamingSession->pIceAgentMetricsMessage)); + } + } else { + DLOGI("DataChannel string message: %.*s\n", pMessageLen, pMessage); + STRCPY(errorMessage, "Send a json message for benchmarking as the C SDK is operating in benchmarking mode"); + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) errorMessage, STRLEN(errorMessage)); + } + } else { + if (isBinary) { + DLOGI("DataChannel Binary Message"); + } else { + DLOGI("DataChannel String Message: %.*s\n", pMessageLen, pMessage); + } + // Send a response to the message sent by the viewer + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) MASTER_DATA_CHANNEL_MESSAGE, STRLEN(MASTER_DATA_CHANNEL_MESSAGE)); + } + if (retStatus != STATUS_SUCCESS) { + DLOGI("[KVS Master] dataChannelSend(): operation returned status code: 0x%08x \n", retStatus); + } + +CleanUp: + CHK_LOG_ERR(retStatus); +} + +VOID onDataChannel(UINT64 customData, PRtcDataChannel pRtcDataChannel) +{ + DLOGI("New DataChannel has been opened %s \n", pRtcDataChannel->name); + dataChannelOnMessage(pRtcDataChannel, customData, onDataChannelMessage); +} +#endif diff --git a/samples/Samples.h b/samples/Samples.h index 41c34897af..83644c0689 100644 --- a/samples/Samples.h +++ b/samples/Samples.h @@ -49,18 +49,28 @@ extern "C" { #define IOT_CORE_THING_NAME ((PCHAR) "AWS_IOT_CORE_THING_NAME") #define IOT_CORE_CERTIFICATE_ID ((PCHAR) "AWS_IOT_CORE_CERTIFICATE_ID") +/* Uncomment the following line in order to enable IoT credentials checks in the provided samples */ +// #define IOT_CORE_ENABLE_CREDENTIALS 1 + #define MASTER_DATA_CHANNEL_MESSAGE "This message is from the KVS Master" #define VIEWER_DATA_CHANNEL_MESSAGE "This message is from the KVS Viewer" -// Signaling client threadpool for handling messages -#define KVS_SIGNALING_THREADPOOL_MIN 3 -#define KVS_SIGNALING_THREADPOOL_MAX 5 - -// comment out this line to disable the feature -#define KVS_USE_SIGNALING_CHANNEL_THREADPOOL 1 - -/* Uncomment the following line in order to enable IoT credentials checks in the provided samples */ -// #define IOT_CORE_ENABLE_CREDENTIALS 1 +#define DATA_CHANNEL_MESSAGE_TEMPLATE \ + "{\"content\":\"%s\",\"firstMessageFromViewerTs\":\"%s\",\"firstMessageFromMasterTs\":\"%s\",\"secondMessageFromViewerTs\":\"%s\"," \ + "\"secondMessageFromMasterTs\":\"%s\",\"lastMessageFromViewerTs\":\"%s\" }" +#define PEER_CONNECTION_METRICS_JSON_TEMPLATE "{\"peerConnectionStartTime\": %llu, \"peerConnectionEndTime\": %llu }" +#define SIGNALING_CLIENT_METRICS_JSON_TEMPLATE \ + "{\"signalingStartTime\": %llu, \"signalingEndTime\": %llu, \"offerReceiptTime\": %llu, \"sendAnswerTime\": %llu, " \ + "\"describeChannelStartTime\": %llu, \"describeChannelEndTime\": %llu, \"getSignalingChannelEndpointStartTime\": %llu, " \ + "\"getSignalingChannelEndpointEndTime\": %llu, \"getIceServerConfigStartTime\": %llu, \"getIceServerConfigEndTime\": %llu, " \ + "\"getTokenStartTime\": %llu, \"getTokenEndTime\": %llu, \"createChannelStartTime\": %llu, \"createChannelEndTime\": %llu, " \ + "\"connectStartTime\": %llu, \"connectEndTime\": %llu }" +#define ICE_AGENT_METRICS_JSON_TEMPLATE "{\"candidateGatheringStartTime\": %llu, \"candidateGatheringEndTime\": %llu }" + +#define MAX_DATA_CHANNEL_METRICS_MESSAGE_SIZE 260 // strlen(DATA_CHANNEL_MESSAGE_TEMPLATE) + 20 * 5 +#define MAX_PEER_CONNECTION_METRICS_MESSAGE_SIZE 105 // strlen(PEER_CONNECTION_METRICS_JSON_TEMPLATE) + 20 * 2 +#define MAX_SIGNALING_CLIENT_METRICS_MESSAGE_SIZE 736 // strlen(SIGNALING_CLIENT_METRICS_JSON_TEMPLATE) + 20 * 10 +#define MAX_ICE_AGENT_METRICS_MESSAGE_SIZE 113 // strlen(ICE_AGENT_METRICS_JSON_TEMPLATE) + 20 * 2 typedef enum { SAMPLE_STREAMING_VIDEO_ONLY, @@ -119,6 +129,7 @@ typedef struct { CVAR cvar; BOOL trickleIce; BOOL useTurn; + BOOL enableSendingMetricsToViewerViaDc; BOOL enableFileLogging; UINT64 customData; PSampleStreamingSession sampleStreamingSessionList[DEFAULT_MAX_CONCURRENT_STREAMING_SESSION]; @@ -139,6 +150,15 @@ typedef struct { UINT32 logLevel; } SampleConfiguration, *PSampleConfiguration; +typedef struct { + CHAR content[100]; + CHAR firstMessageFromViewerTs[20]; + CHAR firstMessageFromMasterTs[20]; + CHAR secondMessageFromViewerTs[20]; + CHAR secondMessageFromMasterTs[20]; + CHAR lastMessageFromViewerTs[20]; +} DataChannelMessage; + typedef struct { UINT64 hashValue; UINT64 createTime; @@ -173,8 +193,20 @@ struct __SampleStreamingSession { UINT64 offerReceiveTime; PeerConnectionMetrics peerConnectionMetrics; KvsIceAgentMetrics iceMetrics; + CHAR pPeerConnectionMetricsMessage[MAX_PEER_CONNECTION_METRICS_MESSAGE_SIZE]; + CHAR pSignalingClientMetricsMessage[MAX_SIGNALING_CLIENT_METRICS_MESSAGE_SIZE]; + CHAR pIceAgentMetricsMessage[MAX_ICE_AGENT_METRICS_MESSAGE_SIZE]; }; +// TODO this should all be in a higher webrtccontext layer above PeerConnection +// Placing it here now since this is where all the current webrtccontext functions are placed +typedef struct { + SIGNALING_CLIENT_HANDLE signalingClientHandle; + PRtcPeerConnection pRtcPeerConnection; + PUINT32 pUriCount; + +} AsyncGetIceStruct; + VOID sigintHandler(INT32); STATUS readFrameFromDisk(PBYTE, PUINT32, PCHAR); PVOID sendVideoPackets(PVOID); diff --git a/samples/kvsWebRTCClientMaster.c b/samples/kvsWebRTCClientMaster.c index f4a4529685..fcc5a1835b 100644 --- a/samples/kvsWebRTCClientMaster.c +++ b/samples/kvsWebRTCClientMaster.c @@ -19,7 +19,8 @@ INT32 main(INT32 argc, CHAR* argv[]) #endif #ifdef IOT_CORE_ENABLE_CREDENTIALS - CHK_ERR((pChannelName = getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set"); + CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, + "AWS_IOT_CORE_THING_NAME must be set"); #else pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME; #endif @@ -53,7 +54,11 @@ INT32 main(INT32 argc, CHAR* argv[]) CHK_STATUS(initKvsWebRtc()); DLOGI("[KVS Master] KVS WebRTC initialization completed successfully"); - CHK_STATUS(initSignaling(pSampleConfiguration, SAMPLE_MASTER_CLIENT_ID)); + PROFILE_CALL_WITH_START_END_T_OBJ( + retStatus = initSignaling(pSampleConfiguration, SAMPLE_MASTER_CLIENT_ID), pSampleConfiguration->signalingClientMetrics.signalingStartTime, + pSampleConfiguration->signalingClientMetrics.signalingEndTime, pSampleConfiguration->signalingClientMetrics.signalingCallTime, + "Initialize signaling client and connect to the signaling channel"); + DLOGI("[KVS Master] Channel %s set up done ", pChannelName); // Checking for termination @@ -175,6 +180,9 @@ PVOID sendVideoPackets(PVOID args) if (status != STATUS_SUCCESS) { DLOGV("writeFrame() failed with 0x%08x", status); } + } else { + // Reset file index to ensure first frame sent upon SRTP ready is a key frame. + fileIndex = 0; } } MUTEX_UNLOCK(pSampleConfiguration->streamingSessionListReadLock); @@ -238,6 +246,9 @@ PVOID sendAudioPackets(PVOID args) PROFILE_WITH_START_TIME(pSampleConfiguration->sampleStreamingSessionList[i]->offerReceiveTime, "Time to first frame"); pSampleConfiguration->sampleStreamingSessionList[i]->firstFrame = FALSE; } + } else { + // Reset file index to stay in sync with video frames. + fileIndex = 0; } } MUTEX_UNLOCK(pSampleConfiguration->streamingSessionListReadLock); diff --git a/samples/kvsWebRTCClientViewer.c b/samples/kvsWebRTCClientViewer.c index 000aa61261..bde875ce6e 100644 --- a/samples/kvsWebRTCClientViewer.c +++ b/samples/kvsWebRTCClientViewer.c @@ -51,7 +51,8 @@ INT32 main(INT32 argc, CHAR* argv[]) #endif #ifdef IOT_CORE_ENABLE_CREDENTIALS - CHK_ERR((pChannelName = getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set"); + CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, + "AWS_IOT_CORE_THING_NAME must be set"); #else pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME; #endif @@ -82,6 +83,7 @@ INT32 main(INT32 argc, CHAR* argv[]) MEMSET(&offerSessionDescriptionInit, 0x00, SIZEOF(RtcSessionDescriptionInit)); + offerSessionDescriptionInit.useTrickleIce = pSampleStreamingSession->remoteCanTrickleIce; CHK_STATUS(setLocalDescription(pSampleStreamingSession->pPeerConnection, &offerSessionDescriptionInit)); DLOGI("[KVS Viewer] Completed setting local description"); @@ -162,12 +164,12 @@ INT32 main(INT32 argc, CHAR* argv[]) if (pSampleConfiguration != NULL) { retStatus = freeSignalingClient(&pSampleConfiguration->signalingClientHandle); if (retStatus != STATUS_SUCCESS) { - DLOGE("[KVS Master] freeSignalingClient(): operation returned status code: 0x%08x ", retStatus); + DLOGE("[KVS Viewer] freeSignalingClient(): operation returned status code: 0x%08x ", retStatus); } retStatus = freeSampleConfiguration(&pSampleConfiguration); if (retStatus != STATUS_SUCCESS) { - DLOGE("[KVS Master] freeSampleConfiguration(): operation returned status code: 0x%08x ", retStatus); + DLOGE("[KVS Viewer] freeSampleConfiguration(): operation returned status code: 0x%08x ", retStatus); } } DLOGI("[KVS Viewer] Cleanup done"); diff --git a/samples/kvsWebrtcClientMasterGstSample.c b/samples/kvsWebrtcClientMasterGstSample.c index 0ccf87b5bd..2cd75ba181 100644 --- a/samples/kvsWebrtcClientMasterGstSample.c +++ b/samples/kvsWebrtcClientMasterGstSample.c @@ -78,11 +78,13 @@ GstFlowReturn on_new_sample(GstElement* sink, gpointer data, UINT64 trackid) status = writeFrame(pRtcRtpTransceiver, &frame); if (status != STATUS_SRTP_NOT_READY_YET && status != STATUS_SUCCESS) { #ifdef VERBOSE - DLOGE("writeFrame() failed with 0x%08x", status); + DLOGE("[KVS GStreamer Master] writeFrame() failed with 0x%08x", status); #endif } else if (status == STATUS_SUCCESS && pSampleStreamingSession->firstFrame) { PROFILE_WITH_START_TIME(pSampleStreamingSession->offerReceiveTime, "Time to first frame"); pSampleStreamingSession->firstFrame = FALSE; + } else if (status == STATUS_SRTP_NOT_READY_YET) { + DLOGI("[KVS GStreamer Master] SRTP not ready yet, dropping frame"); } } MUTEX_UNLOCK(pSampleConfiguration->streamingSessionListReadLock); @@ -180,7 +182,7 @@ PVOID sendGstreamerAudioVideo(PVOID args) pSampleConfiguration->rtspUri); if (stringOutcome > RTSP_PIPELINE_MAX_CHAR_COUNT) { - printf("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT\n"); + DLOGE("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT"); goto CleanUp; } pipeline = gst_parse_launch(rtspPipeLineBuffer, &error); @@ -226,7 +228,7 @@ PVOID sendGstreamerAudioVideo(PVOID args) pSampleConfiguration->rtspUri); if (stringOutcome > RTSP_PIPELINE_MAX_CHAR_COUNT) { - printf("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT\n"); + DLOGE("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT"); goto CleanUp; } pipeline = gst_parse_launch(rtspPipeLineBuffer, &error); @@ -243,8 +245,7 @@ PVOID sendGstreamerAudioVideo(PVOID args) appsinkAudio = gst_bin_get_by_name(GST_BIN(pipeline), "appsink-audio"); if (!(appsinkVideo != NULL || appsinkAudio != NULL)) { - printf("[KVS GStreamer Master] sendGstreamerAudioVideo(): cant find appsink, operation returned status code: 0x%08x \n", - STATUS_INTERNAL_ERROR); + DLOGE("[KVS GStreamer Master] sendGstreamerAudioVideo(): cant find appsink, operation returned status code: 0x%08x", STATUS_INTERNAL_ERROR); goto CleanUp; } @@ -281,7 +282,7 @@ PVOID sendGstreamerAudioVideo(PVOID args) CleanUp: if (error != NULL) { - DLOGE("%s", error->message); + DLOGE("[KVS GStreamer Master] %s", error->message); g_clear_error(&error); } @@ -377,7 +378,7 @@ PVOID receiveGstreamerAudioVideo(PVOID args) CleanUp: if (error != NULL) { - DLOGE("%s", error->message); + DLOGE("[KVS GStreamer Master] %s", error->message); g_clear_error(&error); } @@ -396,7 +397,8 @@ INT32 main(INT32 argc, CHAR* argv[]) signal(SIGINT, sigintHandler); #ifdef IOT_CORE_ENABLE_CREDENTIALS - CHK_ERR((pChannelName = getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set"); + CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, + "AWS_IOT_CORE_THING_NAME must be set"); #else pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME; #endif @@ -444,9 +446,9 @@ INT32 main(INT32 argc, CHAR* argv[]) } else if (STRCMP(argv[3], "rtspsrc") == 0) { DLOGI("[KVS GStreamer Master] Using RTSP source in GStreamer"); if (argc < 5) { - printf("[KVS GStreamer Master] No RTSP source URI included. Defaulting to device source"); - printf("[KVS GStreamer Master] Usage: ./kvsWebrtcClientMasterGstSample audio-video rtspsrc rtsp://\n" - "or ./kvsWebrtcClientMasterGstSample video-only rtspsrc "); + DLOGI("[KVS GStreamer Master] No RTSP source URI included. Defaulting to device source"); + DLOGI("[KVS GStreamer Master] Usage: ./kvsWebrtcClientMasterGstSample audio-video rtspsrc rtsp://" + "or ./kvsWebrtcClientMasterGstSample video-only rtspsrc "); pSampleConfiguration->srcType = DEVICE_SOURCE; } else { pSampleConfiguration->srcType = RTSP_SOURCE; @@ -456,7 +458,7 @@ INT32 main(INT32 argc, CHAR* argv[]) DLOGI("[KVS Gstreamer Master] Unrecognized source type. Defaulting to device source in GStreamer"); } } else { - printf("[KVS GStreamer Master] Using device source in GStreamer\n"); + DLOGI("[KVS GStreamer Master] Using device source in GStreamer"); } switch (pSampleConfiguration->mediaType) { diff --git a/scripts/check-sample.sh b/scripts/check-sample.sh index e5312a4f11..d4d8cdbe5b 100755 --- a/scripts/check-sample.sh +++ b/scripts/check-sample.sh @@ -1,6 +1,6 @@ #!/bin/bash -if [[ -z "$AWS_ACCESS_KEY_ID" || -z "$AWS_SECRET_ACCESS_KEY" ]] +if [[ -z "$AWS_ACCESS_KEY_ID" || -z "$AWS_SECRET_ACCESS_KEY" || -z "$AWS_SESSION_TOKEN" ]] then echo "Couldn't find AWS credentials. Very likely this build is coming from a fork. Ignoring." exit 0 diff --git a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h index dce4517605..3fcadf5693 100644 --- a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h +++ b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h @@ -46,6 +46,23 @@ extern "C" { DLOGP("[%s] Time taken: %" PRIu64 " ms", msg, (GETTIME() - (t)) / HUNDREDS_OF_NANOS_IN_A_MILLISECOND); \ } while (FALSE) +#define PROFILE_CALL_WITH_START_END_T_OBJ(f, s, e, d, msg) \ + do { \ + s = GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; \ + f; \ + e = GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; \ + d = ((e) - (s)); \ + DLOGP("[%s] Time taken: %" PRIu64 " ms", (msg), (d)); \ + } while (FALSE) + +#define PROFILE_WITH_START_END_TIME_OBJ(t1, t2, d, msg) \ + do { \ + t1 = (t1 / HUNDREDS_OF_NANOS_IN_A_MILLISECOND); \ + t2 = (GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND); \ + d = ((t2) - (t1)); \ + DLOGP("[%s] Time taken: %" PRIu64 " ms", (msg), (d)); \ + } while (FALSE) + #define PROFILE_WITH_START_TIME_OBJ(t1, t2, msg) \ do { \ t2 = (GETTIME() - (t1)) / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; \ @@ -191,7 +208,7 @@ extern "C" { #define STATUS_SSL_PACKET_BEFORE_DTLS_READY STATUS_DTLS_BASE + 0x00000004 #define STATUS_SSL_UNKNOWN_SRTP_PROFILE STATUS_DTLS_BASE + 0x00000005 #define STATUS_SSL_INVALID_CERTIFICATE_BITS STATUS_DTLS_BASE + 0x00000006 - +#define STATUS_DTLS_SESSION_ALREADY_FREED STATUS_DTLS_BASE + 0x00000007 /*!@} */ ///////////////////////////////////////////////////// @@ -236,7 +253,10 @@ extern "C" { #define STATUS_TURN_CONNECTION_PEER_NOT_USABLE STATUS_ICE_BASE + 0x00000027 #define STATUS_ICE_SERVER_INDEX_INVALID STATUS_ICE_BASE + 0x00000028 #define STATUS_ICE_CANDIDATE_STRING_MISSING_TYPE STATUS_ICE_BASE + 0x00000029 -#define STATUS_TURN_CONNECTION_ALLOCAITON_FAILED STATUS_ICE_BASE + 0x0000002a +#define STATUS_TURN_CONNECTION_ALLOCATION_FAILED STATUS_ICE_BASE + 0x0000002a +#define STATUS_TURN_INVALID_STATE STATUS_ICE_BASE + 0x0000002b +#define STATUS_TURN_CONNECTION_GET_CREDENTIALS_FAILED STATUS_ICE_BASE + 0x0000002c + /*!@} */ ///////////////////////////////////////////////////// @@ -356,6 +376,7 @@ extern "C" { #define STATUS_PEERCONNECTION_CREATE_ANSWER_WITHOUT_REMOTE_DESCRIPTION STATUS_PEERCONNECTION_BASE + 0x00000001 #define STATUS_PEERCONNECTION_CODEC_INVALID STATUS_PEERCONNECTION_BASE + 0x00000002 #define STATUS_PEERCONNECTION_CODEC_MAX_EXCEEDED STATUS_PEERCONNECTION_BASE + 0x00000003 +#define STATUS_PEERCONNECTION_EARLY_DNS_RESOLUTION_FAILED STATUS_PEERCONNECTION_BASE + 0x00000004 /*!@} */ ///////////////////////////////////////////////////// @@ -639,6 +660,26 @@ extern "C" { */ #define SIGNALING_CONNECT_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) +/** + * Default minimum number of threads in the threadpool for the SDK + */ +#define THREADPOOL_MIN_THREADS 3 + +/** + * Default maximum number of threads in the threadpool for the SDK + */ +#define THREADPOOL_MAX_THREADS 10 + +/** + * Env to set minimum number of threads in the threadpool for the KVS SDK + */ +#define WEBRTC_THREADPOOL_MIN_THREADS_ENV_VAR (PCHAR) "AWS_KVS_WEBRTC_THREADPOOL_MIN_THREADS" + +/** + * Env to set maximum number of threads in the threadpool for the SDK + */ +#define WEBRTC_THREADPOOL_MAX_THREADS_ENV_VAR (PCHAR) "AWS_KVS_WEBRTC_THREADPOOL_MAX_THREADS" + #ifdef _WIN32 /** * Default timeout for sending data @@ -686,9 +727,10 @@ extern "C" { /** * Parameterized string for KVS STUN Server */ -#define KINESIS_VIDEO_STUN_URL_POSTFIX "amazonaws.com" -#define KINESIS_VIDEO_STUN_URL_POSTFIX_CN "amazonaws.com.cn" -#define KINESIS_VIDEO_STUN_URL "stun:stun.kinesisvideo.%s.%s:443" +#define KINESIS_VIDEO_STUN_URL_POSTFIX "amazonaws.com" +#define KINESIS_VIDEO_STUN_URL_POSTFIX_CN "amazonaws.com.cn" +#define KINESIS_VIDEO_STUN_URL "stun:stun.kinesisvideo.%s.%s:443" +#define KINESIS_VIDEO_STUN_URL_WITHOUT_PORT "stun.kinesisvideo.%s.%s" /** * Default signaling SSL port @@ -1139,7 +1181,7 @@ typedef struct { //!< USE_CANDIDATE attribute. If client is ice controlled, this is the timeout for receiving binding request //!< that has USE_CANDIDATE attribute after connection check is done. Use default value if 0. - UINT32 iceConnectionCheckPollingInterval; //!< Ta in https://tools.ietf.org/html/rfc8445 + UINT32 iceConnectionCheckPollingInterval; //!< Ta in https://datatracker.ietf.org/doc/html/rfc8445#section-14.2 //!< rate at which binding request packets are sent during connection check. Use default interval if 0. INT32 generatedCertificateBits; //!< GeneratedCertificateBits controls the amount of bits the locally generated self-signed certificate uses @@ -1201,6 +1243,7 @@ typedef struct { */ typedef struct { SDP_TYPE type; //!< Indicates an offer/answer SDP type + BOOL useTrickleIce; //!< Indicates if an offer should set trickle ice CHAR sdp[MAX_SESSION_DESCRIPTION_INIT_SDP_LEN + 1]; //!< SDP Data containing media capabilities, transport addresses //!< and related metadata in a transport agnostic manner //!< @@ -1264,10 +1307,10 @@ typedef struct { //!< being used this value can be NULL or point to an EMPTY_STRING. KvsRetryStrategyCallbacks signalingRetryStrategyCallbacks; //!< Retry strategy callbacks used while creating signaling client INT32 signalingClientCreationMaxRetryAttempts; //!< Max attempts to create signaling client before returning error to the caller - UINT32 stateMachineRetryCountReadOnly; //!< Retry count of state machine. Note that this **MUST NOT** be modified by the user. It is a read only - //!< field - UINT32 signalingMessagesMinimumThreads; - UINT32 signalingMessagesMaximumThreads; + UINT32 stateMachineRetryCountReadOnly; //!< Retry count of state machine. Note that this **MUST NOT** be modified by the user. It is a read only + //!< field + UINT32 signalingMessagesMinimumThreads; //!< Unused field post v1.8.1 + UINT32 signalingMessagesMaximumThreads; //!< Unused field post v1.8.1 } SignalingClientInfo, *PSignalingClientInfo; /** @@ -1506,7 +1549,10 @@ typedef struct { * @brief SignalingStats Collection of signaling related stats. Can be expanded in the future */ typedef struct { - UINT32 version; //!< Structure version + UINT32 version; //!< Structure version + UINT64 signalingStartTime; + UINT64 signalingEndTime; + UINT64 signalingCallTime; SignalingClientStats signalingClientStats; //!< Signaling client metrics stats. Reference in Stats.h } SignalingClientMetrics, *PSignalingClientMetrics; @@ -1573,6 +1619,16 @@ typedef struct { */ PUBLIC_API STATUS createPeerConnection(PRtcConfiguration, PRtcPeerConnection*); +/** + * @brief Give peer connection an ice config to add to its server list + * + * @param[in] PRtcPeerConnection* initialized RtcPeerConnection + * @param[in] PIceConfigInfo Ice config info to add to this peer connection + * + * @return STATUS code of the execution. STATUS_SUCCESS on success + */ +PUBLIC_API STATUS addConfigToServerList(PRtcPeerConnection*, PIceConfigInfo); + /** * @brief Free a RtcPeerConnection * @@ -1649,6 +1705,16 @@ PUBLIC_API STATUS peerConnectionGetLocalDescription(PRtcPeerConnection, PRtcSess */ PUBLIC_API STATUS peerConnectionGetCurrentLocalDescription(PRtcPeerConnection, PRtcSessionDescriptionInit); +/** + * Allows use of internal threadpool + * + * @param[in] startRoutine function pointer to execute in threadpool + * @param[in] PVOID void pointer to pass to function pointer + * + * @return STATUS code of the execution. STATUS_SUCCESS on success + */ +PUBLIC_API STATUS peerConnectionAsync(startRoutine fn, PVOID data); + /** * @brief Populate the provided answer that contains an RFC 3264 offer * with the supported configurations for the session. diff --git a/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h b/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h index 56b1f6711a..72fffb67ba 100644 --- a/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h +++ b/src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h @@ -256,6 +256,8 @@ typedef struct { UINT64 iceCandidatePairNominationTime; UINT64 candidateGatheringTime; UINT64 iceAgentSetUpTime; + UINT64 candidateGatheringStartTime; + UINT64 candidateGatheringEndTime; } KvsIceAgentStats, *PKvsIceAgentStats; /** @@ -571,6 +573,18 @@ typedef struct { * @brief SignalingClientMetrics Represent the stats related to the KVS WebRTC SDK signaling client */ typedef struct { + UINT64 describeChannelStartTime; + UINT64 describeChannelEndTime; + UINT64 getSignalingChannelEndpointStartTime; + UINT64 getSignalingChannelEndpointEndTime; + UINT64 getIceServerConfigStartTime; + UINT64 getIceServerConfigEndTime; + UINT64 getTokenStartTime; + UINT64 getTokenEndTime; + UINT64 createChannelStartTime; + UINT64 createChannelEndTime; + UINT64 connectStartTime; + UINT64 connectEndTime; UINT64 cpApiCallLatency; //!< Latency (in 100 ns) incurred per backend API call for the control plane APIs UINT64 dpApiCallLatency; //!< Latency (in 100 ns) incurred per backend API call for the data plane APIs UINT64 signalingClientUptime; //!< Client uptime (in 100 ns). Timestamp will be recorded at every SIGNALING_CLIENT_STATE_CONNECTED @@ -606,15 +620,20 @@ typedef struct { fetchClientTime; //!< Total time (ms) taken to fetch signaling client which includes describe, create, get endpoint and get ICE server config UINT64 connectClientTime; //!< Total time (ms) taken to connect the signaling client which includes connecting to the signaling channel UINT64 offerToAnswerTime; + UINT64 offerReceivedTime; + UINT64 answerTime; UINT64 joinSessionToOfferRecvTime; //!< Total time (ms) taken from joinSession call until offer is received } SignalingClientStats, *PSignalingClientStats; typedef struct { + UINT64 peerConnectionStartTime; + UINT64 peerConnectionConnectedTime; UINT64 peerConnectionCreationTime; //!< Time taken (ms) for peer connection object creation time UINT64 dtlsSessionSetupTime; //!< Time taken (ms) for DTLS handshake to complete UINT64 iceHolePunchingTime; //!< Time taken (ms) for ICE agent set up to complete UINT64 closePeerConnectionTime; //!< Time taken (ms) to close the peer connection UINT64 freePeerConnectionTime; //!< Time taken (ms) to free the peer connection object + UINT64 stunDnsResolutionTime; //!< Time taken (ms) to complete STUN DNS resolution on the thread } PeerConnectionStats, *PPeerConnectionStats; /** diff --git a/src/source/Crypto/Dtls.h b/src/source/Crypto/Dtls.h index f932a8c37c..7f0fbd9532 100644 --- a/src/source/Crypto/Dtls.h +++ b/src/source/Crypto/Dtls.h @@ -43,6 +43,13 @@ typedef enum { RTC_DTLS_TRANSPORT_STATE_FAILED, /* The transport has failed as the result of an error */ } RTC_DTLS_TRANSPORT_STATE; +typedef enum { + DTLS_STATE_HANDSHAKE_NEW, + DTLS_STATE_HANDSHAKE_IN_PROGRESS, + DTLS_STATE_HANDSHAKE_COMPLETED, + DTLS_STATE_HANDSHAKE_ERROR, +} DTLS_HANDSHAKE_STATE; + /* Callback that is fired when Dtls Server wishes to send packet */ typedef VOID (*DtlsSessionOutboundPacketFunc)(UINT64, PBYTE, UINT32); @@ -98,7 +105,8 @@ typedef struct { typedef struct __DtlsSession DtlsSession, *PDtlsSession; struct __DtlsSession { volatile ATOMIC_BOOL isStarted; - volatile ATOMIC_BOOL shutdown; + volatile ATOMIC_BOOL isShutdown; + volatile ATOMIC_BOOL isCleanUp; UINT32 certificateCount; DtlsSessionCallbacks dtlsSessionCallbacks; TIMER_QUEUE_HANDLE timerQueueHandle; @@ -106,10 +114,13 @@ struct __DtlsSession { UINT64 dtlsSessionStartTime; UINT64 dtlsSessionSetupTime; RTC_DTLS_TRANSPORT_STATE state; + DTLS_HANDSHAKE_STATE handshakeState; MUTEX sslLock; #ifdef KVS_USE_OPENSSL volatile ATOMIC_BOOL sslInitFinished; + volatile SIZE_T objRefCount; + CVAR receivePacketCvar; // dtls message must fit into a UDP packet BYTE outgoingDataBuffer[MAX_UDP_PACKET_SIZE]; UINT32 outgoingDataLen; @@ -168,6 +179,7 @@ STATUS dtlsSessionShutdown(PDtlsSession); STATUS dtlsSessionOnOutBoundData(PDtlsSession, UINT64, DtlsSessionOutboundPacketFunc); STATUS dtlsSessionOnStateChange(PDtlsSession, UINT64, DtlsSessionOnStateChange); +STATUS dtlsSessionHandshakeInThread(PDtlsSession, BOOL); /******** Internal Functions **********/ STATUS dtlsValidateRtcCertificates(PRtcCertificate, PUINT32); diff --git a/src/source/Crypto/Dtls_mbedtls.c b/src/source/Crypto/Dtls_mbedtls.c index 36bf7a3f81..29dca1a8c6 100644 --- a/src/source/Crypto/Dtls_mbedtls.c +++ b/src/source/Crypto/Dtls_mbedtls.c @@ -248,6 +248,12 @@ INT32 dtlsSessionKeyDerivationCallback(PVOID customData, const unsigned char* pM return 0; } +STATUS dtlsSessionHandshakeInThread(PDtlsSession pDtlsSession, BOOL isServer) +{ + DLOGI("Threadpool based DTLS handshake not supported for mbedtls"); + return STATUS_SUCCESS; +} + STATUS dtlsSessionStart(PDtlsSession pDtlsSession, BOOL isServer) { ENTERS(); @@ -327,7 +333,7 @@ STATUS dtlsSessionProcessPacket(PDtlsSession pDtlsSession, PBYTE pData, PINT32 p CHK(pDtlsSession != NULL && pData != NULL && pDataLen != NULL, STATUS_NULL_ARG); CHK(ATOMIC_LOAD_BOOL(&pDtlsSession->isStarted), STATUS_SSL_PACKET_BEFORE_DTLS_READY); - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->shutdown), retStatus); + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isShutdown), retStatus); MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; @@ -384,7 +390,7 @@ STATUS dtlsSessionPutApplicationData(PDtlsSession pDtlsSession, PBYTE pData, INT BOOL iterate = TRUE; CHK(pData != NULL, STATUS_NULL_ARG); - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->shutdown), retStatus); + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isShutdown), retStatus); MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; @@ -530,13 +536,13 @@ STATUS dtlsSessionShutdown(PDtlsSession pDtlsSession) MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->shutdown), retStatus); + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isShutdown), retStatus); while (mbedtls_ssl_close_notify(&pDtlsSession->sslCtx) == MBEDTLS_ERR_SSL_WANT_WRITE) { // keep flushing outgoing buffer until nothing left } - ATOMIC_STORE_BOOL(&pDtlsSession->shutdown, TRUE); + ATOMIC_STORE_BOOL(&pDtlsSession->isShutdown, TRUE); CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CLOSED)); CleanUp: diff --git a/src/source/Crypto/Dtls_openssl.c b/src/source/Crypto/Dtls_openssl.c index d1fcb1b788..7b1ccf2b17 100644 --- a/src/source/Crypto/Dtls_openssl.c +++ b/src/source/Crypto/Dtls_openssl.c @@ -10,6 +10,20 @@ INT32 dtlsCertificateVerifyCallback(INT32 preverify_ok, X509_STORE_CTX* ctx) return 1; } +VOID acquireDtlsSession(PDtlsSession pDtlsSession) +{ + if (pDtlsSession != NULL) { + ATOMIC_INCREMENT(&pDtlsSession->objRefCount); + } +} + +VOID releaseDtlsSession(PDtlsSession pDtlsSession) +{ + if (pDtlsSession != NULL) { + ATOMIC_DECREMENT(&pDtlsSession->objRefCount); + } +} + STATUS dtlsCertificateFingerprint(X509* pCertificate, PCHAR pBuff) { ENTERS(); @@ -41,6 +55,7 @@ STATUS dtlsTransmissionTimerCallback(UINT32 timerID, UINT64 currentTime, UINT64 UINT64 timeoutValDefaultTimeUnit = 0; LONG dtlsTimeoutRet = 0; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL, STATUS_NULL_ARG); MEMSET(&timeout, 0x00, SIZEOF(struct timeval)); @@ -81,6 +96,7 @@ STATUS dtlsTransmissionTimerCallback(UINT32 timerID, UINT64 currentTime, UINT64 if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } + releaseDtlsSession(pDtlsSession); return retStatus; } @@ -276,6 +292,7 @@ STATUS createDtlsSession(PDtlsSessionCallbacks pDtlsSessionCallbacks, TIMER_QUEU PDtlsSession pDtlsSession = NULL; UINT32 i, certCount; UINT64 startTimeInMacro = 0; + BOOL acquired = FALSE; DtlsSessionCertificateInfo certInfos[MAX_RTCCONFIGURATION_CERTIFICATES]; MEMSET(certInfos, 0x00, SIZEOF(certInfos)); @@ -283,12 +300,16 @@ STATUS createDtlsSession(PDtlsSessionCallbacks pDtlsSessionCallbacks, TIMER_QUEU CHK_STATUS(dtlsValidateRtcCertificates(pRtcCertificates, &certCount)); pDtlsSession = MEMCALLOC(SIZEOF(DtlsSession), 1); + acquireDtlsSession(pDtlsSession); + acquired = TRUE; CHK(pDtlsSession != NULL, STATUS_NOT_ENOUGH_MEMORY); pDtlsSession->timerQueueHandle = timerQueueHandle; pDtlsSession->timerId = MAX_UINT32; pDtlsSession->sslLock = MUTEX_CREATE(TRUE); pDtlsSession->state = RTC_DTLS_TRANSPORT_STATE_NEW; + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_NEW; + pDtlsSession->receivePacketCvar = CVAR_CREATE(); ATOMIC_STORE_BOOL(&pDtlsSession->isStarted, FALSE); ATOMIC_STORE_BOOL(&pDtlsSession->sslInitFinished, FALSE); @@ -312,8 +333,8 @@ STATUS createDtlsSession(PDtlsSessionCallbacks pDtlsSessionCallbacks, TIMER_QUEU } } - CHK_STATUS(createSslCtx(certInfos, pDtlsSession->certificateCount, &pDtlsSession->pSslCtx)); - CHK_STATUS(createSsl(pDtlsSession->pSslCtx, &pDtlsSession->pSsl)); + PROFILE_CALL(CHK_STATUS(createSslCtx(certInfos, pDtlsSession->certificateCount, &pDtlsSession->pSslCtx)), "Create SSL Context"); + PROFILE_CALL(CHK_STATUS(createSsl(pDtlsSession->pSslCtx, &pDtlsSession->pSsl)), "Create SSL session"); // Generate and store the certificate fingerprints CHK_STATUS(dtlsGenerateCertificateFingerprints(pDtlsSession, certInfos)); @@ -335,6 +356,9 @@ STATUS createDtlsSession(PDtlsSessionCallbacks pDtlsSessionCallbacks, TIMER_QUEU freeDtlsSession(&pDtlsSession); } + if (acquired) { + releaseDtlsSession(pDtlsSession); + } LEAVES(); return retStatus; } @@ -357,18 +381,15 @@ STATUS dtlsGenerateCertificateFingerprints(PDtlsSession pDtlsSession, PDtlsSessi return retStatus; } -STATUS dtlsSessionStart(PDtlsSession pDtlsSession, BOOL isServer) +STATUS beginHandshakeProcess(PDtlsSession pDtlsSession, BOOL isServer, PINT32 sslRet) { ENTERS(); STATUS retStatus = STATUS_SUCCESS; - BOOL locked = FALSE; - INT32 sslRet, sslErr; - CHK(pDtlsSession != NULL && pDtlsSession != NULL, STATUS_NULL_ARG); - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isStarted), retStatus); + acquireDtlsSession(pDtlsSession); + CHK(pDtlsSession != NULL, STATUS_NULL_ARG); - MUTEX_LOCK(pDtlsSession->sslLock); - locked = TRUE; + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isStarted), retStatus); CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CONNECTING)); @@ -381,23 +402,168 @@ STATUS dtlsSessionStart(PDtlsSession pDtlsSession, BOOL isServer) } else { SSL_set_connect_state(pDtlsSession->pSsl); } - sslRet = SSL_do_handshake(pDtlsSession->pSsl); - if (sslRet <= 0) { - LOG_OPENSSL_ERROR("SSL_do_handshake"); + + if (!isServer) { + pDtlsSession->dtlsSessionStartTime = GETTIME(); } + *sslRet = SSL_do_handshake(pDtlsSession->pSsl); +CleanUp: + CHK_LOG_ERR(retStatus); + releaseDtlsSession(pDtlsSession); + LEAVES(); + return retStatus; +} +STATUS dtlsSessionStart(PDtlsSession pDtlsSession, BOOL isServer) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + INT32 sslRet; + + acquireDtlsSession(pDtlsSession); + CHK(pDtlsSession != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pDtlsSession->sslLock); + locked = TRUE; + + CHK_STATUS(beginHandshakeProcess(pDtlsSession, isServer, &sslRet)); pDtlsSession->dtlsSessionStartTime = GETTIME(); CHK_STATUS(timerQueueAddTimer(pDtlsSession->timerQueueHandle, DTLS_SESSION_TIMER_START_DELAY, DTLS_TRANSMISSION_INTERVAL, dtlsTransmissionTimerCallback, (UINT64) pDtlsSession, &pDtlsSession->timerId)); - CleanUp: - CHK_LOG_ERR(retStatus); - if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } + releaseDtlsSession(pDtlsSession); + LEAVES(); + return retStatus; +} + +STATUS dtlsSessionHandshakeInThread(PDtlsSession pDtlsSession, BOOL isServer) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + INT32 sslRet, sslErr; + struct timeval timeout; + int dtlsTimeoutRet = 0, dtlsHandleTimeoutRet = 0; + BOOL firstMsg = TRUE; + UINT64 waitTime = 1 * HUNDREDS_OF_NANOS_IN_A_SECOND; + BOOL dtlsHandshakeErrored = FALSE; + BOOL timedOut = FALSE; + MEMSET(&timeout, 0x00, SIZEOF(struct timeval)); + acquireDtlsSession(pDtlsSession); + CHK(pDtlsSession != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pDtlsSession->sslLock); + locked = TRUE; + + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isCleanUp), STATUS_DTLS_SESSION_ALREADY_FREED); + CHK_STATUS(beginHandshakeProcess(pDtlsSession, isServer, &sslRet)); + while (!(ATOMIC_LOAD_BOOL(&pDtlsSession->sslInitFinished)) && !dtlsHandshakeErrored && !(ATOMIC_LOAD_BOOL(&pDtlsSession->isCleanUp))) { + switch (pDtlsSession->handshakeState) { + case DTLS_STATE_HANDSHAKE_NEW: + if (sslRet <= 0) { + sslErr = SSL_get_error(pDtlsSession->pSsl, sslRet); + if (sslErr == SSL_ERROR_WANT_READ || sslErr == SSL_ERROR_WANT_WRITE) { + // If OpenSSL wants to read or write, it's an indication we should check the BIO + DLOGD("Handshake want READ/WRITE"); + CHK_STATUS(dtlsCheckOutgoingDataBuffer(pDtlsSession)); + } else { + DLOGI("Failed to complete handshake..but let it go on"); + // Handle other errors + LOG_OPENSSL_ERROR("SSL_do_handshake"); + } + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_IN_PROGRESS; + } else { + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_COMPLETED; + ATOMIC_STORE_BOOL(&pDtlsSession->sslInitFinished, TRUE); + CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CONNECTED)); + } + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_IN_PROGRESS; + break; + case DTLS_STATE_HANDSHAKE_IN_PROGRESS: + if (SSL_is_init_finished(pDtlsSession->pSsl)) { + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_COMPLETED; + ATOMIC_STORE_BOOL(&pDtlsSession->sslInitFinished, TRUE); + CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CONNECTED)); + } else { + // We check for timeout here. If the timeout is 0, it is likely it + // is in Server mode at which point it is basically waiting on the first message + // from DTLS client. So, we need to wait on the CVAR. Even if timeout is 0, there is no + // guarantee that handshake was complete. It just means that no retransmission is required + // We always rely on sslInitFinished to be set to truly confirm handshake was complete + + // DTLSv1_handle_timeout: https://www.openssl.org/docs/manmaster/man3/DTLSv1_handle_timeout.html + // DTLSv1_get_timeout: https://www.openssl.org/docs/manmaster/man3/DTLSv1_get_timeout.html + dtlsTimeoutRet = DTLSv1_get_timeout(pDtlsSession->pSsl, &timeout); + if (dtlsTimeoutRet == 0) { + // Listening in on fatal errors only: https://www.openssl.org/docs/man1.1.1/man3/SSL_get_error.html + if (sslErr == SSL_ERROR_SYSCALL || sslErr == SSL_ERROR_SSL) { + DLOGW("FATAL ERROR encountered while getting timeout"); + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_ERROR; + dtlsHandshakeErrored = TRUE; + } else { + DLOGI("No timeout is active, no retransmissions to handle"); + } + } else { + waitTime = timeout.tv_sec * HUNDREDS_OF_NANOS_IN_A_SECOND + timeout.tv_usec * HUNDREDS_OF_NANOS_IN_A_MICROSECOND; + } + if (!dtlsHandshakeErrored) { + timedOut = (CVAR_WAIT(pDtlsSession->receivePacketCvar, pDtlsSession->sslLock, waitTime) == STATUS_OPERATION_TIMED_OUT); + if (timedOut) { + DLOGD("DTLS handshake timeout event occurred, going to retransmit"); + dtlsHandleTimeoutRet = DTLSv1_handle_timeout(pDtlsSession->pSsl); + if (dtlsHandleTimeoutRet > 0) { + DLOGI("Timeout handled successfully, packet retransmitted"); + } else if (dtlsHandleTimeoutRet == 0) { + DLOGI("No pending timeout event to handle"); + } else { + sslErr = SSL_get_error(pDtlsSession->pSsl, sslRet); + if (sslErr == SSL_ERROR_SYSCALL || sslErr == SSL_ERROR_SSL) { + DLOGE("A fatal error was encountered while handling timeout"); + pDtlsSession->handshakeState = DTLS_STATE_HANDSHAKE_ERROR; + dtlsHandshakeErrored = TRUE; + } else { + DLOGW("Non fatal error while handling timeout, will retry next time"); + } + } + } + // We start calculating start of handshake DTLS handshake time taken in server mode only after clientHello + // is received, until then, we are only waiting, so we should not count that time into handshake latency + // calculation + if (isServer && firstMsg) { + pDtlsSession->dtlsSessionStartTime = GETTIME(); + firstMsg = FALSE; + } + CHK_STATUS(dtlsCheckOutgoingDataBuffer(pDtlsSession)); + } + } + break; + case DTLS_STATE_HANDSHAKE_COMPLETED: + // We would not hit this state because we would exit the while loop in the next iteration. But maintaining this state for + // completeness + DLOGI("Handshake completed"); + break; + case DTLS_STATE_HANDSHAKE_ERROR: + DLOGI("DTLS handshake could not be completed. Time outs in the handshake process"); + // We would not hit this state because we would exit the while loop in the next iteration. But maintaining this state for + // completeness + break; + default: + break; + } + } + DLOGI("Done with handshake, exiting from this thread"); +CleanUp: + CHK_LOG_ERR(retStatus); + if (locked) { + MUTEX_UNLOCK(pDtlsSession->sslLock); + } + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } @@ -414,10 +580,21 @@ STATUS freeDtlsSession(PDtlsSession* ppDtlsSession) CHK(pDtlsSession != NULL, retStatus); + DLOGI("Freeing the DTLS session"); + ATOMIC_STORE_BOOL(&pDtlsSession->isCleanUp, TRUE); + + // Wait until refCount drops to 0 or add a timeout mechanism to avoid indefinite waits + while (ATOMIC_LOAD(&pDtlsSession->objRefCount) > 0) { + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); + } if (pDtlsSession->timerId != MAX_UINT32) { timerQueueCancelTimer(pDtlsSession->timerQueueHandle, pDtlsSession->timerId, (UINT64) pDtlsSession); } + // Lock SSL free as an additional protection to ensure SSL contexts are not being used in the callbacks + // when actively freeing it + MUTEX_LOCK(pDtlsSession->sslLock); + if (pDtlsSession->pSsl != NULL) { SSL_free(pDtlsSession->pSsl); } @@ -425,8 +602,13 @@ STATUS freeDtlsSession(PDtlsSession* ppDtlsSession) SSL_CTX_free(pDtlsSession->pSslCtx); } if (IS_VALID_MUTEX_VALUE(pDtlsSession->sslLock)) { + CVAR_BROADCAST(pDtlsSession->receivePacketCvar); + MUTEX_UNLOCK(pDtlsSession->sslLock); MUTEX_FREE(pDtlsSession->sslLock); } + if (IS_VALID_CVAR_VALUE(pDtlsSession->receivePacketCvar)) { + CVAR_FREE(pDtlsSession->receivePacketCvar); + } SAFE_MEMFREE(pDtlsSession); *ppDtlsSession = NULL; @@ -445,38 +627,45 @@ STATUS dtlsSessionProcessPacket(PDtlsSession pDtlsSession, PBYTE pData, PINT32 p INT32 sslRet = 0, sslErr; INT32 dataLen = 0; - CHK(pDtlsSession != NULL && pDtlsSession != NULL && pDataLen != NULL, STATUS_NULL_ARG); + acquireDtlsSession(pDtlsSession); + CHK(pDtlsSession != NULL && pDataLen != NULL, STATUS_NULL_ARG); CHK(ATOMIC_LOAD_BOOL(&pDtlsSession->isStarted), STATUS_SSL_PACKET_BEFORE_DTLS_READY); MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; - sslRet = BIO_write(SSL_get_rbio(pDtlsSession->pSsl), pData, *pDataLen); - if (sslRet <= 0) { - LOG_OPENSSL_ERROR("BIO_write"); - } + CVAR_BROADCAST(pDtlsSession->receivePacketCvar); - // should clear error before SSL_read: https://stackoverflow.com/a/47218133 - ERR_clear_error(); - sslRet = SSL_read(pDtlsSession->pSsl, pData, *pDataLen); + if (!ATOMIC_LOAD_BOOL(&pDtlsSession->isCleanUp)) { + sslRet = BIO_write(SSL_get_rbio(pDtlsSession->pSsl), pData, *pDataLen); + if (sslRet <= 0) { + LOG_OPENSSL_ERROR("BIO_write"); + } - if (sslRet == 0 && SSL_get_error(pDtlsSession->pSsl, sslRet) == SSL_ERROR_ZERO_RETURN) { - DLOGI("Detected DTLS close_notify alert"); - isClosed = TRUE; - } else if (sslRet <= 0) { - LOG_OPENSSL_ERROR("SSL_read"); - } + // should clear error before SSL_read: https://stackoverflow.com/a/47218133 + ERR_clear_error(); + sslRet = SSL_read(pDtlsSession->pSsl, pData, *pDataLen); - if (!ATOMIC_LOAD_BOOL(&pDtlsSession->sslInitFinished)) { - CHK_STATUS(dtlsCheckOutgoingDataBuffer(pDtlsSession)); - } + if (sslRet == 0 && SSL_get_error(pDtlsSession->pSsl, sslRet) == SSL_ERROR_ZERO_RETURN) { + DLOGI("Detected DTLS close_notify alert"); + isClosed = TRUE; + } else if (sslRet <= 0) { + LOG_OPENSSL_ERROR("SSL_read"); + } + + if (!ATOMIC_LOAD_BOOL(&pDtlsSession->sslInitFinished)) { + CHK_STATUS(dtlsCheckOutgoingDataBuffer(pDtlsSession)); + } - /* if SSL_read failed then set to 0 */ - dataLen = sslRet < 0 ? 0 : sslRet; + /* if SSL_read failed then set to 0 */ + dataLen = sslRet < 0 ? 0 : sslRet; - if (isClosed) { - ATOMIC_STORE_BOOL(&pDtlsSession->shutdown, TRUE); - CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CLOSED)); + if (isClosed) { + ATOMIC_STORE_BOOL(&pDtlsSession->isShutdown, TRUE); + CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CLOSED)); + } + } else { + DLOGW("DTLS session being cleaned up...ignoring the incoming packet"); } CleanUp: @@ -490,6 +679,7 @@ STATUS dtlsSessionProcessPacket(PDtlsSession pDtlsSession, PBYTE pData, PINT32 p if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; @@ -505,10 +695,14 @@ STATUS dtlsSessionPutApplicationData(PDtlsSession pDtlsSession, PBYTE pData, INT SIZE_T pending; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL && pData != NULL, STATUS_NULL_ARG); + MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->shutdown), retStatus); + + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isShutdown), retStatus); + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isCleanUp), retStatus); if ((amountWritten = SSL_write(pDtlsSession->pSsl, pData, dataLen)) != dataLen && SSL_get_error(pDtlsSession->pSsl, amountWritten) == SSL_ERROR_SSL) { @@ -526,7 +720,7 @@ STATUS dtlsSessionPutApplicationData(PDtlsSession pDtlsSession, PBYTE pData, INT if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } @@ -536,16 +730,17 @@ STATUS dtlsSessionShutdown(PDtlsSession pDtlsSession) STATUS retStatus = STATUS_SUCCESS; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL, STATUS_NULL_ARG); MUTEX_LOCK(pDtlsSession->sslLock); locked = TRUE; - CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->shutdown), retStatus); + CHK(!ATOMIC_LOAD_BOOL(&pDtlsSession->isShutdown), retStatus); CHK(ATOMIC_LOAD_BOOL(&pDtlsSession->sslInitFinished), retStatus); SSL_shutdown(pDtlsSession->pSsl); - ATOMIC_STORE_BOOL(&pDtlsSession->shutdown, TRUE); + ATOMIC_STORE_BOOL(&pDtlsSession->isShutdown, TRUE); CHK_STATUS(dtlsCheckOutgoingDataBuffer(pDtlsSession)); CHK_STATUS(dtlsSessionChangeState(pDtlsSession, RTC_DTLS_TRANSPORT_STATE_CLOSED)); @@ -554,7 +749,7 @@ STATUS dtlsSessionShutdown(PDtlsSession pDtlsSession) if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); return retStatus; } @@ -565,11 +760,13 @@ STATUS dtlsCheckOutgoingDataBuffer(PDtlsSession pDtlsSession) BIO* pWriteBIO = NULL; INT32 dataLenWritten = 0, sslErr = 0; + CHK(!(ATOMIC_LOAD_BOOL(&pDtlsSession->isCleanUp)), STATUS_DTLS_SESSION_ALREADY_FREED); + pWriteBIO = SSL_get_wbio(pDtlsSession->pSsl); // proceed if write BIO is not empty CHK(BIO_ctrl_pending(pWriteBIO) > 0, retStatus); - // BIO_read removes read data + // BIO_read removes read data from the write BIO dataLenWritten = BIO_read(pWriteBIO, pDtlsSession->outgoingDataBuffer, ARRAY_SIZE(pDtlsSession->outgoingDataBuffer)); if (dataLenWritten > 0) { pDtlsSession->outgoingDataLen = (UINT32) dataLenWritten; @@ -590,6 +787,7 @@ STATUS dtlsSessionIsInitFinished(PDtlsSession pDtlsSession, PBOOL pIsConnected) STATUS retStatus = STATUS_SUCCESS; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL && pIsConnected != NULL, STATUS_NULL_ARG); MUTEX_LOCK(pDtlsSession->sslLock); @@ -607,7 +805,7 @@ STATUS dtlsSessionIsInitFinished(PDtlsSession pDtlsSession, PBOOL pIsConnected) if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } @@ -620,6 +818,7 @@ STATUS dtlsSessionPopulateKeyingMaterial(PDtlsSession pDtlsSession, PDtlsKeyingM BYTE keyingMaterialBuffer[MAX_SRTP_MASTER_KEY_LEN * 2 + MAX_SRTP_SALT_KEY_LEN * 2]; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL && pDtlsKeyingMaterial != NULL, STATUS_NULL_ARG); MUTEX_LOCK(pDtlsSession->sslLock); @@ -655,7 +854,7 @@ STATUS dtlsSessionPopulateKeyingMaterial(PDtlsSession pDtlsSession, PDtlsKeyingM if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } @@ -667,7 +866,9 @@ STATUS dtlsSessionGetLocalCertificateFingerprint(PDtlsSession pDtlsSession, PCHA STATUS retStatus = STATUS_SUCCESS; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL && pBuff != NULL, STATUS_NULL_ARG); + CHK(buffLen >= CERTIFICATE_FINGERPRINT_LENGTH, STATUS_INVALID_ARG_LEN); MUTEX_LOCK(pDtlsSession->sslLock); @@ -680,7 +881,7 @@ STATUS dtlsSessionGetLocalCertificateFingerprint(PDtlsSession pDtlsSession, PCHA if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } @@ -693,6 +894,7 @@ STATUS dtlsSessionVerifyRemoteCertificateFingerprint(PDtlsSession pDtlsSession, X509* pRemoteCertificate = NULL; BOOL locked = FALSE; + acquireDtlsSession(pDtlsSession); CHK(pDtlsSession != NULL && pExpectedFingerprint != NULL, STATUS_NULL_ARG); MUTEX_LOCK(pDtlsSession->sslLock); @@ -715,7 +917,7 @@ STATUS dtlsSessionVerifyRemoteCertificateFingerprint(PDtlsSession pDtlsSession, if (locked) { MUTEX_UNLOCK(pDtlsSession->sslLock); } - + releaseDtlsSession(pDtlsSession); LEAVES(); return retStatus; } diff --git a/src/source/Ice/IceAgent.c b/src/source/Ice/IceAgent.c index 7e3ce47c5e..c9effd4418 100644 --- a/src/source/Ice/IceAgent.c +++ b/src/source/Ice/IceAgent.c @@ -1,5 +1,5 @@ /** - * Kinesis Video Producer Callbacks Provider + * Ice Agent APIs */ #define LOG_CLASS "IceAgent" #include "../Include_i.h" @@ -61,11 +61,11 @@ STATUS createIceAgent(PCHAR username, PCHAR password, PIceAgentCallbacks pIceAge pIceAgent->localNetworkInterfaceCount = ARRAY_SIZE(pIceAgent->localNetworkInterfaces); pIceAgent->candidateGatheringEndTime = INVALID_TIMESTAMP_VALUE; - pIceAgent->lock = MUTEX_CREATE(FALSE); + pIceAgent->lock = MUTEX_CREATE(TRUE); // Create the state machine - CHK_STATUS(createStateMachine(ICE_AGENT_STATE_MACHINE_STATES, ICE_AGENT_STATE_MACHINE_STATE_COUNT, (UINT64) pIceAgent, iceAgentGetCurrentTime, - (UINT64) pIceAgent, &pIceAgent->pStateMachine)); + CHK_STATUS(createStateMachineWithName(ICE_AGENT_STATE_MACHINE_STATES, ICE_AGENT_STATE_MACHINE_STATE_COUNT, (UINT64) pIceAgent, + iceAgentGetCurrentTime, (UINT64) pIceAgent, ICE_STATE_MACHINE_NAME, &pIceAgent->pStateMachine)); pIceAgent->iceAgentStatus = STATUS_SUCCESS; pIceAgent->iceAgentStateTimerTask = MAX_UINT32; pIceAgent->keepAliveTimerTask = MAX_UINT32; @@ -95,6 +95,11 @@ STATUS createIceAgent(PCHAR username, PCHAR password, PIceAgentCallbacks pIceAge pIceAgent->iceServersCount = 0; for (i = 0; i < MAX_ICE_SERVERS_COUNT; i++) { if (pRtcConfiguration->iceServers[i].urls[0] != '\0') { + if (STRSTR(pRtcConfiguration->iceServers[i].urls, "stun")) { + pIceAgent->iceServers[pIceAgent->iceServersCount].setIpFn = pIceAgent->iceAgentCallbacks.setStunServerIpFn; + } else { + pIceAgent->iceServers[pIceAgent->iceServersCount].setIpFn = NULL; + } PROFILE_CALL_WITH_T_OBJ( retStatus = parseIceServer(&pIceAgent->iceServers[pIceAgent->iceServersCount], (PCHAR) pRtcConfiguration->iceServers[i].urls, (PCHAR) pRtcConfiguration->iceServers[i].username, (PCHAR) pRtcConfiguration->iceServers[i].credential), @@ -257,6 +262,82 @@ STATUS freeIceAgent(PIceAgent* ppIceAgent) return retStatus; } +STATUS iceAgentAddConfig(PIceAgent pIceAgent, PIceConfigInfo pIceConfigInfo) +{ + STATUS retStatus = STATUS_SUCCESS; + UINT32 i = 0; + // used in PROFILE macro + UINT64 startTimeInMacro = 0; + BOOL locked = FALSE; + + CHK(pIceAgent != NULL && pIceConfigInfo != NULL, STATUS_NULL_ARG); + + for (i = 0; i < pIceConfigInfo->uriCount; i++) { + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + PROFILE_CALL_WITH_T_OBJ(retStatus = parseIceServer(&pIceAgent->iceServers[pIceAgent->iceServersCount], (PCHAR) pIceConfigInfo->uris[i], + (PCHAR) pIceConfigInfo->userName, (PCHAR) pIceConfigInfo->password), + pIceAgent->iceAgentProfileDiagnostics.iceServerParsingTime[i], "ICE server parsing"); + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; + + if (STATUS_SUCCEEDED(retStatus)) { + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + pIceAgent->rtcIceServerDiagnostics[i].port = (INT32) getInt16(pIceAgent->iceServers[i].ipAddress.port); + switch (pIceAgent->iceServers[pIceAgent->iceServersCount].transport) { + case KVS_SOCKET_PROTOCOL_UDP: + STRCPY(pIceAgent->rtcIceServerDiagnostics[i].protocol, ICE_TRANSPORT_TYPE_UDP); + break; + case KVS_SOCKET_PROTOCOL_TCP: + STRCPY(pIceAgent->rtcIceServerDiagnostics[i].protocol, ICE_TRANSPORT_TYPE_TCP); + break; + default: + MEMSET(pIceAgent->rtcIceServerDiagnostics[i].protocol, 0, SIZEOF(pIceAgent->rtcIceServerDiagnostics[i].protocol)); + } + STRCPY(pIceAgent->rtcIceServerDiagnostics[i].url, pIceConfigInfo->uris[i]); + + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; + + // important to unlock iceAgent lock before calling init relay candidate, since iceAgent APIs are thread safe + // if you don't unlock this can lead to a deadlock with the timerqueue. + // init candidate && pairs + if (pIceAgent->iceServers[pIceAgent->iceServersCount].isTurn) { + if (pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_UDP || + pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_NONE) { + CHK_STATUS(iceAgentInitRelayCandidate(pIceAgent, pIceAgent->iceServersCount, KVS_SOCKET_PROTOCOL_UDP)); + } + + if (pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_TCP || + pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_NONE) { + CHK_STATUS(iceAgentInitRelayCandidate(pIceAgent, pIceAgent->iceServersCount, KVS_SOCKET_PROTOCOL_TCP)); + } + } + + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + + pIceAgent->iceServersCount++; + + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; + + } else { + DLOGE("Failed to parse ICE servers"); + } + } + +CleanUp: + CHK_LOG_ERR(retStatus); + + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } + + return retStatus; +} + STATUS iceAgentValidateKvsRtcConfig(PKvsRtcConfiguration pKvsRtcConfiguration) { STATUS retStatus = STATUS_SUCCESS; @@ -279,7 +360,7 @@ STATUS iceAgentValidateKvsRtcConfig(PKvsRtcConfiguration pKvsRtcConfiguration) pKvsRtcConfiguration->iceConnectionCheckPollingInterval = KVS_ICE_CONNECTION_CHECK_POLLING_INTERVAL; } - DLOGD("\n\ticeLocalCandidateGatheringTimeout: %u ms" + DLOGI("\n\ticeLocalCandidateGatheringTimeout: %u ms" "\n\ticeConnectionCheckTimeout: %u ms" "\n\ticeCandidateNominationTimeout: %u ms" "\n\ticeConnectionCheckPollingInterval: %u ms", @@ -305,8 +386,6 @@ STATUS iceAgentReportNewLocalCandidate(PIceAgent pIceAgent, PIceCandidate pIceCa iceAgentLogNewCandidate(pIceCandidate); CHK_WARN(pIceAgent->iceAgentCallbacks.newLocalCandidateFn != NULL, retStatus, "newLocalCandidateFn callback not implemented"); - CHK_WARN(!ATOMIC_LOAD_BOOL(&pIceAgent->candidateGatheringFinished), retStatus, - "Cannot report new ice candidate because candidate gathering is already finished"); CHK_STATUS(iceCandidateSerialize(pIceCandidate, serializedIceCandidateBuf, &serializedIceCandidateBufLen)); pIceAgent->iceAgentCallbacks.newLocalCandidateFn(pIceAgent->iceAgentCallbacks.customData, serializedIceCandidateBuf); @@ -575,6 +654,8 @@ STATUS iceAgentStartAgent(PIceAgent pIceAgent, PCHAR remoteUsername, PCHAR remot CleanUp: + CHK_LOG_ERR(retStatus); + if (locked) { MUTEX_UNLOCK(pIceAgent->lock); } @@ -593,7 +674,6 @@ STATUS iceAgentStartGathering(PIceAgent pIceAgent) ATOMIC_STORE_BOOL(&pIceAgent->agentStartGathering, TRUE); pIceAgent->candidateGatheringStartTime = GETTIME(); - // skip gathering host candidate and srflx candidate if relay only if (pIceAgent->iceTransportPolicy != ICE_TRANSPORT_POLICY_RELAY) { // Skip getting local host candidates if transport policy is relay only @@ -607,9 +687,6 @@ STATUS iceAgentStartGathering(PIceAgent pIceAgent) "Srflx candidates setup time"); } - PROFILE_CALL_WITH_T_OBJ(CHK_STATUS(iceAgentInitRelayCandidates(pIceAgent)), pIceAgent->iceAgentProfileDiagnostics.relayCandidateSetUpTime, - "Relay candidates setup time"); - // start listening for incoming data CHK_STATUS(connectionListenerStart(pIceAgent->pConnectionListener)); @@ -908,7 +985,7 @@ STATUS iceAgentRestart(PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIceP * pIceAgent->pDataSendingIceCandidatePair and its ice candidates. Therefore safe to proceed freeing resources */ for (i = 0; i < localCandidateCount; ++i) { - if (localCandidates[i] != pIceAgent->pDataSendingIceCandidatePair->local) { + if (pIceAgent->pDataSendingIceCandidatePair == NULL || localCandidates[i] != pIceAgent->pDataSendingIceCandidatePair->local) { if (localCandidates[i]->iceCandidateType != ICE_CANDIDATE_TYPE_RELAYED) { CHK_STATUS(connectionListenerRemoveConnection(pIceAgent->pConnectionListener, localCandidates[i]->pSocketConnection)); CHK_STATUS(freeSocketConnection(&localCandidates[i]->pSocketConnection)); @@ -949,6 +1026,8 @@ STATUS iceAgentRestart(PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIceP CHK_STATUS(setStateMachineCurrentState(pIceAgent->pStateMachine, ICE_AGENT_STATE_NEW)); ATOMIC_STORE_BOOL(&pIceAgent->processStun, TRUE); + // this API does not reset servers, so re-initialize relay candidates now. + CHK_STATUS(iceAgentInitRelayCandidates(pIceAgent)); CleanUp: @@ -1398,6 +1477,10 @@ STATUS iceAgentSendSrflxCandidateRequest(PIceAgent pIceAgent) case ICE_CANDIDATE_TYPE_SERVER_REFLEXIVE: pIceServer = &(pIceAgent->iceServers[pCandidate->iceServerIndex]); if (pIceServer->ipAddress.family == pCandidate->ipAddress.family) { + // update transactionId + CHK_STATUS( + iceUtilsGenerateTransactionId(pBindingRequest->header.transactionId, ARRAY_SIZE(pBindingRequest->header.transactionId))); + transactionIdStoreInsert(pIceAgent->pStunBindingRequestTransactionIdStore, pBindingRequest->header.transactionId); checkSum = COMPUTE_CRC32(pBindingRequest->header.transactionId, ARRAY_SIZE(pBindingRequest->header.transactionId)); CHK_STATUS(iceAgentSendStunPacket(pBindingRequest, NULL, 0, pIceAgent, pCandidate, &pIceServer->ipAddress)); @@ -1599,8 +1682,8 @@ STATUS iceAgentGatherCandidateTimerCallback(UINT32 timerId, UINT64 currentTime, if (stopScheduling) { ATOMIC_STORE_BOOL(&pIceAgent->candidateGatheringFinished, TRUE); - PROFILE_WITH_START_TIME_OBJ(pIceAgent->candidateGatheringStartTime, pIceAgent->iceAgentProfileDiagnostics.candidateGatheringTime, - "Candidate gathering time"); + PROFILE_WITH_START_END_TIME_OBJ(pIceAgent->candidateGatheringStartTime, pIceAgent->candidateGatheringProcessEndTime, + pIceAgent->iceAgentProfileDiagnostics.candidateGatheringTime, "Candidate gathering time"); /* notify that candidate gathering is finished. */ if (pIceAgent->iceAgentCallbacks.newLocalCandidateFn != NULL) { pIceAgent->iceAgentCallbacks.newLocalCandidateFn(pIceAgent->iceAgentCallbacks.customData, NULL); @@ -1796,12 +1879,14 @@ STATUS turnStateFailedFn(PSocketConnection pSocketConnection, UINT64 data) PIceCandidate pNewCandidate = (PIceCandidate) data; CHK(pNewCandidate != NULL, STATUS_NULL_ARG); + MUTEX_LOCK(pNewCandidate->pIceAgent->lock); if (pNewCandidate->state == ICE_CANDIDATE_STATE_NEW) { pNewCandidate->state = ICE_CANDIDATE_STATE_INVALID; } CleanUp: + MUTEX_UNLOCK(pNewCandidate->pIceAgent->lock); return retStatus; } @@ -1845,16 +1930,17 @@ STATUS iceAgentInitRelayCandidate(PIceAgent pIceAgent, UINT32 iceServerIndex, KV callback.relayAddressAvailableFn = NULL; callback.turnStateFailedFn = turnStateFailedFn; + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + CHK_STATUS(createTurnConnection(&pIceAgent->iceServers[iceServerIndex], pIceAgent->timerQueueHandle, TURN_CONNECTION_DATA_TRANSFER_MODE_SEND_INDIDATION, protocol, &callback, pNewCandidate->pSocketConnection, pIceAgent->pConnectionListener, &pTurnConnection)); pNewCandidate->pIceAgent = pIceAgent; pNewCandidate->pTurnConnection = pTurnConnection; - MUTEX_LOCK(pIceAgent->lock); - locked = TRUE; - CHK_STATUS(doubleListInsertItemHead(pIceAgent->localCandidates, (UINT64) pNewCandidate)); + CHK_STATUS(iceAgentReportNewLocalCandidate(pIceAgent, pNewCandidate)); pNewCandidate = NULL; /* add existing remote candidates to turn. Need to acquire lock because remoteCandidates can be mutated by @@ -2050,7 +2136,7 @@ STATUS iceAgentConnectedStateSetup(PIceAgent pIceAgent) pIceCandidatePair = (PIceCandidatePair) pCurNode->data; pCurNode = pCurNode->pNext; - if (pIceCandidatePair->state == ICE_CANDIDATE_PAIR_STATE_SUCCEEDED) { + if (pIceCandidatePair->state == ICE_CANDIDATE_PAIR_STATE_SUCCEEDED && pIceCandidatePair->nominated) { pIceAgent->pDataSendingIceCandidatePair = pIceCandidatePair; retStatus = updateSelectedLocalRemoteCandidateStats(pIceAgent); if (STATUS_FAILED(retStatus)) { @@ -2104,6 +2190,10 @@ STATUS iceAgentNominatingStateSetup(PIceAgent pIceAgent) pIceAgent->stateEndTime = GETTIME() + pIceAgent->kvsRtcConfiguration.iceCandidateNominationTimeout; + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; + checkIceAgentStateMachine(pIceAgent); + CleanUp: CHK_LOG_ERR(retStatus); @@ -2137,22 +2227,23 @@ STATUS iceAgentReadyStateSetup(PIceAgent pIceAgent) MUTEX_LOCK(pIceAgent->lock); locked = TRUE; - // find nominated pair - CHK_STATUS(doubleListGetHeadNode(pIceAgent->iceCandidatePairs, &pCurNode)); - while (pCurNode != NULL && pNominatedAndValidCandidatePair == NULL) { - pIceCandidatePair = (PIceCandidatePair) pCurNode->data; - pCurNode = pCurNode->pNext; - - if (pIceCandidatePair->nominated && pIceCandidatePair->state == ICE_CANDIDATE_PAIR_STATE_SUCCEEDED) { - pNominatedAndValidCandidatePair = pIceCandidatePair; - pNominatedAndValidCandidatePair->rtcIceCandidatePairDiagnostics.nominated = pIceCandidatePair->nominated; - break; + // if data sending pair already selected and is nominated, no need to find it again + if (pIceAgent->pDataSendingIceCandidatePair == NULL) { + // find nominated pair + CHK_STATUS(doubleListGetHeadNode(pIceAgent->iceCandidatePairs, &pCurNode)); + while (pCurNode != NULL && pNominatedAndValidCandidatePair == NULL) { + pIceCandidatePair = (PIceCandidatePair) pCurNode->data; + pCurNode = pCurNode->pNext; + if (pIceCandidatePair->nominated && pIceCandidatePair->state == ICE_CANDIDATE_PAIR_STATE_SUCCEEDED) { + pNominatedAndValidCandidatePair = pIceCandidatePair; + pNominatedAndValidCandidatePair->rtcIceCandidatePairDiagnostics.nominated = pIceCandidatePair->nominated; + break; + } } + CHK(pNominatedAndValidCandidatePair != NULL, STATUS_ICE_NO_NOMINATED_VALID_CANDIDATE_PAIR_AVAILABLE); + pIceAgent->pDataSendingIceCandidatePair = pNominatedAndValidCandidatePair; } - CHK(pNominatedAndValidCandidatePair != NULL, STATUS_ICE_NO_NOMINATED_VALID_CANDIDATE_PAIR_AVAILABLE); - // change the data sending ice candidate pair as the nomination ice candidate pair. - pIceAgent->pDataSendingIceCandidatePair = pNominatedAndValidCandidatePair; CHK_STATUS(getIpAddrStr(&pIceAgent->pDataSendingIceCandidatePair->local->ipAddress, ipAddrStr, ARRAY_SIZE(ipAddrStr))); DLOGP("Selected pair %s_%s, local candidate type: %s. remote candidate type: %s. Round trip time %u ms. Local candidate priority: %u, ice " "candidate pair priority: %" PRIu64, @@ -2308,7 +2399,6 @@ STATUS incomingRelayedDataHandler(UINT64 customData, PSocketConnection pSocketCo CHK(pRelayedCandidate != NULL && pSocketConnection != NULL, STATUS_NULL_ARG); - DLOGV("Candidate id: %s", pRelayedCandidate->id); CHK_STATUS(turnConnectionIncomingDataHandler(pRelayedCandidate->pTurnConnection, pBuffer, bufferLen, pSrc, pDest, turnChannelData, &turnChannelDataCount)); for (i = 0; i < turnChannelDataCount; ++i) { @@ -2360,6 +2450,9 @@ STATUS incomingDataHandler(UINT64 customData, PSocketConnection pSocketConnectio } else { if (ATOMIC_LOAD_BOOL(&pIceAgent->processStun)) { CHK_STATUS(handleStunPacket(pIceAgent, pBuffer, bufferLen, pSocketConnection, pSrc, pDest)); + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; + checkIceAgentStateMachine(pIceAgent); } } @@ -2464,6 +2557,7 @@ STATUS handleStunPacket(PIceAgent pIceAgent, PBYTE pBuffer, UINT32 bufferLen, PS // before we receive the answer. CHK_STATUS(findIceCandidatePairWithLocalSocketConnectionAndRemoteAddr(pIceAgent, pSocketConnection, pSrcAddr, TRUE, &pIceCandidatePair)); CHK(pIceCandidatePair != NULL, retStatus); + DLOGD("Pair binding request! %s %s", pIceCandidatePair->local->id, pIceCandidatePair->remote->id); if (!pIceCandidatePair->nominated) { CHK_STATUS(getStunAttribute(pStunPacket, STUN_ATTRIBUTE_TYPE_USE_CANDIDATE, &pStunAttr)); @@ -2531,7 +2625,7 @@ STATUS handleStunPacket(PIceAgent pIceAgent, PBYTE pBuffer, UINT32 bufferLen, PS "Cannot find candidate pair with local candidate %s and remote candidate %s. Dropping STUN binding success response", ipAddrStr2, ipAddrStr); } - DLOGV("Pair binding response! %s %s", pIceCandidatePair->local->id, pIceCandidatePair->remote->id); + DLOGD("Pair binding response! %s %s", pIceCandidatePair->local->id, pIceCandidatePair->remote->id); if (hashTableGet(pIceCandidatePair->requestSentTime, checkSum, &requestSentTime) == STATUS_SUCCESS) { pIceCandidatePair->roundTripTime = GETTIME() - requestSentTime; pIceCandidatePair->rtcIceCandidatePairDiagnostics.currentRoundTripTime = @@ -2617,10 +2711,10 @@ STATUS handleStunPacket(PIceAgent pIceAgent, PBYTE pBuffer, UINT32 bufferLen, PS if (pIceCandidatePair == NULL) { CHK_STATUS(getIpAddrStr(pSrcAddr, ipAddrStr, ARRAY_SIZE(ipAddrStr))); CHK_STATUS(getIpAddrStr(&pSocketConnection->hostIpAddr, ipAddrStr2, ARRAY_SIZE(ipAddrStr2))); - CHK_WARN( - FALSE, retStatus, - "ERROR cannot find candidate pair with local candidate %s and remote candidate %s. Dropping STUN binding error response", - ipAddrStr2, ipAddrStr); + CHK_WARN(FALSE, retStatus, + "ERROR cannot find candidate pair with local candidate %s and remote candidate %s. Dropping STUN binding error " + "response", + ipAddrStr2, ipAddrStr); } DLOGW("Error binding response! %s %s", pIceCandidatePair->local->id, pIceCandidatePair->remote->id); } @@ -2673,7 +2767,8 @@ STATUS iceAgentCheckPeerReflexiveCandidate(PIceAgent pIceAgent, PKvsIpAddress pI } CHK_STATUS(doubleListGetNodeCount(pIceAgent->remoteCandidates, &candidateCount)); - CHK_WARN(candidateCount < KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT, retStatus, "max remote candidate count exceeded"); // return early if limit exceeded + CHK_WARN(candidateCount < KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT, retStatus, + "max remote candidate count exceeded"); // return early if limit exceeded CHK_STATUS(findCandidateWithIp(pIpAddress, pIceAgent->remoteCandidates, &pIceCandidate)); CHK(pIceCandidate == NULL, retStatus); // return early if duplicated DLOGD("New remote peer reflexive candidate found"); @@ -2843,12 +2938,14 @@ STATUS getIceAgentStats(PIceAgent pIceAgent, PKvsIceAgentMetrics pKvsIceAgentMet pKvsIceAgentMetrics->kvsIceAgentStats.hostCandidateSetUpTime = pIceAgent->iceAgentProfileDiagnostics.hostCandidateSetUpTime; pKvsIceAgentMetrics->kvsIceAgentStats.srflxCandidateSetUpTime = pIceAgent->iceAgentProfileDiagnostics.srflxCandidateSetUpTime; pKvsIceAgentMetrics->kvsIceAgentStats.relayCandidateSetUpTime = pIceAgent->iceAgentProfileDiagnostics.relayCandidateSetUpTime; - for (i = 0; i < MAX_ICE_SERVERS_COUNT; i++) { + for (i = 0; i < pIceAgent->iceServersCount; i++) { pKvsIceAgentMetrics->kvsIceAgentStats.iceServerParsingTime += pIceAgent->iceAgentProfileDiagnostics.iceServerParsingTime[i]; } pKvsIceAgentMetrics->kvsIceAgentStats.iceCandidatePairNominationTime = pIceAgent->iceAgentProfileDiagnostics.iceCandidatePairNominationTime; pKvsIceAgentMetrics->kvsIceAgentStats.candidateGatheringTime = pIceAgent->iceAgentProfileDiagnostics.candidateGatheringTime; pKvsIceAgentMetrics->kvsIceAgentStats.iceAgentSetUpTime = pIceAgent->iceAgentProfileDiagnostics.iceAgentSetUpTime; + pKvsIceAgentMetrics->kvsIceAgentStats.candidateGatheringStartTime = pIceAgent->candidateGatheringStartTime; + pKvsIceAgentMetrics->kvsIceAgentStats.candidateGatheringEndTime = pIceAgent->candidateGatheringProcessEndTime; CleanUp: return retStatus; } diff --git a/src/source/Ice/IceAgent.h b/src/source/Ice/IceAgent.h index 5d0d9e4933..b692975c1b 100644 --- a/src/source/Ice/IceAgent.h +++ b/src/source/Ice/IceAgent.h @@ -14,12 +14,16 @@ extern "C" { #define KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT 100 #define KVS_ICE_MAX_LOCAL_CANDIDATE_COUNT 100 #define KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT (10 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define KVS_ICE_CONNECTIVITY_CHECK_TIMEOUT (10 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define KVS_ICE_CANDIDATE_NOMINATION_TIMEOUT (10 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define KVS_ICE_SEND_KEEP_ALIVE_INTERVAL (15 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define KVS_ICE_TURN_CONNECTION_SHUTDOWN_TIMEOUT (1 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define KVS_ICE_DEFAULT_TIMER_START_DELAY (3 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) -#define KVS_ICE_SHORT_CHECK_DELAY (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) +#define KVS_ICE_CONNECTIVITY_CHECK_TIMEOUT \ + (12 * HUNDREDS_OF_NANOS_IN_A_SECOND) // This should be greater than KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT to ensure there is + // buffer wait time for connectivity checks with the pairs formed with near timeout created pairs +#define KVS_ICE_CANDIDATE_NOMINATION_TIMEOUT \ + (12 * HUNDREDS_OF_NANOS_IN_A_SECOND) // This should be greater than KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT to ensure there is some + // buffer for nomination with near timeout generated candidates +#define KVS_ICE_SEND_KEEP_ALIVE_INTERVAL (15 * HUNDREDS_OF_NANOS_IN_A_SECOND) +#define KVS_ICE_TURN_CONNECTION_SHUTDOWN_TIMEOUT (1 * HUNDREDS_OF_NANOS_IN_A_SECOND) +#define KVS_ICE_DEFAULT_TIMER_START_DELAY (3 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) +#define KVS_ICE_SHORT_CHECK_DELAY (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) // Ta in https://tools.ietf.org/html/rfc8445 #define KVS_ICE_CONNECTION_CHECK_POLLING_INTERVAL (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) @@ -56,6 +60,9 @@ extern "C" { #define ICE_CANDIDATE_ID_LEN 8 #define STATS_NOT_APPLICABLE_STR (PCHAR) "N/A" + +#define ICE_STATE_MACHINE_NAME (PCHAR) "ICE" + typedef enum { ICE_CANDIDATE_STATE_NEW, ICE_CANDIDATE_STATE_VALID, @@ -136,6 +143,7 @@ typedef struct { IceInboundPacketFunc inboundPacketFn; IceConnectionStateChangedFunc connectionStateChangedFn; IceNewLocalCandidateFunc newLocalCandidateFn; + IceServerSetIpFunc setStunServerIpFn; } IceAgentCallbacks, *PIceAgentCallbacks; typedef struct { @@ -264,6 +272,7 @@ struct __IceAgent { PTransactionIdStore pStunBindingRequestTransactionIdStore; UINT64 candidateGatheringStartTime; + UINT64 candidateGatheringProcessEndTime; UINT64 iceAgentStartTime; }; @@ -447,6 +456,8 @@ STATUS updateSelectedLocalRemoteCandidateStats(PIceAgent); STATUS getIceAgentStats(PIceAgent, PKvsIceAgentMetrics); +STATUS iceAgentAddConfig(PIceAgent, PIceConfigInfo); + #ifdef __cplusplus } #endif diff --git a/src/source/Ice/IceAgentStateMachine.c b/src/source/Ice/IceAgentStateMachine.c index 9cef8d59d8..3204e46062 100644 --- a/src/source/Ice/IceAgentStateMachine.c +++ b/src/source/Ice/IceAgentStateMachine.c @@ -29,42 +29,72 @@ StateMachineState ICE_AGENT_STATE_MACHINE_STATES[] = { UINT32 ICE_AGENT_STATE_MACHINE_STATE_COUNT = ARRAY_SIZE(ICE_AGENT_STATE_MACHINE_STATES); +STATUS checkIceAgentStateMachine(PIceAgent pIceAgent) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + BOOL transitionReady = FALSE; + CHK(pIceAgent != NULL && pIceAgent->pStateMachine != NULL, STATUS_NULL_ARG); + + // if a state transition is ready, tell the timer to kick the timer + CHK_STATUS(checkForStateTransition(pIceAgent->pStateMachine, &transitionReady)); + if (transitionReady) { + // dangerous to have any mutexes locked by timerqueue when entering this function + CHK_STATUS(timerQueueKick(pIceAgent->timerQueueHandle, pIceAgent->iceAgentStateTimerTask)); + } + +CleanUp: + + CHK_LOG_ERR(retStatus); + + LEAVES(); + return retStatus; +} + STATUS stepIceAgentStateMachine(PIceAgent pIceAgent) { ENTERS(); STATUS retStatus = STATUS_SUCCESS; - STATUS iceAgentStatus = STATUS_SUCCESS; UINT64 oldState; + BOOL locked = FALSE; CHK(pIceAgent != NULL, STATUS_NULL_ARG); - oldState = pIceAgent->iceAgentState; + do { + oldState = pIceAgent->iceAgentState; + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; - CHK_STATUS(stepStateMachine(pIceAgent->pStateMachine)); + CHK_STATUS(stepStateMachine(pIceAgent->pStateMachine)); - MUTEX_LOCK(pIceAgent->lock); - iceAgentStatus = pIceAgent->iceAgentStatus; - MUTEX_UNLOCK(pIceAgent->lock); + // if any failure happened and state machine is not in failed state, stepStateMachine again into failed state. + if (pIceAgent->iceAgentState != ICE_AGENT_STATE_FAILED && STATUS_FAILED(pIceAgent->iceAgentStatus)) { + DLOGD("Ice agent state %s operation encountered error 0x%08x", iceAgentStateToString(pIceAgent->iceAgentState), + pIceAgent->iceAgentStatus); + CHK_STATUS(stepStateMachine(pIceAgent->pStateMachine)); + } - // if any failure happened and state machine is not in failed state, stepStateMachine again into failed state. - if (pIceAgent->iceAgentState != ICE_AGENT_STATE_FAILED && STATUS_FAILED(iceAgentStatus)) { - CHK_STATUS(stepStateMachine(pIceAgent->pStateMachine)); - } + MUTEX_UNLOCK(pIceAgent->lock); + locked = FALSE; - if (oldState != pIceAgent->iceAgentState) { - if (pIceAgent->iceAgentCallbacks.connectionStateChangedFn != NULL) { - DLOGI("Ice agent state changed from %s to %s.", iceAgentStateToString(oldState), iceAgentStateToString(pIceAgent->iceAgentState)); - pIceAgent->iceAgentCallbacks.connectionStateChangedFn(pIceAgent->iceAgentCallbacks.customData, pIceAgent->iceAgentState); + if (oldState != pIceAgent->iceAgentState) { + if (pIceAgent->iceAgentCallbacks.connectionStateChangedFn != NULL) { + DLOGI("Ice agent state changed from %s to %s.", iceAgentStateToString(oldState), iceAgentStateToString(pIceAgent->iceAgentState)); + pIceAgent->iceAgentCallbacks.connectionStateChangedFn(pIceAgent->iceAgentCallbacks.customData, pIceAgent->iceAgentState); + } + } else { + // state machine retry is not used. resetStateMachineRetryCount just to avoid + // state machine retry grace period overflow warning. + CHK_STATUS(resetStateMachineRetryCount(pIceAgent->pStateMachine)); } - } else { - // state machine retry is not used. resetStateMachineRetryCount just to avoid - // state machine retry grace period overflow warning. - CHK_STATUS(resetStateMachineRetryCount(pIceAgent->pStateMachine)); - } + } while (oldState != pIceAgent->iceAgentState); CleanUp: CHK_LOG_ERR(retStatus); + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } LEAVES(); return retStatus; @@ -85,6 +115,7 @@ STATUS acceptIceAgentMachineState(PIceAgent pIceAgent, UINT64 state) CHK_STATUS(acceptStateMachineState(pIceAgent->pStateMachine, state)); CleanUp: + CHK_LOG_ERR(retStatus); if (locked) { MUTEX_UNLOCK(pIceAgent->lock); @@ -200,6 +231,7 @@ STATUS executeNewIceAgentState(UINT64 customData, UINT64 time) pIceAgent->iceAgentState = ICE_AGENT_STATE_NEW; CleanUp: + CHK_LOG_ERR(retStatus); LEAVES(); return retStatus; @@ -247,6 +279,7 @@ STATUS fromCheckConnectionIceAgentState(UINT64 customData, PUINT64 pState) } CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { state = ICE_AGENT_STATE_FAILED; @@ -284,6 +317,7 @@ STATUS executeCheckConnectionIceAgentState(UINT64 customData, UINT64 time) CHK_STATUS(iceAgentCheckCandidatePairConnection(pIceAgent)); CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { MUTEX_LOCK(pIceAgent->lock); @@ -325,6 +359,7 @@ STATUS fromConnectedIceAgentState(UINT64 customData, PUINT64 pState) state = ICE_AGENT_STATE_NOMINATING; CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { state = ICE_AGENT_STATE_FAILED; @@ -359,6 +394,7 @@ STATUS executeConnectedIceAgentState(UINT64 customData, UINT64 time) pIceAgent->iceAgentState = ICE_AGENT_STATE_CONNECTED; CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { MUTEX_LOCK(pIceAgent->lock); @@ -415,6 +451,7 @@ STATUS fromNominatingIceAgentState(UINT64 customData, PUINT64 pState) } CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { state = ICE_AGENT_STATE_FAILED; @@ -460,6 +497,7 @@ STATUS executeNominatingIceAgentState(UINT64 customData, UINT64 time) } CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { MUTEX_LOCK(pIceAgent->lock); @@ -481,8 +519,6 @@ STATUS fromReadyIceAgentState(UINT64 customData, PUINT64 pState) PIceAgent pIceAgent = (PIceAgent) customData; UINT64 state = ICE_AGENT_STATE_READY; // original state BOOL locked = FALSE; - PDoubleListNode pCurNode = NULL, pNodeToDelete = NULL; - PIceCandidate pIceCandidate = NULL; CHK(pIceAgent != NULL && pState != NULL, STATUS_NULL_ARG); @@ -494,26 +530,11 @@ STATUS fromReadyIceAgentState(UINT64 customData, PUINT64 pState) CHK_STATUS(iceAgentStateMachineCheckDisconnection(pIceAgent, &state)); - // Free TurnConnections that are shutdown - CHK_STATUS(doubleListGetHeadNode(pIceAgent->localCandidates, &pCurNode)); - while (pCurNode != NULL) { - pIceCandidate = (PIceCandidate) pCurNode->data; - pNodeToDelete = pCurNode; - pCurNode = pCurNode->pNext; - - if (pIceCandidate->iceCandidateType == ICE_CANDIDATE_TYPE_RELAYED && turnConnectionIsShutdownComplete(pIceCandidate->pTurnConnection)) { - MUTEX_UNLOCK(pIceAgent->lock); - CHK_LOG_ERR(freeTurnConnection(&pIceCandidate->pTurnConnection)); - MUTEX_LOCK(pIceAgent->lock); - MEMFREE(pIceCandidate); - CHK_STATUS(doubleListDeleteNode(pIceAgent->localCandidates, pNodeToDelete)); - } - } - // return early if changing to disconnected state CHK(state != ICE_AGENT_STATE_DISCONNECTED, retStatus); CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { state = ICE_AGENT_STATE_FAILED; @@ -539,7 +560,10 @@ STATUS executeReadyIceAgentState(UINT64 customData, UINT64 time) ENTERS(); UNUSED_PARAM(time); STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; PIceAgent pIceAgent = (PIceAgent) customData; + PDoubleListNode pCurNode = NULL, pNodeToDelete = NULL; + PIceCandidate pIceCandidate = NULL; CHK(pIceAgent != NULL, STATUS_NULL_ARG); if (pIceAgent->iceAgentState != ICE_AGENT_STATE_READY) { @@ -547,7 +571,27 @@ STATUS executeReadyIceAgentState(UINT64 customData, UINT64 time) pIceAgent->iceAgentState = ICE_AGENT_STATE_READY; } + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + + // Free TurnConnections that are shutdown + CHK_STATUS(doubleListGetHeadNode(pIceAgent->localCandidates, &pCurNode)); + while (pCurNode != NULL) { + pIceCandidate = (PIceCandidate) pCurNode->data; + pNodeToDelete = pCurNode; + pCurNode = pCurNode->pNext; + + if (pIceCandidate->iceCandidateType == ICE_CANDIDATE_TYPE_RELAYED && turnConnectionIsShutdownComplete(pIceCandidate->pTurnConnection)) { + MUTEX_UNLOCK(pIceAgent->lock); + CHK_LOG_ERR(freeTurnConnection(&pIceCandidate->pTurnConnection)); + MUTEX_LOCK(pIceAgent->lock); + MEMFREE(pIceCandidate); + CHK_STATUS(doubleListDeleteNode(pIceAgent->localCandidates, pNodeToDelete)); + } + } + CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { MUTEX_LOCK(pIceAgent->lock); @@ -560,10 +604,14 @@ STATUS executeReadyIceAgentState(UINT64 customData, UINT64 time) if (pIceAgent->iceAgentStartTime != 0) { PROFILE_WITH_START_TIME_OBJ(pIceAgent->iceAgentStartTime, pIceAgent->iceAgentProfileDiagnostics.iceAgentSetUpTime, - "Time taken to get ICE Agent ready for media exchange"); + "ICE Agent ready for media exchange from check connection start"); pIceAgent->iceAgentStartTime = 0; } + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } + LEAVES(); return retStatus; } @@ -585,6 +633,7 @@ STATUS fromDisconnectedIceAgentState(UINT64 customData, PUINT64 pState) CHK_STATUS(pIceAgent->iceAgentStatus); CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { state = ICE_AGENT_STATE_FAILED; @@ -633,6 +682,7 @@ STATUS executeDisconnectedIceAgentState(UINT64 customData, UINT64 time) CHK_STATUS(stepStateMachine(pIceAgent->pStateMachine)); CleanUp: + CHK_LOG_ERR(retStatus); if (STATUS_FAILED(retStatus)) { MUTEX_LOCK(pIceAgent->lock); @@ -659,6 +709,7 @@ STATUS fromFailedIceAgentState(UINT64 customData, PUINT64 pState) *pState = ICE_AGENT_STATE_FAILED; CleanUp: + CHK_LOG_ERR(retStatus); LEAVES(); return retStatus; @@ -693,6 +744,7 @@ STATUS executeFailedIceAgentState(UINT64 customData, UINT64 time) } CleanUp: + CHK_LOG_ERR(retStatus); LEAVES(); return retStatus; diff --git a/src/source/Ice/IceAgentStateMachine.h b/src/source/Ice/IceAgentStateMachine.h index bd1c2f7139..a37af2ddca 100644 --- a/src/source/Ice/IceAgentStateMachine.h +++ b/src/source/Ice/IceAgentStateMachine.h @@ -41,13 +41,14 @@ extern "C" { #define ICE_AGENT_STATE_FAILED_STR (PCHAR) "ICE_AGENT_STATE_FAILED" // Whether to step the state machine +STATUS checkIceAgentStateMachine(PIceAgent); STATUS stepIceAgentStateMachine(PIceAgent); STATUS acceptIceAgentMachineState(PIceAgent, UINT64); STATUS iceAgentStateMachineCheckDisconnection(PIceAgent, PUINT64); PCHAR iceAgentStateToString(UINT64); /** - * Signaling state machine callbacks + * Ice agent state machine callbacks */ STATUS fromNewIceAgentState(UINT64, PUINT64); STATUS executeNewIceAgentState(UINT64, UINT64); diff --git a/src/source/Ice/IceUtils.c b/src/source/Ice/IceUtils.c index cc8176d505..444d2d025a 100644 --- a/src/source/Ice/IceUtils.c +++ b/src/source/Ice/IceUtils.c @@ -131,6 +131,8 @@ STATUS iceUtilsGenerateTransactionId(PBYTE pBuffer, UINT32 bufferLen) CleanUp: + CHK_LOG_ERR(retStatus); + return retStatus; } @@ -167,6 +169,19 @@ STATUS iceUtilsSendStunPacket(PStunPacket pStunPacket, PBYTE password, UINT32 pa BYTE stunPacketBuffer[STUN_PACKET_ALLOCATION_SIZE]; CHK_STATUS(iceUtilsPackageStunPacket(pStunPacket, password, passwordLen, stunPacketBuffer, &stunPacketSize)); + CHK(pDest != NULL, STATUS_NULL_ARG); + switch (pStunPacket->header.stunMessageType) { + case STUN_PACKET_TYPE_BINDING_REQUEST: + DLOGD("Sending BINDING_REQUEST to ip:%u.%u.%u.%u, port:%u", pDest->address[0], pDest->address[1], pDest->address[2], pDest->address[3], + (UINT16) getInt16(pDest->port)); + break; + case STUN_PACKET_TYPE_BINDING_RESPONSE_SUCCESS: + DLOGD("Sending BINDING_RESPONSE_SUCCESS to ip:%u.%u.%u.%u, port:%u", pDest->address[0], pDest->address[1], pDest->address[2], + pDest->address[3], (UINT16) getInt16(pDest->port)); + break; + default: + break; + } CHK_STATUS(iceUtilsSendData(stunPacketBuffer, stunPacketSize, pDest, pSocketConnection, pTurnConnection, useTurn)); CleanUp: @@ -206,6 +221,7 @@ STATUS parseIceServer(PIceServer pIceServer, PCHAR url, PCHAR username, PCHAR cr STATUS retStatus = STATUS_SUCCESS; PCHAR separator = NULL, urlNoPrefix = NULL, paramStart = NULL; UINT32 port = ICE_STUN_DEFAULT_PORT; + CHAR addressResolved[KVS_IP_ADDRESS_STRING_BUFFER_LEN + 1] = {'\0'}; // username and credential is only mandatory for turn server CHK(url != NULL && pIceServer != NULL, STATUS_NULL_ARG); @@ -247,8 +263,23 @@ STATUS parseIceServer(PIceServer pIceServer, PCHAR url, PCHAR username, PCHAR cr STRNCPY(pIceServer->url, urlNoPrefix, MAX_ICE_CONFIG_URI_LEN); } - CHK_STATUS(getIpWithHostName(pIceServer->url, &pIceServer->ipAddress)); + if (pIceServer->setIpFn != NULL) { + retStatus = pIceServer->setIpFn(0, pIceServer->url, &pIceServer->ipAddress); + } + + // Adding a NULL_ARG check specifically to cover for the case where early STUN + // resolution might not be enabled + // Also cover the case where hostname is not resolved because the request was made too soon + if (retStatus == STATUS_NULL_ARG || retStatus == STATUS_PEERCONNECTION_EARLY_DNS_RESOLUTION_FAILED || pIceServer->setIpFn == NULL) { + // Reset the retStatus to ensure the appropriate status code is returned from + // getIpWithHostName + retStatus = STATUS_SUCCESS; + CHK_STATUS(getIpWithHostName(pIceServer->url, &pIceServer->ipAddress)); + } + pIceServer->ipAddress.port = (UINT16) getInt16((INT16) port); + getIpAddrStr(&pIceServer->ipAddress, addressResolved, ARRAY_SIZE(addressResolved)); + DLOGP("ICE Server address for %s: %s", pIceServer->url, addressResolved); CleanUp: diff --git a/src/source/Ice/IceUtils.h b/src/source/Ice/IceUtils.h index 4b680bdfcc..c03b1f1d19 100644 --- a/src/source/Ice/IceUtils.h +++ b/src/source/Ice/IceUtils.h @@ -58,6 +58,7 @@ typedef struct { CHAR username[MAX_ICE_CONFIG_USER_NAME_LEN + 1]; CHAR credential[MAX_ICE_CONFIG_CREDENTIAL_LEN + 1]; KVS_SOCKET_PROTOCOL transport; + IceServerSetIpFunc setIpFn; } IceServer, *PIceServer; STATUS parseIceServer(PIceServer, PCHAR, PCHAR, PCHAR); diff --git a/src/source/Ice/Network.c b/src/source/Ice/Network.c index 318e8e1a73..b5568bb97b 100644 --- a/src/source/Ice/Network.c +++ b/src/source/Ice/Network.c @@ -35,48 +35,51 @@ STATUS getLocalhostIpAddresses(PKvsIpAddress destIpList, PUINT32 pDestIpListLen, CHK(retWinStatus == ERROR_SUCCESS, STATUS_GET_LOCAL_IP_ADDRESSES_FAILED); for (aa = adapterAddresses; aa != NULL && ipCount < destIpListLen; aa = aa->Next) { - char ifa_name[BUFSIZ]; - memset(ifa_name, 0, BUFSIZ); - WideCharToMultiByte(CP_ACP, 0, aa->FriendlyName, wcslen(aa->FriendlyName), ifa_name, BUFSIZ, NULL, NULL); - - for (ua = aa->FirstUnicastAddress; ua != NULL; ua = ua->Next) { - if (filter != NULL) { - DLOGI("Callback set to allow network interface filtering"); - // The callback evaluates to a FALSE if the application is interested in black listing an interface - if (filter(customData, ifa_name) == FALSE) { - filterSet = FALSE; - } else { - filterSet = TRUE; + // Skip inactive interfaces and loop back interfaces + if (aa->OperStatus == IfOperStatusUp && aa->IfType != IF_TYPE_SOFTWARE_LOOPBACK) { + char ifa_name[BUFSIZ]; + memset(ifa_name, 0, BUFSIZ); + WideCharToMultiByte(CP_ACP, 0, aa->FriendlyName, wcslen(aa->FriendlyName), ifa_name, BUFSIZ, NULL, NULL); + + for (ua = aa->FirstUnicastAddress; ua != NULL; ua = ua->Next) { + if (filter != NULL) { + DLOGI("Callback set to allow network interface filtering"); + // The callback evaluates to a FALSE if the application is interested in black listing an interface + if (filter(customData, ifa_name) == FALSE) { + filterSet = FALSE; + } else { + filterSet = TRUE; + } } - } - - // If filter is set, ensure the details are collected for the interface - if (filterSet == TRUE) { - int family = ua->Address.lpSockaddr->sa_family; - - if (family == AF_INET) { - destIpList[ipCount].family = KVS_IP_FAMILY_TYPE_IPV4; - destIpList[ipCount].port = 0; - - pIpv4Addr = (struct sockaddr_in*) (ua->Address.lpSockaddr); - MEMCPY(destIpList[ipCount].address, &pIpv4Addr->sin_addr, IPV4_ADDRESS_LENGTH); - } else { - destIpList[ipCount].family = KVS_IP_FAMILY_TYPE_IPV6; - destIpList[ipCount].port = 0; - pIpv6Addr = (struct sockaddr_in6*) (ua->Address.lpSockaddr); - // Ignore unspecified addres: the other peer can't use this address - // Ignore link local: not very useful and will add work unnecessarily - // Ignore site local: https://tools.ietf.org/html/rfc8445#section-5.1.1.1 - if (IN6_IS_ADDR_UNSPECIFIED(&pIpv6Addr->sin6_addr) || IN6_IS_ADDR_LINKLOCAL(&pIpv6Addr->sin6_addr) || - IN6_IS_ADDR_SITELOCAL(&pIpv6Addr->sin6_addr)) { - continue; + // If filter is set, ensure the details are collected for the interface + if (filterSet == TRUE) { + int family = ua->Address.lpSockaddr->sa_family; + + if (family == AF_INET) { + destIpList[ipCount].family = KVS_IP_FAMILY_TYPE_IPV4; + destIpList[ipCount].port = 0; + + pIpv4Addr = (struct sockaddr_in*) (ua->Address.lpSockaddr); + MEMCPY(destIpList[ipCount].address, &pIpv4Addr->sin_addr, IPV4_ADDRESS_LENGTH); + } else { + destIpList[ipCount].family = KVS_IP_FAMILY_TYPE_IPV6; + destIpList[ipCount].port = 0; + + pIpv6Addr = (struct sockaddr_in6*) (ua->Address.lpSockaddr); + // Ignore unspecified addres: the other peer can't use this address + // Ignore link local: not very useful and will add work unnecessarily + // Ignore site local: https://tools.ietf.org/html/rfc8445#section-5.1.1.1 + if (IN6_IS_ADDR_UNSPECIFIED(&pIpv6Addr->sin6_addr) || IN6_IS_ADDR_LINKLOCAL(&pIpv6Addr->sin6_addr) || + IN6_IS_ADDR_SITELOCAL(&pIpv6Addr->sin6_addr)) { + continue; + } + MEMCPY(destIpList[ipCount].address, &pIpv6Addr->sin6_addr, IPV6_ADDRESS_LENGTH); } - MEMCPY(destIpList[ipCount].address, &pIpv6Addr->sin6_addr, IPV6_ADDRESS_LENGTH); - } - // in case of overfilling destIpList - ipCount++; + // in case of overfilling destIpList + ipCount++; + } } } } @@ -403,7 +406,6 @@ STATUS getIpWithHostName(PCHAR hostname, PKvsIpAddress destIp) struct in_addr inaddr; CHAR addr[KVS_IP_ADDRESS_STRING_BUFFER_LEN + 1] = {'\0'}; - CHAR addressResolved[KVS_IP_ADDRESS_STRING_BUFFER_LEN + 1] = {'\0'}; CHK(hostname != NULL, STATUS_NULL_ARG); DLOGI("ICE SERVER Hostname received: %s", hostname); @@ -443,12 +445,9 @@ STATUS getIpWithHostName(PCHAR hostname, PKvsIpAddress destIp) } freeaddrinfo(res); CHK_ERR(resolved, STATUS_HOSTNAME_NOT_FOUND, "Could not find network address of %s", hostname); - getIpAddrStr(destIp, addressResolved, ARRAY_SIZE(addressResolved)); - DLOGP("ICE Server address for %s with getaddrinfo: %s", hostname, addressResolved); } else { - DLOGP("ICE Server address for %s: %s", hostname, addr); inet_pton(AF_INET, addr, &inaddr); destIp->family = KVS_IP_FAMILY_TYPE_IPV4; MEMCPY(destIp->address, &inaddr, IPV4_ADDRESS_LENGTH); diff --git a/src/source/Ice/TurnConnection.c b/src/source/Ice/TurnConnection.c index 50d6ef65fc..7761b757a9 100644 --- a/src/source/Ice/TurnConnection.c +++ b/src/source/Ice/TurnConnection.c @@ -4,6 +4,9 @@ #define LOG_CLASS "TurnConnection" #include "../Include_i.h" +extern StateMachineState TURN_CONNECTION_STATE_MACHINE_STATES[]; +extern UINT32 TURN_CONNECTION_STATE_MACHINE_STATE_COUNT; + STATUS createTurnConnection(PIceServer pTurnServer, TIMER_QUEUE_HANDLE timerQueueHandle, TURN_CONNECTION_DATA_TRANSFER_MODE dataTransferMode, KVS_SOCKET_PROTOCOL protocol, PTurnConnectionCallbacks pTurnConnectionCallbacks, PSocketConnection pTurnSocket, PConnectionListener pConnectionListener, PTurnConnection* ppTurnConnection) @@ -12,6 +15,7 @@ STATUS createTurnConnection(PIceServer pTurnServer, TIMER_QUEUE_HANDLE timerQueu ENTERS(); STATUS retStatus = STATUS_SUCCESS; PTurnConnection pTurnConnection = NULL; + CHAR turnStateMachineName[MAX_STATE_MACHINE_NAME_LENGTH]; CHK(pTurnServer != NULL && ppTurnConnection != NULL && pTurnSocket != NULL, STATUS_NULL_ARG); CHK(IS_VALID_TIMER_QUEUE_HANDLE(timerQueueHandle), STATUS_INVALID_ARG); @@ -22,8 +26,7 @@ STATUS createTurnConnection(PIceServer pTurnServer, TIMER_QUEUE_HANDLE timerQueu pTurnConnection = (PTurnConnection) MEMCALLOC( 1, SIZEOF(TurnConnection) + DEFAULT_TURN_MESSAGE_RECV_CHANNEL_DATA_BUFFER_LEN * 2 + DEFAULT_TURN_MESSAGE_SEND_CHANNEL_DATA_BUFFER_LEN); CHK(pTurnConnection != NULL, STATUS_NOT_ENOUGH_MEMORY); - - pTurnConnection->lock = MUTEX_CREATE(FALSE); + pTurnConnection->lock = MUTEX_CREATE(TRUE); pTurnConnection->sendLock = MUTEX_CREATE(FALSE); pTurnConnection->freeAllocationCvar = CVAR_CREATE(); pTurnConnection->timerQueueHandle = timerQueueHandle; @@ -59,6 +62,10 @@ STATUS createTurnConnection(PIceServer pTurnServer, TIMER_QUEUE_HANDLE timerQueu pTurnConnection->nextAllocationRefreshTime = 0; pTurnConnection->currentTimerCallingPeriod = DEFAULT_TURN_TIMER_INTERVAL_BEFORE_READY; + SNPRINTF(turnStateMachineName, MAX_STATE_MACHINE_NAME_LENGTH, "%s-%p", TURN_STATE_MACHINE_NAME, (PVOID) pTurnConnection); + CHK_STATUS(createStateMachineWithName(TURN_CONNECTION_STATE_MACHINE_STATES, TURN_CONNECTION_STATE_MACHINE_STATE_COUNT, (UINT64) pTurnConnection, + turnConnectionGetTime, (UINT64) pTurnConnection, turnStateMachineName, &pTurnConnection->pStateMachine)); + CleanUp: CHK_LOG_ERR(retStatus); @@ -75,6 +82,12 @@ STATUS createTurnConnection(PIceServer pTurnServer, TIMER_QUEUE_HANDLE timerQueu return retStatus; } +UINT64 turnConnectionGetTime(UINT64 customData) +{ + UNUSED_PARAM(customData); + return GETTIME(); +} + STATUS freeTurnConnection(PTurnConnection* ppTurnConnection) { ENTERS(); @@ -125,6 +138,8 @@ STATUS freeTurnConnection(PTurnConnection* ppTurnConnection) CVAR_FREE(pTurnConnection->freeAllocationCvar); } + freeStateMachine(pTurnConnection->pStateMachine); + turnConnectionFreePreAllocatedPackets(pTurnConnection); MEMFREE(pTurnConnection); @@ -166,6 +181,7 @@ STATUS turnConnectionIncomingDataHandler(PTurnConnection pTurnConnection, PBYTE } else { CHK_STATUS(turnConnectionHandleStun(pTurnConnection, pCurrent, processedDataLen)); } + checkTurnConnectionStateMachine(pTurnConnection); } else { /* must be channel data if not stun */ CHK_STATUS(turnConnectionHandleChannelData(pTurnConnection, pCurrent, remainingDataSize, &channelDataList[totalChannelDataCount], @@ -198,6 +214,7 @@ STATUS turnConnectionHandleStun(PTurnConnection pTurnConnection, PBYTE pBuffer, PStunAttributeAddress pStunAttributeAddress = NULL; PStunAttributeLifetime pStunAttributeLifetime = NULL; PStunPacket pStunPacket = NULL; + CHAR profileDebugStr[MAX_TURN_PROFILE_LOG_DESC_LEN]; CHAR ipAddrStr[KVS_IP_ADDRESS_STRING_BUFFER_LEN]; BOOL locked = FALSE; ATOMIC_BOOL hasAllocation = FALSE; @@ -228,12 +245,18 @@ STATUS turnConnectionHandleStun(PTurnConnection pTurnConnection, PBYTE pBuffer, // convert lifetime to 100ns and store it pTurnConnection->allocationExpirationTime = (pStunAttributeLifetime->lifetime * HUNDREDS_OF_NANOS_IN_A_SECOND) + currentTime; - DLOGD("TURN Allocation succeeded. Life time: %u seconds. Allocation expiration epoch %" PRIu64, pStunAttributeLifetime->lifetime, - pTurnConnection->allocationExpirationTime / DEFAULT_TIME_UNIT_IN_NANOS); pStunAttributeAddress = (PStunAttributeAddress) pStunAttr; pTurnConnection->relayAddress = pStunAttributeAddress->address; ATOMIC_STORE_BOOL(&pTurnConnection->hasAllocation, TRUE); + getIpAddrStr(&pTurnConnection->relayAddress, ipAddrStr, ARRAY_SIZE(ipAddrStr)); + SNPRINTF(profileDebugStr, MAX_TURN_PROFILE_LOG_DESC_LEN, "%p - %s:%d - %s", (PVOID) pTurnConnection, ipAddrStr, + pTurnConnection->relayAddress.port, "TURN allocation"); + DLOGD("[%p - %s:%d] TURN Allocation succeeded. Life time: %u seconds. Allocation expiration epoch %" PRIu64, pTurnConnection, ipAddrStr, + pTurnConnection->relayAddress.port, pStunAttributeLifetime->lifetime, + pTurnConnection->allocationExpirationTime / DEFAULT_TIME_UNIT_IN_NANOS); + PROFILE_WITH_START_TIME_OBJ(pTurnConnection->turnProfileDiagnostics.createAllocationStartTime, + pTurnConnection->turnProfileDiagnostics.createAllocationTime, profileDebugStr); if (!pTurnConnection->relayAddressReported && pTurnConnection->turnConnectionCallbacks.relayAddressAvailableFn != NULL) { pTurnConnection->relayAddressReported = TRUE; @@ -274,7 +297,13 @@ STATUS turnConnectionHandleStun(PTurnConnection pTurnConnection, PBYTE pBuffer, if (pTurnPeer->connectionState == TURN_PEER_CONN_STATE_CREATE_PERMISSION) { pTurnPeer->connectionState = TURN_PEER_CONN_STATE_BIND_CHANNEL; CHK_STATUS(getIpAddrStr(&pTurnPeer->address, ipAddrStr, ARRAY_SIZE(ipAddrStr))); - DLOGD("create permission succeeded for peer %s", ipAddrStr); + DLOGD("[%p] Create permission succeeded for peer %s:%d", pTurnConnection, ipAddrStr, pTurnPeer->address.port); + if (pTurnPeer->firstTimeCreatePermResponse) { + pTurnPeer->firstTimeCreatePermResponse = FALSE; + SNPRINTF(profileDebugStr, MAX_TURN_PROFILE_LOG_DESC_LEN, "%p - %s:%d - %s", (PVOID) pTurnConnection, ipAddrStr, + pTurnPeer->address.port, "TURN create permission"); + PROFILE_WITH_START_TIME_OBJ(pTurnPeer->createPermissionStartTime, pTurnPeer->createPermissionTime, profileDebugStr); + } } pTurnPeer->permissionExpirationTime = TURN_PERMISSION_LIFETIME + currentTime; @@ -296,8 +325,14 @@ STATUS turnConnectionHandleStun(PTurnConnection pTurnConnection, PBYTE pBuffer, pTurnPeer->connectionState = TURN_PEER_CONN_STATE_READY; CHK_STATUS(getIpAddrStr(&pTurnPeer->address, ipAddrStr, ARRAY_SIZE(ipAddrStr))); - DLOGD("Channel bind succeeded with peer %s, port: %u, channel number %u", ipAddrStr, (UINT16) getInt16(pTurnPeer->address.port), - pTurnPeer->channelNumber); + DLOGD("[%p] Channel bind succeeded with peer %s, port: %d, channel number %u", pTurnConnection, ipAddrStr, + pTurnPeer->address.port, pTurnPeer->channelNumber); + if (pTurnPeer->firstTimeBindChannelResponse) { + pTurnPeer->firstTimeBindChannelResponse = FALSE; + SNPRINTF(profileDebugStr, MAX_TURN_PROFILE_LOG_DESC_LEN, "%p - %s:%d:%u - %s", (PVOID) pTurnConnection, ipAddrStr, + pTurnPeer->address.port, pTurnPeer->channelNumber, "TURN bind channel"); + PROFILE_WITH_START_TIME_OBJ(pTurnPeer->bindChannelStartTime, pTurnPeer->bindChannelTime, profileDebugStr); + } break; } @@ -343,6 +378,7 @@ STATUS turnConnectionHandleStunError(PTurnConnection pTurnConnection, PBYTE pBuf PStunPacket pStunPacket = NULL; BOOL locked = FALSE, iterate = TRUE; PTurnPeer pTurnPeer = NULL; + CHAR profileDebugStr[MAX_TURN_PROFILE_LOG_DESC_LEN]; UINT32 i; CHK(pTurnConnection != NULL, STATUS_NULL_ARG); @@ -395,7 +431,9 @@ STATUS turnConnectionHandleStunError(PTurnConnection pTurnConnection, PBYTE pBuf pTurnConnection->turnRealm[pStunAttributeRealm->attribute.length] = '\0'; pTurnConnection->credentialObtained = TRUE; - + SNPRINTF(profileDebugStr, MAX_TURN_PROFILE_LOG_DESC_LEN, "%p - %s", (PVOID) pTurnConnection, "TURN Get Credentials"); + PROFILE_WITH_START_TIME_OBJ(pTurnConnection->turnProfileDiagnostics.getCredentialsStartTime, + pTurnConnection->turnProfileDiagnostics.getCredentialsTime, profileDebugStr); CHK_STATUS(turnConnectionUpdateNonce(pTurnConnection)); break; @@ -544,8 +582,8 @@ STATUS turnConnectionHandleChannelDataTcpMode(PTurnConnection pTurnConnection, P /* process only one channel data and return. Because channel data can be intermixed with STUN packet. * need to check remainingBufLen too because channel data could be incomplete. */ while (remainingBufLen != 0 && channelDataCount == 0) { - DLOGV("currRecvDataLen: %d", pTurnConnection->currRecvDataLen); if (pTurnConnection->currRecvDataLen != 0) { + DLOGV("currRecvDataLen: %d", pTurnConnection->currRecvDataLen); if (pTurnConnection->currRecvDataLen >= TURN_DATA_CHANNEL_SEND_OVERHEAD) { /* pTurnConnection->recvDataBuffer always has channel data start */ paddedChannelDataLen = ROUND_UP((UINT32) getInt16(*(PINT16) (pTurnConnection->recvDataBuffer + SIZEOF(channelNumber))), 4); @@ -656,6 +694,10 @@ STATUS turnConnectionAddPeer(PTurnConnection pTurnConnection, PKvsIpAddress pPee pTurnPeer->channelNumber = (UINT16) pTurnConnection->turnPeerCount + TURN_CHANNEL_BIND_CHANNEL_NUMBER_BASE; pTurnPeer->permissionExpirationTime = INVALID_TIMESTAMP_VALUE; pTurnPeer->ready = FALSE; + pTurnPeer->firstTimeCreatePermReq = TRUE; + pTurnPeer->firstTimeBindChannelReq = TRUE; + pTurnPeer->firstTimeCreatePermResponse = TRUE; + pTurnPeer->firstTimeBindChannelResponse = TRUE; CHK_STATUS(xorIpAddress(&pTurnPeer->xorAddress, NULL)); /* only work for IPv4 for now */ CHK_STATUS(createTransactionIdStore(DEFAULT_MAX_STORED_TRANSACTION_ID_COUNT, &pTurnPeer->pTransactionIdStore)); @@ -835,6 +877,7 @@ STATUS turnConnectionRefreshPermission(PTurnConnection pTurnConnection, PBOOL pN UINT64 currTime = 0; PTurnPeer pTurnPeer = NULL; BOOL needRefresh = FALSE; + CHAR ipAddr[KVS_IP_ADDRESS_STRING_BUFFER_LEN]; UINT32 i; CHK(pTurnConnection != NULL && pNeedRefresh != NULL, STATUS_NULL_ARG); @@ -846,7 +889,8 @@ STATUS turnConnectionRefreshPermission(PTurnConnection pTurnConnection, PBOOL pN pTurnPeer = &pTurnConnection->turnPeerList[i]; if (IS_VALID_TIMESTAMP(pTurnPeer->permissionExpirationTime) && currTime + DEFAULT_TURN_PERMISSION_REFRESH_GRACE_PERIOD >= pTurnPeer->permissionExpirationTime) { - DLOGD("Refreshing turn permission"); + getIpAddrStr(&pTurnPeer->address, ipAddr, ARRAY_SIZE(ipAddr)); + DLOGD("[%p] Refreshing turn permission for %s:%d", pTurnConnection, ipAddr, pTurnPeer->address.port); needRefresh = TRUE; } } @@ -889,259 +933,6 @@ STATUS turnConnectionFreePreAllocatedPackets(PTurnConnection pTurnConnection) return retStatus; } -STATUS turnConnectionStepState(PTurnConnection pTurnConnection) -{ - ENTERS(); - STATUS retStatus = STATUS_SUCCESS; - UINT32 readyPeerCount = 0, channelWithPermissionCount = 0; - UINT64 currentTime = GETTIME(); - CHAR ipAddrStr[KVS_IP_ADDRESS_STRING_BUFFER_LEN]; - TURN_CONNECTION_STATE previousState = TURN_STATE_NEW; - BOOL refreshPeerPermission = FALSE; - UINT32 i = 0; - - CHK(pTurnConnection != NULL, STATUS_NULL_ARG); - - previousState = pTurnConnection->state; - - switch (pTurnConnection->state) { - case TURN_STATE_NEW: - // create empty turn allocation request - CHK_STATUS(turnConnectionPackageTurnAllocationRequest(NULL, NULL, NULL, 0, DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS, - &pTurnConnection->pTurnPacket)); - - pTurnConnection->state = TURN_STATE_CHECK_SOCKET_CONNECTION; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_SOCKET_CONNECT_TIMEOUT; - break; - - case TURN_STATE_CHECK_SOCKET_CONNECTION: - if (socketConnectionIsConnected(pTurnConnection->pControlChannel)) { - /* initialize TLS once tcp connection is established */ - /* Start receiving data for TLS handshake */ - ATOMIC_STORE_BOOL(&pTurnConnection->pControlChannel->receiveData, TRUE); - - /* We dont support DTLS and TCP, so only options are TCP/TLS and UDP. */ - /* TODO: add plain TCP once it becomes available. */ - if (pTurnConnection->protocol == KVS_SOCKET_PROTOCOL_TCP && pTurnConnection->pControlChannel->pTlsSession == NULL) { - CHK_STATUS(socketConnectionInitSecureConnection(pTurnConnection->pControlChannel, FALSE)); - } - - pTurnConnection->state = TURN_STATE_GET_CREDENTIALS; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_GET_CREDENTIAL_TIMEOUT; - } else { - CHK(currentTime < pTurnConnection->stateTimeoutTime, STATUS_TURN_CONNECTION_STATE_TRANSITION_TIMEOUT); - } - - // fallthrough here, missing break intended - case TURN_STATE_GET_CREDENTIALS: - - if (pTurnConnection->credentialObtained) { - DLOGV("Updated turn allocation request credential after receiving 401"); - - // update turn allocation packet with credentials - CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnPacket)); - CHK_STATUS(turnConnectionGetLongTermKey(pTurnConnection->turnServer.username, pTurnConnection->turnRealm, - pTurnConnection->turnServer.credential, pTurnConnection->longTermKey, - SIZEOF(pTurnConnection->longTermKey))); - CHK_STATUS(turnConnectionPackageTurnAllocationRequest(pTurnConnection->turnServer.username, pTurnConnection->turnRealm, - pTurnConnection->turnNonce, pTurnConnection->nonceLen, - DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS, &pTurnConnection->pTurnPacket)); - - pTurnConnection->state = TURN_STATE_ALLOCATION; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_ALLOCATION_TIMEOUT; - pTurnConnection->stateTryCountMax = DEFAULT_TURN_ALLOCATION_MAX_TRY_COUNT; - pTurnConnection->stateTryCount = 0; - } else { - CHK(currentTime < pTurnConnection->stateTimeoutTime, STATUS_TURN_CONNECTION_STATE_TRANSITION_TIMEOUT); - } - break; - - case TURN_STATE_ALLOCATION: - - if (ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation)) { - CHK_STATUS(getIpAddrStr(&pTurnConnection->relayAddress, ipAddrStr, ARRAY_SIZE(ipAddrStr))); - DLOGD("Relay address received: %s, port: %u", ipAddrStr, (UINT16) getInt16(pTurnConnection->relayAddress.port)); - - if (pTurnConnection->pTurnCreatePermissionPacket != NULL) { - CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnCreatePermissionPacket)); - } - CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_CREATE_PERMISSION, NULL, &pTurnConnection->pTurnCreatePermissionPacket)); - // use host address as placeholder. hostAddress should have the same family as peer address - CHK_STATUS(appendStunAddressAttribute(pTurnConnection->pTurnCreatePermissionPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, - &pTurnConnection->hostAddress)); - CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnServer.username)); - CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnRealm)); - CHK_STATUS( - appendStunNonceAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); - - // create channel bind packet here too so for each peer as soon as permission is created, it can start - // sending chaneel bind request - if (pTurnConnection->pTurnChannelBindPacket != NULL) { - CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnChannelBindPacket)); - } - CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_CHANNEL_BIND_REQUEST, NULL, &pTurnConnection->pTurnChannelBindPacket)); - // use host address as placeholder - CHK_STATUS(appendStunAddressAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, - &pTurnConnection->hostAddress)); - CHK_STATUS(appendStunChannelNumberAttribute(pTurnConnection->pTurnChannelBindPacket, 0)); - CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnServer.username)); - CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnRealm)); - CHK_STATUS(appendStunNonceAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); - - if (pTurnConnection->pTurnAllocationRefreshPacket != NULL) { - CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnAllocationRefreshPacket)); - } - CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_REFRESH, NULL, &pTurnConnection->pTurnAllocationRefreshPacket)); - CHK_STATUS(appendStunLifetimeAttribute(pTurnConnection->pTurnAllocationRefreshPacket, DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS)); - CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnServer.username)); - CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnRealm)); - CHK_STATUS( - appendStunNonceAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); - - pTurnConnection->state = TURN_STATE_CREATE_PERMISSION; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; - - } else { - pTurnConnection->stateTryCount++; - CHK(pTurnConnection->stateTryCount < pTurnConnection->stateTryCountMax, STATUS_TURN_CONNECTION_ALLOCAITON_FAILED); - CHK(currentTime < pTurnConnection->stateTimeoutTime, STATUS_TURN_CONNECTION_STATE_TRANSITION_TIMEOUT); - } - break; - - case TURN_STATE_CREATE_PERMISSION: - - for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { - // As soon as create permission succeeded, we start sending channel bind message. - // So connectionState could've already advanced to ready state. - if (pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_BIND_CHANNEL || - pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_READY) { - channelWithPermissionCount++; - } - } - - // push back timeout if no peer is available yet - if (pTurnConnection->turnPeerCount == 0) { - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; - CHK(FALSE, retStatus); - } - - if (currentTime >= pTurnConnection->stateTimeoutTime || channelWithPermissionCount == pTurnConnection->turnPeerCount) { - CHK(channelWithPermissionCount > 0, STATUS_TURN_CONNECTION_FAILED_TO_CREATE_PERMISSION); - - // go to next state if we have at least one ready peer - pTurnConnection->state = TURN_STATE_BIND_CHANNEL; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_BIND_CHANNEL_TIMEOUT; - } - break; - - case TURN_STATE_BIND_CHANNEL: - - for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { - if (pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_READY) { - readyPeerCount++; - } - } - - if (currentTime >= pTurnConnection->stateTimeoutTime || readyPeerCount == pTurnConnection->turnPeerCount) { - CHK(readyPeerCount > 0, STATUS_TURN_CONNECTION_FAILED_TO_BIND_CHANNEL); - // go to next state if we have at least one ready peer - pTurnConnection->state = TURN_STATE_READY; - } - break; - - case TURN_STATE_READY: - - CHK_STATUS(turnConnectionRefreshPermission(pTurnConnection, &refreshPeerPermission)); - if (refreshPeerPermission) { - // reset pTurnPeer->connectionState to make them go through create permission and channel bind again - for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { - pTurnConnection->turnPeerList[i].connectionState = TURN_PEER_CONN_STATE_CREATE_PERMISSION; - } - - pTurnConnection->currentTimerCallingPeriod = DEFAULT_TURN_TIMER_INTERVAL_BEFORE_READY; - CHK_STATUS(timerQueueUpdateTimerPeriod(pTurnConnection->timerQueueHandle, (UINT64) pTurnConnection, - (UINT32) ATOMIC_LOAD(&pTurnConnection->timerCallbackId), - pTurnConnection->currentTimerCallingPeriod)); - pTurnConnection->state = TURN_STATE_CREATE_PERMISSION; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; - } else if (pTurnConnection->currentTimerCallingPeriod != DEFAULT_TURN_TIMER_INTERVAL_AFTER_READY) { - // use longer timer interval as now it just needs to check disconnection and permission expiration. - pTurnConnection->currentTimerCallingPeriod = DEFAULT_TURN_TIMER_INTERVAL_AFTER_READY; - CHK_STATUS(timerQueueUpdateTimerPeriod(pTurnConnection->timerQueueHandle, (UINT64) pTurnConnection, - (UINT32) ATOMIC_LOAD(&pTurnConnection->timerCallbackId), - pTurnConnection->currentTimerCallingPeriod)); - } - break; - - case TURN_STATE_CLEAN_UP: - /* start cleanning up even if we dont receive allocation freed response in time, or if connection is already closed, - * since we already sent multiple STUN refresh packets with 0 lifetime. */ - if (socketConnectionIsClosed(pTurnConnection->pControlChannel) || !ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation) || - currentTime >= pTurnConnection->stateTimeoutTime) { - // clean transactionId store for each turn peer, preserving the peers - for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { - transactionIdStoreClear(pTurnConnection->turnPeerList[i].pTransactionIdStore); - } - - CHK_STATUS(turnConnectionFreePreAllocatedPackets(pTurnConnection)); - if (pTurnConnection != NULL) { - CHK_STATUS(socketConnectionClosed(pTurnConnection->pControlChannel)); - } - pTurnConnection->state = STATUS_SUCCEEDED(pTurnConnection->errorStatus) ? TURN_STATE_NEW : TURN_STATE_FAILED; - ATOMIC_STORE_BOOL(&pTurnConnection->shutdownComplete, TRUE); - } - - break; - - case TURN_STATE_FAILED: - DLOGW("TurnConnection in TURN_STATE_FAILED due to 0x%08x. Aborting TurnConnection", pTurnConnection->errorStatus); - /* Since we are aborting, not gonna do cleanup */ - ATOMIC_STORE_BOOL(&pTurnConnection->hasAllocation, FALSE); - /* If we haven't done cleanup, go to cleanup state which will do the cleanup then go to failed state again. */ - if (!ATOMIC_LOAD_BOOL(&pTurnConnection->shutdownComplete)) { - pTurnConnection->state = TURN_STATE_CLEAN_UP; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CLEAN_UP_TIMEOUT; - } - - break; - - default: - break; - } - -CleanUp: - - CHK_LOG_ERR(retStatus); - - if (STATUS_SUCCEEDED(retStatus) && ATOMIC_LOAD_BOOL(&pTurnConnection->stopTurnConnection) && pTurnConnection->state != TURN_STATE_CLEAN_UP && - pTurnConnection->state != TURN_STATE_NEW) { - pTurnConnection->state = TURN_STATE_CLEAN_UP; - pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CLEAN_UP_TIMEOUT; - } - - /* move to failed state if retStatus is failed status and state is not yet TURN_STATE_FAILED */ - if (STATUS_FAILED(retStatus) && pTurnConnection->state != TURN_STATE_FAILED) { - pTurnConnection->errorStatus = retStatus; - pTurnConnection->state = TURN_STATE_FAILED; - - if (pTurnConnection->turnConnectionCallbacks.turnStateFailedFn != NULL) { - pTurnConnection->turnConnectionCallbacks.turnStateFailedFn(pTurnConnection->pControlChannel, - pTurnConnection->turnConnectionCallbacks.customData); - } - - /* fix up state to trigger transition into TURN_STATE_FAILED */ - retStatus = STATUS_SUCCESS; - } - - if (pTurnConnection != NULL && previousState != pTurnConnection->state) { - DLOGD("TurnConnection state changed from %s to %s", turnConnectionGetStateStr(previousState), - turnConnectionGetStateStr(pTurnConnection->state)); - } - - LEAVES(); - return retStatus; -} - STATUS turnConnectionUpdateNonce(PTurnConnection pTurnConnection) { STATUS retStatus = STATUS_SUCCESS; @@ -1234,130 +1025,97 @@ BOOL turnConnectionGetRelayAddress(PTurnConnection pTurnConnection, PKvsIpAddres return FALSE; } -STATUS turnConnectionTimerCallback(UINT32 timerId, UINT64 currentTime, UINT64 customData) +STATUS checkTurnPeerConnections(PTurnConnection pTurnConnection) { - UNUSED_PARAM(timerId); - UNUSED_PARAM(currentTime); STATUS retStatus = STATUS_SUCCESS, sendStatus = STATUS_SUCCESS; - PTurnConnection pTurnConnection = (PTurnConnection) customData; - BOOL locked = FALSE, stopScheduling = FALSE; PTurnPeer pTurnPeer = NULL; PStunAttributeAddress pStunAttributeAddress = NULL; PStunAttributeChannelNumber pStunAttributeChannelNumber = NULL; - PStunAttributeLifetime pStunAttributeLifetime = NULL; UINT32 i = 0; + // turn mutex is assumed to be locked. CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { + pTurnPeer = &pTurnConnection->turnPeerList[i]; - MUTEX_LOCK(pTurnConnection->lock); - locked = TRUE; - - switch (pTurnConnection->state) { - case TURN_STATE_GET_CREDENTIALS: - sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnPacket, NULL, 0, &pTurnConnection->turnServer.ipAddress, + if (pTurnPeer->connectionState == TURN_PEER_CONN_STATE_CREATE_PERMISSION) { + if (pTurnPeer->firstTimeCreatePermReq) { + pTurnPeer->createPermissionStartTime = GETTIME(); + pTurnPeer->firstTimeCreatePermReq = FALSE; + } + // update peer address; + CHK_STATUS(getStunAttribute(pTurnConnection->pTurnCreatePermissionPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, + (PStunAttributeHeader*) &pStunAttributeAddress)); + CHK_WARN(pStunAttributeAddress != NULL, STATUS_INTERNAL_ERROR, "xor peer address attribute not found"); + pStunAttributeAddress->address = pTurnPeer->address; + + CHK_STATUS(iceUtilsGenerateTransactionId(pTurnConnection->pTurnCreatePermissionPacket->header.transactionId, + ARRAY_SIZE(pTurnConnection->pTurnCreatePermissionPacket->header.transactionId))); + + CHK(pTurnPeer->pTransactionIdStore != NULL, STATUS_INVALID_OPERATION); + transactionIdStoreInsert(pTurnPeer->pTransactionIdStore, pTurnConnection->pTurnCreatePermissionPacket->header.transactionId); + sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->longTermKey, + ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, pTurnConnection->pControlChannel, NULL, FALSE); - break; - - case TURN_STATE_ALLOCATION: - sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnPacket, pTurnConnection->longTermKey, ARRAY_SIZE(pTurnConnection->longTermKey), - &pTurnConnection->turnServer.ipAddress, pTurnConnection->pControlChannel, NULL, FALSE); - break; - - case TURN_STATE_CREATE_PERMISSION: - // explicit fall-through - case TURN_STATE_BIND_CHANNEL: - // explicit fall-through - case TURN_STATE_READY: - for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { - pTurnPeer = &pTurnConnection->turnPeerList[i]; - if (pTurnPeer->connectionState == TURN_PEER_CONN_STATE_CREATE_PERMISSION) { - // update peer address; - CHK_STATUS(getStunAttribute(pTurnConnection->pTurnCreatePermissionPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, - (PStunAttributeHeader*) &pStunAttributeAddress)); - CHK_WARN(pStunAttributeAddress != NULL, STATUS_INTERNAL_ERROR, "xor peer address attribute not found"); - pStunAttributeAddress->address = pTurnPeer->address; - - CHK_STATUS(iceUtilsGenerateTransactionId(pTurnConnection->pTurnCreatePermissionPacket->header.transactionId, - ARRAY_SIZE(pTurnConnection->pTurnCreatePermissionPacket->header.transactionId))); - - CHK(pTurnPeer->pTransactionIdStore != NULL, STATUS_INVALID_OPERATION); - transactionIdStoreInsert(pTurnPeer->pTransactionIdStore, pTurnConnection->pTurnCreatePermissionPacket->header.transactionId); - sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->longTermKey, - ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, - pTurnConnection->pControlChannel, NULL, FALSE); - - } else if (pTurnPeer->connectionState == TURN_PEER_CONN_STATE_BIND_CHANNEL) { - // update peer address; - CHK_STATUS(getStunAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, - (PStunAttributeHeader*) &pStunAttributeAddress)); - CHK_WARN(pStunAttributeAddress != NULL, STATUS_INTERNAL_ERROR, "xor peer address attribute not found"); - pStunAttributeAddress->address = pTurnPeer->address; - - // update channel number - CHK_STATUS(getStunAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_CHANNEL_NUMBER, - (PStunAttributeHeader*) &pStunAttributeChannelNumber)); - CHK_WARN(pStunAttributeChannelNumber != NULL, STATUS_INTERNAL_ERROR, "channel number attribute not found"); - pStunAttributeChannelNumber->channelNumber = pTurnPeer->channelNumber; - - CHK_STATUS(iceUtilsGenerateTransactionId(pTurnConnection->pTurnChannelBindPacket->header.transactionId, - ARRAY_SIZE(pTurnConnection->pTurnChannelBindPacket->header.transactionId))); - - CHK(pTurnPeer->pTransactionIdStore != NULL, STATUS_INVALID_OPERATION); - transactionIdStoreInsert(pTurnPeer->pTransactionIdStore, pTurnConnection->pTurnChannelBindPacket->header.transactionId); - sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->longTermKey, - ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, - pTurnConnection->pControlChannel, NULL, FALSE); - } + } else if (pTurnPeer->connectionState == TURN_PEER_CONN_STATE_BIND_CHANNEL) { + if (pTurnPeer->firstTimeBindChannelReq) { + pTurnPeer->bindChannelStartTime = GETTIME(); + pTurnPeer->firstTimeBindChannelReq = FALSE; } + // update peer address; + CHK_STATUS(getStunAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, + (PStunAttributeHeader*) &pStunAttributeAddress)); + CHK_WARN(pStunAttributeAddress != NULL, STATUS_INTERNAL_ERROR, "xor peer address attribute not found"); + pStunAttributeAddress->address = pTurnPeer->address; + + // update channel number + CHK_STATUS(getStunAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_CHANNEL_NUMBER, + (PStunAttributeHeader*) &pStunAttributeChannelNumber)); + CHK_WARN(pStunAttributeChannelNumber != NULL, STATUS_INTERNAL_ERROR, "channel number attribute not found"); + pStunAttributeChannelNumber->channelNumber = pTurnPeer->channelNumber; + + CHK_STATUS(iceUtilsGenerateTransactionId(pTurnConnection->pTurnChannelBindPacket->header.transactionId, + ARRAY_SIZE(pTurnConnection->pTurnChannelBindPacket->header.transactionId))); + + CHK(pTurnPeer->pTransactionIdStore != NULL, STATUS_INVALID_OPERATION); + transactionIdStoreInsert(pTurnPeer->pTransactionIdStore, pTurnConnection->pTurnChannelBindPacket->header.transactionId); + sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->longTermKey, + ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, + pTurnConnection->pControlChannel, NULL, FALSE); + } + } - CHK_STATUS(turnConnectionRefreshAllocation(pTurnConnection)); - break; + CHK_STATUS(turnConnectionRefreshAllocation(pTurnConnection)); - case TURN_STATE_CLEAN_UP: - if (ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation)) { - CHK_STATUS(getStunAttribute(pTurnConnection->pTurnAllocationRefreshPacket, STUN_ATTRIBUTE_TYPE_LIFETIME, - (PStunAttributeHeader*) &pStunAttributeLifetime)); - CHK(pStunAttributeLifetime != NULL, STATUS_INTERNAL_ERROR); - pStunAttributeLifetime->lifetime = 0; - sendStatus = iceUtilsSendStunPacket(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->longTermKey, - ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, - pTurnConnection->pControlChannel, NULL, FALSE); - pTurnConnection->deallocatePacketSent = TRUE; - } +CleanUp: - break; + CHK_LOG_ERR(retStatus); - case TURN_STATE_FAILED: - stopScheduling = ATOMIC_LOAD_BOOL(&pTurnConnection->shutdownComplete); - break; + return retStatus; +} - default: - break; - } +STATUS turnConnectionTimerCallback(UINT32 timerId, UINT64 currentTime, UINT64 customData) +{ + UNUSED_PARAM(timerId); + UNUSED_PARAM(currentTime); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + BOOL locked = FALSE, stopScheduling = FALSE; - if (sendStatus == STATUS_SOCKET_CONNECTION_CLOSED_ALREADY) { - DLOGE("TurnConnection socket %d closed unexpectedly", pTurnConnection->pControlChannel->localSocket); - turnConnectionFatalError(pTurnConnection, sendStatus); - } + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; - /* drive the state machine. */ - CHK_STATUS(turnConnectionStepState(pTurnConnection)); + CHK_STATUS(stepTurnConnectionStateMachine(pTurnConnection)); - /* after turnConnectionStepState(), turn state is TURN_STATE_NEW only if TURN_STATE_CLEAN_UP is completed. Thus - * we can stop the timer. */ - if (pTurnConnection->state == TURN_STATE_NEW) { - stopScheduling = TRUE; - } + stopScheduling = ATOMIC_LOAD_BOOL(&pTurnConnection->shutdownComplete); CleanUp: CHK_LOG_ERR(retStatus); - if (locked) { - MUTEX_UNLOCK(pTurnConnection->lock); - } - if (stopScheduling) { retStatus = STATUS_TIMER_QUEUE_STOP_SCHEDULING; if (pTurnConnection != NULL) { @@ -1365,6 +1123,10 @@ STATUS turnConnectionTimerCallback(UINT32 timerId, UINT64 currentTime, UINT64 cu } } + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + return retStatus; } @@ -1372,12 +1134,14 @@ STATUS turnConnectionGetLongTermKey(PCHAR username, PCHAR realm, PCHAR password, { STATUS retStatus = STATUS_SUCCESS; CHAR stringBuffer[STUN_MAX_USERNAME_LEN + MAX_ICE_CONFIG_CREDENTIAL_LEN + STUN_MAX_REALM_LEN + 2]; // 2 for two ":" between each value + INT32 amountWritten = 0; CHK(username != NULL && realm != NULL && password != NULL && pBuffer != NULL, STATUS_NULL_ARG); CHK(username[0] != '\0' && realm[0] != '\0' && password[0] != '\0' && bufferLen >= KVS_MD5_DIGEST_LENGTH, STATUS_INVALID_ARG); CHK((STRLEN(username) + STRLEN(realm) + STRLEN(password)) <= ARRAY_SIZE(stringBuffer) - 2, STATUS_INVALID_ARG); - SPRINTF(stringBuffer, "%s:%s:%s", username, realm, password); + amountWritten = SNPRINTF(stringBuffer, SIZEOF(stringBuffer), "%s:%s:%s", username, realm, password); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "SNPRINTF error: Failed to generate the long term key with username, realm and password"); // TODO: Return back the error check KVS_MD5_DIGEST((PBYTE) stringBuffer, STRLEN(stringBuffer), pBuffer); @@ -1422,31 +1186,6 @@ STATUS turnConnectionPackageTurnAllocationRequest(PCHAR username, PCHAR realm, P return retStatus; } -PCHAR turnConnectionGetStateStr(TURN_CONNECTION_STATE state) -{ - switch (state) { - case TURN_STATE_NEW: - return TURN_STATE_NEW_STR; - case TURN_STATE_CHECK_SOCKET_CONNECTION: - return TURN_STATE_CHECK_SOCKET_CONNECTION_STR; - case TURN_STATE_GET_CREDENTIALS: - return TURN_STATE_GET_CREDENTIALS_STR; - case TURN_STATE_ALLOCATION: - return TURN_STATE_ALLOCATION_STR; - case TURN_STATE_CREATE_PERMISSION: - return TURN_STATE_CREATE_PERMISSION_STR; - case TURN_STATE_BIND_CHANNEL: - return TURN_STATE_BIND_CHANNEL_STR; - case TURN_STATE_READY: - return TURN_STATE_READY_STR; - case TURN_STATE_CLEAN_UP: - return TURN_STATE_CLEAN_UP_STR; - case TURN_STATE_FAILED: - return TURN_STATE_FAILED_STR; - } - return TURN_STATE_UNKNOWN_STR; -} - PTurnPeer turnConnectionGetPeerWithChannelNumber(PTurnConnection pTurnConnection, UINT16 channelNumber) { PTurnPeer pTurnPeer = NULL; diff --git a/src/source/Ice/TurnConnection.h b/src/source/Ice/TurnConnection.h index cca70b6072..6d73d8b336 100644 --- a/src/source/Ice/TurnConnection.h +++ b/src/source/Ice/TurnConnection.h @@ -21,11 +21,10 @@ extern "C" { #define DEFAULT_TURN_SEND_REFRESH_INVERVAL (1 * HUNDREDS_OF_NANOS_IN_A_SECOND) // turn state timeouts -#define DEFAULT_TURN_SOCKET_CONNECT_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define DEFAULT_TURN_GET_CREDENTIAL_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define DEFAULT_TURN_ALLOCATION_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT (2 * HUNDREDS_OF_NANOS_IN_A_SECOND) -#define DEFAULT_TURN_BIND_CHANNEL_TIMEOUT (3 * HUNDREDS_OF_NANOS_IN_A_SECOND) +#define DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) +#define DEFAULT_TURN_BIND_CHANNEL_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define DEFAULT_TURN_CLEAN_UP_TIMEOUT (10 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define DEFAULT_TURN_ALLOCATION_REFRESH_GRACE_PERIOD (30 * HUNDREDS_OF_NANOS_IN_A_SECOND) @@ -36,8 +35,7 @@ extern "C" { #define DEFAULT_TURN_MESSAGE_RECV_CHANNEL_DATA_BUFFER_LEN MAX_TURN_CHANNEL_DATA_MESSAGE_SIZE #define DEFAULT_TURN_CHANNEL_DATA_BUFFER_SIZE 512 #define DEFAULT_TURN_MAX_PEER_COUNT 32 - -#define DEFAULT_TURN_ALLOCATION_MAX_TRY_COUNT 3 +#define MAX_TURN_PROFILE_LOG_DESC_LEN 256 // all turn channel numbers must be greater than 0x4000 and less than 0x7FFF #define TURN_CHANNEL_BIND_CHANNEL_NUMBER_BASE (UINT16) 0x4000 @@ -46,6 +44,8 @@ extern "C" { #define TURN_DATA_CHANNEL_SEND_OVERHEAD 4 #define TURN_DATA_CHANNEL_MSG_FIRST_BYTE 0x40 +#define TURN_STATE_MACHINE_NAME (PCHAR) "TURN" + #define TURN_STATE_NEW_STR (PCHAR) "TURN_STATE_NEW" #define TURN_STATE_CHECK_SOCKET_CONNECTION_STR (PCHAR) "TURN_STATE_CHECK_SOCKET_CONNECTION" #define TURN_STATE_GET_CREDENTIALS_STR (PCHAR) "TURN_STATE_GET_CREDENTIALS" @@ -60,18 +60,6 @@ extern "C" { typedef STATUS (*RelayAddressAvailableFunc)(UINT64, PKvsIpAddress, PSocketConnection); typedef STATUS (*TurnStateFailedFunc)(PSocketConnection, UINT64); -typedef enum { - TURN_STATE_NEW, - TURN_STATE_CHECK_SOCKET_CONNECTION, - TURN_STATE_GET_CREDENTIALS, - TURN_STATE_ALLOCATION, - TURN_STATE_CREATE_PERMISSION, - TURN_STATE_BIND_CHANNEL, - TURN_STATE_READY, - TURN_STATE_CLEAN_UP, - TURN_STATE_FAILED, -} TURN_CONNECTION_STATE; - typedef enum { TURN_PEER_CONN_STATE_CREATE_PERMISSION, TURN_PEER_CONN_STATE_BIND_CHANNEL, @@ -110,8 +98,23 @@ typedef struct { UINT16 channelNumber; UINT64 permissionExpirationTime; BOOL ready; + BOOL firstTimeCreatePermReq; + BOOL firstTimeCreatePermResponse; + UINT64 createPermissionStartTime; + UINT64 createPermissionTime; + BOOL firstTimeBindChannelReq; + BOOL firstTimeBindChannelResponse; + UINT64 bindChannelStartTime; + UINT64 bindChannelTime; } TurnPeer, *PTurnPeer; +typedef struct { + UINT64 getCredentialsStartTime; + UINT64 getCredentialsTime; + UINT64 createAllocationStartTime; + UINT64 createAllocationTime; +} TurnProfileDiagnostics, *PTurnProfileDiagnostics; + typedef struct __TurnConnection TurnConnection; struct __TurnConnection { volatile ATOMIC_BOOL stopTurnConnection; @@ -141,11 +144,9 @@ struct __TurnConnection { MUTEX sendLock; CVAR freeAllocationCvar; - TURN_CONNECTION_STATE state; + UINT64 state; UINT64 stateTimeoutTime; - UINT32 stateTryCount; - UINT32 stateTryCountMax; STATUS errorStatus; @@ -180,6 +181,8 @@ struct __TurnConnection { UINT64 currentTimerCallingPeriod; BOOL deallocatePacketSent; + TurnProfileDiagnostics turnProfileDiagnostics; + PStateMachine pStateMachine; }; typedef struct __TurnConnection* PTurnConnection; @@ -196,12 +199,13 @@ STATUS turnConnectionRefreshAllocation(PTurnConnection); STATUS turnConnectionRefreshPermission(PTurnConnection, PBOOL); STATUS turnConnectionFreePreAllocatedPackets(PTurnConnection); -STATUS turnConnectionStepState(PTurnConnection); +// used for state machine +UINT64 turnConnectionGetTime(UINT64); + STATUS turnConnectionUpdateNonce(PTurnConnection); STATUS turnConnectionTimerCallback(UINT32, UINT64, UINT64); STATUS turnConnectionGetLongTermKey(PCHAR, PCHAR, PCHAR, PBYTE, UINT32); STATUS turnConnectionPackageTurnAllocationRequest(PCHAR, PCHAR, PBYTE, UINT16, UINT32, PStunPacket*); -PCHAR turnConnectionGetStateStr(TURN_CONNECTION_STATE); STATUS turnConnectionIncomingDataHandler(PTurnConnection, PBYTE, UINT32, PKvsIpAddress, PKvsIpAddress, PTurnChannelData, PUINT32); @@ -214,6 +218,8 @@ VOID turnConnectionFatalError(PTurnConnection, STATUS); PTurnPeer turnConnectionGetPeerWithChannelNumber(PTurnConnection, UINT16); PTurnPeer turnConnectionGetPeerWithIp(PTurnConnection, PKvsIpAddress); +STATUS checkTurnPeerConnections(PTurnConnection); + #ifdef __cplusplus } #endif diff --git a/src/source/Ice/TurnConnectionStateMachine.c b/src/source/Ice/TurnConnectionStateMachine.c new file mode 100644 index 0000000000..42da265c85 --- /dev/null +++ b/src/source/Ice/TurnConnectionStateMachine.c @@ -0,0 +1,771 @@ + +/** + * Implementation of a turn connection states machine callbacks + */ +#define LOG_CLASS "TurnConnectionState" +#include "../Include_i.h" + +/** + * Static definitions of the states + */ +StateMachineState TURN_CONNECTION_STATE_MACHINE_STATES[] = { + {TURN_STATE_NEW, TURN_STATE_NEW | TURN_STATE_CLEAN_UP, fromNewTurnState, executeNewTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, + STATUS_TURN_INVALID_STATE}, + {TURN_STATE_CHECK_SOCKET_CONNECTION, TURN_STATE_NEW | TURN_STATE_CHECK_SOCKET_CONNECTION, fromCheckSocketConnectionTurnState, + executeCheckSocketConnectionTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_GET_CREDENTIALS, TURN_STATE_CHECK_SOCKET_CONNECTION | TURN_STATE_GET_CREDENTIALS, fromGetCredentialsTurnState, + executeGetCredentialsTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_ALLOCATION, TURN_STATE_ALLOCATION | TURN_STATE_GET_CREDENTIALS, fromAllocationTurnState, executeAllocationTurnState, NULL, + INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_CREATE_PERMISSION, TURN_STATE_CREATE_PERMISSION | TURN_STATE_ALLOCATION | TURN_STATE_READY, fromCreatePermissionTurnState, + executeCreatePermissionTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_BIND_CHANNEL, TURN_STATE_BIND_CHANNEL | TURN_STATE_CREATE_PERMISSION, fromBindChannelTurnState, executeBindChannelTurnState, NULL, + INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_READY, TURN_STATE_READY | TURN_STATE_BIND_CHANNEL, fromReadyTurnState, executeReadyTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, + STATUS_TURN_INVALID_STATE}, + {TURN_STATE_CLEAN_UP, + TURN_STATE_CLEAN_UP | TURN_STATE_FAILED | TURN_STATE_CHECK_SOCKET_CONNECTION | TURN_STATE_GET_CREDENTIALS | TURN_STATE_ALLOCATION | + TURN_STATE_CREATE_PERMISSION | TURN_STATE_BIND_CHANNEL | TURN_STATE_READY, + fromCleanUpTurnState, executeCleanUpTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, + {TURN_STATE_FAILED, + TURN_STATE_CLEAN_UP | TURN_STATE_FAILED | TURN_STATE_CHECK_SOCKET_CONNECTION | TURN_STATE_GET_CREDENTIALS | TURN_STATE_ALLOCATION | + TURN_STATE_CREATE_PERMISSION | TURN_STATE_BIND_CHANNEL | TURN_STATE_READY, + fromFailedTurnState, executeFailedTurnState, NULL, INFINITE_RETRY_COUNT_SENTINEL, STATUS_TURN_INVALID_STATE}, +}; + +UINT32 TURN_CONNECTION_STATE_MACHINE_STATE_COUNT = ARRAY_SIZE(TURN_CONNECTION_STATE_MACHINE_STATES); + +PCHAR turnConnectionGetStateStr(UINT64 state) +{ + switch (state) { + case TURN_STATE_NEW: + return TURN_STATE_NEW_STR; + case TURN_STATE_CHECK_SOCKET_CONNECTION: + return TURN_STATE_CHECK_SOCKET_CONNECTION_STR; + case TURN_STATE_GET_CREDENTIALS: + return TURN_STATE_GET_CREDENTIALS_STR; + case TURN_STATE_ALLOCATION: + return TURN_STATE_ALLOCATION_STR; + case TURN_STATE_CREATE_PERMISSION: + return TURN_STATE_CREATE_PERMISSION_STR; + case TURN_STATE_BIND_CHANNEL: + return TURN_STATE_BIND_CHANNEL_STR; + case TURN_STATE_READY: + return TURN_STATE_READY_STR; + case TURN_STATE_CLEAN_UP: + return TURN_STATE_CLEAN_UP_STR; + case TURN_STATE_FAILED: + return TURN_STATE_FAILED_STR; + } + return TURN_STATE_UNKNOWN_STR; +} + +STATUS checkTurnConnectionStateMachine(PTurnConnection pTurnConnection) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + BOOL transitionReady = FALSE; + + CHK(pTurnConnection != NULL && pTurnConnection->pStateMachine != NULL, STATUS_NULL_ARG); + + // if a state transition is ready, tell the timer to kick the timer + CHK_STATUS(checkForStateTransition(pTurnConnection->pStateMachine, &transitionReady)); + + if (transitionReady) { + // dangerous to have any mutexes locked by timerqueue when entering this function + CHK_STATUS(timerQueueKick(pTurnConnection->timerQueueHandle, pTurnConnection->timerCallbackId)); + } + +CleanUp: + + CHK_LOG_ERR(retStatus); + + LEAVES(); + return retStatus; +} + +STATUS stepTurnConnectionStateMachine(PTurnConnection pTurnConnection) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + UINT64 oldState; + UINT64 currentTime; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + do { + oldState = pTurnConnection->state; + + retStatus = stepStateMachine(pTurnConnection->pStateMachine); + + if (STATUS_SUCCEEDED(retStatus) && ATOMIC_LOAD_BOOL(&pTurnConnection->stopTurnConnection) && pTurnConnection->state != TURN_STATE_NEW && + pTurnConnection->state != TURN_STATE_CLEAN_UP) { + currentTime = GETTIME(); + pTurnConnection->state = TURN_STATE_CLEAN_UP; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CLEAN_UP_TIMEOUT; + + /* fix up state to trigger transition into TURN_STATE_CLEAN_UP */ + retStatus = STATUS_SUCCESS; + CHK_STATUS(stepStateMachine(pTurnConnection->pStateMachine)); + } else if (STATUS_FAILED(retStatus) && pTurnConnection->state != TURN_STATE_FAILED) { + pTurnConnection->errorStatus = retStatus; + pTurnConnection->state = TURN_STATE_FAILED; + + /* There is data race condition when editing the candidate state without holding + * the IceAgent lock. However holding the turn lock and then locking the ice agent lock + * can result in a dead lock. Ice must always be locked first, and then turn. + */ + + MUTEX_UNLOCK(pTurnConnection->lock); + if (pTurnConnection->turnConnectionCallbacks.turnStateFailedFn != NULL) { + pTurnConnection->turnConnectionCallbacks.turnStateFailedFn(pTurnConnection->pControlChannel, + pTurnConnection->turnConnectionCallbacks.customData); + } + MUTEX_LOCK(pTurnConnection->lock); + + /* fix up state to trigger transition into TURN_STATE_FAILED */ + retStatus = STATUS_SUCCESS; + CHK_STATUS(stepStateMachine(pTurnConnection->pStateMachine)); + } + + if (oldState != pTurnConnection->state) { + DLOGD("[%p] Turn connection state changed from %s to %s.", (PVOID) pTurnConnection, turnConnectionGetStateStr(oldState), + turnConnectionGetStateStr(pTurnConnection->state)); + } else { + // state machine retry is not used. resetStateMachineRetryCount just to avoid + // state machine retry grace period overflow warning. + CHK_STATUS(resetStateMachineRetryCount(pTurnConnection->pStateMachine)); + } + } while (oldState != pTurnConnection->state); + +CleanUp: + + CHK_LOG_ERR(retStatus); + + LEAVES(); + return retStatus; +} + +/////////////////////////////////////////////////////////////////////////// +// State machine callback functions +/////////////////////////////////////////////////////////////////////////// +STATUS fromNewTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_NEW; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + state = TURN_STATE_CHECK_SOCKET_CONNECTION; + *pState = state; + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS executeNewTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + pTurnConnection->state = TURN_STATE_NEW; + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromCheckSocketConnectionTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_CHECK_SOCKET_CONNECTION; + BOOL locked = FALSE; + UINT64 currentTime; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + currentTime = GETTIME(); + if (socketConnectionIsConnected(pTurnConnection->pControlChannel)) { + state = TURN_STATE_GET_CREDENTIALS; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_GET_CREDENTIAL_TIMEOUT; + } + + *pState = state; + +CleanUp: + + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeCheckSocketConnectionTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + if (pTurnConnection->state != TURN_STATE_CHECK_SOCKET_CONNECTION) { + pTurnConnection->state = TURN_STATE_CHECK_SOCKET_CONNECTION; + CHK_STATUS( + turnConnectionPackageTurnAllocationRequest(NULL, NULL, NULL, 0, DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS, &pTurnConnection->pTurnPacket)); + } +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromGetCredentialsTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + UINT64 currentTime; + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_GET_CREDENTIALS; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + currentTime = GETTIME(); + + if (pTurnConnection->credentialObtained) { + state = TURN_STATE_ALLOCATION; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_ALLOCATION_TIMEOUT; + } + + *pState = state; + +CleanUp: + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeGetCredentialsTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 currentTime; + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + currentTime = GETTIME(); + + if (pTurnConnection->state != TURN_STATE_GET_CREDENTIALS) { + pTurnConnection->turnProfileDiagnostics.getCredentialsStartTime = currentTime; + /* initialize TLS once tcp connection is established */ + /* Start receiving data for TLS handshake */ + ATOMIC_STORE_BOOL(&pTurnConnection->pControlChannel->receiveData, TRUE); + + /* We dont support DTLS and TCP, so only options are TCP/TLS and UDP. */ + /* TODO: add plain TCP once it becomes available. */ + if (pTurnConnection->protocol == KVS_SOCKET_PROTOCOL_TCP && pTurnConnection->pControlChannel->pTlsSession == NULL) { + CHK_STATUS(socketConnectionInitSecureConnection(pTurnConnection->pControlChannel, FALSE)); + } + pTurnConnection->state = TURN_STATE_GET_CREDENTIALS; + } else { + CHK(currentTime <= pTurnConnection->stateTimeoutTime, STATUS_TURN_CONNECTION_GET_CREDENTIALS_FAILED); + } + CHK_STATUS(iceUtilsSendStunPacket(pTurnConnection->pTurnPacket, NULL, 0, &pTurnConnection->turnServer.ipAddress, pTurnConnection->pControlChannel, + NULL, FALSE)); + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromAllocationTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_ALLOCATION; + UINT64 currentTime; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + if (ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation)) { + state = TURN_STATE_CREATE_PERMISSION; + currentTime = GETTIME(); + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; + } + + *pState = state; + +CleanUp: + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeAllocationTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 currentTime; + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + currentTime = GETTIME(); + if (pTurnConnection->state != TURN_STATE_ALLOCATION) { + DLOGV("Updated turn allocation request credential after receiving 401"); + pTurnConnection->turnProfileDiagnostics.createAllocationStartTime = GETTIME(); + // update turn allocation packet with credentials + CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnPacket)); + CHK_STATUS(turnConnectionGetLongTermKey(pTurnConnection->turnServer.username, pTurnConnection->turnRealm, + pTurnConnection->turnServer.credential, pTurnConnection->longTermKey, + SIZEOF(pTurnConnection->longTermKey))); + CHK_STATUS(turnConnectionPackageTurnAllocationRequest(pTurnConnection->turnServer.username, pTurnConnection->turnRealm, + pTurnConnection->turnNonce, pTurnConnection->nonceLen, + DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS, &pTurnConnection->pTurnPacket)); + pTurnConnection->state = TURN_STATE_ALLOCATION; + } else { + CHK(currentTime <= pTurnConnection->stateTimeoutTime, STATUS_TURN_CONNECTION_ALLOCATION_FAILED); + } + CHK_STATUS(iceUtilsSendStunPacket(pTurnConnection->pTurnPacket, pTurnConnection->longTermKey, ARRAY_SIZE(pTurnConnection->longTermKey), + &pTurnConnection->turnServer.ipAddress, pTurnConnection->pControlChannel, NULL, FALSE)); + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromCreatePermissionTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_CREATE_PERMISSION, currentTime; + UINT32 channelWithPermissionCount = 0, i = 0; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + *pState = state; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + currentTime = GETTIME(); + + for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { + // As soon as create permission succeeded, we start sending channel bind message. + // So connectionState could've already advanced to ready state. + if (pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_BIND_CHANNEL || + pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_READY) { + channelWithPermissionCount++; + } + } + + // push back timeout if no peer is available yet + if (pTurnConnection->turnPeerCount == 0) { + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; + CHK(FALSE, retStatus); + } + + if (currentTime > pTurnConnection->stateTimeoutTime || channelWithPermissionCount == pTurnConnection->turnPeerCount) { + CHK(channelWithPermissionCount > 0, STATUS_TURN_CONNECTION_FAILED_TO_CREATE_PERMISSION); + + // go to next state if we have at least one ready peer + state = TURN_STATE_BIND_CHANNEL; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_BIND_CHANNEL_TIMEOUT; + } + *pState = state; + +CleanUp: + + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeCreatePermissionTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + CHAR ipAddrStr[KVS_IP_ADDRESS_STRING_BUFFER_LEN]; + UINT64 currentTime; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + if (pTurnConnection->state != TURN_STATE_CREATE_PERMISSION) { + CHK_STATUS(getIpAddrStr(&pTurnConnection->relayAddress, ipAddrStr, ARRAY_SIZE(ipAddrStr))); + DLOGD("Relay address received: %s, port: %u", ipAddrStr, (UINT16) getInt16(pTurnConnection->relayAddress.port)); + if (pTurnConnection->pTurnCreatePermissionPacket != NULL) { + CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnCreatePermissionPacket)); + } + CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_CREATE_PERMISSION, NULL, &pTurnConnection->pTurnCreatePermissionPacket)); + // use host address as placeholder. hostAddress should have the same family as peer address + CHK_STATUS(appendStunAddressAttribute(pTurnConnection->pTurnCreatePermissionPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, + &pTurnConnection->hostAddress)); + CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnServer.username)); + CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnRealm)); + CHK_STATUS(appendStunNonceAttribute(pTurnConnection->pTurnCreatePermissionPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); + + // create channel bind packet here too so for each peer as soon as permission is created, it can start + // sending channel bind request + if (pTurnConnection->pTurnChannelBindPacket != NULL) { + CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnChannelBindPacket)); + } + CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_CHANNEL_BIND_REQUEST, NULL, &pTurnConnection->pTurnChannelBindPacket)); + // use host address as placeholder + CHK_STATUS( + appendStunAddressAttribute(pTurnConnection->pTurnChannelBindPacket, STUN_ATTRIBUTE_TYPE_XOR_PEER_ADDRESS, &pTurnConnection->hostAddress)); + CHK_STATUS(appendStunChannelNumberAttribute(pTurnConnection->pTurnChannelBindPacket, 0)); + CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnServer.username)); + CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnRealm)); + CHK_STATUS(appendStunNonceAttribute(pTurnConnection->pTurnChannelBindPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); + + if (pTurnConnection->pTurnAllocationRefreshPacket != NULL) { + CHK_STATUS(freeStunPacket(&pTurnConnection->pTurnAllocationRefreshPacket)); + } + CHK_STATUS(createStunPacket(STUN_PACKET_TYPE_REFRESH, NULL, &pTurnConnection->pTurnAllocationRefreshPacket)); + CHK_STATUS(appendStunLifetimeAttribute(pTurnConnection->pTurnAllocationRefreshPacket, DEFAULT_TURN_ALLOCATION_LIFETIME_SECONDS)); + CHK_STATUS(appendStunUsernameAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnServer.username)); + CHK_STATUS(appendStunRealmAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnRealm)); + CHK_STATUS(appendStunNonceAttribute(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->turnNonce, pTurnConnection->nonceLen)); + + pTurnConnection->state = TURN_STATE_CREATE_PERMISSION; + } + + CHK_STATUS(checkTurnPeerConnections(pTurnConnection)); + + // push back timeout if no peer is available yet + if (pTurnConnection->turnPeerCount == 0) { + currentTime = GETTIME(); + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; + CHK(FALSE, retStatus); + } + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromBindChannelTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_BIND_CHANNEL; + UINT64 currentTime; + BOOL locked = FALSE; + UINT32 readyPeerCount = 0, i = 0; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + currentTime = GETTIME(); + for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { + if (pTurnConnection->turnPeerList[i].connectionState == TURN_PEER_CONN_STATE_READY) { + readyPeerCount++; + } + } + if (currentTime > pTurnConnection->stateTimeoutTime || readyPeerCount == pTurnConnection->turnPeerCount) { + CHK(readyPeerCount > 0, STATUS_TURN_CONNECTION_FAILED_TO_BIND_CHANNEL); + // go to next state if we have at least one ready peer + state = TURN_STATE_READY; + } + *pState = state; + +CleanUp: + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeBindChannelTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + if (pTurnConnection->state != TURN_STATE_BIND_CHANNEL) { + pTurnConnection->state = TURN_STATE_BIND_CHANNEL; + } + CHK_STATUS(checkTurnPeerConnections(pTurnConnection)); + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromReadyTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_READY; + BOOL refreshPeerPermission = FALSE; + UINT64 currentTime; + UINT32 i; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP || pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + CHK_STATUS(turnConnectionRefreshPermission(pTurnConnection, &refreshPeerPermission)); + currentTime = GETTIME(); + if (refreshPeerPermission) { + // reset pTurnPeer->connectionState to make them go through create permission and channel bind again + for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { + pTurnConnection->turnPeerList[i].connectionState = TURN_PEER_CONN_STATE_CREATE_PERMISSION; + } + + pTurnConnection->currentTimerCallingPeriod = DEFAULT_TURN_TIMER_INTERVAL_BEFORE_READY; + state = TURN_STATE_CREATE_PERMISSION; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CREATE_PERMISSION_TIMEOUT; + MUTEX_UNLOCK(pTurnConnection->lock); + locked = FALSE; + CHK_STATUS(timerQueueUpdateTimerPeriod(pTurnConnection->timerQueueHandle, (UINT64) pTurnConnection, + (UINT32) ATOMIC_LOAD(&pTurnConnection->timerCallbackId), pTurnConnection->currentTimerCallingPeriod)); + } else if (pTurnConnection->currentTimerCallingPeriod != DEFAULT_TURN_TIMER_INTERVAL_AFTER_READY) { + // use longer timer interval as now it just needs to check disconnection and permission expiration. + pTurnConnection->currentTimerCallingPeriod = DEFAULT_TURN_TIMER_INTERVAL_AFTER_READY; + MUTEX_UNLOCK(pTurnConnection->lock); + locked = FALSE; + CHK_STATUS(timerQueueUpdateTimerPeriod(pTurnConnection->timerQueueHandle, (UINT64) pTurnConnection, + (UINT32) ATOMIC_LOAD(&pTurnConnection->timerCallbackId), pTurnConnection->currentTimerCallingPeriod)); + } + + *pState = state; + +CleanUp: + + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeReadyTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + pTurnConnection->state = TURN_STATE_READY; + CHK_STATUS(checkTurnPeerConnections(pTurnConnection)); + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromCleanUpTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_CLEAN_UP; + UINT64 currentTime; + UINT32 i = 0; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_FAILED) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + /* start cleaning up even if we dont receive allocation freed response in time, or if connection is already closed, + * since we already sent multiple STUN refresh packets with 0 lifetime. */ + currentTime = GETTIME(); + if (socketConnectionIsClosed(pTurnConnection->pControlChannel) || !ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation) || + currentTime > pTurnConnection->stateTimeoutTime) { + // clean transactionId store for each turn peer, preserving the peers + for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { + transactionIdStoreClear(pTurnConnection->turnPeerList[i].pTransactionIdStore); + } + + CHK_STATUS(turnConnectionFreePreAllocatedPackets(pTurnConnection)); + if (pTurnConnection != NULL) { + CHK_STATUS(socketConnectionClosed(pTurnConnection->pControlChannel)); + } + state = STATUS_SUCCEEDED(pTurnConnection->errorStatus) ? TURN_STATE_CLEAN_UP : TURN_STATE_FAILED; + ATOMIC_STORE_BOOL(&pTurnConnection->shutdownComplete, TRUE); + } + *pState = state; + +CleanUp: + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeCleanUpTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + PStunAttributeLifetime pStunAttributeLifetime = NULL; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + pTurnConnection->state = TURN_STATE_CLEAN_UP; + if (ATOMIC_LOAD_BOOL(&pTurnConnection->hasAllocation)) { + CHK_STATUS(getStunAttribute(pTurnConnection->pTurnAllocationRefreshPacket, STUN_ATTRIBUTE_TYPE_LIFETIME, + (PStunAttributeHeader*) &pStunAttributeLifetime)); + CHK(pStunAttributeLifetime != NULL, STATUS_INTERNAL_ERROR); + pStunAttributeLifetime->lifetime = 0; + CHK_STATUS(iceUtilsSendStunPacket(pTurnConnection->pTurnAllocationRefreshPacket, pTurnConnection->longTermKey, + ARRAY_SIZE(pTurnConnection->longTermKey), &pTurnConnection->turnServer.ipAddress, + pTurnConnection->pControlChannel, NULL, FALSE)); + pTurnConnection->deallocatePacketSent = TRUE; + } + +CleanUp: + + LEAVES(); + return retStatus; +} + +STATUS fromFailedTurnState(UINT64 customData, PUINT64 pState) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + UINT64 state = TURN_STATE_FAILED; + UINT64 currentTime; + BOOL locked = FALSE; + + CHK(pTurnConnection != NULL && pState != NULL, STATUS_NULL_ARG); + MUTEX_LOCK(pTurnConnection->lock); + locked = TRUE; + + if (pTurnConnection->state == TURN_STATE_CLEAN_UP) { + *pState = pTurnConnection->state; + CHK(FALSE, STATUS_SUCCESS); + } + + /* If we haven't done cleanup, go to cleanup state which will do the cleanup then go to failed state again. */ + if (!ATOMIC_LOAD_BOOL(&pTurnConnection->shutdownComplete)) { + currentTime = GETTIME(); + state = TURN_STATE_CLEAN_UP; + pTurnConnection->stateTimeoutTime = currentTime + DEFAULT_TURN_CLEAN_UP_TIMEOUT; + } + + *pState = state; + +CleanUp: + if (locked) { + MUTEX_UNLOCK(pTurnConnection->lock); + } + + LEAVES(); + return retStatus; +} + +STATUS executeFailedTurnState(UINT64 customData, UINT64 time) +{ + ENTERS(); + UNUSED_PARAM(time); + STATUS retStatus = STATUS_SUCCESS; + PTurnConnection pTurnConnection = (PTurnConnection) customData; + + CHK(pTurnConnection != NULL, STATUS_NULL_ARG); + + pTurnConnection->state = TURN_STATE_FAILED; + DLOGW("TurnConnection in TURN_STATE_FAILED due to 0x%08x. Aborting TurnConnection", pTurnConnection->errorStatus); + /* Since we are aborting, not gonna do cleanup */ + ATOMIC_STORE_BOOL(&pTurnConnection->hasAllocation, FALSE); + +CleanUp: + + LEAVES(); + return retStatus; +} diff --git a/src/source/Ice/TurnConnectionStateMachine.h b/src/source/Ice/TurnConnectionStateMachine.h new file mode 100644 index 0000000000..7ec545387a --- /dev/null +++ b/src/source/Ice/TurnConnectionStateMachine.h @@ -0,0 +1,82 @@ +/*************************************************** +TURN Connections State Machine internal include file +***************************************************/ +#ifndef __KINESIS_VIDEO_WEBRTC_TURN_STATE_MACHINE__ +#define __KINESIS_VIDEO_WEBRTC_TURN_STATE_MACHINE__ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * TURN states definitions + * + * TURN_STATE_NONE: Dummy state + * TURN_STATE_NEW: State at creation + * TURN_STATE_CHECK_SOCKET_CONNECTION: + * TURN_STATE_GET_CREDENTIALS: + * TURN_STATE_ALLOCATION: + * TURN_STATE_CREATE_PERMISSION: + * TURN_STATE_BIND_CHANNEL: + * TURN_STATE_READY: + * TURN_STATE_CLEAN_UP: + * TURN_STATE_FAILED: + */ + +#define TURN_STATE_NONE ((UINT64) 0) // 0x000000000 +#define TURN_STATE_NEW ((UINT64) (1 << 0)) // 0x000000001 +#define TURN_STATE_CHECK_SOCKET_CONNECTION ((UINT64) (1 << 1)) // 0x000000002 +#define TURN_STATE_GET_CREDENTIALS ((UINT64) (1 << 2)) // 0x000000004 +#define TURN_STATE_ALLOCATION ((UINT64) (1 << 3)) // 0x000000008 +#define TURN_STATE_CREATE_PERMISSION ((UINT64) (1 << 4)) // 0x000000010 +#define TURN_STATE_BIND_CHANNEL ((UINT64) (1 << 5)) // 0x000000020 +#define TURN_STATE_READY ((UINT64) (1 << 6)) // 0x000000040 +#define TURN_STATE_CLEAN_UP ((UINT64) (1 << 7)) // 0x000000080 +#define TURN_STATE_FAILED ((UINT64) (1 << 8)) // 0x000000100 + +#define TURN_STATE_NONE_STR (PCHAR) "TURN_STATE_NONE" +#define TURN_STATE_NEW_STR (PCHAR) "TURN_STATE_NEW" +#define TURN_STATE_CHECK_SOCKET_CONNECTION_STR (PCHAR) "TURN_STATE_CHECK_SOCKET_CONNECTION" +#define TURN_STATE_GET_CREDENTIALS_STR (PCHAR) "TURN_STATE_GET_CREDENTIALS" +#define TURN_STATE_ALLOCATION_STR (PCHAR) "TURN_STATE_ALLOCATION" +#define TURN_STATE_CREATE_PERMISSION_STR (PCHAR) "TURN_STATE_CREATE_PERMISSION" +#define TURN_STATE_BIND_CHANNEL_STR (PCHAR) "TURN_STATE_BIND_CHANNEL" +#define TURN_STATE_READY_STR (PCHAR) "TURN_STATE_READY" +#define TURN_STATE_CLEAN_UP_STR (PCHAR) "TURN_STATE_CLEAN_UP" +#define TURN_STATE_FAILED_STR (PCHAR) "TURN_STATE_FAILED" +#define TURN_STATE_UNKNOWN_STR (PCHAR) "TURN_STATE_UNKNOWN" + +// Whether to step the state machine +STATUS stepTurnConnectionStateMachine(PTurnConnection); +STATUS acceptTurnMachineState(PTurnConnection, UINT64); +STATUS checkTurnConnectionStateMachine(PTurnConnection); +PCHAR turnStateGetStateStr(UINT64 state); + +/** + * Turn state machine callbacks + */ +STATUS fromNewTurnState(UINT64, PUINT64); +STATUS executeNewTurnState(UINT64, UINT64); +STATUS fromCheckSocketConnectionTurnState(UINT64, PUINT64); +STATUS executeCheckSocketConnectionTurnState(UINT64, UINT64); +STATUS fromGetCredentialsTurnState(UINT64, PUINT64); +STATUS executeGetCredentialsTurnState(UINT64, UINT64); +STATUS fromAllocationTurnState(UINT64, PUINT64); +STATUS executeAllocationTurnState(UINT64, UINT64); +STATUS fromCreatePermissionTurnState(UINT64, PUINT64); +STATUS executeCreatePermissionTurnState(UINT64, UINT64); +STATUS fromBindChannelTurnState(UINT64, PUINT64); +STATUS executeBindChannelTurnState(UINT64, UINT64); +STATUS fromReadyTurnState(UINT64, PUINT64); +STATUS executeReadyTurnState(UINT64, UINT64); +STATUS fromCleanUpTurnState(UINT64, PUINT64); +STATUS executeCleanUpTurnState(UINT64, UINT64); +STATUS fromFailedTurnState(UINT64, PUINT64); +STATUS executeFailedTurnState(UINT64, UINT64); + +#ifdef __cplusplus +} +#endif +#endif /* __KINESIS_VIDEO_WEBRTC_TURN_STATE_MACHINE__ */ diff --git a/src/source/Include_i.h b/src/source/Include_i.h index d767ed668a..84fec5a69a 100644 --- a/src/source/Include_i.h +++ b/src/source/Include_i.h @@ -108,6 +108,9 @@ typedef struct { // Used for ensuring alignment #define ALIGN_UP_TO_MACHINE_WORD(x) ROUND_UP((x), SIZEOF(SIZE_T)) +typedef STATUS (*IceServerSetIpFunc)(UINT64, PCHAR, PKvsIpAddress); +STATUS getIpAddrStr(PKvsIpAddress pKvsIpAddress, PCHAR pBuffer, UINT32 bufferLen); + //////////////////////////////////////////////////// // Project forward declarations //////////////////////////////////////////////////// @@ -118,6 +121,7 @@ STATUS generateJSONSafeString(PCHAR, UINT32); //////////////////////////////////////////////////// // Project internal includes //////////////////////////////////////////////////// +#include "Threadpool/ThreadpoolContext.h" #include "Crypto/IOBuffer.h" #include "Crypto/Crypto.h" #include "Crypto/Dtls.h" @@ -131,9 +135,15 @@ STATUS generateJSONSafeString(PCHAR, UINT32); #include "Ice/IceAgent.h" #include "Ice/TurnConnection.h" #include "Ice/IceAgentStateMachine.h" +#include "Ice/TurnConnectionStateMachine.h" #include "Ice/NatBehaviorDiscovery.h" #include "Srtp/SrtpSession.h" #include "Sctp/Sctp.h" +#include "Signaling/FileCache.h" +#include "Signaling/Signaling.h" +#include "Signaling/ChannelInfo.h" +#include "Signaling/StateMachine.h" +#include "Signaling/LwsApiCalls.h" #include "Rtp/RtpPacket.h" #include "Rtcp/RtcpPacket.h" #include "Rtcp/RollingBuffer.h" @@ -149,11 +159,6 @@ STATUS generateJSONSafeString(PCHAR, UINT32); #include "Rtp/Codecs/RtpH264Payloader.h" #include "Rtp/Codecs/RtpOpusPayloader.h" #include "Rtp/Codecs/RtpG711Payloader.h" -#include "Signaling/FileCache.h" -#include "Signaling/Signaling.h" -#include "Signaling/ChannelInfo.h" -#include "Signaling/StateMachine.h" -#include "Signaling/LwsApiCalls.h" #include "Metrics/Metrics.h" //////////////////////////////////////////////////// diff --git a/src/source/PeerConnection/PeerConnection.c b/src/source/PeerConnection/PeerConnection.c index 3d10070a3c..5a3c7eef91 100644 --- a/src/source/PeerConnection/PeerConnection.c +++ b/src/source/PeerConnection/PeerConnection.c @@ -4,6 +4,46 @@ static volatile ATOMIC_BOOL gKvsWebRtcInitialized = (SIZE_T) FALSE; +// Function to get access to the Singleton instance +PWebRtcClientContext getWebRtcClientInstance() +{ + static WebRtcClientContext w = {.pStunIpAddrCtx = NULL, .stunCtxlock = INVALID_MUTEX_VALUE, .contextRefCnt = 0, .isContextInitialized = FALSE}; + ATOMIC_INCREMENT(&w.contextRefCnt); + return &w; +} + +VOID releaseHoldOnInstance(PWebRtcClientContext pWebRtcClientContext) +{ + ATOMIC_DECREMENT(&pWebRtcClientContext->contextRefCnt); +} + +STATUS createWebRtcClientInstance() +{ + PWebRtcClientContext pWebRtcClientContext = getWebRtcClientInstance(); + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + + CHK_WARN(!ATOMIC_LOAD_BOOL(&pWebRtcClientContext->isContextInitialized), retStatus, "WebRtc client context already initialized, nothing to do"); + CHK_ERR(!IS_VALID_MUTEX_VALUE(pWebRtcClientContext->stunCtxlock), retStatus, "Mutex seems to have been created already"); + + pWebRtcClientContext->stunCtxlock = MUTEX_CREATE(TRUE); + CHK_ERR(IS_VALID_MUTEX_VALUE(pWebRtcClientContext->stunCtxlock), STATUS_NULL_ARG, "Mutex creation failed"); + MUTEX_LOCK(pWebRtcClientContext->stunCtxlock); + locked = TRUE; + CHK_WARN(pWebRtcClientContext->pStunIpAddrCtx == NULL, STATUS_INVALID_OPERATION, "STUN object already allocated"); + pWebRtcClientContext->pStunIpAddrCtx = (PStunIpAddrContext) MEMCALLOC(1, SIZEOF(StunIpAddrContext)); + CHK_ERR(pWebRtcClientContext->pStunIpAddrCtx != NULL, STATUS_NULL_ARG, "Memory allocation for WebRtc client object failed"); + pWebRtcClientContext->pStunIpAddrCtx->expirationDuration = 2 * HUNDREDS_OF_NANOS_IN_AN_HOUR; + ATOMIC_STORE_BOOL(&pWebRtcClientContext->isContextInitialized, TRUE); + DLOGI("Initialized WebRTC Client instance"); +CleanUp: + if (locked) { + MUTEX_UNLOCK(pWebRtcClientContext->stunCtxlock); + } + releaseHoldOnInstance(pWebRtcClientContext); + return retStatus; +} + STATUS allocateSrtp(PKvsPeerConnection pKvsPeerConnection) { DtlsKeyingMaterial dtlsKeyingMaterial; @@ -253,7 +293,7 @@ STATUS sendPacketToRtpReceiver(PKvsPeerConnection pKvsPeerConnection, PBYTE pBuf pTransceiver->inboundStats.headerBytesReceived += headerBytesReceived; pTransceiver->inboundStats.bytesReceived += bytesReceived; pTransceiver->inboundStats.received.jitter = pTransceiver->pJitterBuffer->jitter / pTransceiver->pJitterBuffer->clockRate; - pTransceiver->inboundStats.received.packetsDiscarded = packetsDiscarded; + pTransceiver->inboundStats.received.packetsDiscarded += packetsDiscarded; MUTEX_UNLOCK(pTransceiver->statsLock); } if (!ownedByJitterBuffer) { @@ -402,6 +442,17 @@ STATUS onFrameDroppedFunc(UINT64 customData, UINT16 startIndex, UINT16 endIndex, return retStatus; } +PVOID dtlsSessionStartThread(PVOID args) +{ + PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) args; + if (pKvsPeerConnection != NULL) { + dtlsSessionHandshakeInThread(pKvsPeerConnection->pDtlsSession, pKvsPeerConnection->dtlsIsServer); + } else { + DLOGE("Peer connection object NULL, cannot start DTLS handshake"); + } + return NULL; +} + VOID onIceConnectionStateChange(UINT64 customData, UINT64 connectionState) { STATUS retStatus = STATUS_SUCCESS; @@ -423,7 +474,8 @@ VOID onIceConnectionStateChange(UINT64 customData, UINT64 connectionState) case ICE_AGENT_STATE_CONNECTED: /* explicit fall-through */ case ICE_AGENT_STATE_NOMINATING: - /* explicit fall-through */ + newConnectionState = RTC_PEER_CONNECTION_STATE_CONNECTING; + break; case ICE_AGENT_STATE_READY: /* start dtlsSession as soon as ice is connected */ newConnectionState = RTC_PEER_CONNECTION_STATE_CONNECTING; @@ -455,7 +507,11 @@ VOID onIceConnectionStateChange(UINT64 customData, UINT64 connectionState) // wait until DTLS state changes to CONNECTED. // // Reference: https://w3c.github.io/webrtc-pc/#rtcpeerconnectionstate-enum +#if defined(ENABLE_KVS_THREADPOOL) && defined(KVS_USE_OPENSSL) + CHK_STATUS(threadpoolContextPush(dtlsSessionStartThread, (PVOID) pKvsPeerConnection)); +#else CHK_STATUS(dtlsSessionStart(pKvsPeerConnection->pDtlsSession, pKvsPeerConnection->dtlsIsServer)); +#endif } } @@ -466,6 +522,17 @@ VOID onIceConnectionStateChange(UINT64 customData, UINT64 connectionState) CHK_LOG_ERR(retStatus); } +#ifdef ENABLE_KVS_THREADPOOL +STATUS peerConnectionAsync(startRoutine fn, PVOID data) +{ + STATUS retStatus = STATUS_SUCCESS; + CHK_STATUS(threadpoolContextPush(fn, data)); +CleanUp: + + return retStatus; +} +#endif + VOID onNewIceLocalCandidate(UINT64 customData, PCHAR candidateSdpStr) { STATUS retStatus = STATUS_SUCCESS; @@ -694,6 +761,135 @@ STATUS rtcpReportsCallback(UINT32 timerId, UINT64 currentTime, UINT64 customData return retStatus; } +// Not thread safe +STATUS getStunAddr(PStunIpAddrContext pStunIpAddrCtx) +{ + INT32 errCode; + STATUS retStatus = STATUS_SUCCESS; + struct addrinfo *rp, *res; + struct sockaddr_in* ipv4Addr; + BOOL resolved = FALSE; + + errCode = getaddrinfo(pStunIpAddrCtx->hostname, NULL, NULL, &res); + if (errCode != 0) { + DLOGI("Failed to resolve hostname with errcode: %d", errCode); + retStatus = STATUS_RESOLVE_HOSTNAME_FAILED; + } else { + for (rp = res; rp != NULL && !resolved; rp = rp->ai_next) { + if (rp->ai_family == AF_INET) { + ipv4Addr = (struct sockaddr_in*) rp->ai_addr; + pStunIpAddrCtx->kvsIpAddr.family = KVS_IP_FAMILY_TYPE_IPV4; + pStunIpAddrCtx->kvsIpAddr.port = 0; + MEMCPY(pStunIpAddrCtx->kvsIpAddr.address, &ipv4Addr->sin_addr, IPV4_ADDRESS_LENGTH); + resolved = TRUE; + } + } + freeaddrinfo(res); + } + if (!resolved) { + retStatus = STATUS_RESOLVE_HOSTNAME_FAILED; + } + return retStatus; +} + +STATUS onSetStunServerIp(UINT64 customData, PCHAR url, PKvsIpAddress pIpAddr) +{ + UNUSED_PARAM(customData); + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + PWebRtcClientContext pWebRtcClientContext = getWebRtcClientInstance(); + CHK_WARN(ATOMIC_LOAD_BOOL(&pWebRtcClientContext->isContextInitialized), STATUS_NULL_ARG, "WebRTC Client object Object not initialized"); + + UINT64 currentTime = GETTIME(); + + MUTEX_LOCK(pWebRtcClientContext->stunCtxlock); + locked = TRUE; + + // This covers a situation where say we receive a URL that is not the default STUN or the hostname is not populated + // pWebRtcClientContext->pStunIpAddrCtx->status needs to be set to ensure we do not go ahead with resolution on thread + // in case we receive the request early on + if (STRCMP(url, pWebRtcClientContext->pStunIpAddrCtx->hostname) != 0) { + retStatus = STATUS_PEERCONNECTION_EARLY_DNS_RESOLUTION_FAILED; + // This is to ensure we do not go ahead with STUN resolution if this call is already made + pWebRtcClientContext->pStunIpAddrCtx->status = STATUS_PEERCONNECTION_EARLY_DNS_RESOLUTION_FAILED; + } else { + if (pWebRtcClientContext->pStunIpAddrCtx->isIpInitialized) { + DLOGI("Initialized successfully"); + if (currentTime > (pWebRtcClientContext->pStunIpAddrCtx->startTime + pWebRtcClientContext->pStunIpAddrCtx->expirationDuration)) { + DLOGI("Expired...need to refresh STUN address"); + // Reset start time + pWebRtcClientContext->pStunIpAddrCtx->startTime = 0; + CHK_ERR(getStunAddr(pWebRtcClientContext->pStunIpAddrCtx) == STATUS_SUCCESS, retStatus, "Failed to resolve after cache expiry"); + } + MEMCPY(pIpAddr, &pWebRtcClientContext->pStunIpAddrCtx->kvsIpAddr, SIZEOF(pWebRtcClientContext->pStunIpAddrCtx->kvsIpAddr)); + } else { + DLOGE("Initialization failed"); + } + } +CleanUp: + if (locked) { + MUTEX_UNLOCK(pWebRtcClientContext->stunCtxlock); + } + DLOGD("Exiting from stun server IP callback"); + releaseHoldOnInstance(pWebRtcClientContext); + return retStatus; +} + +PVOID resolveStunIceServerIp(PVOID args) +{ + UNUSED_PARAM(args); + PWebRtcClientContext pWebRtcClientContext = getWebRtcClientInstance(); + BOOL locked = FALSE; + CHAR addressResolved[KVS_IP_ADDRESS_STRING_BUFFER_LEN + 1] = {'\0'}; + PCHAR pRegion; + PCHAR pHostnamePostfix; + UINT64 stunDnsResolutionStartTime = 0; + + if (ATOMIC_LOAD_BOOL(&pWebRtcClientContext->isContextInitialized)) { + MUTEX_LOCK(pWebRtcClientContext->stunCtxlock); + locked = TRUE; + if (pWebRtcClientContext->pStunIpAddrCtx == NULL) { + DLOGE("Failed to resolve STUN IP address because webrtc client instance was not created"); + } else { + if (pWebRtcClientContext->pStunIpAddrCtx->status != STATUS_PEERCONNECTION_EARLY_DNS_RESOLUTION_FAILED) { + if ((pRegion = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) { + pRegion = DEFAULT_AWS_REGION; + } + + pHostnamePostfix = KINESIS_VIDEO_STUN_URL_POSTFIX; + // If region is in CN, add CN region uri postfix + if (STRSTR(pRegion, "cn-")) { + pHostnamePostfix = KINESIS_VIDEO_STUN_URL_POSTFIX_CN; + } + + SNPRINTF(pWebRtcClientContext->pStunIpAddrCtx->hostname, SIZEOF(pWebRtcClientContext->pStunIpAddrCtx->hostname), + KINESIS_VIDEO_STUN_URL_WITHOUT_PORT, pRegion, pHostnamePostfix); + stunDnsResolutionStartTime = GETTIME(); + if (getStunAddr(pWebRtcClientContext->pStunIpAddrCtx) == STATUS_SUCCESS) { + getIpAddrStr(&pWebRtcClientContext->pStunIpAddrCtx->kvsIpAddr, addressResolved, ARRAY_SIZE(addressResolved)); + DLOGI("ICE Server address for %s with getaddrinfo: %s", pWebRtcClientContext->pStunIpAddrCtx->hostname, addressResolved); + pWebRtcClientContext->pStunIpAddrCtx->isIpInitialized = TRUE; + } else { + DLOGE("Failed to resolve %s", pWebRtcClientContext->pStunIpAddrCtx->hostname); + } + pWebRtcClientContext->pStunIpAddrCtx->startTime = GETTIME(); + } else { + DLOGW("Request already received to get the URL before resolution could even start...allowing higher layers to handle resolution"); + } + PROFILE_WITH_START_TIME_OBJ(stunDnsResolutionStartTime, pWebRtcClientContext->pStunIpAddrCtx->stunDnsResolutionTime, + "STUN DNS resolution time taken"); + } + if (locked) { + MUTEX_UNLOCK(pWebRtcClientContext->stunCtxlock); + } + } else { + DLOGW("STUN DNS thread invoked without context being initialized"); + } + releaseHoldOnInstance(pWebRtcClientContext); + DLOGD("Exiting from stun server IP resolution thread"); + return NULL; +} + STATUS createPeerConnection(PRtcConfiguration pConfiguration, PRtcPeerConnection* ppPeerConnection) { ENTERS(); @@ -703,6 +899,7 @@ STATUS createPeerConnection(PRtcConfiguration pConfiguration, PRtcPeerConnection DtlsSessionCallbacks dtlsSessionCallbacks; PConnectionListener pConnectionListener = NULL; UINT64 startTime = 0; + UINT64 startTimeInMacro = 0; CHK(pConfiguration != NULL && ppPeerConnection != NULL, STATUS_NULL_ARG); @@ -720,9 +917,10 @@ STATUS createPeerConnection(PRtcConfiguration pConfiguration, PRtcPeerConnection CHK_STATUS(generateJSONSafeString(pKvsPeerConnection->localIcePwd, LOCAL_ICE_PWD_LEN)); CHK_STATUS(generateJSONSafeString(pKvsPeerConnection->localCNAME, LOCAL_CNAME_LEN)); - CHK_STATUS(createDtlsSession( - &dtlsSessionCallbacks, pKvsPeerConnection->timerQueueHandle, pConfiguration->kvsRtcConfiguration.generatedCertificateBits, - pConfiguration->kvsRtcConfiguration.generateRSACertificate, pConfiguration->certificates, &pKvsPeerConnection->pDtlsSession)); + PROFILE_CALL(CHK_STATUS(createDtlsSession( + &dtlsSessionCallbacks, pKvsPeerConnection->timerQueueHandle, pConfiguration->kvsRtcConfiguration.generatedCertificateBits, + pConfiguration->kvsRtcConfiguration.generateRSACertificate, pConfiguration->certificates, &pKvsPeerConnection->pDtlsSession)), + "Create DTLS Session object"); CHK_STATUS(dtlsSessionOnOutBoundData(pKvsPeerConnection->pDtlsSession, (UINT64) pKvsPeerConnection, onDtlsOutboundPacket)); CHK_STATUS(dtlsSessionOnStateChange(pKvsPeerConnection->pDtlsSession, (UINT64) pKvsPeerConnection, onDtlsStateChange)); @@ -745,10 +943,13 @@ STATUS createPeerConnection(PRtcConfiguration pConfiguration, PRtcPeerConnection iceAgentCallbacks.inboundPacketFn = onInboundPacket; iceAgentCallbacks.connectionStateChangedFn = onIceConnectionStateChange; iceAgentCallbacks.newLocalCandidateFn = onNewIceLocalCandidate; - CHK_STATUS(createConnectionListener(&pConnectionListener)); + iceAgentCallbacks.setStunServerIpFn = onSetStunServerIp; + + PROFILE_CALL(CHK_STATUS(createConnectionListener(&pConnectionListener)), "Create connection listener"); // IceAgent will own the lifecycle of pConnectionListener; - CHK_STATUS(createIceAgent(pKvsPeerConnection->localIceUfrag, pKvsPeerConnection->localIcePwd, &iceAgentCallbacks, pConfiguration, - pKvsPeerConnection->timerQueueHandle, pConnectionListener, &pKvsPeerConnection->pIceAgent)); + PROFILE_CALL(CHK_STATUS(createIceAgent(pKvsPeerConnection->localIceUfrag, pKvsPeerConnection->localIcePwd, &iceAgentCallbacks, pConfiguration, + pKvsPeerConnection->timerQueueHandle, pConnectionListener, &pKvsPeerConnection->pIceAgent)), + "Create ICE agent object"); NULLABLE_SET_EMPTY(pKvsPeerConnection->canTrickleIce); @@ -814,7 +1015,6 @@ STATUS freePeerConnection(PRtcPeerConnection* ppPeerConnection) #ifdef ENABLE_DATA_CHANNEL CHK_LOG_ERR(freeSctpSession(&pKvsPeerConnection->pSctpSession)); #endif - CHK_LOG_ERR(freeIceAgent(&pKvsPeerConnection->pIceAgent)); // free transceivers CHK_LOG_ERR(doubleListGetHeadNode(pKvsPeerConnection->pTransceivers, &pCurNode)); @@ -840,6 +1040,9 @@ STATUS freePeerConnection(PRtcPeerConnection* ppPeerConnection) // free rest of structs CHK_LOG_ERR(freeSrtpSession(&pKvsPeerConnection->pSrtpSession)); CHK_LOG_ERR(freeDtlsSession(&pKvsPeerConnection->pDtlsSession)); + // Since ICE agent has a callback invoked from DTLS during handshake, + // it is safer to free the ICE agent after DTLS session + CHK_LOG_ERR(freeIceAgent(&pKvsPeerConnection->pIceAgent)); CHK_LOG_ERR(doubleListFree(pKvsPeerConnection->pTransceivers)); CHK_LOG_ERR(doubleListFree(pKvsPeerConnection->pFakeTransceivers)); CHK_LOG_ERR(doubleListFree(pKvsPeerConnection->pAnswerTransceivers)); @@ -900,6 +1103,24 @@ STATUS peerConnectionOnIceCandidate(PRtcPeerConnection pRtcPeerConnection, UINT6 return retStatus; } +STATUS addConfigToServerList(PRtcPeerConnection* ppPeerConnection, PIceConfigInfo pIceConfigInfo) +{ + STATUS retStatus = STATUS_SUCCESS; + PKvsPeerConnection pKvsPeerConnection = NULL; + + CHK(ppPeerConnection != NULL && pIceConfigInfo != NULL, STATUS_NULL_ARG); + + pKvsPeerConnection = (PKvsPeerConnection) *ppPeerConnection; + + CHK(pKvsPeerConnection != NULL, STATUS_NULL_ARG); + + CHK_STATUS(iceAgentAddConfig(pKvsPeerConnection->pIceAgent, pIceConfigInfo)); + +CleanUp: + + return retStatus; +} + STATUS peerConnectionOnDataChannel(PRtcPeerConnection pRtcPeerConnection, UINT64 customData, RtcOnDataChannel rtcOnDataChannel) { ENTERS(); @@ -1175,19 +1396,19 @@ STATUS createOffer(PRtcPeerConnection pPeerConnection, PRtcSessionDescriptionIni CHK(NULL != (pSessionDescription = (PSessionDescription) MEMCALLOC(1, SIZEOF(SessionDescription))), STATUS_NOT_ENOUGH_MEMORY); pSessionDescriptionInit->type = SDP_TYPE_OFFER; pKvsPeerConnection->isOffer = TRUE; + if (pSessionDescriptionInit->useTrickleIce) { + NULLABLE_SET_VALUE(pKvsPeerConnection->canTrickleIce, TRUE); + } #ifdef ENABLE_DATA_CHANNEL ATOMIC_STORE_BOOL(&pKvsPeerConnection->sctpIsEnabled, TRUE); #endif CHK_STATUS(setPayloadTypesForOffer(pKvsPeerConnection->pCodecTable)); - CHK_STATUS(populateSessionDescription(pKvsPeerConnection, &(pKvsPeerConnection->remoteSessionDescription), pSessionDescription)); CHK_STATUS(serializeSessionDescription(pSessionDescription, NULL, &serializeLen)); CHK(serializeLen <= MAX_SESSION_DESCRIPTION_INIT_SDP_LEN, STATUS_NOT_ENOUGH_MEMORY); - CHK_STATUS(serializeSessionDescription(pSessionDescription, pSessionDescriptionInit->sdp, &serializeLen)); - // If embedded SDK acts as the viewer if (NULL != GETENV(DEBUG_LOG_SDP)) { DLOGD("LOCAL_SDP:%s", pSessionDescriptionInit->sdp); @@ -1214,7 +1435,6 @@ STATUS createAnswer(PRtcPeerConnection pPeerConnection, PRtcSessionDescriptionIn pKvsPeerConnection->isOffer = FALSE; CHK_STATUS(peerConnectionGetCurrentLocalDescription(pPeerConnection, pSessionDescriptionInit)); - // If embedded SDK acts as the master if (NULL != GETENV(DEBUG_LOG_SDP)) { DLOGD("LOCAL_SDP:%s", pSessionDescriptionInit->sdp); @@ -1424,7 +1644,7 @@ STATUS initKvsWebRtc(VOID) ENTERS(); STATUS retStatus = STATUS_SUCCESS; CHK(!ATOMIC_LOAD_BOOL(&gKvsWebRtcInitialized), retStatus); - + DLOGI("Initializing WebRTC library..."); SRAND(GETTIME()); CHK(srtp_init() == srtp_err_status_ok, STATUS_SRTP_INIT_FAILED); @@ -1435,10 +1655,16 @@ STATUS initKvsWebRtc(VOID) KVS_CRYPTO_INIT(); LOG_GIT_HASH(); + SET_INSTRUMENTED_ALLOCATORS(); #ifdef ENABLE_DATA_CHANNEL CHK_STATUS(initSctpSession()); #endif - +#ifdef ENABLE_KVS_THREADPOOL + DLOGI("KVS WebRtc library using thread pool"); + CHK_STATUS(createWebRtcClientInstance()); + CHK_STATUS(createThreadPoolContext()); + CHK_STATUS(threadpoolContextPush(resolveStunIceServerIp, NULL)); +#endif ATOMIC_STORE_BOOL(&gKvsWebRtcInitialized, TRUE); CleanUp: @@ -1447,6 +1673,48 @@ STATUS initKvsWebRtc(VOID) return retStatus; } +STATUS cleanupWebRtcClientInstance() +{ + STATUS retStatus = STATUS_SUCCESS; + + // Stun object cleanup + PWebRtcClientContext pWebRtcClientContext = getWebRtcClientInstance(); + + DLOGD("Releasing webrtc client context instance from cleanupWebRtcClientInstance"); + releaseHoldOnInstance(pWebRtcClientContext); + + CHK_WARN(ATOMIC_LOAD_BOOL(&pWebRtcClientContext->isContextInitialized), STATUS_INVALID_OPERATION, + "WebRtc context not initialized, nothing to clean up"); + + ATOMIC_STORE_BOOL(&pWebRtcClientContext->isContextInitialized, FALSE); + + while (ATOMIC_LOAD(&pWebRtcClientContext->contextRefCnt) > 0) { + DLOGV("Waiting on all references to be returned...%d", pWebRtcClientContext->contextRefCnt); + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); + } + + /* Start of handling STUN object */ + // Need this check to ensure we do not clean up the object in the next + // step while the resolve thread is ongoing + CHK_WARN(pWebRtcClientContext->pStunIpAddrCtx != NULL, STATUS_NULL_ARG, "Destroying STUN object without setting up"); + MUTEX_LOCK(pWebRtcClientContext->stunCtxlock); + SAFE_MEMFREE(pWebRtcClientContext->pStunIpAddrCtx); + pWebRtcClientContext->pStunIpAddrCtx = NULL; + DLOGI("Destroyed STUN IP object"); + MUTEX_UNLOCK(pWebRtcClientContext->stunCtxlock); + /* End of handling STUN object */ + + if (IS_VALID_MUTEX_VALUE(pWebRtcClientContext->stunCtxlock)) { + MUTEX_FREE(pWebRtcClientContext->stunCtxlock); + pWebRtcClientContext->stunCtxlock = INVALID_MUTEX_VALUE; + } + + DLOGI("Destroyed WebRtc client context"); + +CleanUp: + return retStatus; +} + STATUS deinitKvsWebRtc(VOID) { ENTERS(); @@ -1459,8 +1727,13 @@ STATUS deinitKvsWebRtc(VOID) srtp_shutdown(); +#ifdef ENABLE_KVS_THREADPOOL + cleanupWebRtcClientInstance(); + destroyThreadPoolContext(); + DLOGI("Destroyed threadpool"); + RESET_INSTRUMENTED_ALLOCATORS(); +#endif ATOMIC_STORE_BOOL(&gKvsWebRtcInitialized, FALSE); - CleanUp: LEAVES(); @@ -1519,11 +1792,23 @@ STATUS peerConnectionGetMetrics(PRtcPeerConnection pPeerConnection, PPeerConnect { STATUS retStatus = STATUS_SUCCESS; PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) pPeerConnection; + PWebRtcClientContext pWebRtcClientContext = getWebRtcClientInstance(); + CHK(pKvsPeerConnection != NULL && pPeerConnectionMetrics != NULL, STATUS_NULL_ARG); if (pPeerConnectionMetrics->version > PEER_CONNECTION_METRICS_CURRENT_VERSION) { DLOGW("Peer connection metrics object version invalid..setting to highest default version %d", PEER_CONNECTION_METRICS_CURRENT_VERSION); pPeerConnectionMetrics->version = PEER_CONNECTION_METRICS_CURRENT_VERSION; } +#ifdef ENABLE_KVS_THREADPOOL + MUTEX_LOCK(pWebRtcClientContext->stunCtxlock); + if (pWebRtcClientContext->isContextInitialized) { + if (pWebRtcClientContext->pStunIpAddrCtx->isIpInitialized) { + pPeerConnectionMetrics->peerConnectionStats.stunDnsResolutionTime = pWebRtcClientContext->pStunIpAddrCtx->stunDnsResolutionTime; + } + } + MUTEX_UNLOCK(pWebRtcClientContext->stunCtxlock); +#endif + pPeerConnectionMetrics->peerConnectionStats.peerConnectionCreationTime = pKvsPeerConnection->peerConnectionDiagnostics.peerConnectionCreationTime; pPeerConnectionMetrics->peerConnectionStats.dtlsSessionSetupTime = pKvsPeerConnection->peerConnectionDiagnostics.dtlsSessionSetupTime; pPeerConnectionMetrics->peerConnectionStats.iceHolePunchingTime = pKvsPeerConnection->peerConnectionDiagnostics.iceHolePunchingTime; @@ -1531,6 +1816,7 @@ STATUS peerConnectionGetMetrics(PRtcPeerConnection pPeerConnection, PPeerConnect pPeerConnectionMetrics->peerConnectionStats.closePeerConnectionTime = pKvsPeerConnection->peerConnectionDiagnostics.closePeerConnectionTime; pPeerConnectionMetrics->peerConnectionStats.freePeerConnectionTime = pKvsPeerConnection->peerConnectionDiagnostics.freePeerConnectionTime; CleanUp: + releaseHoldOnInstance(pWebRtcClientContext); return retStatus; } diff --git a/src/source/PeerConnection/PeerConnection.h b/src/source/PeerConnection/PeerConnection.h index d473809da5..9fc3638bce 100644 --- a/src/source/PeerConnection/PeerConnection.h +++ b/src/source/PeerConnection/PeerConnection.h @@ -38,6 +38,8 @@ extern "C" { // Environment variable to display SDPs #define DEBUG_LOG_SDP ((PCHAR) "DEBUG_LOG_SDP") +#define MAX_ACCESS_THREADS_WEBRTC_CLIENT_CONTEXT 50 + typedef enum { RTC_RTX_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE = 1, RTC_RTX_CODEC_VP8 = 2, @@ -150,6 +152,25 @@ typedef struct { PHashTable unkeyedDataChannels; } AllocateSctpSortDataChannelsData, *PAllocateSctpSortDataChannelsData; +typedef struct { + CHAR hostname[MAX_ICE_CONFIG_URI_LEN + 1]; + KvsIpAddress kvsIpAddr; + BOOL isIpInitialized; + UINT64 startTime; + UINT64 stunDnsResolutionTime; + UINT64 expirationDuration; + STATUS status; +} StunIpAddrContext, *PStunIpAddrContext; + +// Declare the structure of the Singleton +// Members of the singleton are responsible for their own sync mechanisms. +typedef struct { + PStunIpAddrContext pStunIpAddrCtx; + volatile ATOMIC_BOOL isContextInitialized; + volatile SIZE_T contextRefCnt; + MUTEX stunCtxlock; +} WebRtcClientContext, *PWebRtcClientContext; + STATUS onFrameReadyFunc(UINT64, UINT16, UINT16, UINT32); STATUS onFrameDroppedFunc(UINT64, UINT16, UINT16, UINT32); VOID onSctpSessionOutboundPacket(UINT64, PBYTE, UINT32); diff --git a/src/source/PeerConnection/Rtcp.c b/src/source/PeerConnection/Rtcp.c index bbf6e73927..00cb71263a 100644 --- a/src/source/PeerConnection/Rtcp.c +++ b/src/source/PeerConnection/Rtcp.c @@ -340,7 +340,6 @@ STATUS onRtcpPacket(PKvsPeerConnection pKvsPeerConnection, PBYTE pBuff, UINT32 b UINT32 currentOffset = 0; CHK(pKvsPeerConnection != NULL && pBuff != NULL, STATUS_NULL_ARG); - DLOGD("**rtcp**"); while (currentOffset < buffLen) { CHK_STATUS(setRtcpPacketFromBytes(pBuff + currentOffset, buffLen - currentOffset, &rtcpPacket)); diff --git a/src/source/PeerConnection/SessionDescription.c b/src/source/PeerConnection/SessionDescription.c index e14f2150fe..6781a6a902 100644 --- a/src/source/PeerConnection/SessionDescription.c +++ b/src/source/PeerConnection/SessionDescription.c @@ -311,16 +311,21 @@ PCHAR fmtpForPayloadType(UINT64 payloadType, PSessionDescription pSessionDescrip UINT32 currentMedia, currentAttribute; PSdpMediaDescription pMediaDescription = NULL; CHAR payloadStr[MAX_SDP_ATTRIBUTE_VALUE_LENGTH]; + INT32 amountWritten = 0; MEMSET(payloadStr, 0x00, MAX_SDP_ATTRIBUTE_VALUE_LENGTH); - SPRINTF(payloadStr, "%" PRId64, payloadType); + amountWritten = SNPRINTF(payloadStr, SIZEOF(payloadStr), "%" PRId64, payloadType); - for (currentMedia = 0; currentMedia < pSessionDescription->mediaCount; currentMedia++) { - pMediaDescription = &(pSessionDescription->mediaDescriptions[currentMedia]); - for (currentAttribute = 0; currentAttribute < pMediaDescription->mediaAttributesCount; currentAttribute++) { - if (STRCMP(pMediaDescription->sdpAttributes[currentAttribute].attributeName, "fmtp") == 0 && - STRNCMP(pMediaDescription->sdpAttributes[currentAttribute].attributeValue, payloadStr, STRLEN(payloadStr)) == 0) { - return pMediaDescription->sdpAttributes[currentAttribute].attributeValue + STRLEN(payloadStr) + 1; + if (amountWritten < 0) { + DLOGE("Internal error: Full payload type for fmtp could not be written"); + } else { + for (currentMedia = 0; currentMedia < pSessionDescription->mediaCount; currentMedia++) { + pMediaDescription = &(pSessionDescription->mediaDescriptions[currentMedia]); + for (currentAttribute = 0; currentAttribute < pMediaDescription->mediaAttributesCount; currentAttribute++) { + if (STRCMP(pMediaDescription->sdpAttributes[currentAttribute].attributeName, "fmtp") == 0 && + STRNCMP(pMediaDescription->sdpAttributes[currentAttribute].attributeValue, payloadStr, STRLEN(payloadStr)) == 0) { + return pMediaDescription->sdpAttributes[currentAttribute].attributeValue + STRLEN(payloadStr) + 1; + } } } } @@ -400,6 +405,7 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp PSdpMediaDescription pSdpMediaDescriptionRemote; PCHAR currentFmtp = NULL, rtpMapValue = NULL; CHAR remoteSdpAttributeValue[MAX_SDP_ATTRIBUTE_VALUE_LENGTH]; + INT32 amountWritten = 0; MEMSET(remoteSdpAttributeValue, 0, MAX_SDP_ATTRIBUTE_VALUE_LENGTH); @@ -423,12 +429,18 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp containRtx = (retStatus == STATUS_SUCCESS); retStatus = STATUS_SUCCESS; if (containRtx) { - SPRINTF(pSdpMediaDescription->mediaName, "video 9 UDP/TLS/RTP/SAVPF %" PRId64 " %" PRId64, payloadType, rtxPayloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->mediaName, SIZEOF(pSdpMediaDescription->mediaName), + "video 9 UDP/TLS/RTP/SAVPF %" PRId64 " %" PRId64, payloadType, rtxPayloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full video (with rtx) media name attribute could not be written"); } else { - SPRINTF(pSdpMediaDescription->mediaName, "video 9 UDP/TLS/RTP/SAVPF %" PRId64, payloadType); + amountWritten = + SNPRINTF(pSdpMediaDescription->mediaName, SIZEOF(pSdpMediaDescription->mediaName), "video 9 UDP/TLS/RTP/SAVPF %" PRId64, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full video media name attribute could not be written"); } } else if (pRtcMediaStreamTrack->kind == MEDIA_STREAM_TRACK_KIND_AUDIO) { - SPRINTF(pSdpMediaDescription->mediaName, "audio 9 UDP/TLS/RTP/SAVPF %" PRId64, payloadType); + amountWritten = + SNPRINTF(pSdpMediaDescription->mediaName, SIZEOF(pSdpMediaDescription->mediaName), "audio 9 UDP/TLS/RTP/SAVPF %" PRId64, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full audio media name attribute could not be written"); } CHK_STATUS(iceAgentPopulateSdpMediaDescriptionCandidates(pKvsPeerConnection->pIceAgent, pSdpMediaDescription, MAX_SDP_ATTRIBUTE_VALUE_LENGTH, @@ -436,60 +448,82 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp if (containRtx) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "msid"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%s %sRTX", pRtcMediaStreamTrack->streamId, - pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%s %sRTX", + pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full msid value (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc-group"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "FID %u %u", pKvsRtpTransceiver->sender.ssrc, - pKvsRtpTransceiver->sender.rtxSsrc); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "FID %u %u", + pKvsRtpTransceiver->sender.ssrc, pKvsRtpTransceiver->sender.rtxSsrc); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc-grp value (with rtx) could not be written"); attributeCount++; } else { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "msid"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%s %s", pRtcMediaStreamTrack->streamId, - pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%s %s", pRtcMediaStreamTrack->streamId, + pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full msid value could not be written"); attributeCount++; } STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u cname:%s", pKvsRtpTransceiver->sender.ssrc, - pKvsPeerConnection->localCNAME); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u cname:%s", + pKvsRtpTransceiver->sender.ssrc, pKvsPeerConnection->localCNAME); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc cname could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u msid:%s %s", pKvsRtpTransceiver->sender.ssrc, - pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u msid:%s %s", + pKvsRtpTransceiver->sender.ssrc, pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc msid could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u mslabel:%s", pKvsRtpTransceiver->sender.ssrc, - pRtcMediaStreamTrack->streamId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u mslabel:%s", + pKvsRtpTransceiver->sender.ssrc, pRtcMediaStreamTrack->streamId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc mslabel could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u label:%s", pKvsRtpTransceiver->sender.ssrc, - pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u label:%s", + pKvsRtpTransceiver->sender.ssrc, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc label could not be written"); attributeCount++; if (containRtx) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u cname:%s", pKvsRtpTransceiver->sender.rtxSsrc, - pKvsPeerConnection->localCNAME); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u cname:%s", + pKvsRtpTransceiver->sender.rtxSsrc, pKvsPeerConnection->localCNAME); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc cname (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u msid:%s %sRTX", pKvsRtpTransceiver->sender.rtxSsrc, - pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u msid:%s %sRTX", + pKvsRtpTransceiver->sender.rtxSsrc, pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc msid (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u mslabel:%sRTX", pKvsRtpTransceiver->sender.rtxSsrc, - pRtcMediaStreamTrack->streamId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u mslabel:%sRTX", + pKvsRtpTransceiver->sender.rtxSsrc, pRtcMediaStreamTrack->streamId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc mslabel (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u label:%sRTX", pKvsRtpTransceiver->sender.rtxSsrc, - pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u label:%sRTX", + pKvsRtpTransceiver->sender.rtxSsrc, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ssrc label (with rtx) could not be written"); attributeCount++; } @@ -505,9 +539,11 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, pKvsPeerConnection->localIcePwd); attributeCount++; - STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ice-options"); - STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "trickle"); - attributeCount++; + if (pKvsPeerConnection->canTrickleIce.value) { + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ice-options"); + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "trickle"); + attributeCount++; + } STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fingerprint"); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "sha-256 "); @@ -531,9 +567,13 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp // If we don't have it, we loop over, create and add them if (STRLEN(remoteSdpAttributeValue) > 0) { CHK(STRLEN(remoteSdpAttributeValue) < MAX_SDP_ATTRIBUTE_VALUE_LENGTH, STATUS_BUFFER_TOO_SMALL); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%s", remoteSdpAttributeValue); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%s", remoteSdpAttributeValue); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Mid exists, but remote SDP value could not be written"); } else { - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%d", mediaSectionId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%d", mediaSectionId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full media section Id could not be written"); } attributeCount++; @@ -592,7 +632,23 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp currentFmtp = DEFAULT_H264_FMTP; } STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " H264/90000", payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " H264/90000", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 payload type could not be written"); + attributeCount++; + + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " nack", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 rtcp-fb nack value could not be written"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " nack pli", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 rtcp-fb nack-pli value could not be written"); + attributeCount++; + + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); + SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " nack", payloadType); + SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " nack pli", payloadType); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); @@ -603,17 +659,26 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp // TODO: If level asymmetry is allowed, consider sending back DEFAULT_H264_FMTP instead of the received fmtp value. if (currentFmtp != NULL) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " %s", payloadType, currentFmtp); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " %s", payloadType, currentFmtp); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 fmtp value could not be written"); attributeCount++; } if (containRtx) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " RTX_VALUE, rtxPayloadType); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " RTX_VALUE, rtxPayloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 rtpmap (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " apt=%" PRId64 "", rtxPayloadType, payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " apt=%" PRId64 "", + rtxPayloadType, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H264 fmtp apt value (with rtx) could not be written"); attributeCount++; } } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_OPUS) { @@ -622,61 +687,90 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp } STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " opus/48000/2", payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " opus/48000/2", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full Opus rtpmap could not be written"); attributeCount++; if (currentFmtp != NULL) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " %s", payloadType, currentFmtp); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " %s", payloadType, currentFmtp); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full Opus fmtp could not be written"); attributeCount++; } } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_VP8) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " VP8_VALUE, payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " VP8_VALUE, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full VP8 rtpmap could not be written"); attributeCount++; if (containRtx) { CHK_STATUS(hashTableGet(pKvsPeerConnection->pRtxTable, RTC_RTX_CODEC_VP8, &rtxPayloadType)); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " RTX_VALUE, rtxPayloadType); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " RTX_VALUE, rtxPayloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full VP8 rtpmap payload type (with rtx) could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " apt=%" PRId64 "", rtxPayloadType, payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " apt=%" PRId64 "", + rtxPayloadType, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full VP8 rtpmap fmtp apt value (with rtx) could not be written"); attributeCount++; } } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_MULAW) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " MULAW_VALUE, payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " MULAW_VALUE, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full MULAW rtpmap could not be written"); attributeCount++; } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_ALAW) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " ALAW_VALUE, payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " ALAW_VALUE, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ALAW rtpmap could not be written"); attributeCount++; } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_UNKNOWN) { CHK_STATUS(hashTableGet(pUnknownCodecRtpmapTable, unknownCodecHashTableKey, (PUINT64) &rtpMapValue)); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " %s", payloadType, rtpMapValue); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " %s", payloadType, rtpMapValue); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full Unknown rtpmap could not be written"); attributeCount++; } STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u cname:%s", pKvsRtpTransceiver->sender.ssrc, - pKvsPeerConnection->localCNAME); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u cname:%s", + pKvsRtpTransceiver->sender.ssrc, pKvsPeerConnection->localCNAME); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full transceiver ssrc cname could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ssrc"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%u msid:%s %s", pKvsRtpTransceiver->sender.ssrc, - pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%u msid:%s %s", + pKvsRtpTransceiver->sender.ssrc, pRtcMediaStreamTrack->streamId, pRtcMediaStreamTrack->trackId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full transceiver ssrc msid could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " goog-remb", payloadType); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " goog-remb", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full rtcp-fb goog-remb could not be written"); attributeCount++; if (pKvsPeerConnection->twccExtId != 0) { STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%" PRId64 " " TWCC_SDP_ATTR, payloadType); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " TWCC_SDP_ATTR, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full rtcp-fb twcc could not be written"); attributeCount++; } @@ -694,8 +788,11 @@ STATUS populateSessionDescriptionDataChannel(PKvsPeerConnection pKvsPeerConnecti ENTERS(); STATUS retStatus = STATUS_SUCCESS; UINT32 attributeCount = 0; + INT32 amountWritten = 0; - SPRINTF(pSdpMediaDescription->mediaName, "application 9 UDP/DTLS/SCTP webrtc-datachannel"); + amountWritten = + SNPRINTF(pSdpMediaDescription->mediaName, SIZEOF(pSdpMediaDescription->mediaName), "application 9 UDP/DTLS/SCTP webrtc-datachannel"); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full data channel media name could not be written"); CHK_STATUS(iceAgentPopulateSdpMediaDescriptionCandidates(pKvsPeerConnection->pIceAgent, pSdpMediaDescription, MAX_SDP_ATTRIBUTE_VALUE_LENGTH, &attributeCount)); @@ -712,6 +809,12 @@ STATUS populateSessionDescriptionDataChannel(PKvsPeerConnection pKvsPeerConnecti STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, pKvsPeerConnection->localIcePwd); attributeCount++; + if (pKvsPeerConnection->canTrickleIce.value) { + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ice-options"); + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "trickle"); + attributeCount++; + } + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fingerprint"); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "sha-256 "); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue + 8, pCertificateFingerprint); @@ -722,11 +825,15 @@ STATUS populateSessionDescriptionDataChannel(PKvsPeerConnection pKvsPeerConnecti attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "mid"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "%d", mediaSectionId); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%d", mediaSectionId); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full data channel mid media section could not be written"); attributeCount++; STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "sctp-port"); - SPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "5000"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "5000"); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full data channel sctp-port could not be written"); attributeCount++; pSdpMediaDescription->mediaAttributesCount = attributeCount; @@ -888,9 +995,7 @@ STATUS populateSessionDescription(PKvsPeerConnection pKvsPeerConnection, PSessio INT32 charsCopied; CHK(pKvsPeerConnection != NULL && pLocalSessionDescription != NULL && pRemoteSessionDescription != NULL, STATUS_NULL_ARG); - CHK_STATUS(populateSessionDescriptionMedia(pKvsPeerConnection, pRemoteSessionDescription, pLocalSessionDescription)); - MEMSET(bundleValue, 0, MAX_SDP_ATTRIBUTE_VALUE_LENGTH); MEMSET(wmsValue, 0, MAX_SDP_ATTRIBUTE_VALUE_LENGTH); MEMSET(remoteSdpAttributeValue, 0, MAX_SDP_ATTRIBUTE_VALUE_LENGTH); @@ -910,6 +1015,13 @@ STATUS populateSessionDescription(PKvsPeerConnection pKvsPeerConnection, PSessio STRCPY(pLocalSessionDescription->sdpAttributes[0].attributeName, "group"); STRCPY(pLocalSessionDescription->sdpAttributes[0].attributeValue, BUNDLE_KEY); + pLocalSessionDescription->sessionAttributesCount++; + + if (pKvsPeerConnection->canTrickleIce.value) { + STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeName, "ice-options"); + STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeValue, "trickle"); + pLocalSessionDescription->sessionAttributesCount++; + } // check all session attribute lines to see if a line with BUNDLE is present. If it is present, copy its content and break for (i = 0; i < pRemoteSessionDescription->sessionAttributesCount; i++) { @@ -941,7 +1053,6 @@ STATUS populateSessionDescription(PKvsPeerConnection pKvsPeerConnection, PSessio STRCPY(pLocalSessionDescription->mediaDescriptions[i].sdpConnectionInformation.addressType, "IP4"); STRCPY(pLocalSessionDescription->mediaDescriptions[i].sdpConnectionInformation.connectionAddress, "127.0.0.1"); } - pLocalSessionDescription->sessionAttributesCount++; STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeName, "msid-semantic"); STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeValue, " WMS myKvsVideoStream"); diff --git a/src/source/Sctp/Sctp.c b/src/source/Sctp/Sctp.c index 401fce5f0f..2af922e0cd 100644 --- a/src/source/Sctp/Sctp.c +++ b/src/source/Sctp/Sctp.c @@ -59,7 +59,7 @@ STATUS initSctpSession() { STATUS retStatus = STATUS_SUCCESS; - usrsctp_init(0, &onSctpOutboundPacket, NULL); + usrsctp_init_nothreads(0, &onSctpOutboundPacket, NULL); // Disable Explicit Congestion Notification usrsctp_sysctl_set_sctp_ecn_enable(0); @@ -86,7 +86,7 @@ STATUS createSctpSession(PSctpSessionCallbacks pSctpSessionCallbacks, PSctpSessi CHK(ppSctpSession != NULL && pSctpSessionCallbacks != NULL, STATUS_NULL_ARG); - pSctpSession = (PSctpSession) MEMALLOC(SIZEOF(SctpSession)); + pSctpSession = (PSctpSession) MEMCALLOC(1, SIZEOF(SctpSession)); CHK(pSctpSession != NULL, STATUS_NOT_ENOUGH_MEMORY); MEMSET(¶ms, 0x00, SIZEOF(struct sctp_paddrparams)); @@ -317,6 +317,8 @@ STATUS handleDcepPacket(PSctpSession pSctpSession, UINT32 streamId, PBYTE data, CHK((labelLength + protocolLength + SCTP_DCEP_HEADER_LENGTH) >= length, STATUS_SCTP_INVALID_DCEP_PACKET); + CHK(SCTP_MAX_ALLOWABLE_PACKET_LENGTH >= length, STATUS_SCTP_INVALID_DCEP_PACKET); + pSctpSession->sctpSessionCallbacks.dataChannelOpenFunc(pSctpSession->sctpSessionCallbacks.customData, streamId, data + SCTP_DCEP_HEADER_LENGTH, labelLength); diff --git a/src/source/Sdp/Sdp.h b/src/source/Sdp/Sdp.h index c156e80357..6077a4e100 100644 --- a/src/source/Sdp/Sdp.h +++ b/src/source/Sdp/Sdp.h @@ -46,17 +46,47 @@ extern "C" { #define MAX_SDP_OFFSET_LENGTH 255 #define MAX_SDP_ENCRYPTION_KEY_METHOD_LENGTH 255 #define MAX_SDP_ENCRYPTION_KEY_LENGTH 255 -#define MAX_SDP_NETWORK_TYPE_LENGTH 255 -#define MAX_SDP_ADDRESS_TYPE_LENGTH 255 -#define MAX_SDP_CONNECTION_ADDRESS_LENGTH 255 -#define MAX_SDP_SESSION_USERNAME_LENGTH 255 -#define MAX_SDP_ATTRIBUTE_NAME_LENGTH 255 -#define MAX_SDP_ATTRIBUTE_VALUE_LENGTH 255 -#define MAX_SDP_MEDIA_NAME_LENGTH 255 -#define MAX_SDP_MEDIA_TITLE_LENGTH 255 -#define MAX_SDP_BANDWIDTH_LENGTH 255 + +/* https://datatracker.ietf.org/doc/html/rfc4566#section-5.7 -- the SDK hardcodes this to be IN as per spec. + * Also, this SDK is to be used in the Internet realm. Allowing for some extra buffer + */ +#define MAX_SDP_NETWORK_TYPE_LENGTH 7 + +/* https://datatracker.ietf.org/doc/html/rfc4566#section-5.7 -- Given the SDK is to operate in IP based sessions, + * the possible values are IP4/IP6 as registered with IANA. Allowing for some extra buffer + */ +#define MAX_SDP_ADDRESS_TYPE_LENGTH 7 + +/* https://datatracker.ietf.org/doc/html/rfc4566#section-5.7 -- Given the SDK is to operate in IP based sessions, + * an IPv4 address can be a maximum of characters where TTL is + * between 0 and 255. IPv6 can be a maximum of . Setting to 63 for additional padding + */ +#define MAX_SDP_CONNECTION_ADDRESS_LENGTH 63 + +// https://datatracker.ietf.org/doc/html/rfc4566#section-5.2 -- the SDK sets it to "-" and the SDK does not parse incoming username either +#define MAX_SDP_SESSION_USERNAME_LENGTH 32 + +// https://datatracker.ietf.org/doc/html/rfc4566#section-6 -- name length restricted based on current supported attribute set +#define MAX_SDP_ATTRIBUTE_NAME_LENGTH 32 + +// One of the attributes is streamId + trackId which sums up to 512 maximum characters +#define MAX_SDP_ATTRIBUTE_VALUE_LENGTH 512 + +#define MAX_SDP_MEDIA_NAME_LENGTH 255 + +/* https://tools.ietf.org/html/rfc4566#section-5.4. Given these are free-form textual strings, that is, the length could be anything. + * Although our SDK parses this information, the SDK does not use it. Leaving this attribute in if SDK uses it in + * the future, but keeping it at smaller size to ensure structure memory efficiency + */ +#define MAX_SDP_MEDIA_TITLE_LENGTH 127 + +/* https://tools.ietf.org/html/rfc4566#section-5.4. Given these are free-form textual strings, that is, the length could be anything. + * Although our SDK parses this information, the SDK does not use it. Leaving this attribute in if SDK uses it in + * the future, but keeping it at smaller size to ensure structure memory efficiency + */ +#define MAX_SDP_SESSION_INFORMATION_LENGTH 127 + #define MAX_SDP_SESSION_NAME_LENGTH 255 -#define MAX_SDP_SESSION_INFORMATION_LENGTH 255 #define MAX_SDP_SESSION_URI_LENGTH 255 #define MAX_SDP_SESSION_EMAIL_ADDRESS_LENGTH 255 #define MAX_SDP_SESSION_PHONE_NUMBER_LENGTH 255 @@ -64,7 +94,6 @@ extern "C" { #define MAX_SDP_TOKEN_LENGTH 128 #define MAX_SDP_FMTP_VALUES 64 -#define MAX_SDP_SESSION_BANDWIDTH_COUNT 2 #define MAX_SDP_SESSION_TIME_DESCRIPTION_COUNT 2 #define MAX_SDP_SESSION_TIMEZONE_COUNT 2 /** @@ -98,11 +127,6 @@ typedef struct { SdpConnectionInformation sdpConnectionInformation; } SdpOrigin, *PSdpOrigin; -typedef struct { - CHAR sdpBandwidthType[MAX_SDP_BANDWIDTH_LENGTH + 1]; - UINT64 sdpBandwidthValue; // bps -} SdpBandwidth, *PSdpBandwidth; - /* * https://tools.ietf.org/html/rfc4566#section-5.9 * https://tools.ietf.org/html/rfc4566#section-5.10 @@ -142,13 +166,13 @@ typedef struct { CHAR mediaName[MAX_SDP_MEDIA_NAME_LENGTH + 1]; // i= - // https://tools.ietf.org/html/rfc4566#section-5.4 + // https://tools.ietf.org/html/rfc4566#section-5.4. Given these are free-form strings, the length could be anything. + // Although our SDK parses this information, the SDK does not use it. Leaving this attribute in if SDK uses it in + // the future CHAR mediaTitle[MAX_SDP_MEDIA_TITLE_LENGTH + 1]; SdpConnectionInformation sdpConnectionInformation; - SdpBandwidth sdpBandwidth[MAX_SDP_MEDIA_BANDWIDTH_COUNT]; - SdpEncryptionKey sdpEncryptionKey; SdpAttributes sdpAttributes[MAX_SDP_ATTRIBUTES_COUNT]; @@ -186,8 +210,6 @@ typedef struct { SdpConnectionInformation sdpConnectionInformation; - SdpBandwidth sdpBandwidth[MAX_SDP_SESSION_BANDWIDTH_COUNT]; - SdpTimeDescription sdpTimeDescription[MAX_SDP_SESSION_TIME_DESCRIPTION_COUNT]; SdpTimeZone sdpTimeZone[MAX_SDP_SESSION_TIMEZONE_COUNT]; diff --git a/src/source/Signaling/FileCache.c b/src/source/Signaling/FileCache.c index 3f69fb9296..bf79456276 100644 --- a/src/source/Signaling/FileCache.c +++ b/src/source/Signaling/FileCache.c @@ -38,7 +38,8 @@ STATUS deserializeSignalingCacheEntries(PCHAR cachedFileContent, UINT64 fileSize pCurrent = cachedFileContent; remainingSize = (UINT32) fileSize; /* detect end of file */ - while (remainingSize > MAX_SIGNALING_CACHE_ENTRY_TIMESTAMP_STR_LEN) { + while (STRNLEN(pCurrent, MAX_SERIALIZED_SIGNALING_CACHE_ENTRY_LEN * MAX_SIGNALING_CACHE_ENTRY_COUNT) > 0 && + remainingSize > MAX_SIGNALING_CACHE_ENTRY_TIMESTAMP_STR_LEN) { nextLine = STRCHR(pCurrent, '\n'); while ((nextToken = STRCHR(pCurrent, ',')) != NULL && nextToken < nextLine) { switch (tokenCount % 10) { diff --git a/src/source/Signaling/LwsApiCalls.c b/src/source/Signaling/LwsApiCalls.c index 72c5fc1e32..b696157da7 100644 --- a/src/source/Signaling/LwsApiCalls.c +++ b/src/source/Signaling/LwsApiCalls.c @@ -2209,8 +2209,9 @@ STATUS receiveLwsMessage(PSignalingClient pSignalingClient, PCHAR pMessage, UINT DLOGW("Failed to validate the ICE server configuration received with an Offer"); } -#ifdef KVS_USE_SIGNALING_CHANNEL_THREADPOOL - CHK_STATUS(threadpoolPush(pSignalingClient->pThreadpool, receiveLwsMessageWrapper, (PVOID) pSignalingMessageWrapper)); +#ifdef ENABLE_KVS_THREADPOOL + // This would fail if threadpool was not created + CHK_STATUS(threadpoolContextPush(receiveLwsMessageWrapper, pSignalingMessageWrapper)); #else // Issue the callback on a separate thread CHK_STATUS(THREAD_CREATE(&receivedTid, receiveLwsMessageWrapper, (PVOID) pSignalingMessageWrapper)); diff --git a/src/source/Signaling/Signaling.c b/src/source/Signaling/Signaling.c index e0406e8bff..5cbdca7870 100644 --- a/src/source/Signaling/Signaling.c +++ b/src/source/Signaling/Signaling.c @@ -37,10 +37,6 @@ STATUS createSignalingSync(PSignalingClientInfoInternal pClientInfo, PChannelInf CHK_STATUS(createValidateChannelInfo(pChannelInfo, &pSignalingClient->pChannelInfo)); CHK_STATUS(validateSignalingCallbacks(pSignalingClient, pCallbacks)); CHK_STATUS(validateSignalingClientInfo(pSignalingClient, pClientInfo)); -#ifdef KVS_USE_SIGNALING_CHANNEL_THREADPOOL - CHK_STATUS(threadpoolCreate(&pSignalingClient->pThreadpool, pClientInfo->signalingClientInfo.signalingMessagesMinimumThreads, - pClientInfo->signalingClientInfo.signalingMessagesMaximumThreads)); -#endif pSignalingClient->version = SIGNALING_CLIENT_CURRENT_VERSION; // Set invalid call times pSignalingClient->describeTime = INVALID_TIMESTAMP_VALUE; @@ -91,9 +87,10 @@ STATUS createSignalingSync(PSignalingClientInfoInternal pClientInfo, PChannelInf CHK_STATUS(configureRetryStrategyForSignalingStateMachine(pSignalingClient)); // Create the state machine - CHK_STATUS(createStateMachine(SIGNALING_STATE_MACHINE_STATES, SIGNALING_STATE_MACHINE_STATE_COUNT, - CUSTOM_DATA_FROM_SIGNALING_CLIENT(pSignalingClient), signalingGetCurrentTime, - CUSTOM_DATA_FROM_SIGNALING_CLIENT(pSignalingClient), &pSignalingClient->pStateMachine)); + CHK_STATUS(createStateMachineWithName(SIGNALING_STATE_MACHINE_STATES, SIGNALING_STATE_MACHINE_STATE_COUNT, + CUSTOM_DATA_FROM_SIGNALING_CLIENT(pSignalingClient), signalingGetCurrentTime, + CUSTOM_DATA_FROM_SIGNALING_CLIENT(pSignalingClient), SIGNALING_STATE_MACHINE_NAME, + &pSignalingClient->pStateMachine)); // Prepare the signaling channel protocols array pSignalingClient->signalingProtocols[PROTOCOL_INDEX_HTTPS].name = HTTPS_SCHEME_NAME; @@ -241,10 +238,6 @@ STATUS freeSignaling(PSignalingClient* ppSignalingClient) hashTableFree(pSignalingClient->diagnostics.pEndpointToClockSkewHashMap); -#ifdef KVS_USE_SIGNALING_CHANNEL_THREADPOOL - threadpoolFree(pSignalingClient->pThreadpool); -#endif - if (IS_VALID_MUTEX_VALUE(pSignalingClient->connectedLock)) { MUTEX_FREE(pSignalingClient->connectedLock); } @@ -420,8 +413,8 @@ STATUS signalingSendMessageSync(PSignalingClient pSignalingClient, PSignalingMes if (pSignalingMessage->messageType == SIGNALING_MESSAGE_TYPE_OFFER) { pSignalingClient->offerSentTime = GETTIME(); } else if (pSignalingMessage->messageType == SIGNALING_MESSAGE_TYPE_ANSWER) { - PROFILE_WITH_START_TIME_OBJ(pSignalingClient->offerReceivedTime, pSignalingClient->diagnostics.offerToAnswerTime, - "Offer Received to Answer Sent time"); + PROFILE_WITH_START_END_TIME_OBJ(pSignalingClient->offerReceivedTime, pSignalingClient->answerTime, + pSignalingClient->diagnostics.offerToAnswerTime, "Offer Received to Answer Sent time"); } MUTEX_UNLOCK(pSignalingClient->offerSendReceiveTimeLock); // Update the internal diagnostics only after successfully sending @@ -1426,6 +1419,22 @@ STATUS signalingGetMetrics(PSignalingClient pSignalingClient, PSignalingClientMe pSignalingClientMetrics->signalingClientStats.connectClientTime = pSignalingClient->diagnostics.connectClientTime; pSignalingClientMetrics->signalingClientStats.joinSessionCallTime = pSignalingClient->diagnostics.joinSessionCallTime; pSignalingClientMetrics->signalingClientStats.offerToAnswerTime = pSignalingClient->diagnostics.offerToAnswerTime; + pSignalingClientMetrics->signalingClientStats.answerTime = pSignalingClient->answerTime; + pSignalingClientMetrics->signalingClientStats.offerReceivedTime = pSignalingClient->offerReceivedTime; + pSignalingClientMetrics->signalingClientStats.describeChannelStartTime = pSignalingClient->diagnostics.describeChannelStartTime; + pSignalingClientMetrics->signalingClientStats.describeChannelEndTime = pSignalingClient->diagnostics.describeChannelEndTime; + pSignalingClientMetrics->signalingClientStats.getSignalingChannelEndpointStartTime = + pSignalingClient->diagnostics.getSignalingChannelEndpointStartTime; + pSignalingClientMetrics->signalingClientStats.getSignalingChannelEndpointEndTime = + pSignalingClient->diagnostics.getSignalingChannelEndpointEndTime; + pSignalingClientMetrics->signalingClientStats.getIceServerConfigStartTime = pSignalingClient->diagnostics.getIceServerConfigStartTime; + pSignalingClientMetrics->signalingClientStats.getIceServerConfigEndTime = pSignalingClient->diagnostics.getIceServerConfigEndTime; + pSignalingClientMetrics->signalingClientStats.getTokenStartTime = pSignalingClient->diagnostics.getTokenStartTime; + pSignalingClientMetrics->signalingClientStats.getTokenEndTime = pSignalingClient->diagnostics.getTokenEndTime; + pSignalingClientMetrics->signalingClientStats.createChannelStartTime = pSignalingClient->diagnostics.createChannelStartTime; + pSignalingClientMetrics->signalingClientStats.createChannelEndTime = pSignalingClient->diagnostics.createChannelEndTime; + pSignalingClientMetrics->signalingClientStats.connectStartTime = pSignalingClient->diagnostics.connectStartTime; + pSignalingClientMetrics->signalingClientStats.connectEndTime = pSignalingClient->diagnostics.connectEndTime; pSignalingClientMetrics->signalingClientStats.joinSessionToOfferRecvTime = pSignalingClient->diagnostics.joinSessionToOfferRecvTime; case 0: // Fill in the data structures according to the version of the requested structure diff --git a/src/source/Signaling/Signaling.h b/src/source/Signaling/Signaling.h index 6f0aee0209..7f8bf52b89 100644 --- a/src/source/Signaling/Signaling.h +++ b/src/source/Signaling/Signaling.h @@ -89,6 +89,8 @@ extern "C" { #define DEFAULT_CREATE_SIGNALING_CLIENT_RETRY_ATTEMPTS 7 +#define SIGNALING_STATE_MACHINE_NAME (PCHAR) "SIGNALING" + static const ExponentialBackoffRetryStrategyConfig DEFAULT_SIGNALING_STATE_MACHINE_EXPONENTIAL_BACKOFF_RETRY_CONFIGURATION = { /* Exponential wait times with this config will look like following - ************************************ @@ -184,6 +186,18 @@ typedef struct { volatile SIZE_T numberOfErrors; volatile SIZE_T numberOfRuntimeErrors; volatile SIZE_T numberOfReconnects; + UINT64 describeChannelStartTime; + UINT64 describeChannelEndTime; + UINT64 getSignalingChannelEndpointStartTime; + UINT64 getSignalingChannelEndpointEndTime; + UINT64 getIceServerConfigStartTime; + UINT64 getIceServerConfigEndTime; + UINT64 getTokenStartTime; + UINT64 getTokenEndTime; + UINT64 createChannelStartTime; + UINT64 createChannelEndTime; + UINT64 connectStartTime; + UINT64 connectEndTime; UINT64 createTime; UINT64 connectTime; UINT64 cpApiLatency; @@ -358,10 +372,7 @@ typedef struct { UINT64 deleteTime; UINT64 connectTime; UINT64 describeMediaTime; - -#ifdef KVS_USE_SIGNALING_CHANNEL_THREADPOOL - PThreadpool pThreadpool; -#endif + UINT64 answerTime; UINT64 offerReceivedTime; UINT64 offerSentTime; @@ -373,7 +384,6 @@ typedef struct { // Conditional variable for join storage session wait state CVAR jssWaitCvar; - } SignalingClient, *PSignalingClient; // Public handle to and from object converters diff --git a/src/source/Signaling/StateMachine.c b/src/source/Signaling/StateMachine.c index 3c4d0d8dbf..c865a626be 100644 --- a/src/source/Signaling/StateMachine.c +++ b/src/source/Signaling/StateMachine.c @@ -38,8 +38,9 @@ StateMachineState SIGNALING_STATE_MACHINE_STATES[] = { SIGNALING_STATE_JOIN_SESSION_CONNECTED | SIGNALING_STATE_GET_ENDPOINT | SIGNALING_STATE_READY | SIGNALING_STATE_GET_ICE_CONFIG, fromGetIceConfigSignalingState, executeGetIceConfigSignalingState, defaultSignalingStateTransitionHook, SIGNALING_STATES_DEFAULT_RETRY_COUNT, STATUS_SIGNALING_GET_ICE_CONFIG_CALL_FAILED}, - {SIGNALING_STATE_READY, SIGNALING_STATE_GET_ICE_CONFIG | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_READY, fromReadySignalingState, - executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, STATUS_SIGNALING_READY_CALLBACK_FAILED}, + {SIGNALING_STATE_READY, SIGNALING_STATE_GET_ENDPOINT | SIGNALING_STATE_GET_ICE_CONFIG | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_READY, + fromReadySignalingState, executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, + STATUS_SIGNALING_READY_CALLBACK_FAILED}, {SIGNALING_STATE_CONNECT, SIGNALING_STATE_READY | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_CONNECTED | SIGNALING_STATE_JOIN_SESSION | SIGNALING_STATE_CONNECT, fromConnectSignalingState, executeConnectSignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, @@ -346,7 +347,6 @@ STATUS executeGetTokenSignalingState(UINT64 customData, UINT64 time) STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); SERVICE_CALL_RESULT serviceCallResult; - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); @@ -362,9 +362,10 @@ STATUS executeGetTokenSignalingState(UINT64 customData, UINT64 time) THREAD_SLEEP_UNTIL(time); // Use the credential provider to get the token - PROFILE_CALL_WITH_T_OBJ(retStatus = pSignalingClient->pCredentialProvider->getCredentialsFn(pSignalingClient->pCredentialProvider, - &pSignalingClient->pAwsCredentials), - pSignalingClient->diagnostics.getTokenCallTime, "Get token call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = pSignalingClient->pCredentialProvider->getCredentialsFn(pSignalingClient->pCredentialProvider, + &pSignalingClient->pAwsCredentials), + pSignalingClient->diagnostics.getTokenStartTime, pSignalingClient->diagnostics.getTokenEndTime, + pSignalingClient->diagnostics.getTokenCallTime, "Get token call"); // Check the expiration if (NULL == pSignalingClient->pAwsCredentials || SIGNALING_GET_CURRENT_TIME(pSignalingClient) >= pSignalingClient->pAwsCredentials->expiration) { @@ -433,7 +434,6 @@ STATUS executeDescribeSignalingState(UINT64 customData, UINT64 time) ENTERS(); STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_RESULT_NOT_SET); @@ -446,8 +446,9 @@ STATUS executeDescribeSignalingState(UINT64 customData, UINT64 time) } // Call the aggregate function - PROFILE_CALL_WITH_T_OBJ(retStatus = describeChannel(pSignalingClient, time), pSignalingClient->diagnostics.describeCallTime, - "Describe signaling call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = describeChannel(pSignalingClient, time), pSignalingClient->diagnostics.describeChannelStartTime, + pSignalingClient->diagnostics.describeChannelEndTime, pSignalingClient->diagnostics.describeCallTime, + "Describe signaling call"); CleanUp: @@ -561,7 +562,6 @@ STATUS executeCreateSignalingState(UINT64 customData, UINT64 time) ENTERS(); STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_RESULT_NOT_SET); @@ -574,7 +574,9 @@ STATUS executeCreateSignalingState(UINT64 customData, UINT64 time) } // Call the aggregate function - PROFILE_CALL_WITH_T_OBJ(retStatus = createChannel(pSignalingClient, time), pSignalingClient->diagnostics.createCallTime, "Create signaling call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = createChannel(pSignalingClient, time), pSignalingClient->diagnostics.createChannelStartTime, + pSignalingClient->diagnostics.createChannelEndTime, pSignalingClient->diagnostics.createCallTime, + "Create signaling call"); CleanUp: @@ -595,7 +597,7 @@ STATUS fromGetEndpointSignalingState(UINT64 customData, PUINT64 pState) result = ATOMIC_LOAD(&pSignalingClient->result); switch (result) { case SERVICE_CALL_RESULT_OK: - state = SIGNALING_STATE_GET_ICE_CONFIG; + state = SIGNALING_STATE_READY; break; case SERVICE_CALL_FORBIDDEN: @@ -619,7 +621,6 @@ STATUS executeGetEndpointSignalingState(UINT64 customData, UINT64 time) ENTERS(); STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_RESULT_NOT_SET); @@ -632,8 +633,10 @@ STATUS executeGetEndpointSignalingState(UINT64 customData, UINT64 time) } // Call the aggregate function - PROFILE_CALL_WITH_T_OBJ(retStatus = getChannelEndpoint(pSignalingClient, time), pSignalingClient->diagnostics.getEndpointCallTime, - "Get endpoint signaling call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = getChannelEndpoint(pSignalingClient, time), + pSignalingClient->diagnostics.getSignalingChannelEndpointStartTime, + pSignalingClient->diagnostics.getSignalingChannelEndpointEndTime, + pSignalingClient->diagnostics.getEndpointCallTime, "Get endpoint signaling call"); CleanUp: @@ -687,7 +690,6 @@ STATUS executeGetIceConfigSignalingState(UINT64 customData, UINT64 time) ENTERS(); STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); ATOMIC_STORE(&pSignalingClient->result, (SIZE_T) SERVICE_CALL_RESULT_NOT_SET); @@ -700,8 +702,10 @@ STATUS executeGetIceConfigSignalingState(UINT64 customData, UINT64 time) } // Call the aggregate function - PROFILE_CALL_WITH_T_OBJ(retStatus = getIceConfig(pSignalingClient, time), pSignalingClient->diagnostics.getIceConfigCallTime, - "Get ICE config signaling call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = getIceConfig(pSignalingClient, time), pSignalingClient->diagnostics.getIceServerConfigStartTime, + pSignalingClient->diagnostics.getIceServerConfigEndTime, pSignalingClient->diagnostics.getIceConfigCallTime, + "Get ICE config signaling call"); + CleanUp: LEAVES(); @@ -845,7 +849,6 @@ STATUS executeConnectSignalingState(UINT64 customData, UINT64 time) ENTERS(); STATUS retStatus = STATUS_SUCCESS; PSignalingClient pSignalingClient = SIGNALING_CLIENT_FROM_CUSTOM_DATA(customData); - UINT64 startTimeInMacro = 0; CHK(pSignalingClient != NULL, STATUS_NULL_ARG); @@ -855,8 +858,9 @@ STATUS executeConnectSignalingState(UINT64 customData, UINT64 time) SIGNALING_CLIENT_STATE_CONNECTING)); } - PROFILE_CALL_WITH_T_OBJ(retStatus = connectSignalingChannel(pSignalingClient, time), pSignalingClient->diagnostics.connectCallTime, - "Connect signaling call"); + PROFILE_CALL_WITH_START_END_T_OBJ(retStatus = connectSignalingChannel(pSignalingClient, time), pSignalingClient->diagnostics.connectStartTime, + pSignalingClient->diagnostics.connectEndTime, pSignalingClient->diagnostics.connectCallTime, + "Connect signaling call"); CleanUp: diff --git a/src/source/Stun/Stun.c b/src/source/Stun/Stun.c index d1a45ece34..a099e39a29 100644 --- a/src/source/Stun/Stun.c +++ b/src/source/Stun/Stun.c @@ -1215,6 +1215,8 @@ STATUS getStunAttribute(PStunPacket pStunPacket, STUN_ATTRIBUTE_TYPE attributeTy CleanUp: + CHK_LOG_ERR(retStatus); + if (ppStunAttribute != NULL) { *ppStunAttribute = pTargetAttribute; } diff --git a/src/source/Threadpool/ThreadPoolContext.c b/src/source/Threadpool/ThreadPoolContext.c new file mode 100644 index 0000000000..d4400f7b7b --- /dev/null +++ b/src/source/Threadpool/ThreadPoolContext.c @@ -0,0 +1,94 @@ +#define LOG_CLASS "ThreadPoolContext" +#include "../Include_i.h" + +// Function to get access to the Singleton instance +PThreadPoolContext getThreadContextInstance() +{ + static ThreadPoolContext t = {.pThreadpool = NULL, .isInitialized = FALSE, .threadpoolContextLock = INVALID_MUTEX_VALUE}; + return &t; +} + +STATUS createThreadPoolContext() +{ + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + PCHAR pMinThreads, pMaxThreads; + UINT32 minThreads, maxThreads; + + PThreadPoolContext pThreadPoolContext = getThreadContextInstance(); + + if (NULL == (pMinThreads = GETENV(WEBRTC_THREADPOOL_MIN_THREADS_ENV_VAR)) || STATUS_SUCCESS != STRTOUI32(pMinThreads, NULL, 10, &minThreads)) { + minThreads = THREADPOOL_MIN_THREADS; + } + if (NULL == (pMaxThreads = GETENV(WEBRTC_THREADPOOL_MAX_THREADS_ENV_VAR)) || STATUS_SUCCESS != STRTOUI32(pMaxThreads, NULL, 10, &maxThreads)) { + maxThreads = THREADPOOL_MAX_THREADS; + } + + CHK_ERR(!IS_VALID_MUTEX_VALUE(pThreadPoolContext->threadpoolContextLock), STATUS_INVALID_OPERATION, "Mutex seems to have been created already"); + + pThreadPoolContext->threadpoolContextLock = MUTEX_CREATE(FALSE); + // Protecting this section to ensure we are not pushing threads / destroying the pool + // when it is being created. + MUTEX_LOCK(pThreadPoolContext->threadpoolContextLock); + locked = TRUE; + CHK_WARN(!pThreadPoolContext->isInitialized, retStatus, "Threadpool already set up. Nothing to do"); + CHK_WARN(pThreadPoolContext->pThreadpool == NULL, STATUS_INVALID_OPERATION, "Threadpool object already allocated"); + CHK_STATUS(threadpoolCreate(&pThreadPoolContext->pThreadpool, minThreads, maxThreads)); + pThreadPoolContext->isInitialized = TRUE; +CleanUp: + if (locked) { + MUTEX_UNLOCK(pThreadPoolContext->threadpoolContextLock); + } + return retStatus; +} + +STATUS threadpoolContextPush(startRoutine fn, PVOID customData) +{ + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + PThreadPoolContext pThreadPoolContext = getThreadContextInstance(); + + // Protecting this section to ensure we are destroying the pool + // when it is being used. + MUTEX_LOCK(pThreadPoolContext->threadpoolContextLock); + locked = TRUE; + CHK_ERR(pThreadPoolContext->isInitialized, STATUS_INVALID_OPERATION, "Threadpool not initialized yet"); + CHK_ERR(pThreadPoolContext->pThreadpool != NULL, STATUS_NULL_ARG, "Threadpool object is NULL"); + CHK_STATUS(threadpoolPush(pThreadPoolContext->pThreadpool, fn, customData)); +CleanUp: + if (locked) { + MUTEX_UNLOCK(pThreadPoolContext->threadpoolContextLock); + } + return retStatus; +} + +STATUS destroyThreadPoolContext() +{ + STATUS retStatus = STATUS_SUCCESS; + BOOL locked = FALSE; + PThreadPoolContext pThreadPoolContext = getThreadContextInstance(); + + // Ensure we do not destroy the pool if threads are still being pushed + MUTEX_LOCK(pThreadPoolContext->threadpoolContextLock); + locked = TRUE; + CHK_WARN(pThreadPoolContext->isInitialized, STATUS_INVALID_OPERATION, "Threadpool not initialized yet, nothing to destroy"); + CHK_WARN(pThreadPoolContext->pThreadpool != NULL, STATUS_NULL_ARG, "Destroying threadpool without setting up"); + threadpoolFree(pThreadPoolContext->pThreadpool); + + // All members of the static instance **MUST** be reset after destruction to allow for + // the static object to be re-created after destruction (more relevant for unit tests) + pThreadPoolContext->pThreadpool = NULL; + pThreadPoolContext->isInitialized = FALSE; +CleanUp: + if (locked) { + MUTEX_UNLOCK(pThreadPoolContext->threadpoolContextLock); + } + if (IS_VALID_MUTEX_VALUE(pThreadPoolContext->threadpoolContextLock)) { + MUTEX_FREE(pThreadPoolContext->threadpoolContextLock); + + // Important to reset, specifically in case of unit tests where initKvsWebRtc() and + // deinitKvsWebRtc() is invoked before and after every test suite + pThreadPoolContext->threadpoolContextLock = INVALID_MUTEX_VALUE; + } + return retStatus; +}; \ No newline at end of file diff --git a/src/source/Threadpool/ThreadpoolContext.h b/src/source/Threadpool/ThreadpoolContext.h new file mode 100644 index 0000000000..adc45800c2 --- /dev/null +++ b/src/source/Threadpool/ThreadpoolContext.h @@ -0,0 +1,31 @@ +/******************************************* +Main internal include file +*******************************************/ +#ifndef __KINESIS_VIDEO_WEBRTC_CLIENT_THREADPOOLCONTEXT__ +#define __KINESIS_VIDEO_WEBRTC_CLIENT_THREADPOOLCONTEXT__ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +//////////////////////////////////////////////////// +// Project include files +//////////////////////////////////////////////////// + +typedef struct { + PThreadpool pThreadpool; + BOOL isInitialized; + MUTEX threadpoolContextLock; +} ThreadPoolContext, *PThreadPoolContext; + +PUBLIC_API STATUS createThreadPoolContext(); +PUBLIC_API STATUS getThreadPoolContext(PThreadPoolContext); +PUBLIC_API STATUS threadpoolContextPush(startRoutine, PVOID); +PUBLIC_API STATUS destroyThreadPoolContext(); + +#ifdef __cplusplus +} +#endif +#endif /* __KINESIS_VIDEO_WEBRTC_CLIENT_THREADPOOLCONTEXT__ */ diff --git a/tst/CMakeLists.txt b/tst/CMakeLists.txt index fd75b33534..864f4030bd 100644 --- a/tst/CMakeLists.txt +++ b/tst/CMakeLists.txt @@ -42,6 +42,8 @@ add_executable(webrtc_client_test ${WEBRTC_CLIENT_TEST_SOURCE_FILES} SignalingAp target_link_libraries(webrtc_client_test kvsWebrtcClient kvsWebrtcSignalingClient + ${EXTRA_DEPS} + kvsCommonLws ${OPENSSL_CRYPTO_LIBRARY} kvspicUtils ${GTEST_LIBNAME} diff --git a/tst/DataChannelApiTest.cpp b/tst/DataChannelApiTest.cpp index 05f0836275..0c0f9bc1c6 100644 --- a/tst/DataChannelApiTest.cpp +++ b/tst/DataChannelApiTest.cpp @@ -1,5 +1,6 @@ #include "WebRTCClientTestFixture.h" +#ifdef ENABLE_DATA_CHANNEL namespace com { namespace amazonaws { namespace kinesis { @@ -37,3 +38,5 @@ TEST_F(DataChannelApiTest, createDataChannel_Disconnected) } // namespace kinesis } // namespace amazonaws } // namespace com + +#endif diff --git a/tst/DataChannelFunctionalityTest.cpp b/tst/DataChannelFunctionalityTest.cpp index abf373d5f5..a2a355cd36 100644 --- a/tst/DataChannelFunctionalityTest.cpp +++ b/tst/DataChannelFunctionalityTest.cpp @@ -1,5 +1,6 @@ #include "WebRTCClientTestFixture.h" +#ifdef ENABLE_DATA_CHANNEL namespace com { namespace amazonaws { namespace kinesis { @@ -595,3 +596,5 @@ TEST_F(DataChannelFunctionalityTest, createDataChannel_DataChannelMetricsTest) } // namespace kinesis } // namespace amazonaws } // namespace com + +#endif diff --git a/tst/DtlsApiTest.cpp b/tst/DtlsApiTest.cpp index 4c985dd1ee..161e7608a0 100644 --- a/tst/DtlsApiTest.cpp +++ b/tst/DtlsApiTest.cpp @@ -24,6 +24,51 @@ TEST_F(DtlsApiTest, createCertificateAndKey_Returns_Success) EXPECT_EQ(pKey, nullptr); } +TEST_F(DtlsApiTest, dtlsSessionIsInitFinished_Null_Check) +{ + PDtlsSession pClient = NULL; + BOOL isDtlsConnected = FALSE; + DtlsSessionCallbacks callbacks; + TIMER_QUEUE_HANDLE timerQueueHandle = INVALID_TIMER_QUEUE_HANDLE_VALUE; + EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); + EXPECT_EQ(STATUS_NULL_ARG, dtlsSessionIsInitFinished(pClient, &isDtlsConnected)); + EXPECT_EQ(FALSE, isDtlsConnected); + EXPECT_EQ(STATUS_SUCCESS, createDtlsSession(&callbacks, timerQueueHandle, 0, FALSE, NULL, &pClient)); + EXPECT_EQ(STATUS_NULL_ARG, dtlsSessionIsInitFinished(pClient, NULL)); + freeDtlsSession(&pClient); + EXPECT_EQ(NULL, pClient); + timerQueueFree(&timerQueueHandle); + +} + +TEST_F(DtlsApiTest, dtlsSessionCreated_RefCount) +{ + DtlsSessionCallbacks callbacks; + PDtlsSession pClient = NULL; + TIMER_QUEUE_HANDLE timerQueueHandle = INVALID_TIMER_QUEUE_HANDLE_VALUE; + EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); + EXPECT_EQ(STATUS_SUCCESS, createDtlsSession(&callbacks, timerQueueHandle, 0, FALSE, NULL, &pClient)); + EXPECT_EQ(0, pClient->objRefCount); + freeDtlsSession(&pClient); + EXPECT_EQ(NULL, pClient); + timerQueueFree(&timerQueueHandle); +} + +TEST_F(DtlsApiTest, dtlsProcessPacket_Api_Check) +{ + DtlsSessionCallbacks callbacks; + PDtlsSession pClient = NULL; + INT32 length; + TIMER_QUEUE_HANDLE timerQueueHandle = INVALID_TIMER_QUEUE_HANDLE_VALUE; + EXPECT_EQ(STATUS_NULL_ARG, dtlsSessionProcessPacket(pClient, NULL, &length)); + EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); + EXPECT_EQ(STATUS_SUCCESS, createDtlsSession(&callbacks, timerQueueHandle, 0, FALSE, NULL, &pClient)); + EXPECT_EQ(STATUS_NULL_ARG, dtlsSessionProcessPacket(pClient, NULL, NULL)); + EXPECT_EQ(STATUS_SSL_PACKET_BEFORE_DTLS_READY, dtlsSessionProcessPacket(pClient, NULL, &length)); + freeDtlsSession(&pClient); + timerQueueFree(&timerQueueHandle); +} + #elif KVS_USE_MBEDTLS TEST_F(DtlsApiTest, createCertificateAndKey_Returns_Success) { diff --git a/tst/DtlsFunctionalityTest.cpp b/tst/DtlsFunctionalityTest.cpp index 13d5fcb91d..32faca8ab7 100644 --- a/tst/DtlsFunctionalityTest.cpp +++ b/tst/DtlsFunctionalityTest.cpp @@ -8,7 +8,7 @@ namespace webrtcclient { class DtlsFunctionalityTest : public WebRtcClientTestBase { public: - STATUS createAndConnect(TIMER_QUEUE_HANDLE timerQueueHandle, PDtlsSession* ppClient, PDtlsSession* ppServer) + STATUS createAndConnect(TIMER_QUEUE_HANDLE timerQueueHandle, PDtlsSession* ppClient, PDtlsSession* ppServer, BOOL useThread) { struct Context { std::mutex mtx; @@ -20,6 +20,7 @@ class DtlsFunctionalityTest : public WebRtcClientTestBase { PDtlsSession pClient = NULL, pServer = NULL; UINT64 sleepDelay = 20 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND; Context clientCtx, serverCtx; + std::thread dtlsClientThread, dtlsServerThread; MEMSET(&callbacks, 0, SIZEOF(callbacks)); callbacks.stateChangeFn = [](UINT64 customData, RTC_DTLS_TRANSPORT_STATE state) { @@ -68,8 +69,19 @@ class DtlsFunctionalityTest : public WebRtcClientTestBase { CHK_STATUS(dtlsSessionOnOutBoundData(pServer, (UINT64) &clientCtx, outboundPacketFn)); CHK_STATUS(dtlsSessionOnOutBoundData(pClient, (UINT64) &serverCtx, outboundPacketFn)); - CHK_STATUS(dtlsSessionStart(pServer, FALSE)); + // In case of mbedtls it will be a black return of SUCCESS +#ifdef KVS_USE_OPENSSL + if(useThread) { + dtlsClientThread = std::thread(dtlsSessionHandshakeInThread, pClient, TRUE); + dtlsServerThread = std::thread(dtlsSessionHandshakeInThread, pServer, FALSE); + } else { + CHK_STATUS(dtlsSessionStart(pClient, TRUE)); + CHK_STATUS(dtlsSessionStart(pServer, FALSE)); + } +#else CHK_STATUS(dtlsSessionStart(pClient, TRUE)); + CHK_STATUS(dtlsSessionStart(pServer, FALSE)); +#endif for (UINT64 duration = 0; duration < MAX_TEST_AWAIT_DURATION && ATOMIC_LOAD(&connectedCount) != 2; duration += sleepDelay) { CHK_STATUS(consumeMessages(&serverCtx, pServer)); @@ -82,6 +94,13 @@ class DtlsFunctionalityTest : public WebRtcClientTestBase { *ppClient = pClient; *ppServer = pServer; +#ifdef KVS_USE_OPENSSL + if(useThread) { + dtlsClientThread.join(); + dtlsServerThread.join(); + } +#endif + CleanUp: if (STATUS_FAILED(retStatus)) { @@ -117,7 +136,7 @@ TEST_F(DtlsFunctionalityTest, putApplicationDataWithVariedSizes) }; EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); - EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer)); + EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer, FALSE)); EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pClient, 0, outboundPacketFnNoop)); EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pServer, 0, outboundPacketFnNoop)); @@ -148,7 +167,7 @@ TEST_F(DtlsFunctionalityTest, processPacketWithVariedSizes) INT32 readDataSize; EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); - EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer)); + EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer, FALSE)); EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pServer, 0, outboundPacketFnNoop)); EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pClient, 0, outboundPacketFnNoop)); @@ -167,6 +186,69 @@ TEST_F(DtlsFunctionalityTest, processPacketWithVariedSizes) MEMFREE(pData); } +TEST_F(DtlsFunctionalityTest, putApplicationDataWithVariedSizesInThread) +{ + PDtlsSession pClient = NULL, pServer = NULL; + TIMER_QUEUE_HANDLE timerQueueHandle = INVALID_TIMER_QUEUE_HANDLE_VALUE; + PBYTE pData = NULL; + INT32 dataSizes[] = { + 4, // very small packet + DEFAULT_MTU_SIZE - 200, // small packet but should be still under mtu + DEFAULT_MTU_SIZE + 200, // big packet and bigger than even a jumbo frame + }; + + EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); + EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer, TRUE)); + + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pClient, 0, outboundPacketFnNoop)); + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pServer, 0, outboundPacketFnNoop)); + + for (int i = 0; i < (INT32) ARRAY_SIZE(dataSizes); i++) { + pData = (PBYTE) MEMREALLOC(pData, dataSizes[i]); + ASSERT_TRUE(pData != NULL); + MEMSET(pData, 0x11, dataSizes[i]); + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionPutApplicationData(pClient, pData, dataSizes[i])); + } + + freeDtlsSession(&pClient); + freeDtlsSession(&pServer); + timerQueueFree(&timerQueueHandle); +MEMFREE(pData); +} + +TEST_F(DtlsFunctionalityTest, processPacketWithVariedSizesInThread) +{ + PDtlsSession pClient = NULL, pServer = NULL; + TIMER_QUEUE_HANDLE timerQueueHandle = INVALID_TIMER_QUEUE_HANDLE_VALUE; + PBYTE pData = NULL; + INT32 dataSizes[] = { + 4, // very small packet + DEFAULT_MTU_SIZE - 200, // small packet but should be still under mtu + DEFAULT_MTU_SIZE + 200, // big packet and bigger than even a jumbo frame + }; + INT32 readDataSize; + + EXPECT_EQ(STATUS_SUCCESS, timerQueueCreate(&timerQueueHandle)); + EXPECT_EQ(STATUS_SUCCESS, createAndConnect(timerQueueHandle, &pClient, &pServer, TRUE)); + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pServer, 0, outboundPacketFnNoop)); + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionOnOutBoundData(pClient, 0, outboundPacketFnNoop)); + + + for (int i = 0; i < (INT32) ARRAY_SIZE(dataSizes); i++) { + pData = (PBYTE) MEMREALLOC(pData, dataSizes[i]); + readDataSize = dataSizes[i]; + ASSERT_TRUE(pData != NULL); + MEMSET(pData, 0x11, dataSizes[i]); + EXPECT_EQ(STATUS_SUCCESS, dtlsSessionProcessPacket(pServer, pData, &readDataSize)); + } + + freeDtlsSession(&pClient); + freeDtlsSession(&pServer); + timerQueueFree(&timerQueueHandle); + MEMFREE(pData); +} + + } // namespace webrtcclient } // namespace video } // namespace kinesis diff --git a/tst/IceFunctionalityTest.cpp b/tst/IceFunctionalityTest.cpp index 6ab40aa894..8693f8711c 100644 --- a/tst/IceFunctionalityTest.cpp +++ b/tst/IceFunctionalityTest.cpp @@ -6,8 +6,7 @@ namespace kinesis { namespace video { namespace webrtcclient { -class IceFunctionalityTest : public WebRtcClientTestBase { -}; +class IceFunctionalityTest : public WebRtcClientTestBase {}; // check if iceCandidatePairs is in descending order BOOL candidatePairsInOrder(PDoubleList iceCandidatePairs) @@ -135,7 +134,7 @@ PVOID connectionListenAddConnectionRoutine(PVOID arg) } for (i = 0; i < pCustomData->connectionToAdd; ++i) { - randomDelay = (UINT64)(RAND() % 300) * HUNDREDS_OF_NANOS_IN_A_MILLISECOND; + randomDelay = (UINT64) (RAND() % 300) * HUNDREDS_OF_NANOS_IN_A_MILLISECOND; THREAD_SLEEP(randomDelay); CHECK(STATUS_SUCCEEDED(createSocketConnection((KVS_IP_FAMILY_TYPE) localhost.family, KVS_SOCKET_PROTOCOL_UDP, &localhost, NULL, 0, NULL, 0, &pSocketConnection))); @@ -151,7 +150,7 @@ TEST_F(IceFunctionalityTest, connectionListenerFunctionalityTest) PConnectionListener pConnectionListener; ConnectionListenerTestCustomData routine1CustomData, routine2CustomData; TID routine1, routine2; - UINT32 connectionCount , newConnectionCount, i; + UINT32 connectionCount, newConnectionCount, i; PSocketConnection pSocketConnection = NULL; KvsIpAddress localhost; TID threadId; @@ -203,7 +202,7 @@ TEST_F(IceFunctionalityTest, connectionListenerFunctionalityTest) MUTEX_LOCK(pConnectionListener->lock); threadId = pConnectionListener->receiveDataRoutine; MUTEX_UNLOCK(pConnectionListener->lock); - EXPECT_TRUE( IS_VALID_TID_VALUE(threadId)); + EXPECT_TRUE(IS_VALID_TID_VALUE(threadId)); ATOMIC_STORE_BOOL(&pConnectionListener->terminate, TRUE); THREAD_JOIN(threadId, NULL); @@ -359,7 +358,7 @@ TEST_F(IceFunctionalityTest, IceAgentAddRemoteCandidateUnitTest) EXPECT_EQ(STATUS_SUCCESS, doubleListGetHeadNode(iceAgent.remoteCandidates, &pCurNode)); // parsing candidate priority correctly - EXPECT_EQ(2122260223, ((PIceCandidate)pCurNode->data)->priority); + EXPECT_EQ(2122260223, ((PIceCandidate) pCurNode->data)->priority); // candidate pair formed EXPECT_EQ(STATUS_SUCCESS, doubleListGetNodeCount(iceAgent.iceCandidatePairs, &iceCandidateCount)); @@ -378,7 +377,7 @@ TEST_F(IceFunctionalityTest, IceAgentAddRemoteCandidateUnitTest) // parsing candidate priority correctly EXPECT_EQ(STATUS_SUCCESS, doubleListGetHeadNode(iceAgent.remoteCandidates, &pCurNode)); - EXPECT_EQ(2122262783, ((PIceCandidate)pCurNode->data)->priority); + EXPECT_EQ(2122262783, ((PIceCandidate) pCurNode->data)->priority); iceAgent.iceAgentState = ICE_AGENT_STATE_CHECK_CONNECTION; EXPECT_EQ(STATUS_SUCCESS, iceAgentAddRemoteCandidate(&iceAgent, relayCandidateStr)); @@ -390,7 +389,7 @@ TEST_F(IceFunctionalityTest, IceAgentAddRemoteCandidateUnitTest) EXPECT_EQ(STATUS_SUCCESS, doubleListGetHeadNode(iceAgent.remoteCandidates, &pCurNode)); // parsing candidate priority correctly - EXPECT_EQ(41885439, ((PIceCandidate)pCurNode->data)->priority); + EXPECT_EQ(41885439, ((PIceCandidate) pCurNode->data)->priority); MUTEX_FREE(iceAgent.lock); EXPECT_EQ(STATUS_SUCCESS, doubleListGetHeadNode(iceAgent.iceCandidatePairs, &pCurNode)); @@ -663,7 +662,9 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) MEMSET(&iceAgentCallbacks, 0x00, SIZEOF(IceAgentCallbacks)); initializeSignalingClient(); - getIceServers(&configuration); + + SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, + TEST_DEFAULT_STUN_URL_POSTFIX); auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { CandidateList* candidateList1 = (CandidateList*) customData; @@ -679,6 +680,9 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) iceAgentCallbacks.customData = (UINT64) &candidateList; iceAgentCallbacks.newLocalCandidateFn = onICECandidateHdlr; + // Set the STUN server + SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX); + EXPECT_EQ(STATUS_SUCCESS, generateJSONSafeString(localIceUfrag, LOCAL_ICE_UFRAG_LEN)); EXPECT_EQ(STATUS_SUCCESS, generateJSONSafeString(localIcePwd, LOCAL_ICE_PWD_LEN)); EXPECT_EQ(STATUS_SUCCESS, createConnectionListener(&pConnectionListener)); @@ -687,12 +691,11 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) createIceAgent(localIceUfrag, localIcePwd, &iceAgentCallbacks, &configuration, timerQueueHandle, pConnectionListener, &pIceAgent)); EXPECT_EQ(STATUS_SUCCESS, iceAgentStartGathering(pIceAgent)); + getIceServers(&configuration, pIceAgent); THREAD_SLEEP(KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT + 2 * HUNDREDS_OF_NANOS_IN_A_SECOND); - // newLocalCandidateFn should've returned null in its last invocation, which was converted to empty string candidateList.lock.lock(); - EXPECT_TRUE(candidateList.list[candidateList.list.size() - 1].empty()); for (std::vector::iterator it = candidateList.list.begin(); it != candidateList.list.end(); ++it) { std::string candidateStr = *it; diff --git a/tst/IngestionFunctionalityTests.cpp b/tst/IngestionFunctionalityTests.cpp index 5b62fc5fc9..4216189fe8 100644 --- a/tst/IngestionFunctionalityTests.cpp +++ b/tst/IngestionFunctionalityTests.cpp @@ -383,7 +383,7 @@ TEST_F(IngestionFunctionalityTest, basicCreateConnectJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(1, getIceConfigCount); + EXPECT_EQ(0, getIceConfigCount); EXPECT_EQ(1, connectCount); @@ -466,7 +466,7 @@ TEST_F(IngestionFunctionalityTest, iceReconnectEmulationWithJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(1, getIceConfigCount); + EXPECT_EQ(0, getIceConfigCount); EXPECT_EQ(1, connectCount); // This channel has ENABLED status so we should be calling join session @@ -508,7 +508,7 @@ TEST_F(IngestionFunctionalityTest, iceReconnectEmulationWithJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(2, getIceConfigCount); + EXPECT_EQ(1, getIceConfigCount); EXPECT_EQ(2, connectCount); // This channel has ENABLED status so we should be calling join session @@ -570,6 +570,9 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_TRUE(IS_VALID_SIGNALING_CLIENT_HANDLE(signalingHandle)); EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + pActiveClient = pSignalingClient; // Check the states first, we did not connect yet @@ -580,7 +583,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -609,7 +612,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -632,7 +635,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -723,7 +726,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshConnectedJoinSessionWit // We should not be calling create because it's pre-created at the start of the test EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -752,7 +755,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshConnectedJoinSessionWit EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE_MEDIA]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LT(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -853,7 +856,7 @@ TEST_F(IngestionFunctionalityTest, fileCachingTestWithDescribeMedia) FREMOVE(DEFAULT_CACHE_FILE_PATH); for (i = 0; i < totalChannelCount; ++i) { - SPRINTF(signalingChannelName, "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); + SNPRINTF(signalingChannelName, SIZEOF(signalingChannelName), "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); channelInfo.pChannelName = signalingChannelName; EXPECT_EQ(STATUS_SUCCESS, createSignalingSync(&clientInfoInternal, &channelInfo, &signalingClientCallbacks, (PAwsCredentialProvider) mTestCredentialProvider, @@ -869,7 +872,7 @@ TEST_F(IngestionFunctionalityTest, fileCachingTestWithDescribeMedia) getEndpointCountNoCache = getEndpointCount; for (i = 0; i < totalChannelCount; ++i) { - SPRINTF(signalingChannelName, "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); + SNPRINTF(signalingChannelName, SIZEOF(signalingChannelName), "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); channelInfo.pChannelName = signalingChannelName; channelInfo.pChannelArn = NULL; EXPECT_EQ(STATUS_SUCCESS, diff --git a/tst/MetricsApiTest.cpp b/tst/MetricsApiTest.cpp index 0e014421e3..7484d2db94 100644 --- a/tst/MetricsApiTest.cpp +++ b/tst/MetricsApiTest.cpp @@ -22,7 +22,7 @@ TEST_F(MetricsApiTest, webRtcGetMetrics) MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); - EXPECT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); + ASSERT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); EXPECT_EQ(STATUS_NULL_ARG, rtcPeerConnectionGetMetrics(pRtcPeerConnection, NULL, NULL)); @@ -57,7 +57,7 @@ TEST_F(MetricsApiTest, webRtcIceServerGetMetrics) STRNCPY(configuration.iceServers[1].credential, (PCHAR) "username", MAX_ICE_CONFIG_CREDENTIAL_LEN); STRNCPY(configuration.iceServers[1].username, (PCHAR) "password", MAX_ICE_CONFIG_USER_NAME_LEN); - EXPECT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); + ASSERT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); EXPECT_EQ(STATUS_ICE_SERVER_INDEX_INVALID, rtcPeerConnectionGetMetrics(pRtcPeerConnection, NULL, &rtcIceMetrics)); @@ -90,10 +90,15 @@ TEST_F(MetricsApiTest, webRtcIceCandidateGetMetrics) STRNCPY(configuration.iceServers[0].credential, (PCHAR) "", MAX_ICE_CONFIG_CREDENTIAL_LEN); STRNCPY(configuration.iceServers[0].username, (PCHAR) "", MAX_ICE_CONFIG_USER_NAME_LEN); - EXPECT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); + ASSERT_EQ(STATUS_SUCCESS, createPeerConnection(&configuration, &pRtcPeerConnection)); pIceAgent = ((PKvsPeerConnection) pRtcPeerConnection)->pIceAgent; + if(pIceAgent == NULL) { + DLOGI("ICE Agent null"); + } else { + DLOGI("ICE agent not null"); + } IceCandidate localCandidate; IceCandidate remoteCandidate; IceCandidatePair iceCandidatePair; diff --git a/tst/PeerConnectionApiTest.cpp b/tst/PeerConnectionApiTest.cpp index 22c64cc412..d2cd4be672 100644 --- a/tst/PeerConnectionApiTest.cpp +++ b/tst/PeerConnectionApiTest.cpp @@ -6,8 +6,7 @@ namespace kinesis { namespace video { namespace webrtcclient { -class PeerConnectionApiTest : public WebRtcClientTestBase { -}; +class PeerConnectionApiTest : public WebRtcClientTestBase {}; TEST_F(PeerConnectionApiTest, deserializeRtcIceCandidateInit) { @@ -194,6 +193,21 @@ TEST_F(PeerConnectionApiTest, connectionState) EXPECT_EQ(RTC_PEER_CONNECTION_STATE_DISCONNECTED, fromIceAgentState(pc, ICE_AGENT_STATE_DISCONNECTED)); EXPECT_EQ(RTC_PEER_CONNECTION_STATE_FAILED, fromIceAgentState(pc, ICE_AGENT_STATE_FAILED)); + closePeerConnection(pc); + freePeerConnection(&pc); +} + +TEST_F(PeerConnectionApiTest, addConfigToServerListUnitTest) +{ + PRtcPeerConnection pc = nullptr; + PIceConfigInfo pIceConfigInfo = nullptr; + RtcConfiguration config{}; + EXPECT_NE(STATUS_SUCCESS, addConfigToServerList(&pc, pIceConfigInfo)); + EXPECT_EQ(STATUS_SUCCESS, createPeerConnection(&config, &pc)); + + EXPECT_NE(STATUS_SUCCESS, addConfigToServerList(&pc, pIceConfigInfo)); + + closePeerConnection(pc); freePeerConnection(&pc); } diff --git a/tst/PeerConnectionFunctionalityTest.cpp b/tst/PeerConnectionFunctionalityTest.cpp index 35d4a3cda0..bc3901d153 100644 --- a/tst/PeerConnectionFunctionalityTest.cpp +++ b/tst/PeerConnectionFunctionalityTest.cpp @@ -6,8 +6,7 @@ namespace kinesis { namespace video { namespace webrtcclient { -class PeerConnectionFunctionalityTest : public WebRtcClientTestBase { -}; +class PeerConnectionFunctionalityTest : public WebRtcClientTestBase {}; // Assert that two PeerConnections can connect to each other and go to connected TEST_F(PeerConnectionFunctionalityTest, connectTwoPeers) @@ -29,12 +28,40 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeers) freePeerConnection(&answerPc); } +TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithAsyncGetIceConfigForceTurn) +{ + RtcConfiguration configuration; + PRtcPeerConnection offerPc = NULL, answerPc = NULL; + + MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); + SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, + TEST_DEFAULT_STUN_URL_POSTFIX); + configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; + + initializeSignalingClient(); + + EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); + EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + + EXPECT_EQ(connectTwoPeersAsyncIce(offerPc, answerPc), TRUE); + + closePeerConnection(offerPc); + closePeerConnection(answerPc); + + freePeerConnection(&offerPc); + freePeerConnection(&answerPc); + + deinitializeSignalingClient(); +} + TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithDelay) { RtcConfiguration configuration; RtcSessionDescriptionInit sdp; SIZE_T connectedCount = 0; PRtcPeerConnection offerPc = NULL, answerPc = NULL; + PeerContainer offer; + PeerContainer answer; MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); @@ -42,20 +69,34 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithDelay) EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { + PPeerContainer container = (PPeerContainer)customData; if (candidateStr != NULL) { - std::thread( - [customData](std::string candidate) { - RtcIceCandidateInit iceCandidate; - EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); - EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) customData, iceCandidate.candidate)); - }, - std::string(candidateStr)) - .detach(); + container->client->lock.lock(); + if(!container->client->noNewThreads) { + container->client->threads.push_back(std::thread( + [container](std::string candidate) { + RtcIceCandidateInit iceCandidate; + EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); + EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) container->pc, iceCandidate.candidate)); + }, + std::string(candidateStr))); + } + container->client->lock.unlock(); } }; - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) answerPc, onICECandidateHdlr)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) offerPc, onICECandidateHdlr)); + offer.pc = offerPc; + offer.client = this; + answer.pc = answerPc; + answer.client = this; + + auto onICECandidateHdlrDone = [](UINT64 customData, PCHAR candidateStr) -> void { + UNUSED_PARAM(customData); + UNUSED_PARAM(candidateStr); + }; + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) &answer, onICECandidateHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) &offer, onICECandidateHdlr)); auto onICEConnectionStateChangeHdlr = [](UINT64 customData, RTC_PEER_CONNECTION_STATE newState) -> void { if (newState == RTC_PEER_CONNECTION_STATE_CONNECTED) { @@ -83,6 +124,17 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithDelay) EXPECT_EQ(2, connectedCount); + this->lock.lock(); + //join all threads before leaving + for (auto& th : this->threads) th.join(); + + this->threads.clear(); + this->noNewThreads = TRUE; + this->lock.unlock(); + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) 0, onICECandidateHdlrDone)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) 0, onICECandidateHdlrDone)); + closePeerConnection(offerPc); closePeerConnection(answerPc); @@ -198,11 +250,13 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersForcedTURN) configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(offerPc); @@ -292,10 +346,11 @@ TEST_F(PeerConnectionFunctionalityTest, sendDataWithClosedSocketConnectionWithFo configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); // addTrackToPeerConnection is necessary because we need to add a transceiver which will trigger the RTCP callback. The RTCP callback // will send application data. The expected behavior for the PeerConnection is to bail out when the socket connection that's being used @@ -354,11 +409,13 @@ TEST_F(PeerConnectionFunctionalityTest, shutdownTurnDueToP2PFoundBeforeTurnEstab MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); THREAD_SLEEP(5 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -416,11 +473,13 @@ TEST_F(PeerConnectionFunctionalityTest, shutdownTurnDueToP2PFoundAfterTurnEstabl MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { PSIZE_T pDoneGatherCandidate = (PSIZE_T) customData; if (candidateStr == NULL) { @@ -603,6 +662,9 @@ TEST_F(PeerConnectionFunctionalityTest, noLostFramesAfterConnected) ATOMIC_BOOL seenFirstFrame = FALSE; Frame videoFrame; + PeerContainer offer; + PeerContainer answer; + MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); MEMSET(&videoFrame, 0x00, SIZEOF(Frame)); @@ -622,6 +684,33 @@ TEST_F(PeerConnectionFunctionalityTest, noLostFramesAfterConnected) addTrackToPeerConnection(offerPc, &offerVideoTrack, &offerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); addTrackToPeerConnection(answerPc, &answerVideoTrack, &answerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); + auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { + PPeerContainer container = (PPeerContainer)customData; + if (candidateStr != NULL) { + container->client->lock.lock(); + if(!container->client->noNewThreads) { + container->client->threads.push_back(std::thread( + [container](std::string candidate) { + RtcIceCandidateInit iceCandidate; + EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); + EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) container->pc, iceCandidate.candidate)); + }, + std::string(candidateStr))); + } + container->client->lock.unlock(); + } + }; + + offer.pc = offerPc; + offer.client = this; + answer.pc = answerPc; + answer.client = this; + + auto onICECandidateHdlrDone = [](UINT64 customData, PCHAR candidateStr) -> void { + UNUSED_PARAM(customData); + UNUSED_PARAM(candidateStr); + }; + auto onFrameHandler = [](UINT64 customData, PFrame pFrame) -> void { UNUSED_PARAM(pFrame); if (pFrame->frameData[0] == 1) { @@ -630,21 +719,8 @@ TEST_F(PeerConnectionFunctionalityTest, noLostFramesAfterConnected) }; EXPECT_EQ(transceiverOnFrame(answerVideoTransceiver, (UINT64) &seenFirstFrame, onFrameHandler), STATUS_SUCCESS); - auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { - if (candidateStr != NULL) { - std::thread( - [customData](std::string candidate) { - RtcIceCandidateInit iceCandidate; - EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); - EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) customData, iceCandidate.candidate)); - }, - std::string(candidateStr)) - .detach(); - } - }; - - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) answerPc, onICECandidateHdlr)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) offerPc, onICECandidateHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) &answer, onICECandidateHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) &offer, onICECandidateHdlr)); auto onICEConnectionStateChangeHdlr = [](UINT64 customData, RTC_PEER_CONNECTION_STATE newState) -> void { Context* pContext = (Context*) customData; @@ -682,6 +758,16 @@ TEST_F(PeerConnectionFunctionalityTest, noLostFramesAfterConnected) THREAD_SLEEP(HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } + this->lock.lock(); + for (auto& th : this->threads) th.join(); + + this->threads.clear(); + this->noNewThreads = TRUE; + this->lock.unlock(); + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) 0, onICECandidateHdlrDone)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) 0, onICECandidateHdlrDone)); + MEMFREE(videoFrame.frameData); closePeerConnection(offerPc); closePeerConnection(answerPc); @@ -860,11 +946,13 @@ TEST_F(PeerConnectionFunctionalityTest, iceRestartTestForcedTurn) configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); EXPECT_EQ(restartIce(offerPc), STATUS_SUCCESS); @@ -893,11 +981,13 @@ TEST_F(PeerConnectionFunctionalityTest, peerConnectionOfferCloseConnection) MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(offerPc); @@ -919,11 +1009,13 @@ TEST_F(PeerConnectionFunctionalityTest, peerConnectionAnswerCloseConnection) MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(answerPc); @@ -960,11 +1052,13 @@ TEST_F(PeerConnectionFunctionalityTest, DISABLED_exchangeMediaThroughTurnRandomS for (int i = 0; i < iteration; ++i) { MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; - getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + getIceServers(&configuration, offerPc); + getIceServers(&configuration, answerPc); + addTrackToPeerConnection(offerPc, &offerVideoTrack, &offerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); addTrackToPeerConnection(offerPc, &offerAudioTrack, &offerAudioTransceiver, RTC_CODEC_OPUS, MEDIA_STREAM_TRACK_KIND_AUDIO); addTrackToPeerConnection(answerPc, &answerVideoTrack, &answerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); @@ -980,7 +1074,7 @@ TEST_F(PeerConnectionFunctionalityTest, DISABLED_exchangeMediaThroughTurnRandomS MEMSET(stateChangeCount, 0x00, SIZEOF(stateChangeCount)); EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); - streamingTimeMs = (UINT64)(RAND() % (maxStreamingDurationMs - minStreamingDurationMs)) + minStreamingDurationMs; + streamingTimeMs = (UINT64) (RAND() % (maxStreamingDurationMs - minStreamingDurationMs)) + minStreamingDurationMs; DLOGI("Stop streaming after %u milliseconds.", streamingTimeMs); auto sendVideoWorker = [](PRtcRtpTransceiver pRtcRtpTransceiver, Frame frame, PSIZE_T pTerminationFlag) -> void { @@ -1022,6 +1116,212 @@ TEST_F(PeerConnectionFunctionalityTest, DISABLED_exchangeMediaThroughTurnRandomS deinitializeSignalingClient(); } +// Check that even when multiple successful candidate pairs are found, only one dtls negotiation takes place +// and that it is on the same candidate throughout the connection. +TEST_F(PeerConnectionFunctionalityTest, multipleCandidateSuccessOneDTLSCheck) +{ + RtcConfiguration configuration; + PRtcPeerConnection offerPc = NULL, answerPc = NULL; + + // This test can succeed if the highest priority candidate pair happens to be the first one + // to be nominated, even if the DTLS is broken. To be sure that this issue is fixed we want to + // run the test 10 times and have it never break once in that cycle. + for (auto i = 0; i < 10; i++) { + offerPc = NULL; + answerPc = NULL; + MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); + + EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); + EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + + // create a callback that can check values at every state of the ice agent state machine + auto masterOnIceConnectionStateChangeTest = [](UINT64 customData, UINT64 connectionState) -> void { + static PIceCandidatePair pSendingPair; + PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) customData; + // still use normal callback + onIceConnectionStateChange(customData, connectionState); + switch (connectionState) { + case ICE_AGENT_STATE_CHECK_CONNECTION: + // sleep(1); + break; + case ICE_AGENT_STATE_CONNECTED: + if (pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair != NULL) { + pSendingPair = pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair; + } + break; + case ICE_AGENT_STATE_READY: + if (pSendingPair != NULL) { + EXPECT_EQ(pSendingPair, pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair); + pSendingPair = NULL; + } + break; + default: + break; + } + }; + + auto viewerOnIceConnectionStateChangeTest = [](UINT64 customData, UINT64 connectionState) -> void { + PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) customData; + PIceAgent pIceAgent = pKvsPeerConnection->pIceAgent; + PDoubleListNode pCurNode = NULL; + PIceCandidatePair pIceCandidatePair; + BOOL locked = FALSE; + // still use normal callback + onIceConnectionStateChange(customData, connectionState); + switch (connectionState) { + case ICE_AGENT_STATE_CONNECTED: + // send 'USE_CANDIDATE' for every ice candidate pair + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + doubleListGetHeadNode(pIceAgent->iceCandidatePairs, &pCurNode); + while (pCurNode != NULL) { + pIceCandidatePair = (PIceCandidatePair) pCurNode->data; + pCurNode = pCurNode->pNext; + + pIceCandidatePair->nominated = TRUE; + } + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } + + break; + default: + break; + } + }; + + // overwrite normal callback + ((PKvsPeerConnection) answerPc)->pIceAgent->iceAgentCallbacks.connectionStateChangedFn = masterOnIceConnectionStateChangeTest; + ((PKvsPeerConnection) offerPc)->pIceAgent->iceAgentCallbacks.connectionStateChangedFn = viewerOnIceConnectionStateChangeTest; + + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); + + closePeerConnection(offerPc); + closePeerConnection(answerPc); + + freePeerConnection(&offerPc); + freePeerConnection(&answerPc); + MEMSET(this->stateChangeCount, 0, SIZEOF(SIZE_T) * RTC_PEER_CONNECTION_TOTAL_STATE_COUNT); + if (::testing::Test::HasFailure()) { + break; + } + } +} + +// Check that even when multiple successful candidate pairs are found, only one dtls negotiation takes place +// and that it is on the same candidate throughout the connection. This time setting the viewer to use +// aggressive nomination +TEST_F(PeerConnectionFunctionalityTest, aggressiveNominationDTLSRaceConditionCheck) +{ + RtcConfiguration configuration; + PRtcPeerConnection offerPc = NULL, answerPc = NULL; + + // This test can succeed if the highest priority candidate pair happens to be the first one + // to be nominated, even if the DTLS is broken. To be sure that this issue is fixed we want to + // run the test 10 times and have it never break once in that cycle. + for (auto i = 0; i < 10; i++) { + offerPc = NULL; + answerPc = NULL; + MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); + + EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); + EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); + + // create a callback that can check values at every state of the ice agent state machine + auto masterOnIceConnectionStateChangeTest = [](UINT64 customData, UINT64 connectionState) -> void { + static PIceCandidatePair pSendingPair; + PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) customData; + // still use normal callback + onIceConnectionStateChange(customData, connectionState); + switch (connectionState) { + case ICE_AGENT_STATE_CHECK_CONNECTION: + // sleep(1); + break; + case ICE_AGENT_STATE_CONNECTED: + if (pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair != NULL) { + pSendingPair = pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair; + } + break; + case ICE_AGENT_STATE_READY: + if (pSendingPair != NULL) { + EXPECT_EQ(pSendingPair, pKvsPeerConnection->pIceAgent->pDataSendingIceCandidatePair); + pSendingPair = NULL; + } + break; + default: + break; + } + }; + + auto viewerOnIceConnectionStateChangeTest = [](UINT64 customData, UINT64 connectionState) -> void { + static BOOL setUseCandidate = FALSE; + PKvsPeerConnection pKvsPeerConnection = (PKvsPeerConnection) customData; + PIceAgent pIceAgent = pKvsPeerConnection->pIceAgent; + PDoubleListNode pCurNode = NULL; + PIceCandidatePair pIceCandidatePair; + BOOL locked = FALSE; + // still use normal callback + onIceConnectionStateChange(customData, connectionState); + switch (connectionState) { + case ICE_AGENT_STATE_CHECK_CONNECTION: + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + if (!setUseCandidate) { + setUseCandidate = TRUE; + appendStunFlagAttribute(pIceAgent->pBindingRequest, STUN_ATTRIBUTE_TYPE_USE_CANDIDATE); + } + doubleListGetHeadNode(pIceAgent->iceCandidatePairs, &pCurNode); + while (pCurNode != NULL) { + pIceCandidatePair = (PIceCandidatePair) pCurNode->data; + pCurNode = pCurNode->pNext; + + pIceCandidatePair->nominated = TRUE; + iceCandidatePairCheckConnection(pIceAgent->pBindingRequest, pIceAgent, pIceCandidatePair); + } + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } + break; + case ICE_AGENT_STATE_CONNECTED: + // send 'USE_CANDIDATE' for every ice candidate pair + setUseCandidate = FALSE; + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + doubleListGetHeadNode(pIceAgent->iceCandidatePairs, &pCurNode); + while (pCurNode != NULL) { + pIceCandidatePair = (PIceCandidatePair) pCurNode->data; + pCurNode = pCurNode->pNext; + + pIceCandidatePair->nominated = TRUE; + } + if (locked) { + MUTEX_UNLOCK(pIceAgent->lock); + } + + break; + default: + break; + } + }; + + // overwrite normal callback + ((PKvsPeerConnection) answerPc)->pIceAgent->iceAgentCallbacks.connectionStateChangedFn = masterOnIceConnectionStateChangeTest; + ((PKvsPeerConnection) offerPc)->pIceAgent->iceAgentCallbacks.connectionStateChangedFn = viewerOnIceConnectionStateChangeTest; + + EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); + + closePeerConnection(offerPc); + closePeerConnection(answerPc); + + freePeerConnection(&offerPc); + freePeerConnection(&answerPc); + MEMSET(this->stateChangeCount, 0, SIZEOF(SIZE_T) * RTC_PEER_CONNECTION_TOTAL_STATE_COUNT); + if (::testing::Test::HasFailure()) { + break; + } + } +} + } // namespace webrtcclient } // namespace video } // namespace kinesis diff --git a/tst/SdpApiTest.cpp b/tst/SdpApiTest.cpp index a4dccd6a2d..15046430d8 100644 --- a/tst/SdpApiTest.cpp +++ b/tst/SdpApiTest.cpp @@ -1133,6 +1133,66 @@ a=ice-options:trickle }); } +TEST_F(SdpApiTest, noMediaTrickleIce) { + PRtcPeerConnection offerPc = NULL; + PRtcPeerConnection answerPc = NULL; + RtcConfiguration configurationOffer; + RtcConfiguration configurationAnswer; + RtcSessionDescriptionInit sessionDescriptionInitViewer; + RtcSessionDescriptionInit sessionDescriptionInitMaster; + + MEMSET(&configurationOffer, 0x00, SIZEOF(RtcConfiguration)); + MEMSET(&configurationAnswer, 0x00, SIZEOF(RtcConfiguration)); + + // Create peer connection + EXPECT_EQ(createPeerConnection(&configurationOffer, &offerPc), STATUS_SUCCESS); + EXPECT_EQ(createPeerConnection(&configurationAnswer, &answerPc), STATUS_SUCCESS); + + sessionDescriptionInitViewer.useTrickleIce = TRUE; + + EXPECT_EQ(STATUS_SUCCESS, createOffer(offerPc, &sessionDescriptionInitViewer)); + STRCPY(sessionDescriptionInitMaster.sdp, sessionDescriptionInitViewer.sdp); + sessionDescriptionInitMaster.type = SDP_TYPE_OFFER; + EXPECT_EQ(setRemoteDescription(answerPc, &sessionDescriptionInitMaster), STATUS_SUCCESS); + EXPECT_EQ(TRUE, canTrickleIceCandidates(answerPc).value); + + closePeerConnection(offerPc); + freePeerConnection(&offerPc); + + closePeerConnection(answerPc); + freePeerConnection(&answerPc); +} + +TEST_F(SdpApiTest, noMediaTrickleIceNegativeCase) { + PRtcPeerConnection offerPc = NULL; + PRtcPeerConnection answerPc = NULL; + RtcConfiguration configurationOffer; + RtcConfiguration configurationAnswer; + RtcSessionDescriptionInit sessionDescriptionInitViewer; + RtcSessionDescriptionInit sessionDescriptionInitMaster; + + MEMSET(&configurationOffer, 0x00, SIZEOF(RtcConfiguration)); + MEMSET(&configurationAnswer, 0x00, SIZEOF(RtcConfiguration)); + + // Create peer connection + EXPECT_EQ(createPeerConnection(&configurationOffer, &offerPc), STATUS_SUCCESS); + EXPECT_EQ(createPeerConnection(&configurationAnswer, &answerPc), STATUS_SUCCESS); + + sessionDescriptionInitViewer.useTrickleIce = FALSE; + + EXPECT_EQ(STATUS_SUCCESS, createOffer(offerPc, &sessionDescriptionInitViewer)); + STRCPY(sessionDescriptionInitMaster.sdp, sessionDescriptionInitViewer.sdp); + sessionDescriptionInitMaster.type = SDP_TYPE_OFFER; + EXPECT_EQ(setRemoteDescription(answerPc, &sessionDescriptionInitMaster), STATUS_SUCCESS); + EXPECT_EQ(FALSE, canTrickleIceCandidates(answerPc).value); + + closePeerConnection(offerPc); + freePeerConnection(&offerPc); + + closePeerConnection(answerPc); + freePeerConnection(&answerPc); +} + TEST_F(SdpApiTest, answerMlinesOrderSameAsOfferMLinesOrder) { auto offer = std::string(R"(v=0 @@ -2340,4 +2400,4 @@ INSTANTIATE_TEST_SUITE_P(SdpApiTest_SdpMatch_Safari, SdpApiTest_SdpMatch, ::test } // namespace video } // namespace kinesis } // namespace amazonaws -} // namespace com \ No newline at end of file +} // namespace com diff --git a/tst/SignalingApiFunctionalityTest.cpp b/tst/SignalingApiFunctionalityTest.cpp index 377b9b3cf5..f63162f697 100644 --- a/tst/SignalingApiFunctionalityTest.cpp +++ b/tst/SignalingApiFunctionalityTest.cpp @@ -969,14 +969,14 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // The ICE api should have been called - EXPECT_EQ(1, getIceConfigCount); + // The ICE api shouldn't have been called + EXPECT_EQ(0, getIceConfigCount); // Ensure we can get the ICE configurations EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); @@ -984,7 +984,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio for (i = 0; i < iceCount; i++) { EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, i, &pIceConfigInfo)); } - // Make sure no APIs have been called + // Make sure APIs have been called EXPECT_EQ(1, getIceConfigCount); // Other state transacted @@ -994,7 +994,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1031,7 +1031,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1067,7 +1067,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1104,7 +1104,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1139,7 +1139,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1233,14 +1233,14 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // The ICE api should have been called - EXPECT_EQ(1, getIceConfigCount); + // The ICE api shouldn't have been called + EXPECT_EQ(0, getIceConfigCount); // Ensure we can get the ICE configurations EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); @@ -1259,9 +1259,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1296,9 +1296,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1332,9 +1332,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1369,9 +1369,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // @@ -1404,9 +1404,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // @@ -1484,12 +1484,30 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + //get config + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + EXPECT_NE(0, iceCount); + EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo); + + // Check the states first + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + // Make sure the credentials expire THREAD_SLEEP(7 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -1516,7 +1534,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1533,7 +1551,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1608,12 +1626,31 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + //get config before credentials expire + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + EXPECT_NE(0, iceCount); + EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo); + + // Check the states first + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + + // Make sure the credentials expire THREAD_SLEEP(7 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -1640,9 +1677,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // Attempt to retrieve the ice configuration should succeed @@ -1657,9 +1694,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // We should have already been connected. This should be a No-op @@ -1733,7 +1770,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1752,7 +1789,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1765,7 +1802,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1848,7 +1885,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1863,14 +1900,13 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // Trigger the ICE refresh on the next call - pSignalingClient->iceConfigCount = 0; EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); EXPECT_NE(0, iceCount); @@ -1882,7 +1918,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1957,6 +1993,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_TRUE(IS_VALID_SIGNALING_CLIENT_HANDLE(signalingHandle)); EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); pActiveClient = pSignalingClient; // Check the states first @@ -1966,7 +2004,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1983,7 +2021,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1996,7 +2034,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2071,6 +2109,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); pActiveClient = pSignalingClient; + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); // Connect first EXPECT_EQ(STATUS_SUCCESS, signalingClientConnectSync(signalingHandle)); @@ -2082,7 +2122,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2099,7 +2139,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2112,7 +2152,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2179,6 +2219,10 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_TRUE(IS_VALID_SIGNALING_CLIENT_HANDLE(signalingHandle)); EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + + pActiveClient = pSignalingClient; // Check the states first @@ -2188,7 +2232,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2213,7 +2257,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2231,7 +2275,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2310,7 +2354,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2335,7 +2379,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LT(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2606,7 +2650,7 @@ TEST_F(SignalingApiFunctionalityTest, connectTimeoutEmulation) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2628,7 +2672,7 @@ TEST_F(SignalingApiFunctionalityTest, connectTimeoutEmulation) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2724,7 +2768,7 @@ TEST_F(SignalingApiFunctionalityTest, channelInfoArnSkipDescribe) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2777,7 +2821,7 @@ TEST_F(SignalingApiFunctionalityTest, channelInfoArnSkipDescribe) EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2856,7 +2900,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedWithArn) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2909,7 +2953,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedWithArn) EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2990,7 +3034,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3008,7 +3052,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3028,7 +3072,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3161,7 +3205,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) // Account for 1 time failure EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3183,7 +3227,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3205,7 +3249,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3273,7 +3317,7 @@ TEST_F(SignalingApiFunctionalityTest, fileCachingTest) FREMOVE(DEFAULT_CACHE_FILE_PATH); for (i = 0; i < totalChannelCount; ++i) { - SPRINTF(signalingChannelName, "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); + SNPRINTF(signalingChannelName, SIZEOF(signalingChannelName), "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); channelInfo.pChannelName = signalingChannelName; EXPECT_EQ(STATUS_SUCCESS, createSignalingSync(&clientInfoInternal, &channelInfo, &signalingClientCallbacks, (PAwsCredentialProvider) mTestCredentialProvider, @@ -3289,7 +3333,7 @@ TEST_F(SignalingApiFunctionalityTest, fileCachingTest) getEndpointCountNoCache = getEndpointCount; for (i = 0; i < totalChannelCount; ++i) { - SPRINTF(signalingChannelName, "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); + SNPRINTF(signalingChannelName, SIZEOF(signalingChannelName), "%s%u", TEST_SIGNALING_CHANNEL_NAME, i); channelInfo.pChannelName = signalingChannelName; channelInfo.pChannelArn = NULL; EXPECT_EQ(STATUS_SUCCESS, @@ -3405,11 +3449,11 @@ TEST_F(SignalingApiFunctionalityTest, fileCachingUpdateMultiChannelCache) MEMSET(testChannel, 0, MAX_CHANNEL_NAME_LEN+1); append = rand()%TEST_CHANNEL_COUNT; - SPRINTF(testWssEndpoint, "%s%d", "testWssEndpoint", append); - SPRINTF(testHttpsEndpoint, "%s%d", "testHttpsEndpoint", append); - SPRINTF(testRegion, "%s%d", "testRegion", append); - SPRINTF(testChannelArn, "%s%d", "testChannelArn", append); - SPRINTF(testChannel, "%s%d", "testChannel", append); + SNPRINTF(testWssEndpoint, SIZEOF(testWssEndpoint), "%s%d", "testWssEndpoint", append); + SNPRINTF(testHttpsEndpoint, SIZEOF(testHttpsEndpoint),"%s%d", "testHttpsEndpoint", append); + SNPRINTF(testRegion, SIZEOF(testRegion),"%s%d", "testRegion", append); + SNPRINTF(testChannelArn, SIZEOF(testChannelArn),"%s%d", "testChannelArn", append); + SNPRINTF(testChannel, SIZEOF(testChannel),"%s%d", "testChannel", append); STRCPY(testEntry.wssEndpoint, testWssEndpoint); STRCPY(testEntry.httpsEndpoint, testHttpsEndpoint); @@ -3472,11 +3516,11 @@ TEST_F(SignalingApiFunctionalityTest, fileCachingUpdateFullMultiChannelCache) MEMSET(testChannel, 0, MAX_CHANNEL_NAME_LEN+1); append = i; - SPRINTF(testWssEndpoint, "%s%d", "testWssEndpoint", append); - SPRINTF(testHttpsEndpoint, "%s%d", "testHttpsEndpoint", append); - SPRINTF(testRegion, "%s%d", "testRegion", append); - SPRINTF(testChannelArn, "%s%d", "testChannelArn", append); - SPRINTF(testChannel, "%s%d", "testChannel", append); + SNPRINTF(testWssEndpoint, SIZEOF(testWssEndpoint), "%s%d", "testWssEndpoint", append); + SNPRINTF(testHttpsEndpoint, SIZEOF(testHttpsEndpoint), "%s%d", "testHttpsEndpoint", append); + SNPRINTF(testRegion, SIZEOF(testRegion), "%s%d", "testRegion", append); + SNPRINTF(testChannelArn, SIZEOF(testChannelArn), "%s%d", "testChannelArn", append); + SNPRINTF(testChannel, SIZEOF(testChannel), "%s%d", "testChannel", append); STRCPY(testEntry.wssEndpoint, testWssEndpoint); STRCPY(testEntry.httpsEndpoint, testHttpsEndpoint); @@ -3561,12 +3605,17 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + EXPECT_NE(0, iceCount); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + // Ensure the ICE is not refreshed as we already have a current non-expired set EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); @@ -3750,12 +3799,17 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_SlowClockSkew) EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); + EXPECT_NE(0, iceCount); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + // Ensure the ICE is not refreshed as we already have a current non-expired set EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); @@ -3940,13 +3994,12 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_FastClockSkew) EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // Ensure the ICE is not refreshed as we already have a current non-expired set EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); EXPECT_NE(0, iceCount); @@ -4132,7 +4185,7 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_FastClockSkew_Veri EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); diff --git a/tst/SignalingApiTest.cpp b/tst/SignalingApiTest.cpp index ec937f999a..c0bbde5111 100644 --- a/tst/SignalingApiTest.cpp +++ b/tst/SignalingApiTest.cpp @@ -41,6 +41,8 @@ TEST_F(SignalingApiTest, createValidateChannelInfo) // Test default agent postfix EXPECT_PRED_FORMAT2(testing::IsSubstring, agentString, rChannelInfo->pUserAgent); freeChannelInfo(&rChannelInfo); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, testChannelArnsValid) @@ -92,7 +94,6 @@ TEST_F(SignalingApiTest, testChannelArnsValid) freeChannelInfo(&pChannelInfo); } - TEST_F(SignalingApiTest, testChannelArnsInValid) { PChannelInfo pChannelInfo; @@ -238,6 +239,8 @@ TEST_F(SignalingApiTest, signalingSendMessageSync) EXPECT_EQ(expectedStatus, signalingClientSendMessageSync(mSignalingClientHandle, &signalingMessage)); deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingSendMessageSyncFileCredsProvider) @@ -293,6 +296,8 @@ TEST_F(SignalingApiTest, signalingSendMessageSyncFileCredsProvider) deinitializeSignalingClient(); EXPECT_EQ(STATUS_SUCCESS, freeFileCredentialProvider(&pAwsCredentialProvider)); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientConnectSync) @@ -309,6 +314,8 @@ TEST_F(SignalingApiTest, signalingClientConnectSync) EXPECT_EQ(expectedStatus, signalingClientConnectSync(mSignalingClientHandle)); deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientDeleteSync) @@ -339,6 +346,8 @@ TEST_F(SignalingApiTest, signalingClientDeleteSync) EXPECT_EQ(expectedStatus, signalingClientSendMessageSync(mSignalingClientHandle, &signalingMessage)); deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientGetIceConfigInfoCount) @@ -359,6 +368,8 @@ TEST_F(SignalingApiTest, signalingClientGetIceConfigInfoCount) } deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientGetIceConfigInfo) @@ -395,6 +406,8 @@ TEST_F(SignalingApiTest, signalingClientGetIceConfigInfo) } deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientGetCurrentState) @@ -414,6 +427,8 @@ TEST_F(SignalingApiTest, signalingClientGetCurrentState) EXPECT_EQ(expectedState, state); deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientGetStateString) @@ -425,11 +440,15 @@ TEST_F(SignalingApiTest, signalingClientGetStateString) EXPECT_EQ(STATUS_SUCCESS, signalingClientGetStateString((SIGNALING_CLIENT_STATE) i, &pStateStr)); DLOGV("Iterating states \"%s\"", pStateStr); } + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientDisconnectSync) { EXPECT_NE(STATUS_SUCCESS, signalingClientDisconnectSync(INVALID_SIGNALING_CLIENT_HANDLE_VALUE)); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientGetMetrics) @@ -454,11 +473,11 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_EQ(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); + EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); // Connect and get metrics EXPECT_EQ(STATUS_SUCCESS, signalingClientConnectSync(mSignalingClientHandle)); @@ -472,11 +491,11 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); + EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); // Send a message and get metrics signalingMessage.version = SIGNALING_MESSAGE_CURRENT_VERSION; @@ -494,11 +513,11 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); + EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); // Make a couple of bad API invocations EXPECT_NE(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, NULL)); @@ -507,6 +526,22 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, NULL)); EXPECT_NE(STATUS_SUCCESS, signalingClientSendMessageSync(mSignalingClientHandle, NULL)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); + EXPECT_EQ(1, metrics.signalingClientStats.numberOfMessagesSent); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); + EXPECT_EQ(5, metrics.signalingClientStats.numberOfErrors); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); + EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); + EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); + EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); + EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); + EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); + + UINT32 iceCount = 0; + //Get ice config + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceCount)); + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); EXPECT_EQ(1, metrics.signalingClientStats.numberOfMessagesSent); @@ -520,6 +555,8 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); deinitializeSignalingClient(); + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientCreateWithClientInfoVariations) @@ -653,6 +690,8 @@ TEST_F(SignalingApiTest, signalingClientCreateWithClientInfoVariations) deinitializeSignalingClient(); mClientInfo.cacheFilePath = NULL; + //wait for threads of threadpool to close + THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } } // namespace webrtcclient diff --git a/tst/TurnConnectionFunctionalityTest.cpp b/tst/TurnConnectionFunctionalityTest.cpp index c2de24c876..da2914cd63 100644 --- a/tst/TurnConnectionFunctionalityTest.cpp +++ b/tst/TurnConnectionFunctionalityTest.cpp @@ -34,6 +34,7 @@ class TurnConnectionFunctionalityTest : public WebRtcClientTestBase { for (uriCount = 0, i = 0; i < iceConfigCount; i++) { EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo)); for (j = 0; j < pIceConfigInfo->uriCount; j++) { + iceServers[uriCount].setIpFn = NULL; EXPECT_EQ(STATUS_SUCCESS, parseIceServer(&iceServers[uriCount++], pIceConfigInfo->uris[j], pIceConfigInfo->userName, pIceConfigInfo->password)); } diff --git a/tst/WebRTCClientTestFixture.cpp b/tst/WebRTCClientTestFixture.cpp index d041db728e..7cfdc91eca 100644 --- a/tst/WebRTCClientTestFixture.cpp +++ b/tst/WebRTCClientTestFixture.cpp @@ -16,31 +16,62 @@ UINT64 gTotalWebRtcClientMemoryUsage = 0; // MUTEX gTotalWebRtcClientMemoryMutex; -STATUS createRtpPacketWithSeqNum(UINT16 seqNum, PRtpPacket *ppRtpPacket) { +STATUS createRtpPacketWithSeqNum(UINT16 seqNum, PRtpPacket* ppRtpPacket) +{ STATUS retStatus = STATUS_SUCCESS; BYTE payload[10]; PRtpPacket pRtpPacket = NULL; - CHK_STATUS(createRtpPacket(2, FALSE, FALSE, 0, FALSE, - 96, seqNum, 100, 0x1234ABCD, NULL, 0, 0, NULL, payload, 10, &pRtpPacket)); + CHK_STATUS(createRtpPacket(2, FALSE, FALSE, 0, FALSE, 96, seqNum, 100, 0x1234ABCD, NULL, 0, 0, NULL, payload, 10, &pRtpPacket)); *ppRtpPacket = pRtpPacket; CHK_STATUS(createBytesFromRtpPacket(pRtpPacket, NULL, &pRtpPacket->rawPacketLength)); CHK(NULL != (pRtpPacket->pRawPacket = (PBYTE) MEMALLOC(pRtpPacket->rawPacketLength)), STATUS_NOT_ENOUGH_MEMORY); CHK_STATUS(createBytesFromRtpPacket(pRtpPacket, pRtpPacket->pRawPacket, &pRtpPacket->rawPacketLength)); - CleanUp: +CleanUp: return retStatus; } -WebRtcClientTestBase::WebRtcClientTestBase() : - mSignalingClientHandle(INVALID_SIGNALING_CLIENT_HANDLE_VALUE), - mAccessKey(NULL), - mSecretKey(NULL), - mSessionToken(NULL), - mRegion(NULL), - mCaCertPath(NULL), - mAccessKeyIdSet(FALSE) +PVOID asyncGetIceConfigInfo(PVOID args) +{ + STATUS retStatus = STATUS_SUCCESS; + AsyncGetIceStruct* data = (AsyncGetIceStruct*) args; + PIceConfigInfo pIceConfigInfo = NULL; + UINT32 uriCount = 0; + UINT32 i = 0, maxTurnServer = 1; + + if (data != NULL) { + /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize + * candidate gathering latency. But user can also choose to use more than 1 turn server. */ + for (uriCount = 0, i = 0; i < maxTurnServer; i++) { + /* + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN + * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS + * + * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. + */ + CHK_STATUS(signalingClientGetIceConfigInfo(data->signalingClientHandle, i, &pIceConfigInfo)); + CHECK(uriCount < MAX_ICE_SERVERS_COUNT); + uriCount += pIceConfigInfo->uriCount; + CHK_STATUS(addConfigToServerList(&(data->pAnswer), pIceConfigInfo)); + CHK_STATUS(addConfigToServerList(&(data->pOffer), pIceConfigInfo)); + } + } + *(data->pUriCount) += uriCount; + +CleanUp: + SAFE_MEMFREE(data); + CHK_LOG_ERR(retStatus); + return NULL; +} + +WebRtcClientTestBase::WebRtcClientTestBase() + : mSignalingClientHandle(INVALID_SIGNALING_CLIENT_HANDLE_VALUE), mAccessKey(NULL), mSecretKey(NULL), mSessionToken(NULL), mRegion(NULL), + mCaCertPath(NULL), mAccessKeyIdSet(FALSE) { // Initialize the endianness of the library initializeEndianness(); @@ -57,6 +88,7 @@ void WebRtcClientTestBase::SetUp() mDroppedFrameIndex = 0; mExpectedFrameCount = 0; mExpectedDroppedFrameCount = 0; + noNewThreads = FALSE; SET_INSTRUMENTED_ALLOCATORS(); @@ -69,7 +101,9 @@ void WebRtcClientTestBase::SetUp() SET_LOGGER_LOG_LEVEL(mLogLevel); - initKvsWebRtc(); + if (STATUS_SUCCESS != initKvsWebRtc()) { + DLOGE("Test initKvsWebRtc FAILED!!!!"); + } if (NULL != (mAccessKey = getenv(ACCESS_KEY_ENV_VAR))) { mAccessKeyIdSet = TRUE; @@ -113,6 +147,8 @@ void WebRtcClientTestBase::TearDown() DLOGI("\nTearing down test: %s\n", GetTestName()); deinitKvsWebRtc(); + // Need this sleep for threads in threadpool to close + THREAD_SLEEP(400 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); freeStaticCredentialProvider(&mTestCredentialProvider); @@ -183,22 +219,121 @@ bool WebRtcClientTestBase::connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerC PCHAR pAnswerCertFingerprint) { RtcSessionDescriptionInit sdp; + PeerContainer offer; + PeerContainer answer; + this->noNewThreads = FALSE; + + auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { + PPeerContainer container = (PPeerContainer)customData; + if (candidateStr != NULL) { + container->client->lock.lock(); + if(!container->client->noNewThreads) { + container->client->threads.push_back(std::thread( + [container](std::string candidate) { + RtcIceCandidateInit iceCandidate; + EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); + EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) container->pc, iceCandidate.candidate)); + }, + std::string(candidateStr))); + } + container->client->lock.unlock(); + } + + }; + + auto onICECandidateHdlrDone = [](UINT64 customData, PCHAR candidateStr) -> void { + UNUSED_PARAM(customData); + UNUSED_PARAM(candidateStr); + }; + + offer.pc = offerPc; + offer.client = this; + answer.pc = answerPc; + answer.client = this; + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) &answer, onICECandidateHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) &offer, onICECandidateHdlr)); + + auto onICEConnectionStateChangeHdlr = [](UINT64 customData, RTC_PEER_CONNECTION_STATE newState) -> void { + ATOMIC_INCREMENT((PSIZE_T) customData + newState); + }; + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnConnectionStateChange(offerPc, (UINT64) this->stateChangeCount, onICEConnectionStateChangeHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnConnectionStateChange(answerPc, (UINT64) this->stateChangeCount, onICEConnectionStateChangeHdlr)); + + EXPECT_EQ(STATUS_SUCCESS, createOffer(offerPc, &sdp)); + EXPECT_EQ(STATUS_SUCCESS, setLocalDescription(offerPc, &sdp)); + EXPECT_EQ(STATUS_SUCCESS, setRemoteDescription(answerPc, &sdp)); + + // Validate the cert fingerprint if we are asked to do so + if (pOfferCertFingerprint != NULL) { + EXPECT_NE((PCHAR) NULL, STRSTR(sdp.sdp, pOfferCertFingerprint)); + } + + EXPECT_EQ(STATUS_SUCCESS, createAnswer(answerPc, &sdp)); + EXPECT_EQ(STATUS_SUCCESS, setLocalDescription(answerPc, &sdp)); + EXPECT_EQ(STATUS_SUCCESS, setRemoteDescription(offerPc, &sdp)); + + if (pAnswerCertFingerprint != NULL) { + EXPECT_NE((PCHAR) NULL, STRSTR(sdp.sdp, pAnswerCertFingerprint)); + } + + for (auto i = 0; i <= 100 && ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) != 2; i++) { + THREAD_SLEEP(HUNDREDS_OF_NANOS_IN_A_SECOND); + } + + this->lock.lock(); + //join all threads before leaving + for (auto& th : this->threads) th.join(); + + this->threads.clear(); + this->noNewThreads = TRUE; + this->lock.unlock(); + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) 0, onICECandidateHdlrDone)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) 0, onICECandidateHdlrDone)); + + + return ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) == 2; +} + +bool WebRtcClientTestBase::connectTwoPeersAsyncIce(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint, + PCHAR pAnswerCertFingerprint) +{ + RtcSessionDescriptionInit sdp; + PeerContainer offer; + PeerContainer answer; + this->noNewThreads = FALSE; auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { + PPeerContainer container = (PPeerContainer)customData; if (candidateStr != NULL) { - std::thread( - [customData](std::string candidate) { - RtcIceCandidateInit iceCandidate; - EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); - EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) customData, iceCandidate.candidate)); - }, - std::string(candidateStr)) - .detach(); + container->client->lock.lock(); + if(!container->client->noNewThreads) { + container->client->threads.push_back(std::thread( + [container](std::string candidate) { + RtcIceCandidateInit iceCandidate; + EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); + EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) container->pc, iceCandidate.candidate)); + }, + std::string(candidateStr))); + } + container->client->lock.unlock(); } }; - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) answerPc, onICECandidateHdlr)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) offerPc, onICECandidateHdlr)); + auto onICECandidateHdlrDone = [](UINT64 customData, PCHAR candidateStr) -> void { + UNUSED_PARAM(customData); + UNUSED_PARAM(candidateStr); + }; + + offer.pc = offerPc; + offer.client = this; + answer.pc = answerPc; + answer.client = this; + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) &answer, onICECandidateHdlr)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) &offer, onICECandidateHdlr)); auto onICEConnectionStateChangeHdlr = [](UINT64 customData, RTC_PEER_CONNECTION_STATE newState) -> void { ATOMIC_INCREMENT((PSIZE_T) customData + newState); @@ -220,6 +355,8 @@ bool WebRtcClientTestBase::connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerC EXPECT_EQ(STATUS_SUCCESS, setLocalDescription(answerPc, &sdp)); EXPECT_EQ(STATUS_SUCCESS, setRemoteDescription(offerPc, &sdp)); + asyncGetIceConfig(offerPc, answerPc); + if (pAnswerCertFingerprint != NULL) { EXPECT_NE((PCHAR) NULL, STRSTR(sdp.sdp, pAnswerCertFingerprint)); } @@ -228,6 +365,17 @@ bool WebRtcClientTestBase::connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerC THREAD_SLEEP(HUNDREDS_OF_NANOS_IN_A_SECOND); } + this->lock.lock(); + //join all threads before leaving + for (auto& th : this->threads) th.join(); + + this->threads.clear(); + this->noNewThreads = TRUE; + this->lock.unlock(); + + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) 0, onICECandidateHdlrDone)); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) 0, onICECandidateHdlrDone)); + return ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) == 2; } @@ -247,16 +395,42 @@ void WebRtcClientTestBase::addTrackToPeerConnection(PRtcPeerConnection pRtcPeerC EXPECT_EQ(STATUS_SUCCESS, addTransceiver(pRtcPeerConnection, track, NULL, transceiver)); } -void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration) +void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration, PIceAgent pIceAgent) +{ + UINT32 i, j, iceConfigCount = 0, uriCount; + PIceConfigInfo pIceConfigInfo; + + // Assume signaling client is already created + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceConfigCount)); + + // Set the STUN server + SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, + TEST_DEFAULT_STUN_URL_POSTFIX); + + for (uriCount = 0, i = 0; i < iceConfigCount; i++) { + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo)); + for (j = 0; j < pIceConfigInfo->uriCount; j++) { + STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].urls, pIceConfigInfo->uris[j], MAX_ICE_CONFIG_URI_LEN); + STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].credential, pIceConfigInfo->password, MAX_ICE_CONFIG_CREDENTIAL_LEN); + STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].username, pIceConfigInfo->userName, MAX_ICE_CONFIG_USER_NAME_LEN); + + uriCount++; + } + EXPECT_EQ(STATUS_SUCCESS, iceAgentAddConfig(pIceAgent, pIceConfigInfo)); + } +} + +void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration, PRtcPeerConnection pRtcPeerConnection) { - UINT32 i, j, iceConfigCount, uriCount; + UINT32 i, j, iceConfigCount = 0, uriCount; PIceConfigInfo pIceConfigInfo; // Assume signaling client is already created EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceConfigCount)); // Set the STUN server - SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX); + SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, + TEST_DEFAULT_STUN_URL_POSTFIX); for (uriCount = 0, i = 0; i < iceConfigCount; i++) { EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo)); @@ -267,6 +441,7 @@ void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration) uriCount++; } + EXPECT_EQ(STATUS_SUCCESS, addConfigToServerList(&pRtcPeerConnection, pIceConfigInfo)); } } diff --git a/tst/WebRTCClientTestFixture.h b/tst/WebRTCClientTestFixture.h index cd1a9d93f0..5e372b501a 100644 --- a/tst/WebRTCClientTestFixture.h +++ b/tst/WebRTCClientTestFixture.h @@ -24,6 +24,13 @@ #define MAX_TEST_AWAIT_DURATION (2 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define TEST_CACHE_FILE_PATH (PCHAR) "./.TestSignalingCache_v0" +typedef struct { + SIGNALING_CLIENT_HANDLE signalingClientHandle; + PRtcPeerConnection pOffer; + PRtcPeerConnection pAnswer; + PUINT32 pUriCount; +} AsyncGetIceStruct; + namespace com { namespace amazonaws { namespace kinesis { @@ -39,6 +46,8 @@ typedef struct { STATUS createRtpPacketWithSeqNum(UINT16 seqNum, PRtpPacket* ppRtpPacket); +PVOID asyncGetIceConfigInfo(PVOID args); + class WebRtcClientTestBase : public ::testing::Test { public: PUINT32 mExpectedFrameSizeArr; @@ -48,7 +57,11 @@ class WebRtcClientTestBase : public ::testing::Test { UINT32 mExpectedDroppedFrameCount; PRtpPacket* mPRtpPackets; UINT32 mRtpPacketCount; + UINT32 mUriCount = 0; SIGNALING_CLIENT_HANDLE mSignalingClientHandle; + std::vector threads; + std::mutex lock; + BOOL noNewThreads = FALSE; WebRtcClientTestBase(); @@ -111,6 +124,7 @@ class WebRtcClientTestBase : public ::testing::Test { mChannelInfo.reconnect = TRUE; mChannelInfo.pCertPath = mCaCertPath; mChannelInfo.messageTtl = TEST_SIGNALING_MESSAGE_TTL; + if ((mChannelInfo.pRegion = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) { mChannelInfo.pRegion = (PCHAR) TEST_DEFAULT_REGION; } @@ -149,6 +163,18 @@ class WebRtcClientTestBase : public ::testing::Test { return STATUS_SUCCESS; } + STATUS asyncGetIceConfig(PRtcPeerConnection pOffer, PRtcPeerConnection pAnswer) + { + AsyncGetIceStruct* pAsyncData = NULL; + pAsyncData = (AsyncGetIceStruct*) MEMCALLOC(1, SIZEOF(AsyncGetIceStruct)); + pAsyncData->signalingClientHandle = mSignalingClientHandle; + pAsyncData->pAnswer = pAnswer; + pAsyncData->pOffer = pOffer; + pAsyncData->pUriCount = &(this->mUriCount); + EXPECT_EQ(STATUS_SUCCESS, peerConnectionAsync(asyncGetIceConfigInfo, (PVOID) pAsyncData)); + return STATUS_SUCCESS; + } + static STATUS testFrameReadyFunc(UINT64 customData, UINT16 startIndex, UINT16 endIndex, UINT32 frameSize) { WebRtcClientTestBase* base = (WebRtcClientTestBase*) customData; @@ -270,9 +296,13 @@ class WebRtcClientTestBase : public ::testing::Test { bool connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint = NULL, PCHAR pAnswerCertFingerprint = NULL); + bool connectTwoPeersAsyncIce(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint = NULL, + PCHAR pAnswerCertFingerprint = NULL); void addTrackToPeerConnection(PRtcPeerConnection pRtcPeerConnection, PRtcMediaStreamTrack track, PRtcRtpTransceiver* transceiver, RTC_CODEC codec, MEDIA_STREAM_TRACK_KIND kind); - void getIceServers(PRtcConfiguration pRtcConfiguration); + void getIceServers(PRtcConfiguration pRtcConfiguration, PRtcPeerConnection pRtcPeerConnection); + + void getIceServers(PRtcConfiguration pRtcConfiguration, PIceAgent pIceAgent); protected: virtual void SetUp(); @@ -312,6 +342,11 @@ class WebRtcClientTestBase : public ::testing::Test { Tag mTags[3]; }; +typedef struct { + PRtcPeerConnection pc; + WebRtcClientTestBase* client; +} PeerContainer, *PPeerContainer; + } // namespace webrtcclient } // namespace video } // namespace kinesis diff --git a/tst/suppressions/TSAN.supp b/tst/suppressions/TSAN.supp index 0c1179bfbd..636d016122 100644 --- a/tst/suppressions/TSAN.supp +++ b/tst/suppressions/TSAN.supp @@ -176,4 +176,4 @@ deadlock:com::amazonaws::kinesis::video::webrtcclient::DtlsFunctionalityTest::cr # instead of flagging each individual instance of the test. deadlock:lwsListenerHandler deadlock:connectSignalingChannelLws -race:lwsListenerHandler \ No newline at end of file +race:lwsListenerHandler From f1073439213db4aa4b4b7cc1423609d920dd5489 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Wed, 20 Mar 2024 16:10:00 -0700 Subject: [PATCH 02/21] Viewer fix (#1953) * Viewer fix * ICE agent update * new flag * stopgathering flag set * Windows fix --- .github/workflows/ci.yml | 4 ++-- CMakeLists.txt | 5 +---- src/source/Ice/IceAgent.c | 25 +++++++++++++++---------- src/source/Ice/IceAgent.h | 2 ++ 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f4380f213..b57473b076 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -552,8 +552,8 @@ jobs: - name: Install dependencies shell: powershell run: | - choco install gstreamer --version=1.16.2 - choco install gstreamer-devel --version=1.16.2 + choco install gstreamer --version=1.16.3 + choco install gstreamer-devel --version=1.16.3 curl.exe -o C:\tools\pthreads-w32-2-9-1-release.zip ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip mkdir C:\tools\pthreads-w32-2-9-1-release\ Expand-Archive -Path C:\tools\pthreads-w32-2-9-1-release.zip -DestinationPath C:\tools\pthreads-w32-2-9-1-release diff --git a/CMakeLists.txt b/CMakeLists.txt index 33f9b92aca..8e362f5fb6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,10 +5,7 @@ include(CheckIncludeFiles) include(CheckFunctionExists) # The version MUST be updated before every release -project(KinesisVideoWebRTCClient VERSION 1.10.0 LANGUAGES C) - - - +project(KinesisVideoWebRTCClient VERSION 1.10.1 LANGUAGES C) # User Flags option(ADD_MUCLIBC "Add -muclibc c flag" OFF) diff --git a/src/source/Ice/IceAgent.c b/src/source/Ice/IceAgent.c index c9effd4418..225957fb56 100644 --- a/src/source/Ice/IceAgent.c +++ b/src/source/Ice/IceAgent.c @@ -43,10 +43,12 @@ STATUS createIceAgent(PCHAR username, PCHAR password, PIceAgentCallbacks pIceAge ATOMIC_STORE_BOOL(&pIceAgent->remoteCredentialReceived, FALSE); ATOMIC_STORE_BOOL(&pIceAgent->agentStartGathering, FALSE); + ATOMIC_STORE_BOOL(&pIceAgent->stopGathering, FALSE); ATOMIC_STORE_BOOL(&pIceAgent->candidateGatheringFinished, FALSE); ATOMIC_STORE_BOOL(&pIceAgent->shutdown, FALSE); ATOMIC_STORE_BOOL(&pIceAgent->restart, FALSE); ATOMIC_STORE_BOOL(&pIceAgent->processStun, TRUE); + ATOMIC_STORE_BOOL(&pIceAgent->addedRelayCandidate, FALSE); pIceAgent->isControlling = FALSE; pIceAgent->tieBreaker = (UINT64) RAND(); pIceAgent->iceTransportPolicy = pRtcConfiguration->iceTransportPolicy; @@ -327,7 +329,7 @@ STATUS iceAgentAddConfig(PIceAgent pIceAgent, PIceConfigInfo pIceConfigInfo) DLOGE("Failed to parse ICE servers"); } } - + ATOMIC_STORE_BOOL(&pIceAgent->addedRelayCandidate, TRUE); CleanUp: CHK_LOG_ERR(retStatus); @@ -382,7 +384,6 @@ STATUS iceAgentReportNewLocalCandidate(PIceAgent pIceAgent, PIceCandidate pIceCa UINT32 serializedIceCandidateBufLen = ARRAY_SIZE(serializedIceCandidateBuf); CHK(pIceAgent != NULL && pIceCandidate != NULL, STATUS_NULL_ARG); - iceAgentLogNewCandidate(pIceCandidate); CHK_WARN(pIceAgent->iceAgentCallbacks.newLocalCandidateFn != NULL, retStatus, "newLocalCandidateFn callback not implemented"); @@ -919,7 +920,7 @@ STATUS iceAgentRestart(PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIceP CHK(pIceAgent != NULL, STATUS_NULL_ARG); CHK(!ATOMIC_LOAD_BOOL(&pIceAgent->shutdown), STATUS_INVALID_OPERATION); - DLOGD("Restarting ICE"); + DLOGI("Restarting ICE"); alreadyRestarting = ATOMIC_EXCHANGE_BOOL(&pIceAgent->restart, TRUE); CHK(!alreadyRestarting, retStatus); @@ -948,6 +949,8 @@ STATUS iceAgentRestart(PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIceP pIceAgent->iceAgentStatus = STATUS_SUCCESS; pIceAgent->lastDataReceivedTime = INVALID_TIMESTAMP_VALUE; pIceAgent->relayCandidateCount = 0; + ATOMIC_STORE_BOOL(&pIceAgent->addedRelayCandidate, FALSE); + ATOMIC_STORE_BOOL(&pIceAgent->stopGathering, FALSE); CHK_STATUS(doubleListGetHeadNode(pIceAgent->localCandidates, &pCurNode)); while (pCurNode != NULL) { @@ -1627,7 +1630,6 @@ STATUS iceAgentGatherCandidateTimerCallback(UINT32 timerId, UINT64 currentTime, MUTEX_LOCK(pIceAgent->lock); locked = TRUE; - CHK_STATUS(doubleListGetHeadNode(pIceAgent->localCandidates, &pCurNode)); while (pCurNode != NULL) { CHK_STATUS(doubleListGetNodeData(pCurNode, &data)); @@ -1663,10 +1665,14 @@ STATUS iceAgentGatherCandidateTimerCallback(UINT32 timerId, UINT64 currentTime, if (pendingSrflxCandidateCount > 0) { CHK_STATUS(iceAgentSendSrflxCandidateRequest(pIceAgent)); } - - /* stop scheduling if there is no more pending candidate or if timeout is reached. */ - if ((totalCandidateCount > 0 && pendingCandidateCount == 0) || currentTime >= pIceAgent->candidateGatheringEndTime) { + /* stop scheduling if there is a nominated candidate pair (in cases where the pair does not have relay, which is set via stopGathering flag), no + * more pending candidate and relay candidates are added or if timeout is reached. */ + if (ATOMIC_LOAD_BOOL(&pIceAgent->stopGathering) || + (totalCandidateCount > 0 && pendingCandidateCount == 0 && ATOMIC_LOAD_BOOL(&pIceAgent->addedRelayCandidate)) || + currentTime >= pIceAgent->candidateGatheringEndTime) { DLOGI("Candidate gathering completed."); + PROFILE_WITH_START_END_TIME_OBJ(pIceAgent->candidateGatheringStartTime, pIceAgent->candidateGatheringProcessEndTime, + pIceAgent->iceAgentProfileDiagnostics.candidateGatheringTime, "Candidate gathering time"); stopScheduling = TRUE; pIceAgent->iceCandidateGatheringTimerTask = MAX_UINT32; } @@ -1682,8 +1688,6 @@ STATUS iceAgentGatherCandidateTimerCallback(UINT32 timerId, UINT64 currentTime, if (stopScheduling) { ATOMIC_STORE_BOOL(&pIceAgent->candidateGatheringFinished, TRUE); - PROFILE_WITH_START_END_TIME_OBJ(pIceAgent->candidateGatheringStartTime, pIceAgent->candidateGatheringProcessEndTime, - pIceAgent->iceAgentProfileDiagnostics.candidateGatheringTime, "Candidate gathering time"); /* notify that candidate gathering is finished. */ if (pIceAgent->iceAgentCallbacks.newLocalCandidateFn != NULL) { pIceAgent->iceAgentCallbacks.newLocalCandidateFn(pIceAgent->iceAgentCallbacks.customData, NULL); @@ -2242,6 +2246,8 @@ STATUS iceAgentReadyStateSetup(PIceAgent pIceAgent) } CHK(pNominatedAndValidCandidatePair != NULL, STATUS_ICE_NO_NOMINATED_VALID_CANDIDATE_PAIR_AVAILABLE); pIceAgent->pDataSendingIceCandidatePair = pNominatedAndValidCandidatePair; + // Set to stop gathering + ATOMIC_STORE_BOOL(&pIceAgent->stopGathering, TRUE); } CHK_STATUS(getIpAddrStr(&pIceAgent->pDataSendingIceCandidatePair->local->ipAddress, ipAddrStr, ARRAY_SIZE(ipAddrStr))); @@ -2252,7 +2258,6 @@ STATUS iceAgentReadyStateSetup(PIceAgent pIceAgent) iceAgentGetCandidateTypeStr(pIceAgent->pDataSendingIceCandidatePair->remote->iceCandidateType), pIceAgent->pDataSendingIceCandidatePair->roundTripTime / HUNDREDS_OF_NANOS_IN_A_MILLISECOND, pIceAgent->pDataSendingIceCandidatePair->local->priority, pIceAgent->pDataSendingIceCandidatePair->priority); - /* no state timeout for ready state */ pIceAgent->stateEndTime = INVALID_TIMESTAMP_VALUE; diff --git a/src/source/Ice/IceAgent.h b/src/source/Ice/IceAgent.h index b692975c1b..53632aab88 100644 --- a/src/source/Ice/IceAgent.h +++ b/src/source/Ice/IceAgent.h @@ -204,6 +204,8 @@ struct __IceAgent { volatile ATOMIC_BOOL shutdown; volatile ATOMIC_BOOL restart; volatile ATOMIC_BOOL processStun; + volatile ATOMIC_BOOL addedRelayCandidate; + volatile ATOMIC_BOOL stopGathering; CHAR localUsername[MAX_ICE_CONFIG_USER_NAME_LEN + 1]; CHAR localPassword[MAX_ICE_CONFIG_CREDENTIAL_LEN + 1]; From 4f1d3add4c0f88212fe6646898e5aba140ecbb3c Mon Sep 17 00:00:00 2001 From: Niyati Maheshwari Date: Wed, 8 May 2024 17:01:05 -0700 Subject: [PATCH 03/21] Release 1.10.2 (#1981) * Add H265 and AAC frames (#1962) * aac and h265 frames * update readme * update cmake with h265 and aac * clang formay * [Sample] GStreamer media receiver (#1963) * create the gst receiver * fix ci * cmake flag * clang format, add cmake flag in ci * install gstreamer on ci * use macos12 * use defined values * indent * clang-format * readme and commentsa * clang :( * install glib to fix ci * -DCOMPILER_WARNINGS=FALSE to fix the CI * fix macos version for clang * address comments and cleanup * new viewer with gst * clang-format * missing null check * address comments * -DCOMPILER_WARNINGS=TRUE * clang-format * gst_init_check * fix CI * fix CI * [Bug] GStreamer sample (#1972) * gst-sample-fix * modify the message * fix windows * set to null * fix pts and eos in sample * unused var removed * move null init * Version check job (#1974) * Version check job * Working Version check template * Retest with dev * Version lint * Version lint * use new frames (#1978) * Sample TWCC implementation (#1957) * encoder bitrate change based on twcc * Change to 5% inc and dec * modify percentages * ema based calc * EMa fix * Nits * Readme * flip * memset remove * Readme update, move enable flags to createSampleConfiguration * Add codecov token * [Feature] Add H265 support with SDP, RTP payloader-deplayloader (#1965) * Add RtpH265Payloader.c and RtpH265Payloader.h * Add support for H265 in PeerConnection/SessionDescription * Add support for H265 in PeerConnection/PeerConnection * Add support for H265 in PeerConnection/Rtp * Add support for H265 in samples/Common.c * Add support for H265 in samples/kvsWebRTCClientMaster.c * rtp, sdp fix, flag removed, clang fixed, windows build fixed, new test added * test fix * cleanup * cleanup * remove #if 0 * clang * presentation ts fix * clang-format fix * PKG_CONFIG_PATH in kvscommon * missing bracket * fix all builds * ci * cleanup * fix windows build, rename h265 defs * remove duplicate line from h264 and h265 * sample changes * address comments * clang-format * gst sample * cleanup args * clang-format * cleanup * add sdp tests * address comments * address commentas * set default payload type only once * address comments * fix height and width * sdp change --------- Co-authored-by: Hongli Wang * Version bump, fix tests, remove enableIceStats * Remove AAC related changes * Remove AAC frames * Clang format * fix kvsWebrtcClientMasterGstSample.c name in CMakeLists --------- Co-authored-by: Divya Sampath Kumar Co-authored-by: Hongli Wang --- .github/workflows/ci.yml | 9 +- .github/workflows/codecov.yml | 1 + .github/workflows/version-check.yml | 42 +++ CMakeLists.txt | 3 +- README.md | 112 ++++++- samples/CMakeLists.txt | 14 + samples/Common.c | 106 +++++-- samples/GstAudioVideoReceiver.c | 231 ++++++++++++++ samples/Samples.h | 36 +++ samples/h265SampleFrames/frame-0001.h265 | Bin 0 -> 4162 bytes samples/h265SampleFrames/frame-0002.h265 | Bin 0 -> 329 bytes samples/h265SampleFrames/frame-0003.h265 | Bin 0 -> 594 bytes samples/h265SampleFrames/frame-0004.h265 | Bin 0 -> 1154 bytes samples/h265SampleFrames/frame-0005.h265 | Bin 0 -> 1496 bytes samples/h265SampleFrames/frame-0006.h265 | Bin 0 -> 1382 bytes samples/h265SampleFrames/frame-0007.h265 | Bin 0 -> 885 bytes samples/h265SampleFrames/frame-0008.h265 | Bin 0 -> 1166 bytes samples/h265SampleFrames/frame-0009.h265 | Bin 0 -> 1290 bytes samples/h265SampleFrames/frame-0010.h265 | Bin 0 -> 877 bytes samples/h265SampleFrames/frame-0011.h265 | Bin 0 -> 1438 bytes samples/h265SampleFrames/frame-0012.h265 | Bin 0 -> 950 bytes samples/h265SampleFrames/frame-0013.h265 | Bin 0 -> 1075 bytes samples/h265SampleFrames/frame-0014.h265 | Bin 0 -> 1266 bytes samples/h265SampleFrames/frame-0015.h265 | Bin 0 -> 1102 bytes samples/h265SampleFrames/frame-0016.h265 | Bin 0 -> 1718 bytes samples/h265SampleFrames/frame-0017.h265 | Bin 0 -> 1114 bytes samples/h265SampleFrames/frame-0018.h265 | Bin 0 -> 1240 bytes samples/h265SampleFrames/frame-0019.h265 | Bin 0 -> 1372 bytes samples/h265SampleFrames/frame-0020.h265 | Bin 0 -> 885 bytes samples/h265SampleFrames/frame-0021.h265 | Bin 0 -> 1844 bytes samples/h265SampleFrames/frame-0022.h265 | Bin 0 -> 1071 bytes samples/h265SampleFrames/frame-0023.h265 | Bin 0 -> 1245 bytes samples/h265SampleFrames/frame-0024.h265 | Bin 0 -> 1511 bytes samples/h265SampleFrames/frame-0025.h265 | Bin 0 -> 1129 bytes samples/h265SampleFrames/frame-0026.h265 | Bin 0 -> 1881 bytes samples/h265SampleFrames/frame-0027.h265 | Bin 0 -> 1130 bytes samples/h265SampleFrames/frame-0028.h265 | Bin 0 -> 1256 bytes samples/h265SampleFrames/frame-0029.h265 | Bin 0 -> 1450 bytes samples/h265SampleFrames/frame-0030.h265 | Bin 0 -> 1159 bytes samples/h265SampleFrames/frame-0031.h265 | Bin 0 -> 1753 bytes samples/h265SampleFrames/frame-0032.h265 | Bin 0 -> 1052 bytes samples/h265SampleFrames/frame-0033.h265 | Bin 0 -> 1436 bytes samples/h265SampleFrames/frame-0034.h265 | Bin 0 -> 1789 bytes samples/h265SampleFrames/frame-0035.h265 | Bin 0 -> 1124 bytes samples/h265SampleFrames/frame-0036.h265 | Bin 0 -> 1769 bytes samples/h265SampleFrames/frame-0037.h265 | Bin 0 -> 1133 bytes samples/h265SampleFrames/frame-0038.h265 | Bin 0 -> 1280 bytes samples/h265SampleFrames/frame-0039.h265 | Bin 0 -> 1877 bytes samples/h265SampleFrames/frame-0040.h265 | Bin 0 -> 1044 bytes samples/h265SampleFrames/frame-0041.h265 | Bin 0 -> 1982 bytes samples/h265SampleFrames/frame-0042.h265 | Bin 0 -> 1034 bytes samples/h265SampleFrames/frame-0043.h265 | Bin 0 -> 1278 bytes samples/h265SampleFrames/frame-0044.h265 | Bin 0 -> 1634 bytes samples/h265SampleFrames/frame-0045.h265 | Bin 0 -> 1122 bytes samples/h265SampleFrames/frame-0046.h265 | Bin 0 -> 2174 bytes samples/h265SampleFrames/frame-0047.h265 | Bin 0 -> 1167 bytes samples/h265SampleFrames/frame-0048.h265 | Bin 0 -> 1348 bytes samples/h265SampleFrames/frame-0049.h265 | Bin 0 -> 1849 bytes samples/h265SampleFrames/frame-0050.h265 | Bin 0 -> 1239 bytes samples/h265SampleFrames/frame-0051.h265 | Bin 0 -> 2547 bytes samples/h265SampleFrames/frame-0052.h265 | Bin 0 -> 1188 bytes samples/h265SampleFrames/frame-0053.h265 | Bin 0 -> 1296 bytes samples/h265SampleFrames/frame-0054.h265 | Bin 0 -> 1688 bytes samples/h265SampleFrames/frame-0055.h265 | Bin 0 -> 1271 bytes samples/h265SampleFrames/frame-0056.h265 | Bin 0 -> 1953 bytes samples/h265SampleFrames/frame-0057.h265 | Bin 0 -> 1117 bytes samples/h265SampleFrames/frame-0058.h265 | Bin 0 -> 1354 bytes samples/h265SampleFrames/frame-0059.h265 | Bin 0 -> 1976 bytes samples/h265SampleFrames/frame-0060.h265 | Bin 0 -> 1262 bytes samples/h265SampleFrames/frame-0061.h265 | Bin 0 -> 1962 bytes samples/h265SampleFrames/frame-0062.h265 | Bin 0 -> 1151 bytes samples/h265SampleFrames/frame-0063.h265 | Bin 0 -> 1480 bytes samples/h265SampleFrames/frame-0064.h265 | Bin 0 -> 1916 bytes samples/h265SampleFrames/frame-0065.h265 | Bin 0 -> 1358 bytes samples/h265SampleFrames/frame-0066.h265 | Bin 0 -> 2225 bytes samples/h265SampleFrames/frame-0067.h265 | Bin 0 -> 1213 bytes samples/h265SampleFrames/frame-0068.h265 | Bin 0 -> 1466 bytes samples/h265SampleFrames/frame-0069.h265 | Bin 0 -> 1613 bytes samples/h265SampleFrames/frame-0070.h265 | Bin 0 -> 2852 bytes samples/h265SampleFrames/frame-0071.h265 | Bin 0 -> 2807 bytes samples/h265SampleFrames/frame-0072.h265 | Bin 0 -> 1509 bytes samples/h265SampleFrames/frame-0073.h265 | Bin 0 -> 1707 bytes samples/h265SampleFrames/frame-0074.h265 | Bin 0 -> 2353 bytes samples/h265SampleFrames/frame-0075.h265 | Bin 0 -> 1543 bytes samples/h265SampleFrames/frame-0076.h265 | Bin 0 -> 3458 bytes samples/h265SampleFrames/frame-0077.h265 | Bin 0 -> 1435 bytes samples/h265SampleFrames/frame-0078.h265 | Bin 0 -> 1824 bytes samples/h265SampleFrames/frame-0079.h265 | Bin 0 -> 1884 bytes samples/h265SampleFrames/frame-0080.h265 | Bin 0 -> 1662 bytes samples/h265SampleFrames/frame-0081.h265 | Bin 0 -> 2479 bytes samples/h265SampleFrames/frame-0082.h265 | Bin 0 -> 1510 bytes samples/h265SampleFrames/frame-0083.h265 | Bin 0 -> 1758 bytes samples/h265SampleFrames/frame-0084.h265 | Bin 0 -> 2446 bytes samples/h265SampleFrames/frame-0085.h265 | Bin 0 -> 1668 bytes samples/h265SampleFrames/frame-0086.h265 | Bin 0 -> 2425 bytes samples/h265SampleFrames/frame-0087.h265 | Bin 0 -> 1562 bytes samples/h265SampleFrames/frame-0088.h265 | Bin 0 -> 1875 bytes samples/h265SampleFrames/frame-0089.h265 | Bin 0 -> 2274 bytes samples/h265SampleFrames/frame-0090.h265 | Bin 0 -> 1677 bytes samples/h265SampleFrames/frame-0091.h265 | Bin 0 -> 2718 bytes samples/h265SampleFrames/frame-0092.h265 | Bin 0 -> 1582 bytes samples/h265SampleFrames/frame-0093.h265 | Bin 0 -> 1890 bytes samples/h265SampleFrames/frame-0094.h265 | Bin 0 -> 2135 bytes samples/h265SampleFrames/frame-0095.h265 | Bin 0 -> 1619 bytes samples/h265SampleFrames/frame-0096.h265 | Bin 0 -> 3059 bytes samples/h265SampleFrames/frame-0097.h265 | Bin 0 -> 1622 bytes samples/h265SampleFrames/frame-0098.h265 | Bin 0 -> 1904 bytes samples/h265SampleFrames/frame-0099.h265 | Bin 0 -> 2492 bytes samples/h265SampleFrames/frame-0100.h265 | Bin 0 -> 1612 bytes samples/h265SampleFrames/frame-0101.h265 | Bin 0 -> 3617 bytes samples/h265SampleFrames/frame-0102.h265 | Bin 0 -> 1478 bytes samples/h265SampleFrames/frame-0103.h265 | Bin 0 -> 1813 bytes samples/h265SampleFrames/frame-0104.h265 | Bin 0 -> 2147 bytes samples/h265SampleFrames/frame-0105.h265 | Bin 0 -> 1747 bytes samples/h265SampleFrames/frame-0106.h265 | Bin 0 -> 2577 bytes samples/h265SampleFrames/frame-0107.h265 | Bin 0 -> 1571 bytes samples/h265SampleFrames/frame-0108.h265 | Bin 0 -> 1838 bytes samples/h265SampleFrames/frame-0109.h265 | Bin 0 -> 2475 bytes samples/h265SampleFrames/frame-0110.h265 | Bin 0 -> 1736 bytes samples/h265SampleFrames/frame-0111.h265 | Bin 0 -> 2647 bytes samples/h265SampleFrames/frame-0112.h265 | Bin 0 -> 1618 bytes samples/h265SampleFrames/frame-0113.h265 | Bin 0 -> 1906 bytes samples/h265SampleFrames/frame-0114.h265 | Bin 0 -> 2429 bytes samples/h265SampleFrames/frame-0115.h265 | Bin 0 -> 1684 bytes samples/h265SampleFrames/frame-0116.h265 | Bin 0 -> 2889 bytes samples/h265SampleFrames/frame-0117.h265 | Bin 0 -> 1869 bytes samples/h265SampleFrames/frame-0118.h265 | Bin 0 -> 2470 bytes samples/h265SampleFrames/frame-0119.h265 | Bin 0 -> 2688 bytes samples/h265SampleFrames/frame-0120.h265 | Bin 0 -> 2268 bytes samples/h265SampleFrames/frame-0121.h265 | Bin 0 -> 2851 bytes samples/h265SampleFrames/frame-0122.h265 | Bin 0 -> 1963 bytes samples/h265SampleFrames/frame-0123.h265 | Bin 0 -> 2132 bytes samples/h265SampleFrames/frame-0124.h265 | Bin 0 -> 2520 bytes samples/h265SampleFrames/frame-0125.h265 | Bin 0 -> 1830 bytes samples/h265SampleFrames/frame-0126.h265 | Bin 0 -> 3400 bytes samples/h265SampleFrames/frame-0127.h265 | Bin 0 -> 1730 bytes samples/h265SampleFrames/frame-0128.h265 | Bin 0 -> 1902 bytes samples/h265SampleFrames/frame-0129.h265 | Bin 0 -> 2185 bytes samples/h265SampleFrames/frame-0130.h265 | Bin 0 -> 1747 bytes samples/h265SampleFrames/frame-0131.h265 | Bin 0 -> 2605 bytes samples/h265SampleFrames/frame-0132.h265 | Bin 0 -> 1669 bytes samples/h265SampleFrames/frame-0133.h265 | Bin 0 -> 1842 bytes samples/h265SampleFrames/frame-0134.h265 | Bin 0 -> 2606 bytes samples/h265SampleFrames/frame-0135.h265 | Bin 0 -> 1814 bytes samples/h265SampleFrames/frame-0136.h265 | Bin 0 -> 2761 bytes samples/h265SampleFrames/frame-0137.h265 | Bin 0 -> 1693 bytes samples/h265SampleFrames/frame-0138.h265 | Bin 0 -> 2043 bytes samples/h265SampleFrames/frame-0139.h265 | Bin 0 -> 2611 bytes samples/h265SampleFrames/frame-0140.h265 | Bin 0 -> 1595 bytes samples/h265SampleFrames/frame-0141.h265 | Bin 0 -> 2865 bytes samples/h265SampleFrames/frame-0142.h265 | Bin 0 -> 1529 bytes samples/h265SampleFrames/frame-0143.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-0144.h265 | Bin 0 -> 2349 bytes samples/h265SampleFrames/frame-0145.h265 | Bin 0 -> 1581 bytes samples/h265SampleFrames/frame-0146.h265 | Bin 0 -> 3064 bytes samples/h265SampleFrames/frame-0147.h265 | Bin 0 -> 1667 bytes samples/h265SampleFrames/frame-0148.h265 | Bin 0 -> 1996 bytes samples/h265SampleFrames/frame-0149.h265 | Bin 0 -> 2697 bytes samples/h265SampleFrames/frame-0150.h265 | Bin 0 -> 1979 bytes samples/h265SampleFrames/frame-0151.h265 | Bin 0 -> 3857 bytes samples/h265SampleFrames/frame-0152.h265 | Bin 0 -> 1345 bytes samples/h265SampleFrames/frame-0153.h265 | Bin 0 -> 1973 bytes samples/h265SampleFrames/frame-0154.h265 | Bin 0 -> 2315 bytes samples/h265SampleFrames/frame-0155.h265 | Bin 0 -> 1969 bytes samples/h265SampleFrames/frame-0156.h265 | Bin 0 -> 2685 bytes samples/h265SampleFrames/frame-0157.h265 | Bin 0 -> 1670 bytes samples/h265SampleFrames/frame-0158.h265 | Bin 0 -> 1899 bytes samples/h265SampleFrames/frame-0159.h265 | Bin 0 -> 2810 bytes samples/h265SampleFrames/frame-0160.h265 | Bin 0 -> 1765 bytes samples/h265SampleFrames/frame-0161.h265 | Bin 0 -> 2786 bytes samples/h265SampleFrames/frame-0162.h265 | Bin 0 -> 1637 bytes samples/h265SampleFrames/frame-0163.h265 | Bin 0 -> 2063 bytes samples/h265SampleFrames/frame-0164.h265 | Bin 0 -> 2732 bytes samples/h265SampleFrames/frame-0165.h265 | Bin 0 -> 1918 bytes samples/h265SampleFrames/frame-0166.h265 | Bin 0 -> 2959 bytes samples/h265SampleFrames/frame-0167.h265 | Bin 0 -> 1752 bytes samples/h265SampleFrames/frame-0168.h265 | Bin 0 -> 2021 bytes samples/h265SampleFrames/frame-0169.h265 | Bin 0 -> 2285 bytes samples/h265SampleFrames/frame-0170.h265 | Bin 0 -> 1872 bytes samples/h265SampleFrames/frame-0171.h265 | Bin 0 -> 3107 bytes samples/h265SampleFrames/frame-0172.h265 | Bin 0 -> 1592 bytes samples/h265SampleFrames/frame-0173.h265 | Bin 0 -> 2064 bytes samples/h265SampleFrames/frame-0174.h265 | Bin 0 -> 2804 bytes samples/h265SampleFrames/frame-0175.h265 | Bin 0 -> 1784 bytes samples/h265SampleFrames/frame-0176.h265 | Bin 0 -> 3686 bytes samples/h265SampleFrames/frame-0177.h265 | Bin 0 -> 1682 bytes samples/h265SampleFrames/frame-0178.h265 | Bin 0 -> 2108 bytes samples/h265SampleFrames/frame-0179.h265 | Bin 0 -> 2319 bytes samples/h265SampleFrames/frame-0180.h265 | Bin 0 -> 1806 bytes samples/h265SampleFrames/frame-0181.h265 | Bin 0 -> 2752 bytes samples/h265SampleFrames/frame-0182.h265 | Bin 0 -> 1732 bytes samples/h265SampleFrames/frame-0183.h265 | Bin 0 -> 2009 bytes samples/h265SampleFrames/frame-0184.h265 | Bin 0 -> 2665 bytes samples/h265SampleFrames/frame-0185.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-0186.h265 | Bin 0 -> 2798 bytes samples/h265SampleFrames/frame-0187.h265 | Bin 0 -> 1739 bytes samples/h265SampleFrames/frame-0188.h265 | Bin 0 -> 2022 bytes samples/h265SampleFrames/frame-0189.h265 | Bin 0 -> 2593 bytes samples/h265SampleFrames/frame-0190.h265 | Bin 0 -> 1920 bytes samples/h265SampleFrames/frame-0191.h265 | Bin 0 -> 3021 bytes samples/h265SampleFrames/frame-0192.h265 | Bin 0 -> 1753 bytes samples/h265SampleFrames/frame-0193.h265 | Bin 0 -> 2084 bytes samples/h265SampleFrames/frame-0194.h265 | Bin 0 -> 2408 bytes samples/h265SampleFrames/frame-0195.h265 | Bin 0 -> 1621 bytes samples/h265SampleFrames/frame-0196.h265 | Bin 0 -> 3291 bytes samples/h265SampleFrames/frame-0197.h265 | Bin 0 -> 1826 bytes samples/h265SampleFrames/frame-0198.h265 | Bin 0 -> 2078 bytes samples/h265SampleFrames/frame-0199.h265 | Bin 0 -> 2739 bytes samples/h265SampleFrames/frame-0200.h265 | Bin 0 -> 1888 bytes samples/h265SampleFrames/frame-0201.h265 | Bin 0 -> 4220 bytes samples/h265SampleFrames/frame-0202.h265 | Bin 0 -> 1728 bytes samples/h265SampleFrames/frame-0203.h265 | Bin 0 -> 2104 bytes samples/h265SampleFrames/frame-0204.h265 | Bin 0 -> 2387 bytes samples/h265SampleFrames/frame-0205.h265 | Bin 0 -> 1839 bytes samples/h265SampleFrames/frame-0206.h265 | Bin 0 -> 2965 bytes samples/h265SampleFrames/frame-0207.h265 | Bin 0 -> 1789 bytes samples/h265SampleFrames/frame-0208.h265 | Bin 0 -> 2009 bytes samples/h265SampleFrames/frame-0209.h265 | Bin 0 -> 2813 bytes samples/h265SampleFrames/frame-0210.h265 | Bin 0 -> 1927 bytes samples/h265SampleFrames/frame-0211.h265 | Bin 0 -> 2918 bytes samples/h265SampleFrames/frame-0212.h265 | Bin 0 -> 1631 bytes samples/h265SampleFrames/frame-0213.h265 | Bin 0 -> 2085 bytes samples/h265SampleFrames/frame-0214.h265 | Bin 0 -> 2628 bytes samples/h265SampleFrames/frame-0215.h265 | Bin 0 -> 1943 bytes samples/h265SampleFrames/frame-0216.h265 | Bin 0 -> 3034 bytes samples/h265SampleFrames/frame-0217.h265 | Bin 0 -> 1721 bytes samples/h265SampleFrames/frame-0218.h265 | Bin 0 -> 2046 bytes samples/h265SampleFrames/frame-0219.h265 | Bin 0 -> 2538 bytes samples/h265SampleFrames/frame-0220.h265 | Bin 0 -> 1902 bytes samples/h265SampleFrames/frame-0221.h265 | Bin 0 -> 3220 bytes samples/h265SampleFrames/frame-0222.h265 | Bin 0 -> 1794 bytes samples/h265SampleFrames/frame-0223.h265 | Bin 0 -> 2001 bytes samples/h265SampleFrames/frame-0224.h265 | Bin 0 -> 2807 bytes samples/h265SampleFrames/frame-0225.h265 | Bin 0 -> 1957 bytes samples/h265SampleFrames/frame-0226.h265 | Bin 0 -> 3924 bytes samples/h265SampleFrames/frame-0227.h265 | Bin 0 -> 1853 bytes samples/h265SampleFrames/frame-0228.h265 | Bin 0 -> 2130 bytes samples/h265SampleFrames/frame-0229.h265 | Bin 0 -> 2361 bytes samples/h265SampleFrames/frame-0230.h265 | Bin 0 -> 1985 bytes samples/h265SampleFrames/frame-0231.h265 | Bin 0 -> 2848 bytes samples/h265SampleFrames/frame-0232.h265 | Bin 0 -> 1710 bytes samples/h265SampleFrames/frame-0233.h265 | Bin 0 -> 2014 bytes samples/h265SampleFrames/frame-0234.h265 | Bin 0 -> 2821 bytes samples/h265SampleFrames/frame-0235.h265 | Bin 0 -> 1868 bytes samples/h265SampleFrames/frame-0236.h265 | Bin 0 -> 2823 bytes samples/h265SampleFrames/frame-0237.h265 | Bin 0 -> 1850 bytes samples/h265SampleFrames/frame-0238.h265 | Bin 0 -> 2083 bytes samples/h265SampleFrames/frame-0239.h265 | Bin 0 -> 2925 bytes samples/h265SampleFrames/frame-0240.h265 | Bin 0 -> 1838 bytes samples/h265SampleFrames/frame-0241.h265 | Bin 0 -> 3128 bytes samples/h265SampleFrames/frame-0242.h265 | Bin 0 -> 1689 bytes samples/h265SampleFrames/frame-0243.h265 | Bin 0 -> 2032 bytes samples/h265SampleFrames/frame-0244.h265 | Bin 0 -> 2546 bytes samples/h265SampleFrames/frame-0245.h265 | Bin 0 -> 1838 bytes samples/h265SampleFrames/frame-0246.h265 | Bin 0 -> 3379 bytes samples/h265SampleFrames/frame-0247.h265 | Bin 0 -> 1871 bytes samples/h265SampleFrames/frame-0248.h265 | Bin 0 -> 1963 bytes samples/h265SampleFrames/frame-0249.h265 | Bin 0 -> 2765 bytes samples/h265SampleFrames/frame-0250.h265 | Bin 0 -> 1877 bytes samples/h265SampleFrames/frame-0251.h265 | Bin 0 -> 8834 bytes samples/h265SampleFrames/frame-0252.h265 | Bin 0 -> 1490 bytes samples/h265SampleFrames/frame-0253.h265 | Bin 0 -> 1696 bytes samples/h265SampleFrames/frame-0254.h265 | Bin 0 -> 1968 bytes samples/h265SampleFrames/frame-0255.h265 | Bin 0 -> 1459 bytes samples/h265SampleFrames/frame-0256.h265 | Bin 0 -> 2535 bytes samples/h265SampleFrames/frame-0257.h265 | Bin 0 -> 1301 bytes samples/h265SampleFrames/frame-0258.h265 | Bin 0 -> 1629 bytes samples/h265SampleFrames/frame-0259.h265 | Bin 0 -> 2522 bytes samples/h265SampleFrames/frame-0260.h265 | Bin 0 -> 1458 bytes samples/h265SampleFrames/frame-0261.h265 | Bin 0 -> 2498 bytes samples/h265SampleFrames/frame-0262.h265 | Bin 0 -> 1290 bytes samples/h265SampleFrames/frame-0263.h265 | Bin 0 -> 1652 bytes samples/h265SampleFrames/frame-0264.h265 | Bin 0 -> 2406 bytes samples/h265SampleFrames/frame-0265.h265 | Bin 0 -> 1512 bytes samples/h265SampleFrames/frame-0266.h265 | Bin 0 -> 2722 bytes samples/h265SampleFrames/frame-0267.h265 | Bin 0 -> 1403 bytes samples/h265SampleFrames/frame-0268.h265 | Bin 0 -> 1739 bytes samples/h265SampleFrames/frame-0269.h265 | Bin 0 -> 1992 bytes samples/h265SampleFrames/frame-0270.h265 | Bin 0 -> 1509 bytes samples/h265SampleFrames/frame-0271.h265 | Bin 0 -> 2924 bytes samples/h265SampleFrames/frame-0272.h265 | Bin 0 -> 1565 bytes samples/h265SampleFrames/frame-0273.h265 | Bin 0 -> 1686 bytes samples/h265SampleFrames/frame-0274.h265 | Bin 0 -> 2416 bytes samples/h265SampleFrames/frame-0275.h265 | Bin 0 -> 1608 bytes samples/h265SampleFrames/frame-0276.h265 | Bin 0 -> 3135 bytes samples/h265SampleFrames/frame-0277.h265 | Bin 0 -> 1523 bytes samples/h265SampleFrames/frame-0278.h265 | Bin 0 -> 1910 bytes samples/h265SampleFrames/frame-0279.h265 | Bin 0 -> 2018 bytes samples/h265SampleFrames/frame-0280.h265 | Bin 0 -> 1598 bytes samples/h265SampleFrames/frame-0281.h265 | Bin 0 -> 2479 bytes samples/h265SampleFrames/frame-0282.h265 | Bin 0 -> 1354 bytes samples/h265SampleFrames/frame-0283.h265 | Bin 0 -> 1759 bytes samples/h265SampleFrames/frame-0284.h265 | Bin 0 -> 2424 bytes samples/h265SampleFrames/frame-0285.h265 | Bin 0 -> 1501 bytes samples/h265SampleFrames/frame-0286.h265 | Bin 0 -> 2438 bytes samples/h265SampleFrames/frame-0287.h265 | Bin 0 -> 1487 bytes samples/h265SampleFrames/frame-0288.h265 | Bin 0 -> 1717 bytes samples/h265SampleFrames/frame-0289.h265 | Bin 0 -> 2311 bytes samples/h265SampleFrames/frame-0290.h265 | Bin 0 -> 1605 bytes samples/h265SampleFrames/frame-0291.h265 | Bin 0 -> 2683 bytes samples/h265SampleFrames/frame-0292.h265 | Bin 0 -> 1585 bytes samples/h265SampleFrames/frame-0293.h265 | Bin 0 -> 1756 bytes samples/h265SampleFrames/frame-0294.h265 | Bin 0 -> 2112 bytes samples/h265SampleFrames/frame-0295.h265 | Bin 0 -> 1548 bytes samples/h265SampleFrames/frame-0296.h265 | Bin 0 -> 2969 bytes samples/h265SampleFrames/frame-0297.h265 | Bin 0 -> 1537 bytes samples/h265SampleFrames/frame-0298.h265 | Bin 0 -> 1872 bytes samples/h265SampleFrames/frame-0299.h265 | Bin 0 -> 2415 bytes samples/h265SampleFrames/frame-0300.h265 | Bin 0 -> 1698 bytes samples/h265SampleFrames/frame-0301.h265 | Bin 0 -> 3450 bytes samples/h265SampleFrames/frame-0302.h265 | Bin 0 -> 1466 bytes samples/h265SampleFrames/frame-0303.h265 | Bin 0 -> 1705 bytes samples/h265SampleFrames/frame-0304.h265 | Bin 0 -> 1998 bytes samples/h265SampleFrames/frame-0305.h265 | Bin 0 -> 1730 bytes samples/h265SampleFrames/frame-0306.h265 | Bin 0 -> 2485 bytes samples/h265SampleFrames/frame-0307.h265 | Bin 0 -> 1497 bytes samples/h265SampleFrames/frame-0308.h265 | Bin 0 -> 1889 bytes samples/h265SampleFrames/frame-0309.h265 | Bin 0 -> 2428 bytes samples/h265SampleFrames/frame-0310.h265 | Bin 0 -> 1614 bytes samples/h265SampleFrames/frame-0311.h265 | Bin 0 -> 2554 bytes samples/h265SampleFrames/frame-0312.h265 | Bin 0 -> 1579 bytes samples/h265SampleFrames/frame-0313.h265 | Bin 0 -> 2438 bytes samples/h265SampleFrames/frame-0314.h265 | Bin 0 -> 2775 bytes samples/h265SampleFrames/frame-0315.h265 | Bin 0 -> 1931 bytes samples/h265SampleFrames/frame-0316.h265 | Bin 0 -> 3297 bytes samples/h265SampleFrames/frame-0317.h265 | Bin 0 -> 1788 bytes samples/h265SampleFrames/frame-0318.h265 | Bin 0 -> 1971 bytes samples/h265SampleFrames/frame-0319.h265 | Bin 0 -> 2527 bytes samples/h265SampleFrames/frame-0320.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-0321.h265 | Bin 0 -> 3370 bytes samples/h265SampleFrames/frame-0322.h265 | Bin 0 -> 1966 bytes samples/h265SampleFrames/frame-0323.h265 | Bin 0 -> 2170 bytes samples/h265SampleFrames/frame-0324.h265 | Bin 0 -> 2770 bytes samples/h265SampleFrames/frame-0325.h265 | Bin 0 -> 2055 bytes samples/h265SampleFrames/frame-0326.h265 | Bin 0 -> 4225 bytes samples/h265SampleFrames/frame-0327.h265 | Bin 0 -> 1842 bytes samples/h265SampleFrames/frame-0328.h265 | Bin 0 -> 2325 bytes samples/h265SampleFrames/frame-0329.h265 | Bin 0 -> 2409 bytes samples/h265SampleFrames/frame-0330.h265 | Bin 0 -> 1966 bytes samples/h265SampleFrames/frame-0331.h265 | Bin 0 -> 2894 bytes samples/h265SampleFrames/frame-0332.h265 | Bin 0 -> 1680 bytes samples/h265SampleFrames/frame-0333.h265 | Bin 0 -> 2174 bytes samples/h265SampleFrames/frame-0334.h265 | Bin 0 -> 2875 bytes samples/h265SampleFrames/frame-0335.h265 | Bin 0 -> 1955 bytes samples/h265SampleFrames/frame-0336.h265 | Bin 0 -> 2917 bytes samples/h265SampleFrames/frame-0337.h265 | Bin 0 -> 1901 bytes samples/h265SampleFrames/frame-0338.h265 | Bin 0 -> 1945 bytes samples/h265SampleFrames/frame-0339.h265 | Bin 0 -> 3079 bytes samples/h265SampleFrames/frame-0340.h265 | Bin 0 -> 1936 bytes samples/h265SampleFrames/frame-0341.h265 | Bin 0 -> 3186 bytes samples/h265SampleFrames/frame-0342.h265 | Bin 0 -> 1686 bytes samples/h265SampleFrames/frame-0343.h265 | Bin 0 -> 2079 bytes samples/h265SampleFrames/frame-0344.h265 | Bin 0 -> 2650 bytes samples/h265SampleFrames/frame-0345.h265 | Bin 0 -> 1914 bytes samples/h265SampleFrames/frame-0346.h265 | Bin 0 -> 3521 bytes samples/h265SampleFrames/frame-0347.h265 | Bin 0 -> 1688 bytes samples/h265SampleFrames/frame-0348.h265 | Bin 0 -> 2223 bytes samples/h265SampleFrames/frame-0349.h265 | Bin 0 -> 2827 bytes samples/h265SampleFrames/frame-0350.h265 | Bin 0 -> 1955 bytes samples/h265SampleFrames/frame-0351.h265 | Bin 0 -> 4155 bytes samples/h265SampleFrames/frame-0352.h265 | Bin 0 -> 1698 bytes samples/h265SampleFrames/frame-0353.h265 | Bin 0 -> 1913 bytes samples/h265SampleFrames/frame-0354.h265 | Bin 0 -> 2494 bytes samples/h265SampleFrames/frame-0355.h265 | Bin 0 -> 1894 bytes samples/h265SampleFrames/frame-0356.h265 | Bin 0 -> 3027 bytes samples/h265SampleFrames/frame-0357.h265 | Bin 0 -> 1671 bytes samples/h265SampleFrames/frame-0358.h265 | Bin 0 -> 1847 bytes samples/h265SampleFrames/frame-0359.h265 | Bin 0 -> 3031 bytes samples/h265SampleFrames/frame-0360.h265 | Bin 0 -> 1987 bytes samples/h265SampleFrames/frame-0361.h265 | Bin 0 -> 3051 bytes samples/h265SampleFrames/frame-0362.h265 | Bin 0 -> 1573 bytes samples/h265SampleFrames/frame-0363.h265 | Bin 0 -> 2034 bytes samples/h265SampleFrames/frame-0364.h265 | Bin 0 -> 2988 bytes samples/h265SampleFrames/frame-0365.h265 | Bin 0 -> 2030 bytes samples/h265SampleFrames/frame-0366.h265 | Bin 0 -> 3239 bytes samples/h265SampleFrames/frame-0367.h265 | Bin 0 -> 1644 bytes samples/h265SampleFrames/frame-0368.h265 | Bin 0 -> 2202 bytes samples/h265SampleFrames/frame-0369.h265 | Bin 0 -> 2428 bytes samples/h265SampleFrames/frame-0370.h265 | Bin 0 -> 1811 bytes samples/h265SampleFrames/frame-0371.h265 | Bin 0 -> 3518 bytes samples/h265SampleFrames/frame-0372.h265 | Bin 0 -> 1770 bytes samples/h265SampleFrames/frame-0373.h265 | Bin 0 -> 2187 bytes samples/h265SampleFrames/frame-0374.h265 | Bin 0 -> 2853 bytes samples/h265SampleFrames/frame-0375.h265 | Bin 0 -> 2036 bytes samples/h265SampleFrames/frame-0376.h265 | Bin 0 -> 4161 bytes samples/h265SampleFrames/frame-0377.h265 | Bin 0 -> 2333 bytes samples/h265SampleFrames/frame-0378.h265 | Bin 0 -> 2855 bytes samples/h265SampleFrames/frame-0379.h265 | Bin 0 -> 2875 bytes samples/h265SampleFrames/frame-0380.h265 | Bin 0 -> 2512 bytes samples/h265SampleFrames/frame-0381.h265 | Bin 0 -> 2896 bytes samples/h265SampleFrames/frame-0382.h265 | Bin 0 -> 2394 bytes samples/h265SampleFrames/frame-0383.h265 | Bin 0 -> 2588 bytes samples/h265SampleFrames/frame-0384.h265 | Bin 0 -> 3450 bytes samples/h265SampleFrames/frame-0385.h265 | Bin 0 -> 2428 bytes samples/h265SampleFrames/frame-0386.h265 | Bin 0 -> 3195 bytes samples/h265SampleFrames/frame-0387.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-0388.h265 | Bin 0 -> 2162 bytes samples/h265SampleFrames/frame-0389.h265 | Bin 0 -> 2677 bytes samples/h265SampleFrames/frame-0390.h265 | Bin 0 -> 1954 bytes samples/h265SampleFrames/frame-0391.h265 | Bin 0 -> 3190 bytes samples/h265SampleFrames/frame-0392.h265 | Bin 0 -> 1716 bytes samples/h265SampleFrames/frame-0393.h265 | Bin 0 -> 2127 bytes samples/h265SampleFrames/frame-0394.h265 | Bin 0 -> 2561 bytes samples/h265SampleFrames/frame-0395.h265 | Bin 0 -> 1721 bytes samples/h265SampleFrames/frame-0396.h265 | Bin 0 -> 3570 bytes samples/h265SampleFrames/frame-0397.h265 | Bin 0 -> 1821 bytes samples/h265SampleFrames/frame-0398.h265 | Bin 0 -> 2192 bytes samples/h265SampleFrames/frame-0399.h265 | Bin 0 -> 2850 bytes samples/h265SampleFrames/frame-0400.h265 | Bin 0 -> 1882 bytes samples/h265SampleFrames/frame-0401.h265 | Bin 0 -> 4318 bytes samples/h265SampleFrames/frame-0402.h265 | Bin 0 -> 1686 bytes samples/h265SampleFrames/frame-0403.h265 | Bin 0 -> 2106 bytes samples/h265SampleFrames/frame-0404.h265 | Bin 0 -> 2474 bytes samples/h265SampleFrames/frame-0405.h265 | Bin 0 -> 1978 bytes samples/h265SampleFrames/frame-0406.h265 | Bin 0 -> 3064 bytes samples/h265SampleFrames/frame-0407.h265 | Bin 0 -> 1817 bytes samples/h265SampleFrames/frame-0408.h265 | Bin 0 -> 2095 bytes samples/h265SampleFrames/frame-0409.h265 | Bin 0 -> 2794 bytes samples/h265SampleFrames/frame-0410.h265 | Bin 0 -> 2048 bytes samples/h265SampleFrames/frame-0411.h265 | Bin 0 -> 3039 bytes samples/h265SampleFrames/frame-0412.h265 | Bin 0 -> 1787 bytes samples/h265SampleFrames/frame-0413.h265 | Bin 0 -> 2189 bytes samples/h265SampleFrames/frame-0414.h265 | Bin 0 -> 2781 bytes samples/h265SampleFrames/frame-0415.h265 | Bin 0 -> 2083 bytes samples/h265SampleFrames/frame-0416.h265 | Bin 0 -> 3195 bytes samples/h265SampleFrames/frame-0417.h265 | Bin 0 -> 1732 bytes samples/h265SampleFrames/frame-0418.h265 | Bin 0 -> 2041 bytes samples/h265SampleFrames/frame-0419.h265 | Bin 0 -> 2630 bytes samples/h265SampleFrames/frame-0420.h265 | Bin 0 -> 1759 bytes samples/h265SampleFrames/frame-0421.h265 | Bin 0 -> 3504 bytes samples/h265SampleFrames/frame-0422.h265 | Bin 0 -> 1849 bytes samples/h265SampleFrames/frame-0423.h265 | Bin 0 -> 2067 bytes samples/h265SampleFrames/frame-0424.h265 | Bin 0 -> 2606 bytes samples/h265SampleFrames/frame-0425.h265 | Bin 0 -> 1920 bytes samples/h265SampleFrames/frame-0426.h265 | Bin 0 -> 3781 bytes samples/h265SampleFrames/frame-0427.h265 | Bin 0 -> 1834 bytes samples/h265SampleFrames/frame-0428.h265 | Bin 0 -> 2081 bytes samples/h265SampleFrames/frame-0429.h265 | Bin 0 -> 2401 bytes samples/h265SampleFrames/frame-0430.h265 | Bin 0 -> 1946 bytes samples/h265SampleFrames/frame-0431.h265 | Bin 0 -> 3042 bytes samples/h265SampleFrames/frame-0432.h265 | Bin 0 -> 1852 bytes samples/h265SampleFrames/frame-0433.h265 | Bin 0 -> 2076 bytes samples/h265SampleFrames/frame-0434.h265 | Bin 0 -> 2918 bytes samples/h265SampleFrames/frame-0435.h265 | Bin 0 -> 1918 bytes samples/h265SampleFrames/frame-0436.h265 | Bin 0 -> 3045 bytes samples/h265SampleFrames/frame-0437.h265 | Bin 0 -> 1913 bytes samples/h265SampleFrames/frame-0438.h265 | Bin 0 -> 2087 bytes samples/h265SampleFrames/frame-0439.h265 | Bin 0 -> 3026 bytes samples/h265SampleFrames/frame-0440.h265 | Bin 0 -> 1937 bytes samples/h265SampleFrames/frame-0441.h265 | Bin 0 -> 3153 bytes samples/h265SampleFrames/frame-0442.h265 | Bin 0 -> 1637 bytes samples/h265SampleFrames/frame-0443.h265 | Bin 0 -> 2098 bytes samples/h265SampleFrames/frame-0444.h265 | Bin 0 -> 2624 bytes samples/h265SampleFrames/frame-0445.h265 | Bin 0 -> 1807 bytes samples/h265SampleFrames/frame-0446.h265 | Bin 0 -> 3621 bytes samples/h265SampleFrames/frame-0447.h265 | Bin 0 -> 1839 bytes samples/h265SampleFrames/frame-0448.h265 | Bin 0 -> 2149 bytes samples/h265SampleFrames/frame-0449.h265 | Bin 0 -> 2955 bytes samples/h265SampleFrames/frame-0450.h265 | Bin 0 -> 1916 bytes samples/h265SampleFrames/frame-0451.h265 | Bin 0 -> 4558 bytes samples/h265SampleFrames/frame-0452.h265 | Bin 0 -> 1721 bytes samples/h265SampleFrames/frame-0453.h265 | Bin 0 -> 2210 bytes samples/h265SampleFrames/frame-0454.h265 | Bin 0 -> 2511 bytes samples/h265SampleFrames/frame-0455.h265 | Bin 0 -> 1852 bytes samples/h265SampleFrames/frame-0456.h265 | Bin 0 -> 3117 bytes samples/h265SampleFrames/frame-0457.h265 | Bin 0 -> 1783 bytes samples/h265SampleFrames/frame-0458.h265 | Bin 0 -> 2014 bytes samples/h265SampleFrames/frame-0459.h265 | Bin 0 -> 3067 bytes samples/h265SampleFrames/frame-0460.h265 | Bin 0 -> 1901 bytes samples/h265SampleFrames/frame-0461.h265 | Bin 0 -> 2998 bytes samples/h265SampleFrames/frame-0462.h265 | Bin 0 -> 1830 bytes samples/h265SampleFrames/frame-0463.h265 | Bin 0 -> 2201 bytes samples/h265SampleFrames/frame-0464.h265 | Bin 0 -> 3034 bytes samples/h265SampleFrames/frame-0465.h265 | Bin 0 -> 2066 bytes samples/h265SampleFrames/frame-0466.h265 | Bin 0 -> 3357 bytes samples/h265SampleFrames/frame-0467.h265 | Bin 0 -> 1736 bytes samples/h265SampleFrames/frame-0468.h265 | Bin 0 -> 2312 bytes samples/h265SampleFrames/frame-0469.h265 | Bin 0 -> 2507 bytes samples/h265SampleFrames/frame-0470.h265 | Bin 0 -> 1988 bytes samples/h265SampleFrames/frame-0471.h265 | Bin 0 -> 3561 bytes samples/h265SampleFrames/frame-0472.h265 | Bin 0 -> 1909 bytes samples/h265SampleFrames/frame-0473.h265 | Bin 0 -> 2254 bytes samples/h265SampleFrames/frame-0474.h265 | Bin 0 -> 2972 bytes samples/h265SampleFrames/frame-0475.h265 | Bin 0 -> 1952 bytes samples/h265SampleFrames/frame-0476.h265 | Bin 0 -> 4356 bytes samples/h265SampleFrames/frame-0477.h265 | Bin 0 -> 1724 bytes samples/h265SampleFrames/frame-0478.h265 | Bin 0 -> 2187 bytes samples/h265SampleFrames/frame-0479.h265 | Bin 0 -> 2450 bytes samples/h265SampleFrames/frame-0480.h265 | Bin 0 -> 1613 bytes samples/h265SampleFrames/frame-0481.h265 | Bin 0 -> 3085 bytes samples/h265SampleFrames/frame-0482.h265 | Bin 0 -> 1653 bytes samples/h265SampleFrames/frame-0483.h265 | Bin 0 -> 2233 bytes samples/h265SampleFrames/frame-0484.h265 | Bin 0 -> 2976 bytes samples/h265SampleFrames/frame-0485.h265 | Bin 0 -> 1977 bytes samples/h265SampleFrames/frame-0486.h265 | Bin 0 -> 3131 bytes samples/h265SampleFrames/frame-0487.h265 | Bin 0 -> 1900 bytes samples/h265SampleFrames/frame-0488.h265 | Bin 0 -> 2205 bytes samples/h265SampleFrames/frame-0489.h265 | Bin 0 -> 2913 bytes samples/h265SampleFrames/frame-0490.h265 | Bin 0 -> 2028 bytes samples/h265SampleFrames/frame-0491.h265 | Bin 0 -> 3324 bytes samples/h265SampleFrames/frame-0492.h265 | Bin 0 -> 1817 bytes samples/h265SampleFrames/frame-0493.h265 | Bin 0 -> 2223 bytes samples/h265SampleFrames/frame-0494.h265 | Bin 0 -> 2415 bytes samples/h265SampleFrames/frame-0495.h265 | Bin 0 -> 1742 bytes samples/h265SampleFrames/frame-0496.h265 | Bin 0 -> 3618 bytes samples/h265SampleFrames/frame-0497.h265 | Bin 0 -> 1922 bytes samples/h265SampleFrames/frame-0498.h265 | Bin 0 -> 2407 bytes samples/h265SampleFrames/frame-0499.h265 | Bin 0 -> 2947 bytes samples/h265SampleFrames/frame-0500.h265 | Bin 0 -> 1764 bytes samples/h265SampleFrames/frame-0501.h265 | Bin 0 -> 9416 bytes samples/h265SampleFrames/frame-0502.h265 | Bin 0 -> 1798 bytes samples/h265SampleFrames/frame-0503.h265 | Bin 0 -> 1732 bytes samples/h265SampleFrames/frame-0504.h265 | Bin 0 -> 2124 bytes samples/h265SampleFrames/frame-0505.h265 | Bin 0 -> 1695 bytes samples/h265SampleFrames/frame-0506.h265 | Bin 0 -> 2702 bytes samples/h265SampleFrames/frame-0507.h265 | Bin 0 -> 1622 bytes samples/h265SampleFrames/frame-0508.h265 | Bin 0 -> 1876 bytes samples/h265SampleFrames/frame-0509.h265 | Bin 0 -> 2324 bytes samples/h265SampleFrames/frame-0510.h265 | Bin 0 -> 1709 bytes samples/h265SampleFrames/frame-0511.h265 | Bin 0 -> 2724 bytes samples/h265SampleFrames/frame-0512.h265 | Bin 0 -> 1707 bytes samples/h265SampleFrames/frame-0513.h265 | Bin 0 -> 1916 bytes samples/h265SampleFrames/frame-0514.h265 | Bin 0 -> 2460 bytes samples/h265SampleFrames/frame-0515.h265 | Bin 0 -> 1738 bytes samples/h265SampleFrames/frame-0516.h265 | Bin 0 -> 2810 bytes samples/h265SampleFrames/frame-0517.h265 | Bin 0 -> 1638 bytes samples/h265SampleFrames/frame-0518.h265 | Bin 0 -> 2217 bytes samples/h265SampleFrames/frame-0519.h265 | Bin 0 -> 2514 bytes samples/h265SampleFrames/frame-0520.h265 | Bin 0 -> 2227 bytes samples/h265SampleFrames/frame-0521.h265 | Bin 0 -> 2839 bytes samples/h265SampleFrames/frame-0522.h265 | Bin 0 -> 2408 bytes samples/h265SampleFrames/frame-0523.h265 | Bin 0 -> 2688 bytes samples/h265SampleFrames/frame-0524.h265 | Bin 0 -> 2792 bytes samples/h265SampleFrames/frame-0525.h265 | Bin 0 -> 2336 bytes samples/h265SampleFrames/frame-0526.h265 | Bin 0 -> 3293 bytes samples/h265SampleFrames/frame-0527.h265 | Bin 0 -> 2035 bytes samples/h265SampleFrames/frame-0528.h265 | Bin 0 -> 2320 bytes samples/h265SampleFrames/frame-0529.h265 | Bin 0 -> 2397 bytes samples/h265SampleFrames/frame-0530.h265 | Bin 0 -> 1917 bytes samples/h265SampleFrames/frame-0531.h265 | Bin 0 -> 2662 bytes samples/h265SampleFrames/frame-0532.h265 | Bin 0 -> 1546 bytes samples/h265SampleFrames/frame-0533.h265 | Bin 0 -> 2003 bytes samples/h265SampleFrames/frame-0534.h265 | Bin 0 -> 2826 bytes samples/h265SampleFrames/frame-0535.h265 | Bin 0 -> 2041 bytes samples/h265SampleFrames/frame-0536.h265 | Bin 0 -> 2787 bytes samples/h265SampleFrames/frame-0537.h265 | Bin 0 -> 1893 bytes samples/h265SampleFrames/frame-0538.h265 | Bin 0 -> 2162 bytes samples/h265SampleFrames/frame-0539.h265 | Bin 0 -> 2936 bytes samples/h265SampleFrames/frame-0540.h265 | Bin 0 -> 2170 bytes samples/h265SampleFrames/frame-0541.h265 | Bin 0 -> 3189 bytes samples/h265SampleFrames/frame-0542.h265 | Bin 0 -> 2213 bytes samples/h265SampleFrames/frame-0543.h265 | Bin 0 -> 2466 bytes samples/h265SampleFrames/frame-0544.h265 | Bin 0 -> 2652 bytes samples/h265SampleFrames/frame-0545.h265 | Bin 0 -> 2098 bytes samples/h265SampleFrames/frame-0546.h265 | Bin 0 -> 3309 bytes samples/h265SampleFrames/frame-0547.h265 | Bin 0 -> 1895 bytes samples/h265SampleFrames/frame-0548.h265 | Bin 0 -> 1893 bytes samples/h265SampleFrames/frame-0549.h265 | Bin 0 -> 2650 bytes samples/h265SampleFrames/frame-0550.h265 | Bin 0 -> 1679 bytes samples/h265SampleFrames/frame-0551.h265 | Bin 0 -> 3619 bytes samples/h265SampleFrames/frame-0552.h265 | Bin 0 -> 1547 bytes samples/h265SampleFrames/frame-0553.h265 | Bin 0 -> 1825 bytes samples/h265SampleFrames/frame-0554.h265 | Bin 0 -> 2283 bytes samples/h265SampleFrames/frame-0555.h265 | Bin 0 -> 1736 bytes samples/h265SampleFrames/frame-0556.h265 | Bin 0 -> 2619 bytes samples/h265SampleFrames/frame-0557.h265 | Bin 0 -> 1884 bytes samples/h265SampleFrames/frame-0558.h265 | Bin 0 -> 2070 bytes samples/h265SampleFrames/frame-0559.h265 | Bin 0 -> 3045 bytes samples/h265SampleFrames/frame-0560.h265 | Bin 0 -> 1993 bytes samples/h265SampleFrames/frame-0561.h265 | Bin 0 -> 2974 bytes samples/h265SampleFrames/frame-0562.h265 | Bin 0 -> 1800 bytes samples/h265SampleFrames/frame-0563.h265 | Bin 0 -> 2131 bytes samples/h265SampleFrames/frame-0564.h265 | Bin 0 -> 3011 bytes samples/h265SampleFrames/frame-0565.h265 | Bin 0 -> 1803 bytes samples/h265SampleFrames/frame-0566.h265 | Bin 0 -> 3249 bytes samples/h265SampleFrames/frame-0567.h265 | Bin 0 -> 1737 bytes samples/h265SampleFrames/frame-0568.h265 | Bin 0 -> 2144 bytes samples/h265SampleFrames/frame-0569.h265 | Bin 0 -> 2469 bytes samples/h265SampleFrames/frame-0570.h265 | Bin 0 -> 1783 bytes samples/h265SampleFrames/frame-0571.h265 | Bin 0 -> 3409 bytes samples/h265SampleFrames/frame-0572.h265 | Bin 0 -> 1852 bytes samples/h265SampleFrames/frame-0573.h265 | Bin 0 -> 2191 bytes samples/h265SampleFrames/frame-0574.h265 | Bin 0 -> 2899 bytes samples/h265SampleFrames/frame-0575.h265 | Bin 0 -> 1903 bytes samples/h265SampleFrames/frame-0576.h265 | Bin 0 -> 4397 bytes samples/h265SampleFrames/frame-0577.h265 | Bin 0 -> 1851 bytes samples/h265SampleFrames/frame-0578.h265 | Bin 0 -> 2226 bytes samples/h265SampleFrames/frame-0579.h265 | Bin 0 -> 2447 bytes samples/h265SampleFrames/frame-0580.h265 | Bin 0 -> 1874 bytes samples/h265SampleFrames/frame-0581.h265 | Bin 0 -> 3022 bytes samples/h265SampleFrames/frame-0582.h265 | Bin 0 -> 1589 bytes samples/h265SampleFrames/frame-0583.h265 | Bin 0 -> 2202 bytes samples/h265SampleFrames/frame-0584.h265 | Bin 0 -> 2961 bytes samples/h265SampleFrames/frame-0585.h265 | Bin 0 -> 1956 bytes samples/h265SampleFrames/frame-0586.h265 | Bin 0 -> 2988 bytes samples/h265SampleFrames/frame-0587.h265 | Bin 0 -> 1846 bytes samples/h265SampleFrames/frame-0588.h265 | Bin 0 -> 2136 bytes samples/h265SampleFrames/frame-0589.h265 | Bin 0 -> 2936 bytes samples/h265SampleFrames/frame-0590.h265 | Bin 0 -> 1925 bytes samples/h265SampleFrames/frame-0591.h265 | Bin 0 -> 3287 bytes samples/h265SampleFrames/frame-0592.h265 | Bin 0 -> 1768 bytes samples/h265SampleFrames/frame-0593.h265 | Bin 0 -> 2250 bytes samples/h265SampleFrames/frame-0594.h265 | Bin 0 -> 2569 bytes samples/h265SampleFrames/frame-0595.h265 | Bin 0 -> 1714 bytes samples/h265SampleFrames/frame-0596.h265 | Bin 0 -> 3593 bytes samples/h265SampleFrames/frame-0597.h265 | Bin 0 -> 1804 bytes samples/h265SampleFrames/frame-0598.h265 | Bin 0 -> 2236 bytes samples/h265SampleFrames/frame-0599.h265 | Bin 0 -> 2984 bytes samples/h265SampleFrames/frame-0600.h265 | Bin 0 -> 1865 bytes samples/h265SampleFrames/frame-0601.h265 | Bin 0 -> 4228 bytes samples/h265SampleFrames/frame-0602.h265 | Bin 0 -> 1753 bytes samples/h265SampleFrames/frame-0603.h265 | Bin 0 -> 2091 bytes samples/h265SampleFrames/frame-0604.h265 | Bin 0 -> 2505 bytes samples/h265SampleFrames/frame-0605.h265 | Bin 0 -> 2017 bytes samples/h265SampleFrames/frame-0606.h265 | Bin 0 -> 3107 bytes samples/h265SampleFrames/frame-0607.h265 | Bin 0 -> 1762 bytes samples/h265SampleFrames/frame-0608.h265 | Bin 0 -> 2241 bytes samples/h265SampleFrames/frame-0609.h265 | Bin 0 -> 2823 bytes samples/h265SampleFrames/frame-0610.h265 | Bin 0 -> 1997 bytes samples/h265SampleFrames/frame-0611.h265 | Bin 0 -> 3180 bytes samples/h265SampleFrames/frame-0612.h265 | Bin 0 -> 1747 bytes samples/h265SampleFrames/frame-0613.h265 | Bin 0 -> 2124 bytes samples/h265SampleFrames/frame-0614.h265 | Bin 0 -> 2994 bytes samples/h265SampleFrames/frame-0615.h265 | Bin 0 -> 2033 bytes samples/h265SampleFrames/frame-0616.h265 | Bin 0 -> 3331 bytes samples/h265SampleFrames/frame-0617.h265 | Bin 0 -> 1759 bytes samples/h265SampleFrames/frame-0618.h265 | Bin 0 -> 2209 bytes samples/h265SampleFrames/frame-0619.h265 | Bin 0 -> 2619 bytes samples/h265SampleFrames/frame-0620.h265 | Bin 0 -> 1983 bytes samples/h265SampleFrames/frame-0621.h265 | Bin 0 -> 3371 bytes samples/h265SampleFrames/frame-0622.h265 | Bin 0 -> 1954 bytes samples/h265SampleFrames/frame-0623.h265 | Bin 0 -> 2118 bytes samples/h265SampleFrames/frame-0624.h265 | Bin 0 -> 2829 bytes samples/h265SampleFrames/frame-0625.h265 | Bin 0 -> 1875 bytes samples/h265SampleFrames/frame-0626.h265 | Bin 0 -> 4038 bytes samples/h265SampleFrames/frame-0627.h265 | Bin 0 -> 1924 bytes samples/h265SampleFrames/frame-0628.h265 | Bin 0 -> 2210 bytes samples/h265SampleFrames/frame-0629.h265 | Bin 0 -> 2461 bytes samples/h265SampleFrames/frame-0630.h265 | Bin 0 -> 1921 bytes samples/h265SampleFrames/frame-0631.h265 | Bin 0 -> 3136 bytes samples/h265SampleFrames/frame-0632.h265 | Bin 0 -> 1740 bytes samples/h265SampleFrames/frame-0633.h265 | Bin 0 -> 2154 bytes samples/h265SampleFrames/frame-0634.h265 | Bin 0 -> 2958 bytes samples/h265SampleFrames/frame-0635.h265 | Bin 0 -> 1905 bytes samples/h265SampleFrames/frame-0636.h265 | Bin 0 -> 2984 bytes samples/h265SampleFrames/frame-0637.h265 | Bin 0 -> 1928 bytes samples/h265SampleFrames/frame-0638.h265 | Bin 0 -> 2131 bytes samples/h265SampleFrames/frame-0639.h265 | Bin 0 -> 3130 bytes samples/h265SampleFrames/frame-0640.h265 | Bin 0 -> 1854 bytes samples/h265SampleFrames/frame-0641.h265 | Bin 0 -> 3195 bytes samples/h265SampleFrames/frame-0642.h265 | Bin 0 -> 1695 bytes samples/h265SampleFrames/frame-0643.h265 | Bin 0 -> 2224 bytes samples/h265SampleFrames/frame-0644.h265 | Bin 0 -> 2670 bytes samples/h265SampleFrames/frame-0645.h265 | Bin 0 -> 1969 bytes samples/h265SampleFrames/frame-0646.h265 | Bin 0 -> 3572 bytes samples/h265SampleFrames/frame-0647.h265 | Bin 0 -> 1695 bytes samples/h265SampleFrames/frame-0648.h265 | Bin 0 -> 2269 bytes samples/h265SampleFrames/frame-0649.h265 | Bin 0 -> 3031 bytes samples/h265SampleFrames/frame-0650.h265 | Bin 0 -> 1795 bytes samples/h265SampleFrames/frame-0651.h265 | Bin 0 -> 4445 bytes samples/h265SampleFrames/frame-0652.h265 | Bin 0 -> 1726 bytes samples/h265SampleFrames/frame-0653.h265 | Bin 0 -> 2219 bytes samples/h265SampleFrames/frame-0654.h265 | Bin 0 -> 2511 bytes samples/h265SampleFrames/frame-0655.h265 | Bin 0 -> 1899 bytes samples/h265SampleFrames/frame-0656.h265 | Bin 0 -> 3068 bytes samples/h265SampleFrames/frame-0657.h265 | Bin 0 -> 1740 bytes samples/h265SampleFrames/frame-0658.h265 | Bin 0 -> 2197 bytes samples/h265SampleFrames/frame-0659.h265 | Bin 0 -> 3069 bytes samples/h265SampleFrames/frame-0660.h265 | Bin 0 -> 1937 bytes samples/h265SampleFrames/frame-0661.h265 | Bin 0 -> 3024 bytes samples/h265SampleFrames/frame-0662.h265 | Bin 0 -> 1618 bytes samples/h265SampleFrames/frame-0663.h265 | Bin 0 -> 2046 bytes samples/h265SampleFrames/frame-0664.h265 | Bin 0 -> 3035 bytes samples/h265SampleFrames/frame-0665.h265 | Bin 0 -> 2098 bytes samples/h265SampleFrames/frame-0666.h265 | Bin 0 -> 3262 bytes samples/h265SampleFrames/frame-0667.h265 | Bin 0 -> 1750 bytes samples/h265SampleFrames/frame-0668.h265 | Bin 0 -> 2176 bytes samples/h265SampleFrames/frame-0669.h265 | Bin 0 -> 2481 bytes samples/h265SampleFrames/frame-0670.h265 | Bin 0 -> 1900 bytes samples/h265SampleFrames/frame-0671.h265 | Bin 0 -> 3548 bytes samples/h265SampleFrames/frame-0672.h265 | Bin 0 -> 1851 bytes samples/h265SampleFrames/frame-0673.h265 | Bin 0 -> 2046 bytes samples/h265SampleFrames/frame-0674.h265 | Bin 0 -> 2971 bytes samples/h265SampleFrames/frame-0675.h265 | Bin 0 -> 1947 bytes samples/h265SampleFrames/frame-0676.h265 | Bin 0 -> 3961 bytes samples/h265SampleFrames/frame-0677.h265 | Bin 0 -> 1848 bytes samples/h265SampleFrames/frame-0678.h265 | Bin 0 -> 2212 bytes samples/h265SampleFrames/frame-0679.h265 | Bin 0 -> 2306 bytes samples/h265SampleFrames/frame-0680.h265 | Bin 0 -> 1948 bytes samples/h265SampleFrames/frame-0681.h265 | Bin 0 -> 3010 bytes samples/h265SampleFrames/frame-0682.h265 | Bin 0 -> 1791 bytes samples/h265SampleFrames/frame-0683.h265 | Bin 0 -> 2167 bytes samples/h265SampleFrames/frame-0684.h265 | Bin 0 -> 2977 bytes samples/h265SampleFrames/frame-0685.h265 | Bin 0 -> 1950 bytes samples/h265SampleFrames/frame-0686.h265 | Bin 0 -> 3008 bytes samples/h265SampleFrames/frame-0687.h265 | Bin 0 -> 1909 bytes samples/h265SampleFrames/frame-0688.h265 | Bin 0 -> 2172 bytes samples/h265SampleFrames/frame-0689.h265 | Bin 0 -> 2818 bytes samples/h265SampleFrames/frame-0690.h265 | Bin 0 -> 1898 bytes samples/h265SampleFrames/frame-0691.h265 | Bin 0 -> 3263 bytes samples/h265SampleFrames/frame-0692.h265 | Bin 0 -> 1835 bytes samples/h265SampleFrames/frame-0693.h265 | Bin 0 -> 2213 bytes samples/h265SampleFrames/frame-0694.h265 | Bin 0 -> 2352 bytes samples/h265SampleFrames/frame-0695.h265 | Bin 0 -> 1954 bytes samples/h265SampleFrames/frame-0696.h265 | Bin 0 -> 3588 bytes samples/h265SampleFrames/frame-0697.h265 | Bin 0 -> 1911 bytes samples/h265SampleFrames/frame-0698.h265 | Bin 0 -> 2305 bytes samples/h265SampleFrames/frame-0699.h265 | Bin 0 -> 3002 bytes samples/h265SampleFrames/frame-0700.h265 | Bin 0 -> 1873 bytes samples/h265SampleFrames/frame-0701.h265 | Bin 0 -> 4749 bytes samples/h265SampleFrames/frame-0702.h265 | Bin 0 -> 1854 bytes samples/h265SampleFrames/frame-0703.h265 | Bin 0 -> 1994 bytes samples/h265SampleFrames/frame-0704.h265 | Bin 0 -> 2505 bytes samples/h265SampleFrames/frame-0705.h265 | Bin 0 -> 2009 bytes samples/h265SampleFrames/frame-0706.h265 | Bin 0 -> 3014 bytes samples/h265SampleFrames/frame-0707.h265 | Bin 0 -> 1777 bytes samples/h265SampleFrames/frame-0708.h265 | Bin 0 -> 2147 bytes samples/h265SampleFrames/frame-0709.h265 | Bin 0 -> 2902 bytes samples/h265SampleFrames/frame-0710.h265 | Bin 0 -> 1914 bytes samples/h265SampleFrames/frame-0711.h265 | Bin 0 -> 3091 bytes samples/h265SampleFrames/frame-0712.h265 | Bin 0 -> 1728 bytes samples/h265SampleFrames/frame-0713.h265 | Bin 0 -> 2139 bytes samples/h265SampleFrames/frame-0714.h265 | Bin 0 -> 2997 bytes samples/h265SampleFrames/frame-0715.h265 | Bin 0 -> 1960 bytes samples/h265SampleFrames/frame-0716.h265 | Bin 0 -> 3295 bytes samples/h265SampleFrames/frame-0717.h265 | Bin 0 -> 1801 bytes samples/h265SampleFrames/frame-0718.h265 | Bin 0 -> 2068 bytes samples/h265SampleFrames/frame-0719.h265 | Bin 0 -> 2632 bytes samples/h265SampleFrames/frame-0720.h265 | Bin 0 -> 1883 bytes samples/h265SampleFrames/frame-0721.h265 | Bin 0 -> 3395 bytes samples/h265SampleFrames/frame-0722.h265 | Bin 0 -> 1967 bytes samples/h265SampleFrames/frame-0723.h265 | Bin 0 -> 2218 bytes samples/h265SampleFrames/frame-0724.h265 | Bin 0 -> 2930 bytes samples/h265SampleFrames/frame-0725.h265 | Bin 0 -> 1950 bytes samples/h265SampleFrames/frame-0726.h265 | Bin 0 -> 4074 bytes samples/h265SampleFrames/frame-0727.h265 | Bin 0 -> 1869 bytes samples/h265SampleFrames/frame-0728.h265 | Bin 0 -> 2196 bytes samples/h265SampleFrames/frame-0729.h265 | Bin 0 -> 2550 bytes samples/h265SampleFrames/frame-0730.h265 | Bin 0 -> 1927 bytes samples/h265SampleFrames/frame-0731.h265 | Bin 0 -> 2985 bytes samples/h265SampleFrames/frame-0732.h265 | Bin 0 -> 1715 bytes samples/h265SampleFrames/frame-0733.h265 | Bin 0 -> 2125 bytes samples/h265SampleFrames/frame-0734.h265 | Bin 0 -> 3046 bytes samples/h265SampleFrames/frame-0735.h265 | Bin 0 -> 1937 bytes samples/h265SampleFrames/frame-0736.h265 | Bin 0 -> 3011 bytes samples/h265SampleFrames/frame-0737.h265 | Bin 0 -> 1804 bytes samples/h265SampleFrames/frame-0738.h265 | Bin 0 -> 2070 bytes samples/h265SampleFrames/frame-0739.h265 | Bin 0 -> 3062 bytes samples/h265SampleFrames/frame-0740.h265 | Bin 0 -> 1910 bytes samples/h265SampleFrames/frame-0741.h265 | Bin 0 -> 3218 bytes samples/h265SampleFrames/frame-0742.h265 | Bin 0 -> 1726 bytes samples/h265SampleFrames/frame-0743.h265 | Bin 0 -> 2021 bytes samples/h265SampleFrames/frame-0744.h265 | Bin 0 -> 2538 bytes samples/h265SampleFrames/frame-0745.h265 | Bin 0 -> 1946 bytes samples/h265SampleFrames/frame-0746.h265 | Bin 0 -> 3572 bytes samples/h265SampleFrames/frame-0747.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-0748.h265 | Bin 0 -> 2175 bytes samples/h265SampleFrames/frame-0749.h265 | Bin 0 -> 2948 bytes samples/h265SampleFrames/frame-0750.h265 | Bin 0 -> 1754 bytes samples/h265SampleFrames/frame-0751.h265 | Bin 0 -> 9399 bytes samples/h265SampleFrames/frame-0752.h265 | Bin 0 -> 1732 bytes samples/h265SampleFrames/frame-0753.h265 | Bin 0 -> 1751 bytes samples/h265SampleFrames/frame-0754.h265 | Bin 0 -> 2476 bytes samples/h265SampleFrames/frame-0755.h265 | Bin 0 -> 1829 bytes samples/h265SampleFrames/frame-0756.h265 | Bin 0 -> 2757 bytes samples/h265SampleFrames/frame-0757.h265 | Bin 0 -> 1613 bytes samples/h265SampleFrames/frame-0758.h265 | Bin 0 -> 1985 bytes samples/h265SampleFrames/frame-0759.h265 | Bin 0 -> 2883 bytes samples/h265SampleFrames/frame-0760.h265 | Bin 0 -> 1701 bytes samples/h265SampleFrames/frame-0761.h265 | Bin 0 -> 2851 bytes samples/h265SampleFrames/frame-0762.h265 | Bin 0 -> 1671 bytes samples/h265SampleFrames/frame-0763.h265 | Bin 0 -> 1949 bytes samples/h265SampleFrames/frame-0764.h265 | Bin 0 -> 2777 bytes samples/h265SampleFrames/frame-0765.h265 | Bin 0 -> 1732 bytes samples/h265SampleFrames/frame-0766.h265 | Bin 0 -> 3062 bytes samples/h265SampleFrames/frame-0767.h265 | Bin 0 -> 1601 bytes samples/h265SampleFrames/frame-0768.h265 | Bin 0 -> 1995 bytes samples/h265SampleFrames/frame-0769.h265 | Bin 0 -> 2439 bytes samples/h265SampleFrames/frame-0770.h265 | Bin 0 -> 1809 bytes samples/h265SampleFrames/frame-0771.h265 | Bin 0 -> 3142 bytes samples/h265SampleFrames/frame-0772.h265 | Bin 0 -> 1741 bytes samples/h265SampleFrames/frame-0773.h265 | Bin 0 -> 2116 bytes samples/h265SampleFrames/frame-0774.h265 | Bin 0 -> 2730 bytes samples/h265SampleFrames/frame-0775.h265 | Bin 0 -> 1812 bytes samples/h265SampleFrames/frame-0776.h265 | Bin 0 -> 3583 bytes samples/h265SampleFrames/frame-0777.h265 | Bin 0 -> 1371 bytes samples/h265SampleFrames/frame-0778.h265 | Bin 0 -> 2122 bytes samples/h265SampleFrames/frame-0779.h265 | Bin 0 -> 2320 bytes samples/h265SampleFrames/frame-0780.h265 | Bin 0 -> 1802 bytes samples/h265SampleFrames/frame-0781.h265 | Bin 0 -> 2781 bytes samples/h265SampleFrames/frame-0782.h265 | Bin 0 -> 1505 bytes samples/h265SampleFrames/frame-0783.h265 | Bin 0 -> 1975 bytes samples/h265SampleFrames/frame-0784.h265 | Bin 0 -> 2814 bytes samples/h265SampleFrames/frame-0785.h265 | Bin 0 -> 1804 bytes samples/h265SampleFrames/frame-0786.h265 | Bin 0 -> 2768 bytes samples/h265SampleFrames/frame-0787.h265 | Bin 0 -> 1741 bytes samples/h265SampleFrames/frame-0788.h265 | Bin 0 -> 1953 bytes samples/h265SampleFrames/frame-0789.h265 | Bin 0 -> 2638 bytes samples/h265SampleFrames/frame-0790.h265 | Bin 0 -> 1943 bytes samples/h265SampleFrames/frame-0791.h265 | Bin 0 -> 3048 bytes samples/h265SampleFrames/frame-0792.h265 | Bin 0 -> 1610 bytes samples/h265SampleFrames/frame-0793.h265 | Bin 0 -> 2063 bytes samples/h265SampleFrames/frame-0794.h265 | Bin 0 -> 2151 bytes samples/h265SampleFrames/frame-0795.h265 | Bin 0 -> 1814 bytes samples/h265SampleFrames/frame-0796.h265 | Bin 0 -> 3243 bytes samples/h265SampleFrames/frame-0797.h265 | Bin 0 -> 1835 bytes samples/h265SampleFrames/frame-0798.h265 | Bin 0 -> 2052 bytes samples/h265SampleFrames/frame-0799.h265 | Bin 0 -> 2710 bytes samples/h265SampleFrames/frame-0800.h265 | Bin 0 -> 1813 bytes samples/h265SampleFrames/frame-0801.h265 | Bin 0 -> 3870 bytes samples/h265SampleFrames/frame-0802.h265 | Bin 0 -> 1920 bytes samples/h265SampleFrames/frame-0803.h265 | Bin 0 -> 2266 bytes samples/h265SampleFrames/frame-0804.h265 | Bin 0 -> 2441 bytes samples/h265SampleFrames/frame-0805.h265 | Bin 0 -> 1973 bytes samples/h265SampleFrames/frame-0806.h265 | Bin 0 -> 3065 bytes samples/h265SampleFrames/frame-0807.h265 | Bin 0 -> 1749 bytes samples/h265SampleFrames/frame-0808.h265 | Bin 0 -> 2171 bytes samples/h265SampleFrames/frame-0809.h265 | Bin 0 -> 2859 bytes samples/h265SampleFrames/frame-0810.h265 | Bin 0 -> 2018 bytes samples/h265SampleFrames/frame-0811.h265 | Bin 0 -> 3156 bytes samples/h265SampleFrames/frame-0812.h265 | Bin 0 -> 1786 bytes samples/h265SampleFrames/frame-0813.h265 | Bin 0 -> 2085 bytes samples/h265SampleFrames/frame-0814.h265 | Bin 0 -> 2899 bytes samples/h265SampleFrames/frame-0815.h265 | Bin 0 -> 2017 bytes samples/h265SampleFrames/frame-0816.h265 | Bin 0 -> 3259 bytes samples/h265SampleFrames/frame-0817.h265 | Bin 0 -> 1898 bytes samples/h265SampleFrames/frame-0818.h265 | Bin 0 -> 2105 bytes samples/h265SampleFrames/frame-0819.h265 | Bin 0 -> 2547 bytes samples/h265SampleFrames/frame-0820.h265 | Bin 0 -> 1942 bytes samples/h265SampleFrames/frame-0821.h265 | Bin 0 -> 3452 bytes samples/h265SampleFrames/frame-0822.h265 | Bin 0 -> 1835 bytes samples/h265SampleFrames/frame-0823.h265 | Bin 0 -> 2169 bytes samples/h265SampleFrames/frame-0824.h265 | Bin 0 -> 2785 bytes samples/h265SampleFrames/frame-0825.h265 | Bin 0 -> 1945 bytes samples/h265SampleFrames/frame-0826.h265 | Bin 0 -> 4278 bytes samples/h265SampleFrames/frame-0827.h265 | Bin 0 -> 1869 bytes samples/h265SampleFrames/frame-0828.h265 | Bin 0 -> 2234 bytes samples/h265SampleFrames/frame-0829.h265 | Bin 0 -> 2420 bytes samples/h265SampleFrames/frame-0830.h265 | Bin 0 -> 2038 bytes samples/h265SampleFrames/frame-0831.h265 | Bin 0 -> 2986 bytes samples/h265SampleFrames/frame-0832.h265 | Bin 0 -> 1867 bytes samples/h265SampleFrames/frame-0833.h265 | Bin 0 -> 2075 bytes samples/h265SampleFrames/frame-0834.h265 | Bin 0 -> 3026 bytes samples/h265SampleFrames/frame-0835.h265 | Bin 0 -> 1883 bytes samples/h265SampleFrames/frame-0836.h265 | Bin 0 -> 2984 bytes samples/h265SampleFrames/frame-0837.h265 | Bin 0 -> 1938 bytes samples/h265SampleFrames/frame-0838.h265 | Bin 0 -> 1897 bytes samples/h265SampleFrames/frame-0839.h265 | Bin 0 -> 3050 bytes samples/h265SampleFrames/frame-0840.h265 | Bin 0 -> 1918 bytes samples/h265SampleFrames/frame-0841.h265 | Bin 0 -> 3225 bytes samples/h265SampleFrames/frame-0842.h265 | Bin 0 -> 1575 bytes samples/h265SampleFrames/frame-0843.h265 | Bin 0 -> 2210 bytes samples/h265SampleFrames/frame-0844.h265 | Bin 0 -> 2710 bytes samples/h265SampleFrames/frame-0845.h265 | Bin 0 -> 1902 bytes samples/h265SampleFrames/frame-0846.h265 | Bin 0 -> 3540 bytes samples/h265SampleFrames/frame-0847.h265 | Bin 0 -> 1771 bytes samples/h265SampleFrames/frame-0848.h265 | Bin 0 -> 2063 bytes samples/h265SampleFrames/frame-0849.h265 | Bin 0 -> 2957 bytes samples/h265SampleFrames/frame-0850.h265 | Bin 0 -> 1789 bytes samples/h265SampleFrames/frame-0851.h265 | Bin 0 -> 4201 bytes samples/h265SampleFrames/frame-0852.h265 | Bin 0 -> 1731 bytes samples/h265SampleFrames/frame-0853.h265 | Bin 0 -> 2059 bytes samples/h265SampleFrames/frame-0854.h265 | Bin 0 -> 2486 bytes samples/h265SampleFrames/frame-0855.h265 | Bin 0 -> 1949 bytes samples/h265SampleFrames/frame-0856.h265 | Bin 0 -> 3040 bytes samples/h265SampleFrames/frame-0857.h265 | Bin 0 -> 1639 bytes samples/h265SampleFrames/frame-0858.h265 | Bin 0 -> 2128 bytes samples/h265SampleFrames/frame-0859.h265 | Bin 0 -> 3046 bytes samples/h265SampleFrames/frame-0860.h265 | Bin 0 -> 1884 bytes samples/h265SampleFrames/frame-0861.h265 | Bin 0 -> 2975 bytes samples/h265SampleFrames/frame-0862.h265 | Bin 0 -> 1686 bytes samples/h265SampleFrames/frame-0863.h265 | Bin 0 -> 2149 bytes samples/h265SampleFrames/frame-0864.h265 | Bin 0 -> 2953 bytes samples/h265SampleFrames/frame-0865.h265 | Bin 0 -> 1951 bytes samples/h265SampleFrames/frame-0866.h265 | Bin 0 -> 3300 bytes samples/h265SampleFrames/frame-0867.h265 | Bin 0 -> 1699 bytes samples/h265SampleFrames/frame-0868.h265 | Bin 0 -> 2227 bytes samples/h265SampleFrames/frame-0869.h265 | Bin 0 -> 2451 bytes samples/h265SampleFrames/frame-0870.h265 | Bin 0 -> 2077 bytes samples/h265SampleFrames/frame-0871.h265 | Bin 0 -> 3448 bytes samples/h265SampleFrames/frame-0872.h265 | Bin 0 -> 1958 bytes samples/h265SampleFrames/frame-0873.h265 | Bin 0 -> 2191 bytes samples/h265SampleFrames/frame-0874.h265 | Bin 0 -> 2986 bytes samples/h265SampleFrames/frame-0875.h265 | Bin 0 -> 1855 bytes samples/h265SampleFrames/frame-0876.h265 | Bin 0 -> 4404 bytes samples/h265SampleFrames/frame-0877.h265 | Bin 0 -> 1845 bytes samples/h265SampleFrames/frame-0878.h265 | Bin 0 -> 2230 bytes samples/h265SampleFrames/frame-0879.h265 | Bin 0 -> 2364 bytes samples/h265SampleFrames/frame-0880.h265 | Bin 0 -> 1841 bytes samples/h265SampleFrames/frame-0881.h265 | Bin 0 -> 3068 bytes samples/h265SampleFrames/frame-0882.h265 | Bin 0 -> 1743 bytes samples/h265SampleFrames/frame-0883.h265 | Bin 0 -> 2134 bytes samples/h265SampleFrames/frame-0884.h265 | Bin 0 -> 2903 bytes samples/h265SampleFrames/frame-0885.h265 | Bin 0 -> 1898 bytes samples/h265SampleFrames/frame-0886.h265 | Bin 0 -> 2950 bytes samples/h265SampleFrames/frame-0887.h265 | Bin 0 -> 1887 bytes samples/h265SampleFrames/frame-0888.h265 | Bin 0 -> 2190 bytes samples/h265SampleFrames/frame-0889.h265 | Bin 0 -> 2950 bytes samples/h265SampleFrames/frame-0890.h265 | Bin 0 -> 1880 bytes samples/h265SampleFrames/frame-0891.h265 | Bin 0 -> 3264 bytes samples/h265SampleFrames/frame-0892.h265 | Bin 0 -> 1746 bytes samples/h265SampleFrames/frame-0893.h265 | Bin 0 -> 2145 bytes samples/h265SampleFrames/frame-0894.h265 | Bin 0 -> 2596 bytes samples/h265SampleFrames/frame-0895.h265 | Bin 0 -> 1851 bytes samples/h265SampleFrames/frame-0896.h265 | Bin 0 -> 3552 bytes samples/h265SampleFrames/frame-0897.h265 | Bin 0 -> 1901 bytes samples/h265SampleFrames/frame-0898.h265 | Bin 0 -> 2157 bytes samples/h265SampleFrames/frame-0899.h265 | Bin 0 -> 2958 bytes samples/h265SampleFrames/frame-0900.h265 | Bin 0 -> 1872 bytes samples/h265SampleFrames/frame-0901.h265 | Bin 0 -> 4439 bytes samples/h265SampleFrames/frame-0902.h265 | Bin 0 -> 1768 bytes samples/h265SampleFrames/frame-0903.h265 | Bin 0 -> 2142 bytes samples/h265SampleFrames/frame-0904.h265 | Bin 0 -> 2447 bytes samples/h265SampleFrames/frame-0905.h265 | Bin 0 -> 2034 bytes samples/h265SampleFrames/frame-0906.h265 | Bin 0 -> 3002 bytes samples/h265SampleFrames/frame-0907.h265 | Bin 0 -> 1828 bytes samples/h265SampleFrames/frame-0908.h265 | Bin 0 -> 2139 bytes samples/h265SampleFrames/frame-0909.h265 | Bin 0 -> 2813 bytes samples/h265SampleFrames/frame-0910.h265 | Bin 0 -> 2027 bytes samples/h265SampleFrames/frame-0911.h265 | Bin 0 -> 3213 bytes samples/h265SampleFrames/frame-0912.h265 | Bin 0 -> 1869 bytes samples/h265SampleFrames/frame-0913.h265 | Bin 0 -> 2099 bytes samples/h265SampleFrames/frame-0914.h265 | Bin 0 -> 3041 bytes samples/h265SampleFrames/frame-0915.h265 | Bin 0 -> 1940 bytes samples/h265SampleFrames/frame-0916.h265 | Bin 0 -> 3279 bytes samples/h265SampleFrames/frame-0917.h265 | Bin 0 -> 1846 bytes samples/h265SampleFrames/frame-0918.h265 | Bin 0 -> 1987 bytes samples/h265SampleFrames/frame-0919.h265 | Bin 0 -> 2568 bytes samples/h265SampleFrames/frame-0920.h265 | Bin 0 -> 1777 bytes samples/h265SampleFrames/frame-0921.h265 | Bin 0 -> 3357 bytes samples/h265SampleFrames/frame-0922.h265 | Bin 0 -> 1972 bytes samples/h265SampleFrames/frame-0923.h265 | Bin 0 -> 2250 bytes samples/h265SampleFrames/frame-0924.h265 | Bin 0 -> 2608 bytes samples/h265SampleFrames/frame-0925.h265 | Bin 0 -> 2055 bytes samples/h265SampleFrames/frame-0926.h265 | Bin 0 -> 4027 bytes samples/h265SampleFrames/frame-0927.h265 | Bin 0 -> 1793 bytes samples/h265SampleFrames/frame-0928.h265 | Bin 0 -> 2232 bytes samples/h265SampleFrames/frame-0929.h265 | Bin 0 -> 2517 bytes samples/h265SampleFrames/frame-0930.h265 | Bin 0 -> 1853 bytes samples/h265SampleFrames/frame-0931.h265 | Bin 0 -> 3027 bytes samples/h265SampleFrames/frame-0932.h265 | Bin 0 -> 1833 bytes samples/h265SampleFrames/frame-0933.h265 | Bin 0 -> 2172 bytes samples/h265SampleFrames/frame-0934.h265 | Bin 0 -> 3049 bytes samples/h265SampleFrames/frame-0935.h265 | Bin 0 -> 1929 bytes samples/h265SampleFrames/frame-0936.h265 | Bin 0 -> 2974 bytes samples/h265SampleFrames/frame-0937.h265 | Bin 0 -> 1814 bytes samples/h265SampleFrames/frame-0938.h265 | Bin 0 -> 2164 bytes samples/h265SampleFrames/frame-0939.h265 | Bin 0 -> 3004 bytes samples/h265SampleFrames/frame-0940.h265 | Bin 0 -> 1901 bytes samples/h265SampleFrames/frame-0941.h265 | Bin 0 -> 3430 bytes samples/h265SampleFrames/frame-0942.h265 | Bin 0 -> 2188 bytes samples/h265SampleFrames/frame-0943.h265 | Bin 0 -> 2591 bytes samples/h265SampleFrames/frame-0944.h265 | Bin 0 -> 2957 bytes samples/h265SampleFrames/frame-0945.h265 | Bin 0 -> 2198 bytes samples/h265SampleFrames/frame-0946.h265 | Bin 0 -> 3905 bytes samples/h265SampleFrames/frame-0947.h265 | Bin 0 -> 2221 bytes samples/h265SampleFrames/frame-0948.h265 | Bin 0 -> 2550 bytes samples/h265SampleFrames/frame-0949.h265 | Bin 0 -> 3176 bytes samples/h265SampleFrames/frame-0950.h265 | Bin 0 -> 1951 bytes samples/h265SampleFrames/frame-0951.h265 | Bin 0 -> 4759 bytes samples/h265SampleFrames/frame-0952.h265 | Bin 0 -> 1886 bytes samples/h265SampleFrames/frame-0953.h265 | Bin 0 -> 2071 bytes samples/h265SampleFrames/frame-0954.h265 | Bin 0 -> 2557 bytes samples/h265SampleFrames/frame-0955.h265 | Bin 0 -> 1939 bytes samples/h265SampleFrames/frame-0956.h265 | Bin 0 -> 2980 bytes samples/h265SampleFrames/frame-0957.h265 | Bin 0 -> 1942 bytes samples/h265SampleFrames/frame-0958.h265 | Bin 0 -> 2240 bytes samples/h265SampleFrames/frame-0959.h265 | Bin 0 -> 3202 bytes samples/h265SampleFrames/frame-0960.h265 | Bin 0 -> 2120 bytes samples/h265SampleFrames/frame-0961.h265 | Bin 0 -> 3264 bytes samples/h265SampleFrames/frame-0962.h265 | Bin 0 -> 1917 bytes samples/h265SampleFrames/frame-0963.h265 | Bin 0 -> 2608 bytes samples/h265SampleFrames/frame-0964.h265 | Bin 0 -> 3302 bytes samples/h265SampleFrames/frame-0965.h265 | Bin 0 -> 2544 bytes samples/h265SampleFrames/frame-0966.h265 | Bin 0 -> 3698 bytes samples/h265SampleFrames/frame-0967.h265 | Bin 0 -> 2661 bytes samples/h265SampleFrames/frame-0968.h265 | Bin 0 -> 3124 bytes samples/h265SampleFrames/frame-0969.h265 | Bin 0 -> 3507 bytes samples/h265SampleFrames/frame-0970.h265 | Bin 0 -> 2563 bytes samples/h265SampleFrames/frame-0971.h265 | Bin 0 -> 3884 bytes samples/h265SampleFrames/frame-0972.h265 | Bin 0 -> 1952 bytes samples/h265SampleFrames/frame-0973.h265 | Bin 0 -> 2039 bytes samples/h265SampleFrames/frame-0974.h265 | Bin 0 -> 2919 bytes samples/h265SampleFrames/frame-0975.h265 | Bin 0 -> 1831 bytes samples/h265SampleFrames/frame-0976.h265 | Bin 0 -> 4321 bytes samples/h265SampleFrames/frame-0977.h265 | Bin 0 -> 1750 bytes samples/h265SampleFrames/frame-0978.h265 | Bin 0 -> 2283 bytes samples/h265SampleFrames/frame-0979.h265 | Bin 0 -> 2418 bytes samples/h265SampleFrames/frame-0980.h265 | Bin 0 -> 1690 bytes samples/h265SampleFrames/frame-0981.h265 | Bin 0 -> 3064 bytes samples/h265SampleFrames/frame-0982.h265 | Bin 0 -> 1721 bytes samples/h265SampleFrames/frame-0983.h265 | Bin 0 -> 2071 bytes samples/h265SampleFrames/frame-0984.h265 | Bin 0 -> 3024 bytes samples/h265SampleFrames/frame-0985.h265 | Bin 0 -> 1920 bytes samples/h265SampleFrames/frame-0986.h265 | Bin 0 -> 3029 bytes samples/h265SampleFrames/frame-0987.h265 | Bin 0 -> 1830 bytes samples/h265SampleFrames/frame-0988.h265 | Bin 0 -> 2101 bytes samples/h265SampleFrames/frame-0989.h265 | Bin 0 -> 2492 bytes samples/h265SampleFrames/frame-0990.h265 | Bin 0 -> 2016 bytes samples/h265SampleFrames/frame-0991.h265 | Bin 0 -> 3268 bytes samples/h265SampleFrames/frame-0992.h265 | Bin 0 -> 1767 bytes samples/h265SampleFrames/frame-0993.h265 | Bin 0 -> 2165 bytes samples/h265SampleFrames/frame-0994.h265 | Bin 0 -> 2380 bytes samples/h265SampleFrames/frame-0995.h265 | Bin 0 -> 1716 bytes samples/h265SampleFrames/frame-0996.h265 | Bin 0 -> 3531 bytes samples/h265SampleFrames/frame-0997.h265 | Bin 0 -> 1911 bytes samples/h265SampleFrames/frame-0998.h265 | Bin 0 -> 2224 bytes samples/h265SampleFrames/frame-0999.h265 | Bin 0 -> 2896 bytes samples/h265SampleFrames/frame-1000.h265 | Bin 0 -> 1922 bytes samples/h265SampleFrames/frame-1001.h265 | Bin 0 -> 9100 bytes samples/h265SampleFrames/frame-1002.h265 | Bin 0 -> 1872 bytes samples/h265SampleFrames/frame-1003.h265 | Bin 0 -> 1971 bytes samples/h265SampleFrames/frame-1004.h265 | Bin 0 -> 2168 bytes samples/h265SampleFrames/frame-1005.h265 | Bin 0 -> 1886 bytes samples/h265SampleFrames/frame-1006.h265 | Bin 0 -> 2896 bytes samples/h265SampleFrames/frame-1007.h265 | Bin 0 -> 1807 bytes samples/h265SampleFrames/frame-1008.h265 | Bin 0 -> 2010 bytes samples/h265SampleFrames/frame-1009.h265 | Bin 0 -> 2589 bytes samples/h265SampleFrames/frame-1010.h265 | Bin 0 -> 1915 bytes samples/h265SampleFrames/frame-1011.h265 | Bin 0 -> 2921 bytes samples/h265SampleFrames/frame-1012.h265 | Bin 0 -> 1690 bytes samples/h265SampleFrames/frame-1013.h265 | Bin 0 -> 1981 bytes samples/h265SampleFrames/frame-1014.h265 | Bin 0 -> 2675 bytes samples/h265SampleFrames/frame-1015.h265 | Bin 0 -> 2037 bytes samples/h265SampleFrames/frame-1016.h265 | Bin 0 -> 3082 bytes samples/h265SampleFrames/frame-1017.h265 | Bin 0 -> 1822 bytes samples/h265SampleFrames/frame-1018.h265 | Bin 0 -> 2003 bytes samples/h265SampleFrames/frame-1019.h265 | Bin 0 -> 2461 bytes samples/h265SampleFrames/frame-1020.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-1021.h265 | Bin 0 -> 3224 bytes samples/h265SampleFrames/frame-1022.h265 | Bin 0 -> 1765 bytes samples/h265SampleFrames/frame-1023.h265 | Bin 0 -> 2038 bytes samples/h265SampleFrames/frame-1024.h265 | Bin 0 -> 2666 bytes samples/h265SampleFrames/frame-1025.h265 | Bin 0 -> 1796 bytes samples/h265SampleFrames/frame-1026.h265 | Bin 0 -> 3655 bytes samples/h265SampleFrames/frame-1027.h265 | Bin 0 -> 1765 bytes samples/h265SampleFrames/frame-1028.h265 | Bin 0 -> 2058 bytes samples/h265SampleFrames/frame-1029.h265 | Bin 0 -> 2487 bytes samples/h265SampleFrames/frame-1030.h265 | Bin 0 -> 1875 bytes samples/h265SampleFrames/frame-1031.h265 | Bin 0 -> 2811 bytes samples/h265SampleFrames/frame-1032.h265 | Bin 0 -> 1805 bytes samples/h265SampleFrames/frame-1033.h265 | Bin 0 -> 2012 bytes samples/h265SampleFrames/frame-1034.h265 | Bin 0 -> 2855 bytes samples/h265SampleFrames/frame-1035.h265 | Bin 0 -> 1817 bytes samples/h265SampleFrames/frame-1036.h265 | Bin 0 -> 2802 bytes samples/h265SampleFrames/frame-1037.h265 | Bin 0 -> 1915 bytes samples/h265SampleFrames/frame-1038.h265 | Bin 0 -> 2108 bytes samples/h265SampleFrames/frame-1039.h265 | Bin 0 -> 2906 bytes samples/h265SampleFrames/frame-1040.h265 | Bin 0 -> 1863 bytes samples/h265SampleFrames/frame-1041.h265 | Bin 0 -> 3095 bytes samples/h265SampleFrames/frame-1042.h265 | Bin 0 -> 1724 bytes samples/h265SampleFrames/frame-1043.h265 | Bin 0 -> 1969 bytes samples/h265SampleFrames/frame-1044.h265 | Bin 0 -> 2559 bytes samples/h265SampleFrames/frame-1045.h265 | Bin 0 -> 1679 bytes samples/h265SampleFrames/frame-1046.h265 | Bin 0 -> 3494 bytes samples/h265SampleFrames/frame-1047.h265 | Bin 0 -> 1928 bytes samples/h265SampleFrames/frame-1048.h265 | Bin 0 -> 2079 bytes samples/h265SampleFrames/frame-1049.h265 | Bin 0 -> 2953 bytes samples/h265SampleFrames/frame-1050.h265 | Bin 0 -> 1794 bytes samples/h265SampleFrames/frame-1051.h265 | Bin 0 -> 4130 bytes samples/h265SampleFrames/frame-1052.h265 | Bin 0 -> 1700 bytes samples/h265SampleFrames/frame-1053.h265 | Bin 0 -> 2177 bytes samples/h265SampleFrames/frame-1054.h265 | Bin 0 -> 2526 bytes samples/h265SampleFrames/frame-1055.h265 | Bin 0 -> 1936 bytes samples/h265SampleFrames/frame-1056.h265 | Bin 0 -> 2905 bytes samples/h265SampleFrames/frame-1057.h265 | Bin 0 -> 1802 bytes samples/h265SampleFrames/frame-1058.h265 | Bin 0 -> 2088 bytes samples/h265SampleFrames/frame-1059.h265 | Bin 0 -> 3023 bytes samples/h265SampleFrames/frame-1060.h265 | Bin 0 -> 1787 bytes samples/h265SampleFrames/frame-1061.h265 | Bin 0 -> 3014 bytes samples/h265SampleFrames/frame-1062.h265 | Bin 0 -> 1725 bytes samples/h265SampleFrames/frame-1063.h265 | Bin 0 -> 1993 bytes samples/h265SampleFrames/frame-1064.h265 | Bin 0 -> 2997 bytes samples/h265SampleFrames/frame-1065.h265 | Bin 0 -> 1760 bytes samples/h265SampleFrames/frame-1066.h265 | Bin 0 -> 3259 bytes samples/h265SampleFrames/frame-1067.h265 | Bin 0 -> 1825 bytes samples/h265SampleFrames/frame-1068.h265 | Bin 0 -> 2353 bytes samples/h265SampleFrames/frame-1069.h265 | Bin 0 -> 2545 bytes samples/h265SampleFrames/frame-1070.h265 | Bin 0 -> 2008 bytes samples/h265SampleFrames/frame-1071.h265 | Bin 0 -> 3460 bytes samples/h265SampleFrames/frame-1072.h265 | Bin 0 -> 1943 bytes samples/h265SampleFrames/frame-1073.h265 | Bin 0 -> 2042 bytes samples/h265SampleFrames/frame-1074.h265 | Bin 0 -> 2942 bytes samples/h265SampleFrames/frame-1075.h265 | Bin 0 -> 1978 bytes samples/h265SampleFrames/frame-1076.h265 | Bin 0 -> 4396 bytes samples/h265SampleFrames/frame-1077.h265 | Bin 0 -> 1614 bytes samples/h265SampleFrames/frame-1078.h265 | Bin 0 -> 2275 bytes samples/h265SampleFrames/frame-1079.h265 | Bin 0 -> 2351 bytes samples/h265SampleFrames/frame-1080.h265 | Bin 0 -> 1973 bytes samples/h265SampleFrames/frame-1081.h265 | Bin 0 -> 3045 bytes samples/h265SampleFrames/frame-1082.h265 | Bin 0 -> 1806 bytes samples/h265SampleFrames/frame-1083.h265 | Bin 0 -> 2093 bytes samples/h265SampleFrames/frame-1084.h265 | Bin 0 -> 2979 bytes samples/h265SampleFrames/frame-1085.h265 | Bin 0 -> 1768 bytes samples/h265SampleFrames/frame-1086.h265 | Bin 0 -> 3071 bytes samples/h265SampleFrames/frame-1087.h265 | Bin 0 -> 1887 bytes samples/h265SampleFrames/frame-1088.h265 | Bin 0 -> 2134 bytes samples/h265SampleFrames/frame-1089.h265 | Bin 0 -> 2923 bytes samples/h265SampleFrames/frame-1090.h265 | Bin 0 -> 1882 bytes samples/h265SampleFrames/frame-1091.h265 | Bin 0 -> 3277 bytes samples/h265SampleFrames/frame-1092.h265 | Bin 0 -> 1683 bytes samples/h265SampleFrames/frame-1093.h265 | Bin 0 -> 2145 bytes samples/h265SampleFrames/frame-1094.h265 | Bin 0 -> 2598 bytes samples/h265SampleFrames/frame-1095.h265 | Bin 0 -> 1653 bytes samples/h265SampleFrames/frame-1096.h265 | Bin 0 -> 3527 bytes samples/h265SampleFrames/frame-1097.h265 | Bin 0 -> 1907 bytes samples/h265SampleFrames/frame-1098.h265 | Bin 0 -> 2170 bytes samples/h265SampleFrames/frame-1099.h265 | Bin 0 -> 2969 bytes samples/h265SampleFrames/frame-1100.h265 | Bin 0 -> 1888 bytes samples/h265SampleFrames/frame-1101.h265 | Bin 0 -> 4118 bytes samples/h265SampleFrames/frame-1102.h265 | Bin 0 -> 1737 bytes samples/h265SampleFrames/frame-1103.h265 | Bin 0 -> 2161 bytes samples/h265SampleFrames/frame-1104.h265 | Bin 0 -> 2362 bytes samples/h265SampleFrames/frame-1105.h265 | Bin 0 -> 1994 bytes samples/h265SampleFrames/frame-1106.h265 | Bin 0 -> 3091 bytes samples/h265SampleFrames/frame-1107.h265 | Bin 0 -> 1772 bytes samples/h265SampleFrames/frame-1108.h265 | Bin 0 -> 2096 bytes samples/h265SampleFrames/frame-1109.h265 | Bin 0 -> 2904 bytes samples/h265SampleFrames/frame-1110.h265 | Bin 0 -> 1844 bytes samples/h265SampleFrames/frame-1111.h265 | Bin 0 -> 3070 bytes samples/h265SampleFrames/frame-1112.h265 | Bin 0 -> 1834 bytes samples/h265SampleFrames/frame-1113.h265 | Bin 0 -> 2200 bytes samples/h265SampleFrames/frame-1114.h265 | Bin 0 -> 2840 bytes samples/h265SampleFrames/frame-1115.h265 | Bin 0 -> 2007 bytes samples/h265SampleFrames/frame-1116.h265 | Bin 0 -> 3267 bytes samples/h265SampleFrames/frame-1117.h265 | Bin 0 -> 1893 bytes samples/h265SampleFrames/frame-1118.h265 | Bin 0 -> 1987 bytes samples/h265SampleFrames/frame-1119.h265 | Bin 0 -> 2581 bytes samples/h265SampleFrames/frame-1120.h265 | Bin 0 -> 1848 bytes samples/h265SampleFrames/frame-1121.h265 | Bin 0 -> 3307 bytes samples/h265SampleFrames/frame-1122.h265 | Bin 0 -> 1929 bytes samples/h265SampleFrames/frame-1123.h265 | Bin 0 -> 2222 bytes samples/h265SampleFrames/frame-1124.h265 | Bin 0 -> 2859 bytes samples/h265SampleFrames/frame-1125.h265 | Bin 0 -> 1991 bytes samples/h265SampleFrames/frame-1126.h265 | Bin 0 -> 4364 bytes samples/h265SampleFrames/frame-1127.h265 | Bin 0 -> 1809 bytes samples/h265SampleFrames/frame-1128.h265 | Bin 0 -> 2223 bytes samples/h265SampleFrames/frame-1129.h265 | Bin 0 -> 2519 bytes samples/h265SampleFrames/frame-1130.h265 | Bin 0 -> 1820 bytes samples/h265SampleFrames/frame-1131.h265 | Bin 0 -> 2903 bytes samples/h265SampleFrames/frame-1132.h265 | Bin 0 -> 1756 bytes samples/h265SampleFrames/frame-1133.h265 | Bin 0 -> 2105 bytes samples/h265SampleFrames/frame-1134.h265 | Bin 0 -> 2879 bytes samples/h265SampleFrames/frame-1135.h265 | Bin 0 -> 1886 bytes samples/h265SampleFrames/frame-1136.h265 | Bin 0 -> 2916 bytes samples/h265SampleFrames/frame-1137.h265 | Bin 0 -> 1837 bytes samples/h265SampleFrames/frame-1138.h265 | Bin 0 -> 2200 bytes samples/h265SampleFrames/frame-1139.h265 | Bin 0 -> 3015 bytes samples/h265SampleFrames/frame-1140.h265 | Bin 0 -> 1903 bytes samples/h265SampleFrames/frame-1141.h265 | Bin 0 -> 3261 bytes samples/h265SampleFrames/frame-1142.h265 | Bin 0 -> 1516 bytes samples/h265SampleFrames/frame-1143.h265 | Bin 0 -> 2265 bytes samples/h265SampleFrames/frame-1144.h265 | Bin 0 -> 2607 bytes samples/h265SampleFrames/frame-1145.h265 | Bin 0 -> 1733 bytes samples/h265SampleFrames/frame-1146.h265 | Bin 0 -> 3614 bytes samples/h265SampleFrames/frame-1147.h265 | Bin 0 -> 1837 bytes samples/h265SampleFrames/frame-1148.h265 | Bin 0 -> 2065 bytes samples/h265SampleFrames/frame-1149.h265 | Bin 0 -> 3010 bytes samples/h265SampleFrames/frame-1150.h265 | Bin 0 -> 1728 bytes samples/h265SampleFrames/frame-1151.h265 | Bin 0 -> 4439 bytes samples/h265SampleFrames/frame-1152.h265 | Bin 0 -> 1689 bytes samples/h265SampleFrames/frame-1153.h265 | Bin 0 -> 2180 bytes samples/h265SampleFrames/frame-1154.h265 | Bin 0 -> 2470 bytes samples/h265SampleFrames/frame-1155.h265 | Bin 0 -> 2010 bytes samples/h265SampleFrames/frame-1156.h265 | Bin 0 -> 2962 bytes samples/h265SampleFrames/frame-1157.h265 | Bin 0 -> 1687 bytes samples/h265SampleFrames/frame-1158.h265 | Bin 0 -> 2164 bytes samples/h265SampleFrames/frame-1159.h265 | Bin 0 -> 3007 bytes samples/h265SampleFrames/frame-1160.h265 | Bin 0 -> 1964 bytes samples/h265SampleFrames/frame-1161.h265 | Bin 0 -> 3003 bytes samples/h265SampleFrames/frame-1162.h265 | Bin 0 -> 1671 bytes samples/h265SampleFrames/frame-1163.h265 | Bin 0 -> 2234 bytes samples/h265SampleFrames/frame-1164.h265 | Bin 0 -> 3031 bytes samples/h265SampleFrames/frame-1165.h265 | Bin 0 -> 1944 bytes samples/h265SampleFrames/frame-1166.h265 | Bin 0 -> 3299 bytes samples/h265SampleFrames/frame-1167.h265 | Bin 0 -> 1774 bytes samples/h265SampleFrames/frame-1168.h265 | Bin 0 -> 2090 bytes samples/h265SampleFrames/frame-1169.h265 | Bin 0 -> 2556 bytes samples/h265SampleFrames/frame-1170.h265 | Bin 0 -> 1938 bytes samples/h265SampleFrames/frame-1171.h265 | Bin 0 -> 3448 bytes samples/h265SampleFrames/frame-1172.h265 | Bin 0 -> 1895 bytes samples/h265SampleFrames/frame-1173.h265 | Bin 0 -> 2091 bytes samples/h265SampleFrames/frame-1174.h265 | Bin 0 -> 2942 bytes samples/h265SampleFrames/frame-1175.h265 | Bin 0 -> 1918 bytes samples/h265SampleFrames/frame-1176.h265 | Bin 0 -> 4039 bytes samples/h265SampleFrames/frame-1177.h265 | Bin 0 -> 1828 bytes samples/h265SampleFrames/frame-1178.h265 | Bin 0 -> 2270 bytes samples/h265SampleFrames/frame-1179.h265 | Bin 0 -> 2422 bytes samples/h265SampleFrames/frame-1180.h265 | Bin 0 -> 1946 bytes samples/h265SampleFrames/frame-1181.h265 | Bin 0 -> 3026 bytes samples/h265SampleFrames/frame-1182.h265 | Bin 0 -> 1830 bytes samples/h265SampleFrames/frame-1183.h265 | Bin 0 -> 2080 bytes samples/h265SampleFrames/frame-1184.h265 | Bin 0 -> 2904 bytes samples/h265SampleFrames/frame-1185.h265 | Bin 0 -> 1905 bytes samples/h265SampleFrames/frame-1186.h265 | Bin 0 -> 2964 bytes samples/h265SampleFrames/frame-1187.h265 | Bin 0 -> 1834 bytes samples/h265SampleFrames/frame-1188.h265 | Bin 0 -> 2182 bytes samples/h265SampleFrames/frame-1189.h265 | Bin 0 -> 2690 bytes samples/h265SampleFrames/frame-1190.h265 | Bin 0 -> 2074 bytes samples/h265SampleFrames/frame-1191.h265 | Bin 0 -> 3362 bytes samples/h265SampleFrames/frame-1192.h265 | Bin 0 -> 1697 bytes samples/h265SampleFrames/frame-1193.h265 | Bin 0 -> 2241 bytes samples/h265SampleFrames/frame-1194.h265 | Bin 0 -> 2638 bytes samples/h265SampleFrames/frame-1195.h265 | Bin 0 -> 1754 bytes samples/h265SampleFrames/frame-1196.h265 | Bin 0 -> 3574 bytes samples/h265SampleFrames/frame-1197.h265 | Bin 0 -> 1908 bytes samples/h265SampleFrames/frame-1198.h265 | Bin 0 -> 2263 bytes samples/h265SampleFrames/frame-1199.h265 | Bin 0 -> 2904 bytes samples/h265SampleFrames/frame-1200.h265 | Bin 0 -> 1937 bytes samples/h265SampleFrames/frame-1201.h265 | Bin 0 -> 4655 bytes samples/h265SampleFrames/frame-1202.h265 | Bin 0 -> 1651 bytes samples/h265SampleFrames/frame-1203.h265 | Bin 0 -> 2130 bytes samples/h265SampleFrames/frame-1204.h265 | Bin 0 -> 2406 bytes samples/h265SampleFrames/frame-1205.h265 | Bin 0 -> 1977 bytes samples/h265SampleFrames/frame-1206.h265 | Bin 0 -> 3017 bytes samples/h265SampleFrames/frame-1207.h265 | Bin 0 -> 1781 bytes samples/h265SampleFrames/frame-1208.h265 | Bin 0 -> 2152 bytes samples/h265SampleFrames/frame-1209.h265 | Bin 0 -> 2988 bytes samples/h265SampleFrames/frame-1210.h265 | Bin 0 -> 2040 bytes samples/h265SampleFrames/frame-1211.h265 | Bin 0 -> 3127 bytes samples/h265SampleFrames/frame-1212.h265 | Bin 0 -> 1771 bytes samples/h265SampleFrames/frame-1213.h265 | Bin 0 -> 2181 bytes samples/h265SampleFrames/frame-1214.h265 | Bin 0 -> 2977 bytes samples/h265SampleFrames/frame-1215.h265 | Bin 0 -> 2021 bytes samples/h265SampleFrames/frame-1216.h265 | Bin 0 -> 3310 bytes samples/h265SampleFrames/frame-1217.h265 | Bin 0 -> 1802 bytes samples/h265SampleFrames/frame-1218.h265 | Bin 0 -> 2049 bytes samples/h265SampleFrames/frame-1219.h265 | Bin 0 -> 2576 bytes samples/h265SampleFrames/frame-1220.h265 | Bin 0 -> 1871 bytes samples/h265SampleFrames/frame-1221.h265 | Bin 0 -> 3442 bytes samples/h265SampleFrames/frame-1222.h265 | Bin 0 -> 1839 bytes samples/h265SampleFrames/frame-1223.h265 | Bin 0 -> 2085 bytes samples/h265SampleFrames/frame-1224.h265 | Bin 0 -> 2796 bytes samples/h265SampleFrames/frame-1225.h265 | Bin 0 -> 1901 bytes samples/h265SampleFrames/frame-1226.h265 | Bin 0 -> 4217 bytes samples/h265SampleFrames/frame-1227.h265 | Bin 0 -> 1883 bytes samples/h265SampleFrames/frame-1228.h265 | Bin 0 -> 2089 bytes samples/h265SampleFrames/frame-1229.h265 | Bin 0 -> 2550 bytes samples/h265SampleFrames/frame-1230.h265 | Bin 0 -> 1915 bytes samples/h265SampleFrames/frame-1231.h265 | Bin 0 -> 2967 bytes samples/h265SampleFrames/frame-1232.h265 | Bin 0 -> 1809 bytes samples/h265SampleFrames/frame-1233.h265 | Bin 0 -> 2093 bytes samples/h265SampleFrames/frame-1234.h265 | Bin 0 -> 3026 bytes samples/h265SampleFrames/frame-1235.h265 | Bin 0 -> 1874 bytes samples/h265SampleFrames/frame-1236.h265 | Bin 0 -> 2894 bytes samples/h265SampleFrames/frame-1237.h265 | Bin 0 -> 1940 bytes samples/h265SampleFrames/frame-1238.h265 | Bin 0 -> 2110 bytes samples/h265SampleFrames/frame-1239.h265 | Bin 0 -> 2942 bytes samples/h265SampleFrames/frame-1240.h265 | Bin 0 -> 1941 bytes samples/h265SampleFrames/frame-1241.h265 | Bin 0 -> 3216 bytes samples/h265SampleFrames/frame-1242.h265 | Bin 0 -> 1715 bytes samples/h265SampleFrames/frame-1243.h265 | Bin 0 -> 2078 bytes samples/h265SampleFrames/frame-1244.h265 | Bin 0 -> 2584 bytes samples/h265SampleFrames/frame-1245.h265 | Bin 0 -> 1699 bytes samples/h265SampleFrames/frame-1246.h265 | Bin 0 -> 3615 bytes samples/h265SampleFrames/frame-1247.h265 | Bin 0 -> 1691 bytes samples/h265SampleFrames/frame-1248.h265 | Bin 0 -> 2101 bytes samples/h265SampleFrames/frame-1249.h265 | Bin 0 -> 2993 bytes samples/h265SampleFrames/frame-1250.h265 | Bin 0 -> 1841 bytes samples/h265SampleFrames/frame-1251.h265 | Bin 0 -> 9393 bytes samples/h265SampleFrames/frame-1252.h265 | Bin 0 -> 1752 bytes samples/h265SampleFrames/frame-1253.h265 | Bin 0 -> 1939 bytes samples/h265SampleFrames/frame-1254.h265 | Bin 0 -> 2431 bytes samples/h265SampleFrames/frame-1255.h265 | Bin 0 -> 1788 bytes samples/h265SampleFrames/frame-1256.h265 | Bin 0 -> 2945 bytes samples/h265SampleFrames/frame-1257.h265 | Bin 0 -> 1794 bytes samples/h265SampleFrames/frame-1258.h265 | Bin 0 -> 2072 bytes samples/h265SampleFrames/frame-1259.h265 | Bin 0 -> 2963 bytes samples/h265SampleFrames/frame-1260.h265 | Bin 0 -> 1786 bytes samples/h265SampleFrames/frame-1261.h265 | Bin 0 -> 2944 bytes samples/h265SampleFrames/frame-1262.h265 | Bin 0 -> 1781 bytes samples/h265SampleFrames/frame-1263.h265 | Bin 0 -> 1969 bytes samples/h265SampleFrames/frame-1264.h265 | Bin 0 -> 2874 bytes samples/h265SampleFrames/frame-1265.h265 | Bin 0 -> 1954 bytes samples/h265SampleFrames/frame-1266.h265 | Bin 0 -> 3157 bytes samples/h265SampleFrames/frame-1267.h265 | Bin 0 -> 1739 bytes samples/h265SampleFrames/frame-1268.h265 | Bin 0 -> 2149 bytes samples/h265SampleFrames/frame-1269.h265 | Bin 0 -> 2459 bytes samples/h265SampleFrames/frame-1270.h265 | Bin 0 -> 1913 bytes samples/h265SampleFrames/frame-1271.h265 | Bin 0 -> 3318 bytes samples/h265SampleFrames/frame-1272.h265 | Bin 0 -> 1712 bytes samples/h265SampleFrames/frame-1273.h265 | Bin 0 -> 2048 bytes samples/h265SampleFrames/frame-1274.h265 | Bin 0 -> 2833 bytes samples/h265SampleFrames/frame-1275.h265 | Bin 0 -> 1867 bytes samples/h265SampleFrames/frame-1276.h265 | Bin 0 -> 3747 bytes samples/h265SampleFrames/frame-1277.h265 | Bin 0 -> 1317 bytes samples/h265SampleFrames/frame-1278.h265 | Bin 0 -> 2219 bytes samples/h265SampleFrames/frame-1279.h265 | Bin 0 -> 2324 bytes samples/h265SampleFrames/frame-1280.h265 | Bin 0 -> 1910 bytes samples/h265SampleFrames/frame-1281.h265 | Bin 0 -> 2904 bytes samples/h265SampleFrames/frame-1282.h265 | Bin 0 -> 1776 bytes samples/h265SampleFrames/frame-1283.h265 | Bin 0 -> 2122 bytes samples/h265SampleFrames/frame-1284.h265 | Bin 0 -> 2916 bytes samples/h265SampleFrames/frame-1285.h265 | Bin 0 -> 1925 bytes samples/h265SampleFrames/frame-1286.h265 | Bin 0 -> 2883 bytes samples/h265SampleFrames/frame-1287.h265 | Bin 0 -> 1854 bytes samples/h265SampleFrames/frame-1288.h265 | Bin 0 -> 2148 bytes samples/h265SampleFrames/frame-1289.h265 | Bin 0 -> 2257 bytes samples/h265SampleFrames/frame-1290.h265 | Bin 0 -> 2007 bytes samples/h265SampleFrames/frame-1291.h265 | Bin 0 -> 3076 bytes samples/h265SampleFrames/frame-1292.h265 | Bin 0 -> 1928 bytes samples/h265SampleFrames/frame-1293.h265 | Bin 0 -> 2256 bytes samples/h265SampleFrames/frame-1294.h265 | Bin 0 -> 2597 bytes samples/h265SampleFrames/frame-1295.h265 | Bin 0 -> 1779 bytes samples/h265SampleFrames/frame-1296.h265 | Bin 0 -> 3555 bytes samples/h265SampleFrames/frame-1297.h265 | Bin 0 -> 1885 bytes samples/h265SampleFrames/frame-1298.h265 | Bin 0 -> 2211 bytes samples/h265SampleFrames/frame-1299.h265 | Bin 0 -> 3005 bytes samples/h265SampleFrames/frame-1300.h265 | Bin 0 -> 1886 bytes samples/h265SampleFrames/frame-1301.h265 | Bin 0 -> 4092 bytes samples/h265SampleFrames/frame-1302.h265 | Bin 0 -> 1731 bytes samples/h265SampleFrames/frame-1303.h265 | Bin 0 -> 2240 bytes samples/h265SampleFrames/frame-1304.h265 | Bin 0 -> 2384 bytes samples/h265SampleFrames/frame-1305.h265 | Bin 0 -> 1980 bytes samples/h265SampleFrames/frame-1306.h265 | Bin 0 -> 3113 bytes samples/h265SampleFrames/frame-1307.h265 | Bin 0 -> 1799 bytes samples/h265SampleFrames/frame-1308.h265 | Bin 0 -> 2023 bytes samples/h265SampleFrames/frame-1309.h265 | Bin 0 -> 3043 bytes samples/h265SampleFrames/frame-1310.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-1311.h265 | Bin 0 -> 3124 bytes samples/h265SampleFrames/frame-1312.h265 | Bin 0 -> 1963 bytes samples/h265SampleFrames/frame-1313.h265 | Bin 0 -> 2169 bytes samples/h265SampleFrames/frame-1314.h265 | Bin 0 -> 2804 bytes samples/h265SampleFrames/frame-1315.h265 | Bin 0 -> 2000 bytes samples/h265SampleFrames/frame-1316.h265 | Bin 0 -> 3283 bytes samples/h265SampleFrames/frame-1317.h265 | Bin 0 -> 1808 bytes samples/h265SampleFrames/frame-1318.h265 | Bin 0 -> 2257 bytes samples/h265SampleFrames/frame-1319.h265 | Bin 0 -> 2513 bytes samples/h265SampleFrames/frame-1320.h265 | Bin 0 -> 1911 bytes samples/h265SampleFrames/frame-1321.h265 | Bin 0 -> 3561 bytes samples/h265SampleFrames/frame-1322.h265 | Bin 0 -> 1945 bytes samples/h265SampleFrames/frame-1323.h265 | Bin 0 -> 2305 bytes samples/h265SampleFrames/frame-1324.h265 | Bin 0 -> 2837 bytes samples/h265SampleFrames/frame-1325.h265 | Bin 0 -> 2003 bytes samples/h265SampleFrames/frame-1326.h265 | Bin 0 -> 4022 bytes samples/h265SampleFrames/frame-1327.h265 | Bin 0 -> 1898 bytes samples/h265SampleFrames/frame-1328.h265 | Bin 0 -> 2122 bytes samples/h265SampleFrames/frame-1329.h265 | Bin 0 -> 2536 bytes samples/h265SampleFrames/frame-1330.h265 | Bin 0 -> 1879 bytes samples/h265SampleFrames/frame-1331.h265 | Bin 0 -> 2992 bytes samples/h265SampleFrames/frame-1332.h265 | Bin 0 -> 1642 bytes samples/h265SampleFrames/frame-1333.h265 | Bin 0 -> 2114 bytes samples/h265SampleFrames/frame-1334.h265 | Bin 0 -> 3036 bytes samples/h265SampleFrames/frame-1335.h265 | Bin 0 -> 1844 bytes samples/h265SampleFrames/frame-1336.h265 | Bin 0 -> 2964 bytes samples/h265SampleFrames/frame-1337.h265 | Bin 0 -> 1834 bytes samples/h265SampleFrames/frame-1338.h265 | Bin 0 -> 2262 bytes samples/h265SampleFrames/frame-1339.h265 | Bin 0 -> 2984 bytes samples/h265SampleFrames/frame-1340.h265 | Bin 0 -> 1912 bytes samples/h265SampleFrames/frame-1341.h265 | Bin 0 -> 3255 bytes samples/h265SampleFrames/frame-1342.h265 | Bin 0 -> 1648 bytes samples/h265SampleFrames/frame-1343.h265 | Bin 0 -> 2049 bytes samples/h265SampleFrames/frame-1344.h265 | Bin 0 -> 2653 bytes samples/h265SampleFrames/frame-1345.h265 | Bin 0 -> 1822 bytes samples/h265SampleFrames/frame-1346.h265 | Bin 0 -> 3603 bytes samples/h265SampleFrames/frame-1347.h265 | Bin 0 -> 1790 bytes samples/h265SampleFrames/frame-1348.h265 | Bin 0 -> 2040 bytes samples/h265SampleFrames/frame-1349.h265 | Bin 0 -> 2974 bytes samples/h265SampleFrames/frame-1350.h265 | Bin 0 -> 1939 bytes samples/h265SampleFrames/frame-1351.h265 | Bin 0 -> 4271 bytes samples/h265SampleFrames/frame-1352.h265 | Bin 0 -> 1543 bytes samples/h265SampleFrames/frame-1353.h265 | Bin 0 -> 2086 bytes samples/h265SampleFrames/frame-1354.h265 | Bin 0 -> 2499 bytes samples/h265SampleFrames/frame-1355.h265 | Bin 0 -> 2009 bytes samples/h265SampleFrames/frame-1356.h265 | Bin 0 -> 2909 bytes samples/h265SampleFrames/frame-1357.h265 | Bin 0 -> 1807 bytes samples/h265SampleFrames/frame-1358.h265 | Bin 0 -> 2207 bytes samples/h265SampleFrames/frame-1359.h265 | Bin 0 -> 2994 bytes samples/h265SampleFrames/frame-1360.h265 | Bin 0 -> 1863 bytes samples/h265SampleFrames/frame-1361.h265 | Bin 0 -> 3076 bytes samples/h265SampleFrames/frame-1362.h265 | Bin 0 -> 1717 bytes samples/h265SampleFrames/frame-1363.h265 | Bin 0 -> 2194 bytes samples/h265SampleFrames/frame-1364.h265 | Bin 0 -> 2997 bytes samples/h265SampleFrames/frame-1365.h265 | Bin 0 -> 2018 bytes samples/h265SampleFrames/frame-1366.h265 | Bin 0 -> 3614 bytes samples/h265SampleFrames/frame-1367.h265 | Bin 0 -> 2526 bytes samples/h265SampleFrames/frame-1368.h265 | Bin 0 -> 2924 bytes samples/h265SampleFrames/frame-1369.h265 | Bin 0 -> 3681 bytes samples/h265SampleFrames/frame-1370.h265 | Bin 0 -> 3017 bytes samples/h265SampleFrames/frame-1371.h265 | Bin 0 -> 4709 bytes samples/h265SampleFrames/frame-1372.h265 | Bin 0 -> 2801 bytes samples/h265SampleFrames/frame-1373.h265 | Bin 0 -> 2766 bytes samples/h265SampleFrames/frame-1374.h265 | Bin 0 -> 3577 bytes samples/h265SampleFrames/frame-1375.h265 | Bin 0 -> 2263 bytes samples/h265SampleFrames/frame-1376.h265 | Bin 0 -> 3846 bytes samples/h265SampleFrames/frame-1377.h265 | Bin 0 -> 2065 bytes samples/h265SampleFrames/frame-1378.h265 | Bin 0 -> 2415 bytes samples/h265SampleFrames/frame-1379.h265 | Bin 0 -> 2396 bytes samples/h265SampleFrames/frame-1380.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-1381.h265 | Bin 0 -> 2912 bytes samples/h265SampleFrames/frame-1382.h265 | Bin 0 -> 1768 bytes samples/h265SampleFrames/frame-1383.h265 | Bin 0 -> 2152 bytes samples/h265SampleFrames/frame-1384.h265 | Bin 0 -> 2441 bytes samples/h265SampleFrames/frame-1385.h265 | Bin 0 -> 2167 bytes samples/h265SampleFrames/frame-1386.h265 | Bin 0 -> 3252 bytes samples/h265SampleFrames/frame-1387.h265 | Bin 0 -> 1875 bytes samples/h265SampleFrames/frame-1388.h265 | Bin 0 -> 2121 bytes samples/h265SampleFrames/frame-1389.h265 | Bin 0 -> 2929 bytes samples/h265SampleFrames/frame-1390.h265 | Bin 0 -> 1965 bytes samples/h265SampleFrames/frame-1391.h265 | Bin 0 -> 3307 bytes samples/h265SampleFrames/frame-1392.h265 | Bin 0 -> 1761 bytes samples/h265SampleFrames/frame-1393.h265 | Bin 0 -> 2175 bytes samples/h265SampleFrames/frame-1394.h265 | Bin 0 -> 2596 bytes samples/h265SampleFrames/frame-1395.h265 | Bin 0 -> 1852 bytes samples/h265SampleFrames/frame-1396.h265 | Bin 0 -> 3589 bytes samples/h265SampleFrames/frame-1397.h265 | Bin 0 -> 1860 bytes samples/h265SampleFrames/frame-1398.h265 | Bin 0 -> 2221 bytes samples/h265SampleFrames/frame-1399.h265 | Bin 0 -> 2868 bytes samples/h265SampleFrames/frame-1400.h265 | Bin 0 -> 1905 bytes samples/h265SampleFrames/frame-1401.h265 | Bin 0 -> 4397 bytes samples/h265SampleFrames/frame-1402.h265 | Bin 0 -> 1778 bytes samples/h265SampleFrames/frame-1403.h265 | Bin 0 -> 2152 bytes samples/h265SampleFrames/frame-1404.h265 | Bin 0 -> 2378 bytes samples/h265SampleFrames/frame-1405.h265 | Bin 0 -> 1964 bytes samples/h265SampleFrames/frame-1406.h265 | Bin 0 -> 3092 bytes samples/h265SampleFrames/frame-1407.h265 | Bin 0 -> 1747 bytes samples/h265SampleFrames/frame-1408.h265 | Bin 0 -> 2147 bytes samples/h265SampleFrames/frame-1409.h265 | Bin 0 -> 2959 bytes samples/h265SampleFrames/frame-1410.h265 | Bin 0 -> 2001 bytes samples/h265SampleFrames/frame-1411.h265 | Bin 0 -> 3111 bytes samples/h265SampleFrames/frame-1412.h265 | Bin 0 -> 1807 bytes samples/h265SampleFrames/frame-1413.h265 | Bin 0 -> 2041 bytes samples/h265SampleFrames/frame-1414.h265 | Bin 0 -> 2751 bytes samples/h265SampleFrames/frame-1415.h265 | Bin 0 -> 2018 bytes samples/h265SampleFrames/frame-1416.h265 | Bin 0 -> 3188 bytes samples/h265SampleFrames/frame-1417.h265 | Bin 0 -> 1799 bytes samples/h265SampleFrames/frame-1418.h265 | Bin 0 -> 1921 bytes samples/h265SampleFrames/frame-1419.h265 | Bin 0 -> 2606 bytes samples/h265SampleFrames/frame-1420.h265 | Bin 0 -> 1903 bytes samples/h265SampleFrames/frame-1421.h265 | Bin 0 -> 3556 bytes samples/h265SampleFrames/frame-1422.h265 | Bin 0 -> 1881 bytes samples/h265SampleFrames/frame-1423.h265 | Bin 0 -> 2122 bytes samples/h265SampleFrames/frame-1424.h265 | Bin 0 -> 2788 bytes samples/h265SampleFrames/frame-1425.h265 | Bin 0 -> 1929 bytes samples/h265SampleFrames/frame-1426.h265 | Bin 0 -> 4047 bytes samples/h265SampleFrames/frame-1427.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-1428.h265 | Bin 0 -> 2134 bytes samples/h265SampleFrames/frame-1429.h265 | Bin 0 -> 2491 bytes samples/h265SampleFrames/frame-1430.h265 | Bin 0 -> 2002 bytes samples/h265SampleFrames/frame-1431.h265 | Bin 0 -> 2937 bytes samples/h265SampleFrames/frame-1432.h265 | Bin 0 -> 1697 bytes samples/h265SampleFrames/frame-1433.h265 | Bin 0 -> 2064 bytes samples/h265SampleFrames/frame-1434.h265 | Bin 0 -> 2959 bytes samples/h265SampleFrames/frame-1435.h265 | Bin 0 -> 1942 bytes samples/h265SampleFrames/frame-1436.h265 | Bin 0 -> 3054 bytes samples/h265SampleFrames/frame-1437.h265 | Bin 0 -> 1951 bytes samples/h265SampleFrames/frame-1438.h265 | Bin 0 -> 2192 bytes samples/h265SampleFrames/frame-1439.h265 | Bin 0 -> 2957 bytes samples/h265SampleFrames/frame-1440.h265 | Bin 0 -> 1887 bytes samples/h265SampleFrames/frame-1441.h265 | Bin 0 -> 3295 bytes samples/h265SampleFrames/frame-1442.h265 | Bin 0 -> 1687 bytes samples/h265SampleFrames/frame-1443.h265 | Bin 0 -> 2139 bytes samples/h265SampleFrames/frame-1444.h265 | Bin 0 -> 2577 bytes samples/h265SampleFrames/frame-1445.h265 | Bin 0 -> 1684 bytes samples/h265SampleFrames/frame-1446.h265 | Bin 0 -> 3608 bytes samples/h265SampleFrames/frame-1447.h265 | Bin 0 -> 1733 bytes samples/h265SampleFrames/frame-1448.h265 | Bin 0 -> 2038 bytes samples/h265SampleFrames/frame-1449.h265 | Bin 0 -> 2922 bytes samples/h265SampleFrames/frame-1450.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-1451.h265 | Bin 0 -> 4598 bytes samples/h265SampleFrames/frame-1452.h265 | Bin 0 -> 1826 bytes samples/h265SampleFrames/frame-1453.h265 | Bin 0 -> 2200 bytes samples/h265SampleFrames/frame-1454.h265 | Bin 0 -> 2517 bytes samples/h265SampleFrames/frame-1455.h265 | Bin 0 -> 1997 bytes samples/h265SampleFrames/frame-1456.h265 | Bin 0 -> 2949 bytes samples/h265SampleFrames/frame-1457.h265 | Bin 0 -> 1744 bytes samples/h265SampleFrames/frame-1458.h265 | Bin 0 -> 2199 bytes samples/h265SampleFrames/frame-1459.h265 | Bin 0 -> 3064 bytes samples/h265SampleFrames/frame-1460.h265 | Bin 0 -> 1862 bytes samples/h265SampleFrames/frame-1461.h265 | Bin 0 -> 3081 bytes samples/h265SampleFrames/frame-1462.h265 | Bin 0 -> 1767 bytes samples/h265SampleFrames/frame-1463.h265 | Bin 0 -> 2206 bytes samples/h265SampleFrames/frame-1464.h265 | Bin 0 -> 3013 bytes samples/h265SampleFrames/frame-1465.h265 | Bin 0 -> 1964 bytes samples/h265SampleFrames/frame-1466.h265 | Bin 0 -> 3255 bytes samples/h265SampleFrames/frame-1467.h265 | Bin 0 -> 1737 bytes samples/h265SampleFrames/frame-1468.h265 | Bin 0 -> 2166 bytes samples/h265SampleFrames/frame-1469.h265 | Bin 0 -> 2505 bytes samples/h265SampleFrames/frame-1470.h265 | Bin 0 -> 1885 bytes samples/h265SampleFrames/frame-1471.h265 | Bin 0 -> 3393 bytes samples/h265SampleFrames/frame-1472.h265 | Bin 0 -> 1853 bytes samples/h265SampleFrames/frame-1473.h265 | Bin 0 -> 2240 bytes samples/h265SampleFrames/frame-1474.h265 | Bin 0 -> 2917 bytes samples/h265SampleFrames/frame-1475.h265 | Bin 0 -> 1918 bytes samples/h265SampleFrames/frame-1476.h265 | Bin 0 -> 4387 bytes samples/h265SampleFrames/frame-1477.h265 | Bin 0 -> 1750 bytes samples/h265SampleFrames/frame-1478.h265 | Bin 0 -> 2217 bytes samples/h265SampleFrames/frame-1479.h265 | Bin 0 -> 2441 bytes samples/h265SampleFrames/frame-1480.h265 | Bin 0 -> 1856 bytes samples/h265SampleFrames/frame-1481.h265 | Bin 0 -> 3085 bytes samples/h265SampleFrames/frame-1482.h265 | Bin 0 -> 1680 bytes samples/h265SampleFrames/frame-1483.h265 | Bin 0 -> 2148 bytes samples/h265SampleFrames/frame-1484.h265 | Bin 0 -> 2843 bytes samples/h265SampleFrames/frame-1485.h265 | Bin 0 -> 1837 bytes samples/h265SampleFrames/frame-1486.h265 | Bin 0 -> 2971 bytes samples/h265SampleFrames/frame-1487.h265 | Bin 0 -> 1907 bytes samples/h265SampleFrames/frame-1488.h265 | Bin 0 -> 2348 bytes samples/h265SampleFrames/frame-1489.h265 | Bin 0 -> 2386 bytes samples/h265SampleFrames/frame-1490.h265 | Bin 0 -> 1903 bytes samples/h265SampleFrames/frame-1491.h265 | Bin 0 -> 3265 bytes samples/h265SampleFrames/frame-1492.h265 | Bin 0 -> 1988 bytes samples/h265SampleFrames/frame-1493.h265 | Bin 0 -> 2221 bytes samples/h265SampleFrames/frame-1494.h265 | Bin 0 -> 2569 bytes samples/h265SampleFrames/frame-1495.h265 | Bin 0 -> 1687 bytes samples/h265SampleFrames/frame-1496.h265 | Bin 0 -> 3613 bytes samples/h265SampleFrames/frame-1497.h265 | Bin 0 -> 1953 bytes samples/h265SampleFrames/frame-1498.h265 | Bin 0 -> 2242 bytes samples/h265SampleFrames/frame-1499.h265 | Bin 0 -> 2985 bytes samples/h265SampleFrames/frame-1500.h265 | Bin 0 -> 1932 bytes samples/kvsWebRTCClientMaster.c | 44 ++- samples/kvsWebRTCClientViewer.c | 28 ++ samples/kvsWebRTCClientViewerGstSample.c | 219 +++++++++++++ samples/kvsWebrtcClientMasterGstSample.c | 288 +++++++++--------- .../kinesis/video/webrtcclient/Include.h | 4 + src/source/Include_i.h | 1 + src/source/PeerConnection/JitterBuffer.h | 2 +- src/source/PeerConnection/PeerConnection.c | 21 +- src/source/PeerConnection/PeerConnection.h | 1 + src/source/PeerConnection/Rtp.c | 5 + .../PeerConnection/SessionDescription.c | 70 ++++- .../PeerConnection/SessionDescription.h | 7 +- src/source/Rtp/Codecs/RtpH264Payloader.c | 8 +- src/source/Rtp/Codecs/RtpH265Payloader.c | 283 +++++++++++++++++ src/source/Rtp/Codecs/RtpH265Payloader.h | 41 +++ tst/RtpFunctionalityTest.cpp | 113 ++++++- tst/SdpApiTest.cpp | 59 ++++ tst/WebRTCClientTestFixture.h | 13 +- 1527 files changed, 1558 insertions(+), 203 deletions(-) create mode 100644 .github/workflows/version-check.yml create mode 100644 samples/GstAudioVideoReceiver.c create mode 100644 samples/h265SampleFrames/frame-0001.h265 create mode 100644 samples/h265SampleFrames/frame-0002.h265 create mode 100644 samples/h265SampleFrames/frame-0003.h265 create mode 100644 samples/h265SampleFrames/frame-0004.h265 create mode 100644 samples/h265SampleFrames/frame-0005.h265 create mode 100644 samples/h265SampleFrames/frame-0006.h265 create mode 100644 samples/h265SampleFrames/frame-0007.h265 create mode 100644 samples/h265SampleFrames/frame-0008.h265 create mode 100644 samples/h265SampleFrames/frame-0009.h265 create mode 100644 samples/h265SampleFrames/frame-0010.h265 create mode 100644 samples/h265SampleFrames/frame-0011.h265 create mode 100644 samples/h265SampleFrames/frame-0012.h265 create mode 100644 samples/h265SampleFrames/frame-0013.h265 create mode 100644 samples/h265SampleFrames/frame-0014.h265 create mode 100644 samples/h265SampleFrames/frame-0015.h265 create mode 100644 samples/h265SampleFrames/frame-0016.h265 create mode 100644 samples/h265SampleFrames/frame-0017.h265 create mode 100644 samples/h265SampleFrames/frame-0018.h265 create mode 100644 samples/h265SampleFrames/frame-0019.h265 create mode 100644 samples/h265SampleFrames/frame-0020.h265 create mode 100644 samples/h265SampleFrames/frame-0021.h265 create mode 100644 samples/h265SampleFrames/frame-0022.h265 create mode 100644 samples/h265SampleFrames/frame-0023.h265 create mode 100644 samples/h265SampleFrames/frame-0024.h265 create mode 100644 samples/h265SampleFrames/frame-0025.h265 create mode 100644 samples/h265SampleFrames/frame-0026.h265 create mode 100644 samples/h265SampleFrames/frame-0027.h265 create mode 100644 samples/h265SampleFrames/frame-0028.h265 create mode 100644 samples/h265SampleFrames/frame-0029.h265 create mode 100644 samples/h265SampleFrames/frame-0030.h265 create mode 100644 samples/h265SampleFrames/frame-0031.h265 create mode 100644 samples/h265SampleFrames/frame-0032.h265 create mode 100644 samples/h265SampleFrames/frame-0033.h265 create mode 100644 samples/h265SampleFrames/frame-0034.h265 create mode 100644 samples/h265SampleFrames/frame-0035.h265 create mode 100644 samples/h265SampleFrames/frame-0036.h265 create mode 100644 samples/h265SampleFrames/frame-0037.h265 create mode 100644 samples/h265SampleFrames/frame-0038.h265 create mode 100644 samples/h265SampleFrames/frame-0039.h265 create mode 100644 samples/h265SampleFrames/frame-0040.h265 create mode 100644 samples/h265SampleFrames/frame-0041.h265 create mode 100644 samples/h265SampleFrames/frame-0042.h265 create mode 100644 samples/h265SampleFrames/frame-0043.h265 create mode 100644 samples/h265SampleFrames/frame-0044.h265 create mode 100644 samples/h265SampleFrames/frame-0045.h265 create mode 100644 samples/h265SampleFrames/frame-0046.h265 create mode 100644 samples/h265SampleFrames/frame-0047.h265 create mode 100644 samples/h265SampleFrames/frame-0048.h265 create mode 100644 samples/h265SampleFrames/frame-0049.h265 create mode 100644 samples/h265SampleFrames/frame-0050.h265 create mode 100644 samples/h265SampleFrames/frame-0051.h265 create mode 100644 samples/h265SampleFrames/frame-0052.h265 create mode 100644 samples/h265SampleFrames/frame-0053.h265 create mode 100644 samples/h265SampleFrames/frame-0054.h265 create mode 100644 samples/h265SampleFrames/frame-0055.h265 create mode 100644 samples/h265SampleFrames/frame-0056.h265 create mode 100644 samples/h265SampleFrames/frame-0057.h265 create mode 100644 samples/h265SampleFrames/frame-0058.h265 create mode 100644 samples/h265SampleFrames/frame-0059.h265 create mode 100644 samples/h265SampleFrames/frame-0060.h265 create mode 100644 samples/h265SampleFrames/frame-0061.h265 create mode 100644 samples/h265SampleFrames/frame-0062.h265 create mode 100644 samples/h265SampleFrames/frame-0063.h265 create mode 100644 samples/h265SampleFrames/frame-0064.h265 create mode 100644 samples/h265SampleFrames/frame-0065.h265 create mode 100644 samples/h265SampleFrames/frame-0066.h265 create mode 100644 samples/h265SampleFrames/frame-0067.h265 create mode 100644 samples/h265SampleFrames/frame-0068.h265 create mode 100644 samples/h265SampleFrames/frame-0069.h265 create mode 100644 samples/h265SampleFrames/frame-0070.h265 create mode 100644 samples/h265SampleFrames/frame-0071.h265 create mode 100644 samples/h265SampleFrames/frame-0072.h265 create mode 100644 samples/h265SampleFrames/frame-0073.h265 create mode 100644 samples/h265SampleFrames/frame-0074.h265 create mode 100644 samples/h265SampleFrames/frame-0075.h265 create mode 100644 samples/h265SampleFrames/frame-0076.h265 create mode 100644 samples/h265SampleFrames/frame-0077.h265 create mode 100644 samples/h265SampleFrames/frame-0078.h265 create mode 100644 samples/h265SampleFrames/frame-0079.h265 create mode 100644 samples/h265SampleFrames/frame-0080.h265 create mode 100644 samples/h265SampleFrames/frame-0081.h265 create mode 100644 samples/h265SampleFrames/frame-0082.h265 create mode 100644 samples/h265SampleFrames/frame-0083.h265 create mode 100644 samples/h265SampleFrames/frame-0084.h265 create mode 100644 samples/h265SampleFrames/frame-0085.h265 create mode 100644 samples/h265SampleFrames/frame-0086.h265 create mode 100644 samples/h265SampleFrames/frame-0087.h265 create mode 100644 samples/h265SampleFrames/frame-0088.h265 create mode 100644 samples/h265SampleFrames/frame-0089.h265 create mode 100644 samples/h265SampleFrames/frame-0090.h265 create mode 100644 samples/h265SampleFrames/frame-0091.h265 create mode 100644 samples/h265SampleFrames/frame-0092.h265 create mode 100644 samples/h265SampleFrames/frame-0093.h265 create mode 100644 samples/h265SampleFrames/frame-0094.h265 create mode 100644 samples/h265SampleFrames/frame-0095.h265 create mode 100644 samples/h265SampleFrames/frame-0096.h265 create mode 100644 samples/h265SampleFrames/frame-0097.h265 create mode 100644 samples/h265SampleFrames/frame-0098.h265 create mode 100644 samples/h265SampleFrames/frame-0099.h265 create mode 100644 samples/h265SampleFrames/frame-0100.h265 create mode 100644 samples/h265SampleFrames/frame-0101.h265 create mode 100644 samples/h265SampleFrames/frame-0102.h265 create mode 100644 samples/h265SampleFrames/frame-0103.h265 create mode 100644 samples/h265SampleFrames/frame-0104.h265 create mode 100644 samples/h265SampleFrames/frame-0105.h265 create mode 100644 samples/h265SampleFrames/frame-0106.h265 create mode 100644 samples/h265SampleFrames/frame-0107.h265 create mode 100644 samples/h265SampleFrames/frame-0108.h265 create mode 100644 samples/h265SampleFrames/frame-0109.h265 create mode 100644 samples/h265SampleFrames/frame-0110.h265 create mode 100644 samples/h265SampleFrames/frame-0111.h265 create mode 100644 samples/h265SampleFrames/frame-0112.h265 create mode 100644 samples/h265SampleFrames/frame-0113.h265 create mode 100644 samples/h265SampleFrames/frame-0114.h265 create mode 100644 samples/h265SampleFrames/frame-0115.h265 create mode 100644 samples/h265SampleFrames/frame-0116.h265 create mode 100644 samples/h265SampleFrames/frame-0117.h265 create mode 100644 samples/h265SampleFrames/frame-0118.h265 create mode 100644 samples/h265SampleFrames/frame-0119.h265 create mode 100644 samples/h265SampleFrames/frame-0120.h265 create mode 100644 samples/h265SampleFrames/frame-0121.h265 create mode 100644 samples/h265SampleFrames/frame-0122.h265 create mode 100644 samples/h265SampleFrames/frame-0123.h265 create mode 100644 samples/h265SampleFrames/frame-0124.h265 create mode 100644 samples/h265SampleFrames/frame-0125.h265 create mode 100644 samples/h265SampleFrames/frame-0126.h265 create mode 100644 samples/h265SampleFrames/frame-0127.h265 create mode 100644 samples/h265SampleFrames/frame-0128.h265 create mode 100644 samples/h265SampleFrames/frame-0129.h265 create mode 100644 samples/h265SampleFrames/frame-0130.h265 create mode 100644 samples/h265SampleFrames/frame-0131.h265 create mode 100644 samples/h265SampleFrames/frame-0132.h265 create mode 100644 samples/h265SampleFrames/frame-0133.h265 create mode 100644 samples/h265SampleFrames/frame-0134.h265 create mode 100644 samples/h265SampleFrames/frame-0135.h265 create mode 100644 samples/h265SampleFrames/frame-0136.h265 create mode 100644 samples/h265SampleFrames/frame-0137.h265 create mode 100644 samples/h265SampleFrames/frame-0138.h265 create mode 100644 samples/h265SampleFrames/frame-0139.h265 create mode 100644 samples/h265SampleFrames/frame-0140.h265 create mode 100644 samples/h265SampleFrames/frame-0141.h265 create mode 100644 samples/h265SampleFrames/frame-0142.h265 create mode 100644 samples/h265SampleFrames/frame-0143.h265 create mode 100644 samples/h265SampleFrames/frame-0144.h265 create mode 100644 samples/h265SampleFrames/frame-0145.h265 create mode 100644 samples/h265SampleFrames/frame-0146.h265 create mode 100644 samples/h265SampleFrames/frame-0147.h265 create mode 100644 samples/h265SampleFrames/frame-0148.h265 create mode 100644 samples/h265SampleFrames/frame-0149.h265 create mode 100644 samples/h265SampleFrames/frame-0150.h265 create mode 100644 samples/h265SampleFrames/frame-0151.h265 create mode 100644 samples/h265SampleFrames/frame-0152.h265 create mode 100644 samples/h265SampleFrames/frame-0153.h265 create mode 100644 samples/h265SampleFrames/frame-0154.h265 create mode 100644 samples/h265SampleFrames/frame-0155.h265 create mode 100644 samples/h265SampleFrames/frame-0156.h265 create mode 100644 samples/h265SampleFrames/frame-0157.h265 create mode 100644 samples/h265SampleFrames/frame-0158.h265 create mode 100644 samples/h265SampleFrames/frame-0159.h265 create mode 100644 samples/h265SampleFrames/frame-0160.h265 create mode 100644 samples/h265SampleFrames/frame-0161.h265 create mode 100644 samples/h265SampleFrames/frame-0162.h265 create mode 100644 samples/h265SampleFrames/frame-0163.h265 create mode 100644 samples/h265SampleFrames/frame-0164.h265 create mode 100644 samples/h265SampleFrames/frame-0165.h265 create mode 100644 samples/h265SampleFrames/frame-0166.h265 create mode 100644 samples/h265SampleFrames/frame-0167.h265 create mode 100644 samples/h265SampleFrames/frame-0168.h265 create mode 100644 samples/h265SampleFrames/frame-0169.h265 create mode 100644 samples/h265SampleFrames/frame-0170.h265 create mode 100644 samples/h265SampleFrames/frame-0171.h265 create mode 100644 samples/h265SampleFrames/frame-0172.h265 create mode 100644 samples/h265SampleFrames/frame-0173.h265 create mode 100644 samples/h265SampleFrames/frame-0174.h265 create mode 100644 samples/h265SampleFrames/frame-0175.h265 create mode 100644 samples/h265SampleFrames/frame-0176.h265 create mode 100644 samples/h265SampleFrames/frame-0177.h265 create mode 100644 samples/h265SampleFrames/frame-0178.h265 create mode 100644 samples/h265SampleFrames/frame-0179.h265 create mode 100644 samples/h265SampleFrames/frame-0180.h265 create mode 100644 samples/h265SampleFrames/frame-0181.h265 create mode 100644 samples/h265SampleFrames/frame-0182.h265 create mode 100644 samples/h265SampleFrames/frame-0183.h265 create mode 100644 samples/h265SampleFrames/frame-0184.h265 create mode 100644 samples/h265SampleFrames/frame-0185.h265 create mode 100644 samples/h265SampleFrames/frame-0186.h265 create mode 100644 samples/h265SampleFrames/frame-0187.h265 create mode 100644 samples/h265SampleFrames/frame-0188.h265 create mode 100644 samples/h265SampleFrames/frame-0189.h265 create mode 100644 samples/h265SampleFrames/frame-0190.h265 create mode 100644 samples/h265SampleFrames/frame-0191.h265 create mode 100644 samples/h265SampleFrames/frame-0192.h265 create mode 100644 samples/h265SampleFrames/frame-0193.h265 create mode 100644 samples/h265SampleFrames/frame-0194.h265 create mode 100644 samples/h265SampleFrames/frame-0195.h265 create mode 100644 samples/h265SampleFrames/frame-0196.h265 create mode 100644 samples/h265SampleFrames/frame-0197.h265 create mode 100644 samples/h265SampleFrames/frame-0198.h265 create mode 100644 samples/h265SampleFrames/frame-0199.h265 create mode 100644 samples/h265SampleFrames/frame-0200.h265 create mode 100644 samples/h265SampleFrames/frame-0201.h265 create mode 100644 samples/h265SampleFrames/frame-0202.h265 create mode 100644 samples/h265SampleFrames/frame-0203.h265 create mode 100644 samples/h265SampleFrames/frame-0204.h265 create mode 100644 samples/h265SampleFrames/frame-0205.h265 create mode 100644 samples/h265SampleFrames/frame-0206.h265 create mode 100644 samples/h265SampleFrames/frame-0207.h265 create mode 100644 samples/h265SampleFrames/frame-0208.h265 create mode 100644 samples/h265SampleFrames/frame-0209.h265 create mode 100644 samples/h265SampleFrames/frame-0210.h265 create mode 100644 samples/h265SampleFrames/frame-0211.h265 create mode 100644 samples/h265SampleFrames/frame-0212.h265 create mode 100644 samples/h265SampleFrames/frame-0213.h265 create mode 100644 samples/h265SampleFrames/frame-0214.h265 create mode 100644 samples/h265SampleFrames/frame-0215.h265 create mode 100644 samples/h265SampleFrames/frame-0216.h265 create mode 100644 samples/h265SampleFrames/frame-0217.h265 create mode 100644 samples/h265SampleFrames/frame-0218.h265 create mode 100644 samples/h265SampleFrames/frame-0219.h265 create mode 100644 samples/h265SampleFrames/frame-0220.h265 create mode 100644 samples/h265SampleFrames/frame-0221.h265 create mode 100644 samples/h265SampleFrames/frame-0222.h265 create mode 100644 samples/h265SampleFrames/frame-0223.h265 create mode 100644 samples/h265SampleFrames/frame-0224.h265 create mode 100644 samples/h265SampleFrames/frame-0225.h265 create mode 100644 samples/h265SampleFrames/frame-0226.h265 create mode 100644 samples/h265SampleFrames/frame-0227.h265 create mode 100644 samples/h265SampleFrames/frame-0228.h265 create mode 100644 samples/h265SampleFrames/frame-0229.h265 create mode 100644 samples/h265SampleFrames/frame-0230.h265 create mode 100644 samples/h265SampleFrames/frame-0231.h265 create mode 100644 samples/h265SampleFrames/frame-0232.h265 create mode 100644 samples/h265SampleFrames/frame-0233.h265 create mode 100644 samples/h265SampleFrames/frame-0234.h265 create mode 100644 samples/h265SampleFrames/frame-0235.h265 create mode 100644 samples/h265SampleFrames/frame-0236.h265 create mode 100644 samples/h265SampleFrames/frame-0237.h265 create mode 100644 samples/h265SampleFrames/frame-0238.h265 create mode 100644 samples/h265SampleFrames/frame-0239.h265 create mode 100644 samples/h265SampleFrames/frame-0240.h265 create mode 100644 samples/h265SampleFrames/frame-0241.h265 create mode 100644 samples/h265SampleFrames/frame-0242.h265 create mode 100644 samples/h265SampleFrames/frame-0243.h265 create mode 100644 samples/h265SampleFrames/frame-0244.h265 create mode 100644 samples/h265SampleFrames/frame-0245.h265 create mode 100644 samples/h265SampleFrames/frame-0246.h265 create mode 100644 samples/h265SampleFrames/frame-0247.h265 create mode 100644 samples/h265SampleFrames/frame-0248.h265 create mode 100644 samples/h265SampleFrames/frame-0249.h265 create mode 100644 samples/h265SampleFrames/frame-0250.h265 create mode 100644 samples/h265SampleFrames/frame-0251.h265 create mode 100644 samples/h265SampleFrames/frame-0252.h265 create mode 100644 samples/h265SampleFrames/frame-0253.h265 create mode 100644 samples/h265SampleFrames/frame-0254.h265 create mode 100644 samples/h265SampleFrames/frame-0255.h265 create mode 100644 samples/h265SampleFrames/frame-0256.h265 create mode 100644 samples/h265SampleFrames/frame-0257.h265 create mode 100644 samples/h265SampleFrames/frame-0258.h265 create mode 100644 samples/h265SampleFrames/frame-0259.h265 create mode 100644 samples/h265SampleFrames/frame-0260.h265 create mode 100644 samples/h265SampleFrames/frame-0261.h265 create mode 100644 samples/h265SampleFrames/frame-0262.h265 create mode 100644 samples/h265SampleFrames/frame-0263.h265 create mode 100644 samples/h265SampleFrames/frame-0264.h265 create mode 100644 samples/h265SampleFrames/frame-0265.h265 create mode 100644 samples/h265SampleFrames/frame-0266.h265 create mode 100644 samples/h265SampleFrames/frame-0267.h265 create mode 100644 samples/h265SampleFrames/frame-0268.h265 create mode 100644 samples/h265SampleFrames/frame-0269.h265 create mode 100644 samples/h265SampleFrames/frame-0270.h265 create mode 100644 samples/h265SampleFrames/frame-0271.h265 create mode 100644 samples/h265SampleFrames/frame-0272.h265 create mode 100644 samples/h265SampleFrames/frame-0273.h265 create mode 100644 samples/h265SampleFrames/frame-0274.h265 create mode 100644 samples/h265SampleFrames/frame-0275.h265 create mode 100644 samples/h265SampleFrames/frame-0276.h265 create mode 100644 samples/h265SampleFrames/frame-0277.h265 create mode 100644 samples/h265SampleFrames/frame-0278.h265 create mode 100644 samples/h265SampleFrames/frame-0279.h265 create mode 100644 samples/h265SampleFrames/frame-0280.h265 create mode 100644 samples/h265SampleFrames/frame-0281.h265 create mode 100644 samples/h265SampleFrames/frame-0282.h265 create mode 100644 samples/h265SampleFrames/frame-0283.h265 create mode 100644 samples/h265SampleFrames/frame-0284.h265 create mode 100644 samples/h265SampleFrames/frame-0285.h265 create mode 100644 samples/h265SampleFrames/frame-0286.h265 create mode 100644 samples/h265SampleFrames/frame-0287.h265 create mode 100644 samples/h265SampleFrames/frame-0288.h265 create mode 100644 samples/h265SampleFrames/frame-0289.h265 create mode 100644 samples/h265SampleFrames/frame-0290.h265 create mode 100644 samples/h265SampleFrames/frame-0291.h265 create mode 100644 samples/h265SampleFrames/frame-0292.h265 create mode 100644 samples/h265SampleFrames/frame-0293.h265 create mode 100644 samples/h265SampleFrames/frame-0294.h265 create mode 100644 samples/h265SampleFrames/frame-0295.h265 create mode 100644 samples/h265SampleFrames/frame-0296.h265 create mode 100644 samples/h265SampleFrames/frame-0297.h265 create mode 100644 samples/h265SampleFrames/frame-0298.h265 create mode 100644 samples/h265SampleFrames/frame-0299.h265 create mode 100644 samples/h265SampleFrames/frame-0300.h265 create mode 100644 samples/h265SampleFrames/frame-0301.h265 create mode 100644 samples/h265SampleFrames/frame-0302.h265 create mode 100644 samples/h265SampleFrames/frame-0303.h265 create mode 100644 samples/h265SampleFrames/frame-0304.h265 create mode 100644 samples/h265SampleFrames/frame-0305.h265 create mode 100644 samples/h265SampleFrames/frame-0306.h265 create mode 100644 samples/h265SampleFrames/frame-0307.h265 create mode 100644 samples/h265SampleFrames/frame-0308.h265 create mode 100644 samples/h265SampleFrames/frame-0309.h265 create mode 100644 samples/h265SampleFrames/frame-0310.h265 create mode 100644 samples/h265SampleFrames/frame-0311.h265 create mode 100644 samples/h265SampleFrames/frame-0312.h265 create mode 100644 samples/h265SampleFrames/frame-0313.h265 create mode 100644 samples/h265SampleFrames/frame-0314.h265 create mode 100644 samples/h265SampleFrames/frame-0315.h265 create mode 100644 samples/h265SampleFrames/frame-0316.h265 create mode 100644 samples/h265SampleFrames/frame-0317.h265 create mode 100644 samples/h265SampleFrames/frame-0318.h265 create mode 100644 samples/h265SampleFrames/frame-0319.h265 create mode 100644 samples/h265SampleFrames/frame-0320.h265 create mode 100644 samples/h265SampleFrames/frame-0321.h265 create mode 100644 samples/h265SampleFrames/frame-0322.h265 create mode 100644 samples/h265SampleFrames/frame-0323.h265 create mode 100644 samples/h265SampleFrames/frame-0324.h265 create mode 100644 samples/h265SampleFrames/frame-0325.h265 create mode 100644 samples/h265SampleFrames/frame-0326.h265 create mode 100644 samples/h265SampleFrames/frame-0327.h265 create mode 100644 samples/h265SampleFrames/frame-0328.h265 create mode 100644 samples/h265SampleFrames/frame-0329.h265 create mode 100644 samples/h265SampleFrames/frame-0330.h265 create mode 100644 samples/h265SampleFrames/frame-0331.h265 create mode 100644 samples/h265SampleFrames/frame-0332.h265 create mode 100644 samples/h265SampleFrames/frame-0333.h265 create mode 100644 samples/h265SampleFrames/frame-0334.h265 create mode 100644 samples/h265SampleFrames/frame-0335.h265 create mode 100644 samples/h265SampleFrames/frame-0336.h265 create mode 100644 samples/h265SampleFrames/frame-0337.h265 create mode 100644 samples/h265SampleFrames/frame-0338.h265 create mode 100644 samples/h265SampleFrames/frame-0339.h265 create mode 100644 samples/h265SampleFrames/frame-0340.h265 create mode 100644 samples/h265SampleFrames/frame-0341.h265 create mode 100644 samples/h265SampleFrames/frame-0342.h265 create mode 100644 samples/h265SampleFrames/frame-0343.h265 create mode 100644 samples/h265SampleFrames/frame-0344.h265 create mode 100644 samples/h265SampleFrames/frame-0345.h265 create mode 100644 samples/h265SampleFrames/frame-0346.h265 create mode 100644 samples/h265SampleFrames/frame-0347.h265 create mode 100644 samples/h265SampleFrames/frame-0348.h265 create mode 100644 samples/h265SampleFrames/frame-0349.h265 create mode 100644 samples/h265SampleFrames/frame-0350.h265 create mode 100644 samples/h265SampleFrames/frame-0351.h265 create mode 100644 samples/h265SampleFrames/frame-0352.h265 create mode 100644 samples/h265SampleFrames/frame-0353.h265 create mode 100644 samples/h265SampleFrames/frame-0354.h265 create mode 100644 samples/h265SampleFrames/frame-0355.h265 create mode 100644 samples/h265SampleFrames/frame-0356.h265 create mode 100644 samples/h265SampleFrames/frame-0357.h265 create mode 100644 samples/h265SampleFrames/frame-0358.h265 create mode 100644 samples/h265SampleFrames/frame-0359.h265 create mode 100644 samples/h265SampleFrames/frame-0360.h265 create mode 100644 samples/h265SampleFrames/frame-0361.h265 create mode 100644 samples/h265SampleFrames/frame-0362.h265 create mode 100644 samples/h265SampleFrames/frame-0363.h265 create mode 100644 samples/h265SampleFrames/frame-0364.h265 create mode 100644 samples/h265SampleFrames/frame-0365.h265 create mode 100644 samples/h265SampleFrames/frame-0366.h265 create mode 100644 samples/h265SampleFrames/frame-0367.h265 create mode 100644 samples/h265SampleFrames/frame-0368.h265 create mode 100644 samples/h265SampleFrames/frame-0369.h265 create mode 100644 samples/h265SampleFrames/frame-0370.h265 create mode 100644 samples/h265SampleFrames/frame-0371.h265 create mode 100644 samples/h265SampleFrames/frame-0372.h265 create mode 100644 samples/h265SampleFrames/frame-0373.h265 create mode 100644 samples/h265SampleFrames/frame-0374.h265 create mode 100644 samples/h265SampleFrames/frame-0375.h265 create mode 100644 samples/h265SampleFrames/frame-0376.h265 create mode 100644 samples/h265SampleFrames/frame-0377.h265 create mode 100644 samples/h265SampleFrames/frame-0378.h265 create mode 100644 samples/h265SampleFrames/frame-0379.h265 create mode 100644 samples/h265SampleFrames/frame-0380.h265 create mode 100644 samples/h265SampleFrames/frame-0381.h265 create mode 100644 samples/h265SampleFrames/frame-0382.h265 create mode 100644 samples/h265SampleFrames/frame-0383.h265 create mode 100644 samples/h265SampleFrames/frame-0384.h265 create mode 100644 samples/h265SampleFrames/frame-0385.h265 create mode 100644 samples/h265SampleFrames/frame-0386.h265 create mode 100644 samples/h265SampleFrames/frame-0387.h265 create mode 100644 samples/h265SampleFrames/frame-0388.h265 create mode 100644 samples/h265SampleFrames/frame-0389.h265 create mode 100644 samples/h265SampleFrames/frame-0390.h265 create mode 100644 samples/h265SampleFrames/frame-0391.h265 create mode 100644 samples/h265SampleFrames/frame-0392.h265 create mode 100644 samples/h265SampleFrames/frame-0393.h265 create mode 100644 samples/h265SampleFrames/frame-0394.h265 create mode 100644 samples/h265SampleFrames/frame-0395.h265 create mode 100644 samples/h265SampleFrames/frame-0396.h265 create mode 100644 samples/h265SampleFrames/frame-0397.h265 create mode 100644 samples/h265SampleFrames/frame-0398.h265 create mode 100644 samples/h265SampleFrames/frame-0399.h265 create mode 100644 samples/h265SampleFrames/frame-0400.h265 create mode 100644 samples/h265SampleFrames/frame-0401.h265 create mode 100644 samples/h265SampleFrames/frame-0402.h265 create mode 100644 samples/h265SampleFrames/frame-0403.h265 create mode 100644 samples/h265SampleFrames/frame-0404.h265 create mode 100644 samples/h265SampleFrames/frame-0405.h265 create mode 100644 samples/h265SampleFrames/frame-0406.h265 create mode 100644 samples/h265SampleFrames/frame-0407.h265 create mode 100644 samples/h265SampleFrames/frame-0408.h265 create mode 100644 samples/h265SampleFrames/frame-0409.h265 create mode 100644 samples/h265SampleFrames/frame-0410.h265 create mode 100644 samples/h265SampleFrames/frame-0411.h265 create mode 100644 samples/h265SampleFrames/frame-0412.h265 create mode 100644 samples/h265SampleFrames/frame-0413.h265 create mode 100644 samples/h265SampleFrames/frame-0414.h265 create mode 100644 samples/h265SampleFrames/frame-0415.h265 create mode 100644 samples/h265SampleFrames/frame-0416.h265 create mode 100644 samples/h265SampleFrames/frame-0417.h265 create mode 100644 samples/h265SampleFrames/frame-0418.h265 create mode 100644 samples/h265SampleFrames/frame-0419.h265 create mode 100644 samples/h265SampleFrames/frame-0420.h265 create mode 100644 samples/h265SampleFrames/frame-0421.h265 create mode 100644 samples/h265SampleFrames/frame-0422.h265 create mode 100644 samples/h265SampleFrames/frame-0423.h265 create mode 100644 samples/h265SampleFrames/frame-0424.h265 create mode 100644 samples/h265SampleFrames/frame-0425.h265 create mode 100644 samples/h265SampleFrames/frame-0426.h265 create mode 100644 samples/h265SampleFrames/frame-0427.h265 create mode 100644 samples/h265SampleFrames/frame-0428.h265 create mode 100644 samples/h265SampleFrames/frame-0429.h265 create mode 100644 samples/h265SampleFrames/frame-0430.h265 create mode 100644 samples/h265SampleFrames/frame-0431.h265 create mode 100644 samples/h265SampleFrames/frame-0432.h265 create mode 100644 samples/h265SampleFrames/frame-0433.h265 create mode 100644 samples/h265SampleFrames/frame-0434.h265 create mode 100644 samples/h265SampleFrames/frame-0435.h265 create mode 100644 samples/h265SampleFrames/frame-0436.h265 create mode 100644 samples/h265SampleFrames/frame-0437.h265 create mode 100644 samples/h265SampleFrames/frame-0438.h265 create mode 100644 samples/h265SampleFrames/frame-0439.h265 create mode 100644 samples/h265SampleFrames/frame-0440.h265 create mode 100644 samples/h265SampleFrames/frame-0441.h265 create mode 100644 samples/h265SampleFrames/frame-0442.h265 create mode 100644 samples/h265SampleFrames/frame-0443.h265 create mode 100644 samples/h265SampleFrames/frame-0444.h265 create mode 100644 samples/h265SampleFrames/frame-0445.h265 create mode 100644 samples/h265SampleFrames/frame-0446.h265 create mode 100644 samples/h265SampleFrames/frame-0447.h265 create mode 100644 samples/h265SampleFrames/frame-0448.h265 create mode 100644 samples/h265SampleFrames/frame-0449.h265 create mode 100644 samples/h265SampleFrames/frame-0450.h265 create mode 100644 samples/h265SampleFrames/frame-0451.h265 create mode 100644 samples/h265SampleFrames/frame-0452.h265 create mode 100644 samples/h265SampleFrames/frame-0453.h265 create mode 100644 samples/h265SampleFrames/frame-0454.h265 create mode 100644 samples/h265SampleFrames/frame-0455.h265 create mode 100644 samples/h265SampleFrames/frame-0456.h265 create mode 100644 samples/h265SampleFrames/frame-0457.h265 create mode 100644 samples/h265SampleFrames/frame-0458.h265 create mode 100644 samples/h265SampleFrames/frame-0459.h265 create mode 100644 samples/h265SampleFrames/frame-0460.h265 create mode 100644 samples/h265SampleFrames/frame-0461.h265 create mode 100644 samples/h265SampleFrames/frame-0462.h265 create mode 100644 samples/h265SampleFrames/frame-0463.h265 create mode 100644 samples/h265SampleFrames/frame-0464.h265 create mode 100644 samples/h265SampleFrames/frame-0465.h265 create mode 100644 samples/h265SampleFrames/frame-0466.h265 create mode 100644 samples/h265SampleFrames/frame-0467.h265 create mode 100644 samples/h265SampleFrames/frame-0468.h265 create mode 100644 samples/h265SampleFrames/frame-0469.h265 create mode 100644 samples/h265SampleFrames/frame-0470.h265 create mode 100644 samples/h265SampleFrames/frame-0471.h265 create mode 100644 samples/h265SampleFrames/frame-0472.h265 create mode 100644 samples/h265SampleFrames/frame-0473.h265 create mode 100644 samples/h265SampleFrames/frame-0474.h265 create mode 100644 samples/h265SampleFrames/frame-0475.h265 create mode 100644 samples/h265SampleFrames/frame-0476.h265 create mode 100644 samples/h265SampleFrames/frame-0477.h265 create mode 100644 samples/h265SampleFrames/frame-0478.h265 create mode 100644 samples/h265SampleFrames/frame-0479.h265 create mode 100644 samples/h265SampleFrames/frame-0480.h265 create mode 100644 samples/h265SampleFrames/frame-0481.h265 create mode 100644 samples/h265SampleFrames/frame-0482.h265 create mode 100644 samples/h265SampleFrames/frame-0483.h265 create mode 100644 samples/h265SampleFrames/frame-0484.h265 create mode 100644 samples/h265SampleFrames/frame-0485.h265 create mode 100644 samples/h265SampleFrames/frame-0486.h265 create mode 100644 samples/h265SampleFrames/frame-0487.h265 create mode 100644 samples/h265SampleFrames/frame-0488.h265 create mode 100644 samples/h265SampleFrames/frame-0489.h265 create mode 100644 samples/h265SampleFrames/frame-0490.h265 create mode 100644 samples/h265SampleFrames/frame-0491.h265 create mode 100644 samples/h265SampleFrames/frame-0492.h265 create mode 100644 samples/h265SampleFrames/frame-0493.h265 create mode 100644 samples/h265SampleFrames/frame-0494.h265 create mode 100644 samples/h265SampleFrames/frame-0495.h265 create mode 100644 samples/h265SampleFrames/frame-0496.h265 create mode 100644 samples/h265SampleFrames/frame-0497.h265 create mode 100644 samples/h265SampleFrames/frame-0498.h265 create mode 100644 samples/h265SampleFrames/frame-0499.h265 create mode 100644 samples/h265SampleFrames/frame-0500.h265 create mode 100644 samples/h265SampleFrames/frame-0501.h265 create mode 100644 samples/h265SampleFrames/frame-0502.h265 create mode 100644 samples/h265SampleFrames/frame-0503.h265 create mode 100644 samples/h265SampleFrames/frame-0504.h265 create mode 100644 samples/h265SampleFrames/frame-0505.h265 create mode 100644 samples/h265SampleFrames/frame-0506.h265 create mode 100644 samples/h265SampleFrames/frame-0507.h265 create mode 100644 samples/h265SampleFrames/frame-0508.h265 create mode 100644 samples/h265SampleFrames/frame-0509.h265 create mode 100644 samples/h265SampleFrames/frame-0510.h265 create mode 100644 samples/h265SampleFrames/frame-0511.h265 create mode 100644 samples/h265SampleFrames/frame-0512.h265 create mode 100644 samples/h265SampleFrames/frame-0513.h265 create mode 100644 samples/h265SampleFrames/frame-0514.h265 create mode 100644 samples/h265SampleFrames/frame-0515.h265 create mode 100644 samples/h265SampleFrames/frame-0516.h265 create mode 100644 samples/h265SampleFrames/frame-0517.h265 create mode 100644 samples/h265SampleFrames/frame-0518.h265 create mode 100644 samples/h265SampleFrames/frame-0519.h265 create mode 100644 samples/h265SampleFrames/frame-0520.h265 create mode 100644 samples/h265SampleFrames/frame-0521.h265 create mode 100644 samples/h265SampleFrames/frame-0522.h265 create mode 100644 samples/h265SampleFrames/frame-0523.h265 create mode 100644 samples/h265SampleFrames/frame-0524.h265 create mode 100644 samples/h265SampleFrames/frame-0525.h265 create mode 100644 samples/h265SampleFrames/frame-0526.h265 create mode 100644 samples/h265SampleFrames/frame-0527.h265 create mode 100644 samples/h265SampleFrames/frame-0528.h265 create mode 100644 samples/h265SampleFrames/frame-0529.h265 create mode 100644 samples/h265SampleFrames/frame-0530.h265 create mode 100644 samples/h265SampleFrames/frame-0531.h265 create mode 100644 samples/h265SampleFrames/frame-0532.h265 create mode 100644 samples/h265SampleFrames/frame-0533.h265 create mode 100644 samples/h265SampleFrames/frame-0534.h265 create mode 100644 samples/h265SampleFrames/frame-0535.h265 create mode 100644 samples/h265SampleFrames/frame-0536.h265 create mode 100644 samples/h265SampleFrames/frame-0537.h265 create mode 100644 samples/h265SampleFrames/frame-0538.h265 create mode 100644 samples/h265SampleFrames/frame-0539.h265 create mode 100644 samples/h265SampleFrames/frame-0540.h265 create mode 100644 samples/h265SampleFrames/frame-0541.h265 create mode 100644 samples/h265SampleFrames/frame-0542.h265 create mode 100644 samples/h265SampleFrames/frame-0543.h265 create mode 100644 samples/h265SampleFrames/frame-0544.h265 create mode 100644 samples/h265SampleFrames/frame-0545.h265 create mode 100644 samples/h265SampleFrames/frame-0546.h265 create mode 100644 samples/h265SampleFrames/frame-0547.h265 create mode 100644 samples/h265SampleFrames/frame-0548.h265 create mode 100644 samples/h265SampleFrames/frame-0549.h265 create mode 100644 samples/h265SampleFrames/frame-0550.h265 create mode 100644 samples/h265SampleFrames/frame-0551.h265 create mode 100644 samples/h265SampleFrames/frame-0552.h265 create mode 100644 samples/h265SampleFrames/frame-0553.h265 create mode 100644 samples/h265SampleFrames/frame-0554.h265 create mode 100644 samples/h265SampleFrames/frame-0555.h265 create mode 100644 samples/h265SampleFrames/frame-0556.h265 create mode 100644 samples/h265SampleFrames/frame-0557.h265 create mode 100644 samples/h265SampleFrames/frame-0558.h265 create mode 100644 samples/h265SampleFrames/frame-0559.h265 create mode 100644 samples/h265SampleFrames/frame-0560.h265 create mode 100644 samples/h265SampleFrames/frame-0561.h265 create mode 100644 samples/h265SampleFrames/frame-0562.h265 create mode 100644 samples/h265SampleFrames/frame-0563.h265 create mode 100644 samples/h265SampleFrames/frame-0564.h265 create mode 100644 samples/h265SampleFrames/frame-0565.h265 create mode 100644 samples/h265SampleFrames/frame-0566.h265 create mode 100644 samples/h265SampleFrames/frame-0567.h265 create mode 100644 samples/h265SampleFrames/frame-0568.h265 create mode 100644 samples/h265SampleFrames/frame-0569.h265 create mode 100644 samples/h265SampleFrames/frame-0570.h265 create mode 100644 samples/h265SampleFrames/frame-0571.h265 create mode 100644 samples/h265SampleFrames/frame-0572.h265 create mode 100644 samples/h265SampleFrames/frame-0573.h265 create mode 100644 samples/h265SampleFrames/frame-0574.h265 create mode 100644 samples/h265SampleFrames/frame-0575.h265 create mode 100644 samples/h265SampleFrames/frame-0576.h265 create mode 100644 samples/h265SampleFrames/frame-0577.h265 create mode 100644 samples/h265SampleFrames/frame-0578.h265 create mode 100644 samples/h265SampleFrames/frame-0579.h265 create mode 100644 samples/h265SampleFrames/frame-0580.h265 create mode 100644 samples/h265SampleFrames/frame-0581.h265 create mode 100644 samples/h265SampleFrames/frame-0582.h265 create mode 100644 samples/h265SampleFrames/frame-0583.h265 create mode 100644 samples/h265SampleFrames/frame-0584.h265 create mode 100644 samples/h265SampleFrames/frame-0585.h265 create mode 100644 samples/h265SampleFrames/frame-0586.h265 create mode 100644 samples/h265SampleFrames/frame-0587.h265 create mode 100644 samples/h265SampleFrames/frame-0588.h265 create mode 100644 samples/h265SampleFrames/frame-0589.h265 create mode 100644 samples/h265SampleFrames/frame-0590.h265 create mode 100644 samples/h265SampleFrames/frame-0591.h265 create mode 100644 samples/h265SampleFrames/frame-0592.h265 create mode 100644 samples/h265SampleFrames/frame-0593.h265 create mode 100644 samples/h265SampleFrames/frame-0594.h265 create mode 100644 samples/h265SampleFrames/frame-0595.h265 create mode 100644 samples/h265SampleFrames/frame-0596.h265 create mode 100644 samples/h265SampleFrames/frame-0597.h265 create mode 100644 samples/h265SampleFrames/frame-0598.h265 create mode 100644 samples/h265SampleFrames/frame-0599.h265 create mode 100644 samples/h265SampleFrames/frame-0600.h265 create mode 100644 samples/h265SampleFrames/frame-0601.h265 create mode 100644 samples/h265SampleFrames/frame-0602.h265 create mode 100644 samples/h265SampleFrames/frame-0603.h265 create mode 100644 samples/h265SampleFrames/frame-0604.h265 create mode 100644 samples/h265SampleFrames/frame-0605.h265 create mode 100644 samples/h265SampleFrames/frame-0606.h265 create mode 100644 samples/h265SampleFrames/frame-0607.h265 create mode 100644 samples/h265SampleFrames/frame-0608.h265 create mode 100644 samples/h265SampleFrames/frame-0609.h265 create mode 100644 samples/h265SampleFrames/frame-0610.h265 create mode 100644 samples/h265SampleFrames/frame-0611.h265 create mode 100644 samples/h265SampleFrames/frame-0612.h265 create mode 100644 samples/h265SampleFrames/frame-0613.h265 create mode 100644 samples/h265SampleFrames/frame-0614.h265 create mode 100644 samples/h265SampleFrames/frame-0615.h265 create mode 100644 samples/h265SampleFrames/frame-0616.h265 create mode 100644 samples/h265SampleFrames/frame-0617.h265 create mode 100644 samples/h265SampleFrames/frame-0618.h265 create mode 100644 samples/h265SampleFrames/frame-0619.h265 create mode 100644 samples/h265SampleFrames/frame-0620.h265 create mode 100644 samples/h265SampleFrames/frame-0621.h265 create mode 100644 samples/h265SampleFrames/frame-0622.h265 create mode 100644 samples/h265SampleFrames/frame-0623.h265 create mode 100644 samples/h265SampleFrames/frame-0624.h265 create mode 100644 samples/h265SampleFrames/frame-0625.h265 create mode 100644 samples/h265SampleFrames/frame-0626.h265 create mode 100644 samples/h265SampleFrames/frame-0627.h265 create mode 100644 samples/h265SampleFrames/frame-0628.h265 create mode 100644 samples/h265SampleFrames/frame-0629.h265 create mode 100644 samples/h265SampleFrames/frame-0630.h265 create mode 100644 samples/h265SampleFrames/frame-0631.h265 create mode 100644 samples/h265SampleFrames/frame-0632.h265 create mode 100644 samples/h265SampleFrames/frame-0633.h265 create mode 100644 samples/h265SampleFrames/frame-0634.h265 create mode 100644 samples/h265SampleFrames/frame-0635.h265 create mode 100644 samples/h265SampleFrames/frame-0636.h265 create mode 100644 samples/h265SampleFrames/frame-0637.h265 create mode 100644 samples/h265SampleFrames/frame-0638.h265 create mode 100644 samples/h265SampleFrames/frame-0639.h265 create mode 100644 samples/h265SampleFrames/frame-0640.h265 create mode 100644 samples/h265SampleFrames/frame-0641.h265 create mode 100644 samples/h265SampleFrames/frame-0642.h265 create mode 100644 samples/h265SampleFrames/frame-0643.h265 create mode 100644 samples/h265SampleFrames/frame-0644.h265 create mode 100644 samples/h265SampleFrames/frame-0645.h265 create mode 100644 samples/h265SampleFrames/frame-0646.h265 create mode 100644 samples/h265SampleFrames/frame-0647.h265 create mode 100644 samples/h265SampleFrames/frame-0648.h265 create mode 100644 samples/h265SampleFrames/frame-0649.h265 create mode 100644 samples/h265SampleFrames/frame-0650.h265 create mode 100644 samples/h265SampleFrames/frame-0651.h265 create mode 100644 samples/h265SampleFrames/frame-0652.h265 create mode 100644 samples/h265SampleFrames/frame-0653.h265 create mode 100644 samples/h265SampleFrames/frame-0654.h265 create mode 100644 samples/h265SampleFrames/frame-0655.h265 create mode 100644 samples/h265SampleFrames/frame-0656.h265 create mode 100644 samples/h265SampleFrames/frame-0657.h265 create mode 100644 samples/h265SampleFrames/frame-0658.h265 create mode 100644 samples/h265SampleFrames/frame-0659.h265 create mode 100644 samples/h265SampleFrames/frame-0660.h265 create mode 100644 samples/h265SampleFrames/frame-0661.h265 create mode 100644 samples/h265SampleFrames/frame-0662.h265 create mode 100644 samples/h265SampleFrames/frame-0663.h265 create mode 100644 samples/h265SampleFrames/frame-0664.h265 create mode 100644 samples/h265SampleFrames/frame-0665.h265 create mode 100644 samples/h265SampleFrames/frame-0666.h265 create mode 100644 samples/h265SampleFrames/frame-0667.h265 create mode 100644 samples/h265SampleFrames/frame-0668.h265 create mode 100644 samples/h265SampleFrames/frame-0669.h265 create mode 100644 samples/h265SampleFrames/frame-0670.h265 create mode 100644 samples/h265SampleFrames/frame-0671.h265 create mode 100644 samples/h265SampleFrames/frame-0672.h265 create mode 100644 samples/h265SampleFrames/frame-0673.h265 create mode 100644 samples/h265SampleFrames/frame-0674.h265 create mode 100644 samples/h265SampleFrames/frame-0675.h265 create mode 100644 samples/h265SampleFrames/frame-0676.h265 create mode 100644 samples/h265SampleFrames/frame-0677.h265 create mode 100644 samples/h265SampleFrames/frame-0678.h265 create mode 100644 samples/h265SampleFrames/frame-0679.h265 create mode 100644 samples/h265SampleFrames/frame-0680.h265 create mode 100644 samples/h265SampleFrames/frame-0681.h265 create mode 100644 samples/h265SampleFrames/frame-0682.h265 create mode 100644 samples/h265SampleFrames/frame-0683.h265 create mode 100644 samples/h265SampleFrames/frame-0684.h265 create mode 100644 samples/h265SampleFrames/frame-0685.h265 create mode 100644 samples/h265SampleFrames/frame-0686.h265 create mode 100644 samples/h265SampleFrames/frame-0687.h265 create mode 100644 samples/h265SampleFrames/frame-0688.h265 create mode 100644 samples/h265SampleFrames/frame-0689.h265 create mode 100644 samples/h265SampleFrames/frame-0690.h265 create mode 100644 samples/h265SampleFrames/frame-0691.h265 create mode 100644 samples/h265SampleFrames/frame-0692.h265 create mode 100644 samples/h265SampleFrames/frame-0693.h265 create mode 100644 samples/h265SampleFrames/frame-0694.h265 create mode 100644 samples/h265SampleFrames/frame-0695.h265 create mode 100644 samples/h265SampleFrames/frame-0696.h265 create mode 100644 samples/h265SampleFrames/frame-0697.h265 create mode 100644 samples/h265SampleFrames/frame-0698.h265 create mode 100644 samples/h265SampleFrames/frame-0699.h265 create mode 100644 samples/h265SampleFrames/frame-0700.h265 create mode 100644 samples/h265SampleFrames/frame-0701.h265 create mode 100644 samples/h265SampleFrames/frame-0702.h265 create mode 100644 samples/h265SampleFrames/frame-0703.h265 create mode 100644 samples/h265SampleFrames/frame-0704.h265 create mode 100644 samples/h265SampleFrames/frame-0705.h265 create mode 100644 samples/h265SampleFrames/frame-0706.h265 create mode 100644 samples/h265SampleFrames/frame-0707.h265 create mode 100644 samples/h265SampleFrames/frame-0708.h265 create mode 100644 samples/h265SampleFrames/frame-0709.h265 create mode 100644 samples/h265SampleFrames/frame-0710.h265 create mode 100644 samples/h265SampleFrames/frame-0711.h265 create mode 100644 samples/h265SampleFrames/frame-0712.h265 create mode 100644 samples/h265SampleFrames/frame-0713.h265 create mode 100644 samples/h265SampleFrames/frame-0714.h265 create mode 100644 samples/h265SampleFrames/frame-0715.h265 create mode 100644 samples/h265SampleFrames/frame-0716.h265 create mode 100644 samples/h265SampleFrames/frame-0717.h265 create mode 100644 samples/h265SampleFrames/frame-0718.h265 create mode 100644 samples/h265SampleFrames/frame-0719.h265 create mode 100644 samples/h265SampleFrames/frame-0720.h265 create mode 100644 samples/h265SampleFrames/frame-0721.h265 create mode 100644 samples/h265SampleFrames/frame-0722.h265 create mode 100644 samples/h265SampleFrames/frame-0723.h265 create mode 100644 samples/h265SampleFrames/frame-0724.h265 create mode 100644 samples/h265SampleFrames/frame-0725.h265 create mode 100644 samples/h265SampleFrames/frame-0726.h265 create mode 100644 samples/h265SampleFrames/frame-0727.h265 create mode 100644 samples/h265SampleFrames/frame-0728.h265 create mode 100644 samples/h265SampleFrames/frame-0729.h265 create mode 100644 samples/h265SampleFrames/frame-0730.h265 create mode 100644 samples/h265SampleFrames/frame-0731.h265 create mode 100644 samples/h265SampleFrames/frame-0732.h265 create mode 100644 samples/h265SampleFrames/frame-0733.h265 create mode 100644 samples/h265SampleFrames/frame-0734.h265 create mode 100644 samples/h265SampleFrames/frame-0735.h265 create mode 100644 samples/h265SampleFrames/frame-0736.h265 create mode 100644 samples/h265SampleFrames/frame-0737.h265 create mode 100644 samples/h265SampleFrames/frame-0738.h265 create mode 100644 samples/h265SampleFrames/frame-0739.h265 create mode 100644 samples/h265SampleFrames/frame-0740.h265 create mode 100644 samples/h265SampleFrames/frame-0741.h265 create mode 100644 samples/h265SampleFrames/frame-0742.h265 create mode 100644 samples/h265SampleFrames/frame-0743.h265 create mode 100644 samples/h265SampleFrames/frame-0744.h265 create mode 100644 samples/h265SampleFrames/frame-0745.h265 create mode 100644 samples/h265SampleFrames/frame-0746.h265 create mode 100644 samples/h265SampleFrames/frame-0747.h265 create mode 100644 samples/h265SampleFrames/frame-0748.h265 create mode 100644 samples/h265SampleFrames/frame-0749.h265 create mode 100644 samples/h265SampleFrames/frame-0750.h265 create mode 100644 samples/h265SampleFrames/frame-0751.h265 create mode 100644 samples/h265SampleFrames/frame-0752.h265 create mode 100644 samples/h265SampleFrames/frame-0753.h265 create mode 100644 samples/h265SampleFrames/frame-0754.h265 create mode 100644 samples/h265SampleFrames/frame-0755.h265 create mode 100644 samples/h265SampleFrames/frame-0756.h265 create mode 100644 samples/h265SampleFrames/frame-0757.h265 create mode 100644 samples/h265SampleFrames/frame-0758.h265 create mode 100644 samples/h265SampleFrames/frame-0759.h265 create mode 100644 samples/h265SampleFrames/frame-0760.h265 create mode 100644 samples/h265SampleFrames/frame-0761.h265 create mode 100644 samples/h265SampleFrames/frame-0762.h265 create mode 100644 samples/h265SampleFrames/frame-0763.h265 create mode 100644 samples/h265SampleFrames/frame-0764.h265 create mode 100644 samples/h265SampleFrames/frame-0765.h265 create mode 100644 samples/h265SampleFrames/frame-0766.h265 create mode 100644 samples/h265SampleFrames/frame-0767.h265 create mode 100644 samples/h265SampleFrames/frame-0768.h265 create mode 100644 samples/h265SampleFrames/frame-0769.h265 create mode 100644 samples/h265SampleFrames/frame-0770.h265 create mode 100644 samples/h265SampleFrames/frame-0771.h265 create mode 100644 samples/h265SampleFrames/frame-0772.h265 create mode 100644 samples/h265SampleFrames/frame-0773.h265 create mode 100644 samples/h265SampleFrames/frame-0774.h265 create mode 100644 samples/h265SampleFrames/frame-0775.h265 create mode 100644 samples/h265SampleFrames/frame-0776.h265 create mode 100644 samples/h265SampleFrames/frame-0777.h265 create mode 100644 samples/h265SampleFrames/frame-0778.h265 create mode 100644 samples/h265SampleFrames/frame-0779.h265 create mode 100644 samples/h265SampleFrames/frame-0780.h265 create mode 100644 samples/h265SampleFrames/frame-0781.h265 create mode 100644 samples/h265SampleFrames/frame-0782.h265 create mode 100644 samples/h265SampleFrames/frame-0783.h265 create mode 100644 samples/h265SampleFrames/frame-0784.h265 create mode 100644 samples/h265SampleFrames/frame-0785.h265 create mode 100644 samples/h265SampleFrames/frame-0786.h265 create mode 100644 samples/h265SampleFrames/frame-0787.h265 create mode 100644 samples/h265SampleFrames/frame-0788.h265 create mode 100644 samples/h265SampleFrames/frame-0789.h265 create mode 100644 samples/h265SampleFrames/frame-0790.h265 create mode 100644 samples/h265SampleFrames/frame-0791.h265 create mode 100644 samples/h265SampleFrames/frame-0792.h265 create mode 100644 samples/h265SampleFrames/frame-0793.h265 create mode 100644 samples/h265SampleFrames/frame-0794.h265 create mode 100644 samples/h265SampleFrames/frame-0795.h265 create mode 100644 samples/h265SampleFrames/frame-0796.h265 create mode 100644 samples/h265SampleFrames/frame-0797.h265 create mode 100644 samples/h265SampleFrames/frame-0798.h265 create mode 100644 samples/h265SampleFrames/frame-0799.h265 create mode 100644 samples/h265SampleFrames/frame-0800.h265 create mode 100644 samples/h265SampleFrames/frame-0801.h265 create mode 100644 samples/h265SampleFrames/frame-0802.h265 create mode 100644 samples/h265SampleFrames/frame-0803.h265 create mode 100644 samples/h265SampleFrames/frame-0804.h265 create mode 100644 samples/h265SampleFrames/frame-0805.h265 create mode 100644 samples/h265SampleFrames/frame-0806.h265 create mode 100644 samples/h265SampleFrames/frame-0807.h265 create mode 100644 samples/h265SampleFrames/frame-0808.h265 create mode 100644 samples/h265SampleFrames/frame-0809.h265 create mode 100644 samples/h265SampleFrames/frame-0810.h265 create mode 100644 samples/h265SampleFrames/frame-0811.h265 create mode 100644 samples/h265SampleFrames/frame-0812.h265 create mode 100644 samples/h265SampleFrames/frame-0813.h265 create mode 100644 samples/h265SampleFrames/frame-0814.h265 create mode 100644 samples/h265SampleFrames/frame-0815.h265 create mode 100644 samples/h265SampleFrames/frame-0816.h265 create mode 100644 samples/h265SampleFrames/frame-0817.h265 create mode 100644 samples/h265SampleFrames/frame-0818.h265 create mode 100644 samples/h265SampleFrames/frame-0819.h265 create mode 100644 samples/h265SampleFrames/frame-0820.h265 create mode 100644 samples/h265SampleFrames/frame-0821.h265 create mode 100644 samples/h265SampleFrames/frame-0822.h265 create mode 100644 samples/h265SampleFrames/frame-0823.h265 create mode 100644 samples/h265SampleFrames/frame-0824.h265 create mode 100644 samples/h265SampleFrames/frame-0825.h265 create mode 100644 samples/h265SampleFrames/frame-0826.h265 create mode 100644 samples/h265SampleFrames/frame-0827.h265 create mode 100644 samples/h265SampleFrames/frame-0828.h265 create mode 100644 samples/h265SampleFrames/frame-0829.h265 create mode 100644 samples/h265SampleFrames/frame-0830.h265 create mode 100644 samples/h265SampleFrames/frame-0831.h265 create mode 100644 samples/h265SampleFrames/frame-0832.h265 create mode 100644 samples/h265SampleFrames/frame-0833.h265 create mode 100644 samples/h265SampleFrames/frame-0834.h265 create mode 100644 samples/h265SampleFrames/frame-0835.h265 create mode 100644 samples/h265SampleFrames/frame-0836.h265 create mode 100644 samples/h265SampleFrames/frame-0837.h265 create mode 100644 samples/h265SampleFrames/frame-0838.h265 create mode 100644 samples/h265SampleFrames/frame-0839.h265 create mode 100644 samples/h265SampleFrames/frame-0840.h265 create mode 100644 samples/h265SampleFrames/frame-0841.h265 create mode 100644 samples/h265SampleFrames/frame-0842.h265 create mode 100644 samples/h265SampleFrames/frame-0843.h265 create mode 100644 samples/h265SampleFrames/frame-0844.h265 create mode 100644 samples/h265SampleFrames/frame-0845.h265 create mode 100644 samples/h265SampleFrames/frame-0846.h265 create mode 100644 samples/h265SampleFrames/frame-0847.h265 create mode 100644 samples/h265SampleFrames/frame-0848.h265 create mode 100644 samples/h265SampleFrames/frame-0849.h265 create mode 100644 samples/h265SampleFrames/frame-0850.h265 create mode 100644 samples/h265SampleFrames/frame-0851.h265 create mode 100644 samples/h265SampleFrames/frame-0852.h265 create mode 100644 samples/h265SampleFrames/frame-0853.h265 create mode 100644 samples/h265SampleFrames/frame-0854.h265 create mode 100644 samples/h265SampleFrames/frame-0855.h265 create mode 100644 samples/h265SampleFrames/frame-0856.h265 create mode 100644 samples/h265SampleFrames/frame-0857.h265 create mode 100644 samples/h265SampleFrames/frame-0858.h265 create mode 100644 samples/h265SampleFrames/frame-0859.h265 create mode 100644 samples/h265SampleFrames/frame-0860.h265 create mode 100644 samples/h265SampleFrames/frame-0861.h265 create mode 100644 samples/h265SampleFrames/frame-0862.h265 create mode 100644 samples/h265SampleFrames/frame-0863.h265 create mode 100644 samples/h265SampleFrames/frame-0864.h265 create mode 100644 samples/h265SampleFrames/frame-0865.h265 create mode 100644 samples/h265SampleFrames/frame-0866.h265 create mode 100644 samples/h265SampleFrames/frame-0867.h265 create mode 100644 samples/h265SampleFrames/frame-0868.h265 create mode 100644 samples/h265SampleFrames/frame-0869.h265 create mode 100644 samples/h265SampleFrames/frame-0870.h265 create mode 100644 samples/h265SampleFrames/frame-0871.h265 create mode 100644 samples/h265SampleFrames/frame-0872.h265 create mode 100644 samples/h265SampleFrames/frame-0873.h265 create mode 100644 samples/h265SampleFrames/frame-0874.h265 create mode 100644 samples/h265SampleFrames/frame-0875.h265 create mode 100644 samples/h265SampleFrames/frame-0876.h265 create mode 100644 samples/h265SampleFrames/frame-0877.h265 create mode 100644 samples/h265SampleFrames/frame-0878.h265 create mode 100644 samples/h265SampleFrames/frame-0879.h265 create mode 100644 samples/h265SampleFrames/frame-0880.h265 create mode 100644 samples/h265SampleFrames/frame-0881.h265 create mode 100644 samples/h265SampleFrames/frame-0882.h265 create mode 100644 samples/h265SampleFrames/frame-0883.h265 create mode 100644 samples/h265SampleFrames/frame-0884.h265 create mode 100644 samples/h265SampleFrames/frame-0885.h265 create mode 100644 samples/h265SampleFrames/frame-0886.h265 create mode 100644 samples/h265SampleFrames/frame-0887.h265 create mode 100644 samples/h265SampleFrames/frame-0888.h265 create mode 100644 samples/h265SampleFrames/frame-0889.h265 create mode 100644 samples/h265SampleFrames/frame-0890.h265 create mode 100644 samples/h265SampleFrames/frame-0891.h265 create mode 100644 samples/h265SampleFrames/frame-0892.h265 create mode 100644 samples/h265SampleFrames/frame-0893.h265 create mode 100644 samples/h265SampleFrames/frame-0894.h265 create mode 100644 samples/h265SampleFrames/frame-0895.h265 create mode 100644 samples/h265SampleFrames/frame-0896.h265 create mode 100644 samples/h265SampleFrames/frame-0897.h265 create mode 100644 samples/h265SampleFrames/frame-0898.h265 create mode 100644 samples/h265SampleFrames/frame-0899.h265 create mode 100644 samples/h265SampleFrames/frame-0900.h265 create mode 100644 samples/h265SampleFrames/frame-0901.h265 create mode 100644 samples/h265SampleFrames/frame-0902.h265 create mode 100644 samples/h265SampleFrames/frame-0903.h265 create mode 100644 samples/h265SampleFrames/frame-0904.h265 create mode 100644 samples/h265SampleFrames/frame-0905.h265 create mode 100644 samples/h265SampleFrames/frame-0906.h265 create mode 100644 samples/h265SampleFrames/frame-0907.h265 create mode 100644 samples/h265SampleFrames/frame-0908.h265 create mode 100644 samples/h265SampleFrames/frame-0909.h265 create mode 100644 samples/h265SampleFrames/frame-0910.h265 create mode 100644 samples/h265SampleFrames/frame-0911.h265 create mode 100644 samples/h265SampleFrames/frame-0912.h265 create mode 100644 samples/h265SampleFrames/frame-0913.h265 create mode 100644 samples/h265SampleFrames/frame-0914.h265 create mode 100644 samples/h265SampleFrames/frame-0915.h265 create mode 100644 samples/h265SampleFrames/frame-0916.h265 create mode 100644 samples/h265SampleFrames/frame-0917.h265 create mode 100644 samples/h265SampleFrames/frame-0918.h265 create mode 100644 samples/h265SampleFrames/frame-0919.h265 create mode 100644 samples/h265SampleFrames/frame-0920.h265 create mode 100644 samples/h265SampleFrames/frame-0921.h265 create mode 100644 samples/h265SampleFrames/frame-0922.h265 create mode 100644 samples/h265SampleFrames/frame-0923.h265 create mode 100644 samples/h265SampleFrames/frame-0924.h265 create mode 100644 samples/h265SampleFrames/frame-0925.h265 create mode 100644 samples/h265SampleFrames/frame-0926.h265 create mode 100644 samples/h265SampleFrames/frame-0927.h265 create mode 100644 samples/h265SampleFrames/frame-0928.h265 create mode 100644 samples/h265SampleFrames/frame-0929.h265 create mode 100644 samples/h265SampleFrames/frame-0930.h265 create mode 100644 samples/h265SampleFrames/frame-0931.h265 create mode 100644 samples/h265SampleFrames/frame-0932.h265 create mode 100644 samples/h265SampleFrames/frame-0933.h265 create mode 100644 samples/h265SampleFrames/frame-0934.h265 create mode 100644 samples/h265SampleFrames/frame-0935.h265 create mode 100644 samples/h265SampleFrames/frame-0936.h265 create mode 100644 samples/h265SampleFrames/frame-0937.h265 create mode 100644 samples/h265SampleFrames/frame-0938.h265 create mode 100644 samples/h265SampleFrames/frame-0939.h265 create mode 100644 samples/h265SampleFrames/frame-0940.h265 create mode 100644 samples/h265SampleFrames/frame-0941.h265 create mode 100644 samples/h265SampleFrames/frame-0942.h265 create mode 100644 samples/h265SampleFrames/frame-0943.h265 create mode 100644 samples/h265SampleFrames/frame-0944.h265 create mode 100644 samples/h265SampleFrames/frame-0945.h265 create mode 100644 samples/h265SampleFrames/frame-0946.h265 create mode 100644 samples/h265SampleFrames/frame-0947.h265 create mode 100644 samples/h265SampleFrames/frame-0948.h265 create mode 100644 samples/h265SampleFrames/frame-0949.h265 create mode 100644 samples/h265SampleFrames/frame-0950.h265 create mode 100644 samples/h265SampleFrames/frame-0951.h265 create mode 100644 samples/h265SampleFrames/frame-0952.h265 create mode 100644 samples/h265SampleFrames/frame-0953.h265 create mode 100644 samples/h265SampleFrames/frame-0954.h265 create mode 100644 samples/h265SampleFrames/frame-0955.h265 create mode 100644 samples/h265SampleFrames/frame-0956.h265 create mode 100644 samples/h265SampleFrames/frame-0957.h265 create mode 100644 samples/h265SampleFrames/frame-0958.h265 create mode 100644 samples/h265SampleFrames/frame-0959.h265 create mode 100644 samples/h265SampleFrames/frame-0960.h265 create mode 100644 samples/h265SampleFrames/frame-0961.h265 create mode 100644 samples/h265SampleFrames/frame-0962.h265 create mode 100644 samples/h265SampleFrames/frame-0963.h265 create mode 100644 samples/h265SampleFrames/frame-0964.h265 create mode 100644 samples/h265SampleFrames/frame-0965.h265 create mode 100644 samples/h265SampleFrames/frame-0966.h265 create mode 100644 samples/h265SampleFrames/frame-0967.h265 create mode 100644 samples/h265SampleFrames/frame-0968.h265 create mode 100644 samples/h265SampleFrames/frame-0969.h265 create mode 100644 samples/h265SampleFrames/frame-0970.h265 create mode 100644 samples/h265SampleFrames/frame-0971.h265 create mode 100644 samples/h265SampleFrames/frame-0972.h265 create mode 100644 samples/h265SampleFrames/frame-0973.h265 create mode 100644 samples/h265SampleFrames/frame-0974.h265 create mode 100644 samples/h265SampleFrames/frame-0975.h265 create mode 100644 samples/h265SampleFrames/frame-0976.h265 create mode 100644 samples/h265SampleFrames/frame-0977.h265 create mode 100644 samples/h265SampleFrames/frame-0978.h265 create mode 100644 samples/h265SampleFrames/frame-0979.h265 create mode 100644 samples/h265SampleFrames/frame-0980.h265 create mode 100644 samples/h265SampleFrames/frame-0981.h265 create mode 100644 samples/h265SampleFrames/frame-0982.h265 create mode 100644 samples/h265SampleFrames/frame-0983.h265 create mode 100644 samples/h265SampleFrames/frame-0984.h265 create mode 100644 samples/h265SampleFrames/frame-0985.h265 create mode 100644 samples/h265SampleFrames/frame-0986.h265 create mode 100644 samples/h265SampleFrames/frame-0987.h265 create mode 100644 samples/h265SampleFrames/frame-0988.h265 create mode 100644 samples/h265SampleFrames/frame-0989.h265 create mode 100644 samples/h265SampleFrames/frame-0990.h265 create mode 100644 samples/h265SampleFrames/frame-0991.h265 create mode 100644 samples/h265SampleFrames/frame-0992.h265 create mode 100644 samples/h265SampleFrames/frame-0993.h265 create mode 100644 samples/h265SampleFrames/frame-0994.h265 create mode 100644 samples/h265SampleFrames/frame-0995.h265 create mode 100644 samples/h265SampleFrames/frame-0996.h265 create mode 100644 samples/h265SampleFrames/frame-0997.h265 create mode 100644 samples/h265SampleFrames/frame-0998.h265 create mode 100644 samples/h265SampleFrames/frame-0999.h265 create mode 100644 samples/h265SampleFrames/frame-1000.h265 create mode 100644 samples/h265SampleFrames/frame-1001.h265 create mode 100644 samples/h265SampleFrames/frame-1002.h265 create mode 100644 samples/h265SampleFrames/frame-1003.h265 create mode 100644 samples/h265SampleFrames/frame-1004.h265 create mode 100644 samples/h265SampleFrames/frame-1005.h265 create mode 100644 samples/h265SampleFrames/frame-1006.h265 create mode 100644 samples/h265SampleFrames/frame-1007.h265 create mode 100644 samples/h265SampleFrames/frame-1008.h265 create mode 100644 samples/h265SampleFrames/frame-1009.h265 create mode 100644 samples/h265SampleFrames/frame-1010.h265 create mode 100644 samples/h265SampleFrames/frame-1011.h265 create mode 100644 samples/h265SampleFrames/frame-1012.h265 create mode 100644 samples/h265SampleFrames/frame-1013.h265 create mode 100644 samples/h265SampleFrames/frame-1014.h265 create mode 100644 samples/h265SampleFrames/frame-1015.h265 create mode 100644 samples/h265SampleFrames/frame-1016.h265 create mode 100644 samples/h265SampleFrames/frame-1017.h265 create mode 100644 samples/h265SampleFrames/frame-1018.h265 create mode 100644 samples/h265SampleFrames/frame-1019.h265 create mode 100644 samples/h265SampleFrames/frame-1020.h265 create mode 100644 samples/h265SampleFrames/frame-1021.h265 create mode 100644 samples/h265SampleFrames/frame-1022.h265 create mode 100644 samples/h265SampleFrames/frame-1023.h265 create mode 100644 samples/h265SampleFrames/frame-1024.h265 create mode 100644 samples/h265SampleFrames/frame-1025.h265 create mode 100644 samples/h265SampleFrames/frame-1026.h265 create mode 100644 samples/h265SampleFrames/frame-1027.h265 create mode 100644 samples/h265SampleFrames/frame-1028.h265 create mode 100644 samples/h265SampleFrames/frame-1029.h265 create mode 100644 samples/h265SampleFrames/frame-1030.h265 create mode 100644 samples/h265SampleFrames/frame-1031.h265 create mode 100644 samples/h265SampleFrames/frame-1032.h265 create mode 100644 samples/h265SampleFrames/frame-1033.h265 create mode 100644 samples/h265SampleFrames/frame-1034.h265 create mode 100644 samples/h265SampleFrames/frame-1035.h265 create mode 100644 samples/h265SampleFrames/frame-1036.h265 create mode 100644 samples/h265SampleFrames/frame-1037.h265 create mode 100644 samples/h265SampleFrames/frame-1038.h265 create mode 100644 samples/h265SampleFrames/frame-1039.h265 create mode 100644 samples/h265SampleFrames/frame-1040.h265 create mode 100644 samples/h265SampleFrames/frame-1041.h265 create mode 100644 samples/h265SampleFrames/frame-1042.h265 create mode 100644 samples/h265SampleFrames/frame-1043.h265 create mode 100644 samples/h265SampleFrames/frame-1044.h265 create mode 100644 samples/h265SampleFrames/frame-1045.h265 create mode 100644 samples/h265SampleFrames/frame-1046.h265 create mode 100644 samples/h265SampleFrames/frame-1047.h265 create mode 100644 samples/h265SampleFrames/frame-1048.h265 create mode 100644 samples/h265SampleFrames/frame-1049.h265 create mode 100644 samples/h265SampleFrames/frame-1050.h265 create mode 100644 samples/h265SampleFrames/frame-1051.h265 create mode 100644 samples/h265SampleFrames/frame-1052.h265 create mode 100644 samples/h265SampleFrames/frame-1053.h265 create mode 100644 samples/h265SampleFrames/frame-1054.h265 create mode 100644 samples/h265SampleFrames/frame-1055.h265 create mode 100644 samples/h265SampleFrames/frame-1056.h265 create mode 100644 samples/h265SampleFrames/frame-1057.h265 create mode 100644 samples/h265SampleFrames/frame-1058.h265 create mode 100644 samples/h265SampleFrames/frame-1059.h265 create mode 100644 samples/h265SampleFrames/frame-1060.h265 create mode 100644 samples/h265SampleFrames/frame-1061.h265 create mode 100644 samples/h265SampleFrames/frame-1062.h265 create mode 100644 samples/h265SampleFrames/frame-1063.h265 create mode 100644 samples/h265SampleFrames/frame-1064.h265 create mode 100644 samples/h265SampleFrames/frame-1065.h265 create mode 100644 samples/h265SampleFrames/frame-1066.h265 create mode 100644 samples/h265SampleFrames/frame-1067.h265 create mode 100644 samples/h265SampleFrames/frame-1068.h265 create mode 100644 samples/h265SampleFrames/frame-1069.h265 create mode 100644 samples/h265SampleFrames/frame-1070.h265 create mode 100644 samples/h265SampleFrames/frame-1071.h265 create mode 100644 samples/h265SampleFrames/frame-1072.h265 create mode 100644 samples/h265SampleFrames/frame-1073.h265 create mode 100644 samples/h265SampleFrames/frame-1074.h265 create mode 100644 samples/h265SampleFrames/frame-1075.h265 create mode 100644 samples/h265SampleFrames/frame-1076.h265 create mode 100644 samples/h265SampleFrames/frame-1077.h265 create mode 100644 samples/h265SampleFrames/frame-1078.h265 create mode 100644 samples/h265SampleFrames/frame-1079.h265 create mode 100644 samples/h265SampleFrames/frame-1080.h265 create mode 100644 samples/h265SampleFrames/frame-1081.h265 create mode 100644 samples/h265SampleFrames/frame-1082.h265 create mode 100644 samples/h265SampleFrames/frame-1083.h265 create mode 100644 samples/h265SampleFrames/frame-1084.h265 create mode 100644 samples/h265SampleFrames/frame-1085.h265 create mode 100644 samples/h265SampleFrames/frame-1086.h265 create mode 100644 samples/h265SampleFrames/frame-1087.h265 create mode 100644 samples/h265SampleFrames/frame-1088.h265 create mode 100644 samples/h265SampleFrames/frame-1089.h265 create mode 100644 samples/h265SampleFrames/frame-1090.h265 create mode 100644 samples/h265SampleFrames/frame-1091.h265 create mode 100644 samples/h265SampleFrames/frame-1092.h265 create mode 100644 samples/h265SampleFrames/frame-1093.h265 create mode 100644 samples/h265SampleFrames/frame-1094.h265 create mode 100644 samples/h265SampleFrames/frame-1095.h265 create mode 100644 samples/h265SampleFrames/frame-1096.h265 create mode 100644 samples/h265SampleFrames/frame-1097.h265 create mode 100644 samples/h265SampleFrames/frame-1098.h265 create mode 100644 samples/h265SampleFrames/frame-1099.h265 create mode 100644 samples/h265SampleFrames/frame-1100.h265 create mode 100644 samples/h265SampleFrames/frame-1101.h265 create mode 100644 samples/h265SampleFrames/frame-1102.h265 create mode 100644 samples/h265SampleFrames/frame-1103.h265 create mode 100644 samples/h265SampleFrames/frame-1104.h265 create mode 100644 samples/h265SampleFrames/frame-1105.h265 create mode 100644 samples/h265SampleFrames/frame-1106.h265 create mode 100644 samples/h265SampleFrames/frame-1107.h265 create mode 100644 samples/h265SampleFrames/frame-1108.h265 create mode 100644 samples/h265SampleFrames/frame-1109.h265 create mode 100644 samples/h265SampleFrames/frame-1110.h265 create mode 100644 samples/h265SampleFrames/frame-1111.h265 create mode 100644 samples/h265SampleFrames/frame-1112.h265 create mode 100644 samples/h265SampleFrames/frame-1113.h265 create mode 100644 samples/h265SampleFrames/frame-1114.h265 create mode 100644 samples/h265SampleFrames/frame-1115.h265 create mode 100644 samples/h265SampleFrames/frame-1116.h265 create mode 100644 samples/h265SampleFrames/frame-1117.h265 create mode 100644 samples/h265SampleFrames/frame-1118.h265 create mode 100644 samples/h265SampleFrames/frame-1119.h265 create mode 100644 samples/h265SampleFrames/frame-1120.h265 create mode 100644 samples/h265SampleFrames/frame-1121.h265 create mode 100644 samples/h265SampleFrames/frame-1122.h265 create mode 100644 samples/h265SampleFrames/frame-1123.h265 create mode 100644 samples/h265SampleFrames/frame-1124.h265 create mode 100644 samples/h265SampleFrames/frame-1125.h265 create mode 100644 samples/h265SampleFrames/frame-1126.h265 create mode 100644 samples/h265SampleFrames/frame-1127.h265 create mode 100644 samples/h265SampleFrames/frame-1128.h265 create mode 100644 samples/h265SampleFrames/frame-1129.h265 create mode 100644 samples/h265SampleFrames/frame-1130.h265 create mode 100644 samples/h265SampleFrames/frame-1131.h265 create mode 100644 samples/h265SampleFrames/frame-1132.h265 create mode 100644 samples/h265SampleFrames/frame-1133.h265 create mode 100644 samples/h265SampleFrames/frame-1134.h265 create mode 100644 samples/h265SampleFrames/frame-1135.h265 create mode 100644 samples/h265SampleFrames/frame-1136.h265 create mode 100644 samples/h265SampleFrames/frame-1137.h265 create mode 100644 samples/h265SampleFrames/frame-1138.h265 create mode 100644 samples/h265SampleFrames/frame-1139.h265 create mode 100644 samples/h265SampleFrames/frame-1140.h265 create mode 100644 samples/h265SampleFrames/frame-1141.h265 create mode 100644 samples/h265SampleFrames/frame-1142.h265 create mode 100644 samples/h265SampleFrames/frame-1143.h265 create mode 100644 samples/h265SampleFrames/frame-1144.h265 create mode 100644 samples/h265SampleFrames/frame-1145.h265 create mode 100644 samples/h265SampleFrames/frame-1146.h265 create mode 100644 samples/h265SampleFrames/frame-1147.h265 create mode 100644 samples/h265SampleFrames/frame-1148.h265 create mode 100644 samples/h265SampleFrames/frame-1149.h265 create mode 100644 samples/h265SampleFrames/frame-1150.h265 create mode 100644 samples/h265SampleFrames/frame-1151.h265 create mode 100644 samples/h265SampleFrames/frame-1152.h265 create mode 100644 samples/h265SampleFrames/frame-1153.h265 create mode 100644 samples/h265SampleFrames/frame-1154.h265 create mode 100644 samples/h265SampleFrames/frame-1155.h265 create mode 100644 samples/h265SampleFrames/frame-1156.h265 create mode 100644 samples/h265SampleFrames/frame-1157.h265 create mode 100644 samples/h265SampleFrames/frame-1158.h265 create mode 100644 samples/h265SampleFrames/frame-1159.h265 create mode 100644 samples/h265SampleFrames/frame-1160.h265 create mode 100644 samples/h265SampleFrames/frame-1161.h265 create mode 100644 samples/h265SampleFrames/frame-1162.h265 create mode 100644 samples/h265SampleFrames/frame-1163.h265 create mode 100644 samples/h265SampleFrames/frame-1164.h265 create mode 100644 samples/h265SampleFrames/frame-1165.h265 create mode 100644 samples/h265SampleFrames/frame-1166.h265 create mode 100644 samples/h265SampleFrames/frame-1167.h265 create mode 100644 samples/h265SampleFrames/frame-1168.h265 create mode 100644 samples/h265SampleFrames/frame-1169.h265 create mode 100644 samples/h265SampleFrames/frame-1170.h265 create mode 100644 samples/h265SampleFrames/frame-1171.h265 create mode 100644 samples/h265SampleFrames/frame-1172.h265 create mode 100644 samples/h265SampleFrames/frame-1173.h265 create mode 100644 samples/h265SampleFrames/frame-1174.h265 create mode 100644 samples/h265SampleFrames/frame-1175.h265 create mode 100644 samples/h265SampleFrames/frame-1176.h265 create mode 100644 samples/h265SampleFrames/frame-1177.h265 create mode 100644 samples/h265SampleFrames/frame-1178.h265 create mode 100644 samples/h265SampleFrames/frame-1179.h265 create mode 100644 samples/h265SampleFrames/frame-1180.h265 create mode 100644 samples/h265SampleFrames/frame-1181.h265 create mode 100644 samples/h265SampleFrames/frame-1182.h265 create mode 100644 samples/h265SampleFrames/frame-1183.h265 create mode 100644 samples/h265SampleFrames/frame-1184.h265 create mode 100644 samples/h265SampleFrames/frame-1185.h265 create mode 100644 samples/h265SampleFrames/frame-1186.h265 create mode 100644 samples/h265SampleFrames/frame-1187.h265 create mode 100644 samples/h265SampleFrames/frame-1188.h265 create mode 100644 samples/h265SampleFrames/frame-1189.h265 create mode 100644 samples/h265SampleFrames/frame-1190.h265 create mode 100644 samples/h265SampleFrames/frame-1191.h265 create mode 100644 samples/h265SampleFrames/frame-1192.h265 create mode 100644 samples/h265SampleFrames/frame-1193.h265 create mode 100644 samples/h265SampleFrames/frame-1194.h265 create mode 100644 samples/h265SampleFrames/frame-1195.h265 create mode 100644 samples/h265SampleFrames/frame-1196.h265 create mode 100644 samples/h265SampleFrames/frame-1197.h265 create mode 100644 samples/h265SampleFrames/frame-1198.h265 create mode 100644 samples/h265SampleFrames/frame-1199.h265 create mode 100644 samples/h265SampleFrames/frame-1200.h265 create mode 100644 samples/h265SampleFrames/frame-1201.h265 create mode 100644 samples/h265SampleFrames/frame-1202.h265 create mode 100644 samples/h265SampleFrames/frame-1203.h265 create mode 100644 samples/h265SampleFrames/frame-1204.h265 create mode 100644 samples/h265SampleFrames/frame-1205.h265 create mode 100644 samples/h265SampleFrames/frame-1206.h265 create mode 100644 samples/h265SampleFrames/frame-1207.h265 create mode 100644 samples/h265SampleFrames/frame-1208.h265 create mode 100644 samples/h265SampleFrames/frame-1209.h265 create mode 100644 samples/h265SampleFrames/frame-1210.h265 create mode 100644 samples/h265SampleFrames/frame-1211.h265 create mode 100644 samples/h265SampleFrames/frame-1212.h265 create mode 100644 samples/h265SampleFrames/frame-1213.h265 create mode 100644 samples/h265SampleFrames/frame-1214.h265 create mode 100644 samples/h265SampleFrames/frame-1215.h265 create mode 100644 samples/h265SampleFrames/frame-1216.h265 create mode 100644 samples/h265SampleFrames/frame-1217.h265 create mode 100644 samples/h265SampleFrames/frame-1218.h265 create mode 100644 samples/h265SampleFrames/frame-1219.h265 create mode 100644 samples/h265SampleFrames/frame-1220.h265 create mode 100644 samples/h265SampleFrames/frame-1221.h265 create mode 100644 samples/h265SampleFrames/frame-1222.h265 create mode 100644 samples/h265SampleFrames/frame-1223.h265 create mode 100644 samples/h265SampleFrames/frame-1224.h265 create mode 100644 samples/h265SampleFrames/frame-1225.h265 create mode 100644 samples/h265SampleFrames/frame-1226.h265 create mode 100644 samples/h265SampleFrames/frame-1227.h265 create mode 100644 samples/h265SampleFrames/frame-1228.h265 create mode 100644 samples/h265SampleFrames/frame-1229.h265 create mode 100644 samples/h265SampleFrames/frame-1230.h265 create mode 100644 samples/h265SampleFrames/frame-1231.h265 create mode 100644 samples/h265SampleFrames/frame-1232.h265 create mode 100644 samples/h265SampleFrames/frame-1233.h265 create mode 100644 samples/h265SampleFrames/frame-1234.h265 create mode 100644 samples/h265SampleFrames/frame-1235.h265 create mode 100644 samples/h265SampleFrames/frame-1236.h265 create mode 100644 samples/h265SampleFrames/frame-1237.h265 create mode 100644 samples/h265SampleFrames/frame-1238.h265 create mode 100644 samples/h265SampleFrames/frame-1239.h265 create mode 100644 samples/h265SampleFrames/frame-1240.h265 create mode 100644 samples/h265SampleFrames/frame-1241.h265 create mode 100644 samples/h265SampleFrames/frame-1242.h265 create mode 100644 samples/h265SampleFrames/frame-1243.h265 create mode 100644 samples/h265SampleFrames/frame-1244.h265 create mode 100644 samples/h265SampleFrames/frame-1245.h265 create mode 100644 samples/h265SampleFrames/frame-1246.h265 create mode 100644 samples/h265SampleFrames/frame-1247.h265 create mode 100644 samples/h265SampleFrames/frame-1248.h265 create mode 100644 samples/h265SampleFrames/frame-1249.h265 create mode 100644 samples/h265SampleFrames/frame-1250.h265 create mode 100644 samples/h265SampleFrames/frame-1251.h265 create mode 100644 samples/h265SampleFrames/frame-1252.h265 create mode 100644 samples/h265SampleFrames/frame-1253.h265 create mode 100644 samples/h265SampleFrames/frame-1254.h265 create mode 100644 samples/h265SampleFrames/frame-1255.h265 create mode 100644 samples/h265SampleFrames/frame-1256.h265 create mode 100644 samples/h265SampleFrames/frame-1257.h265 create mode 100644 samples/h265SampleFrames/frame-1258.h265 create mode 100644 samples/h265SampleFrames/frame-1259.h265 create mode 100644 samples/h265SampleFrames/frame-1260.h265 create mode 100644 samples/h265SampleFrames/frame-1261.h265 create mode 100644 samples/h265SampleFrames/frame-1262.h265 create mode 100644 samples/h265SampleFrames/frame-1263.h265 create mode 100644 samples/h265SampleFrames/frame-1264.h265 create mode 100644 samples/h265SampleFrames/frame-1265.h265 create mode 100644 samples/h265SampleFrames/frame-1266.h265 create mode 100644 samples/h265SampleFrames/frame-1267.h265 create mode 100644 samples/h265SampleFrames/frame-1268.h265 create mode 100644 samples/h265SampleFrames/frame-1269.h265 create mode 100644 samples/h265SampleFrames/frame-1270.h265 create mode 100644 samples/h265SampleFrames/frame-1271.h265 create mode 100644 samples/h265SampleFrames/frame-1272.h265 create mode 100644 samples/h265SampleFrames/frame-1273.h265 create mode 100644 samples/h265SampleFrames/frame-1274.h265 create mode 100644 samples/h265SampleFrames/frame-1275.h265 create mode 100644 samples/h265SampleFrames/frame-1276.h265 create mode 100644 samples/h265SampleFrames/frame-1277.h265 create mode 100644 samples/h265SampleFrames/frame-1278.h265 create mode 100644 samples/h265SampleFrames/frame-1279.h265 create mode 100644 samples/h265SampleFrames/frame-1280.h265 create mode 100644 samples/h265SampleFrames/frame-1281.h265 create mode 100644 samples/h265SampleFrames/frame-1282.h265 create mode 100644 samples/h265SampleFrames/frame-1283.h265 create mode 100644 samples/h265SampleFrames/frame-1284.h265 create mode 100644 samples/h265SampleFrames/frame-1285.h265 create mode 100644 samples/h265SampleFrames/frame-1286.h265 create mode 100644 samples/h265SampleFrames/frame-1287.h265 create mode 100644 samples/h265SampleFrames/frame-1288.h265 create mode 100644 samples/h265SampleFrames/frame-1289.h265 create mode 100644 samples/h265SampleFrames/frame-1290.h265 create mode 100644 samples/h265SampleFrames/frame-1291.h265 create mode 100644 samples/h265SampleFrames/frame-1292.h265 create mode 100644 samples/h265SampleFrames/frame-1293.h265 create mode 100644 samples/h265SampleFrames/frame-1294.h265 create mode 100644 samples/h265SampleFrames/frame-1295.h265 create mode 100644 samples/h265SampleFrames/frame-1296.h265 create mode 100644 samples/h265SampleFrames/frame-1297.h265 create mode 100644 samples/h265SampleFrames/frame-1298.h265 create mode 100644 samples/h265SampleFrames/frame-1299.h265 create mode 100644 samples/h265SampleFrames/frame-1300.h265 create mode 100644 samples/h265SampleFrames/frame-1301.h265 create mode 100644 samples/h265SampleFrames/frame-1302.h265 create mode 100644 samples/h265SampleFrames/frame-1303.h265 create mode 100644 samples/h265SampleFrames/frame-1304.h265 create mode 100644 samples/h265SampleFrames/frame-1305.h265 create mode 100644 samples/h265SampleFrames/frame-1306.h265 create mode 100644 samples/h265SampleFrames/frame-1307.h265 create mode 100644 samples/h265SampleFrames/frame-1308.h265 create mode 100644 samples/h265SampleFrames/frame-1309.h265 create mode 100644 samples/h265SampleFrames/frame-1310.h265 create mode 100644 samples/h265SampleFrames/frame-1311.h265 create mode 100644 samples/h265SampleFrames/frame-1312.h265 create mode 100644 samples/h265SampleFrames/frame-1313.h265 create mode 100644 samples/h265SampleFrames/frame-1314.h265 create mode 100644 samples/h265SampleFrames/frame-1315.h265 create mode 100644 samples/h265SampleFrames/frame-1316.h265 create mode 100644 samples/h265SampleFrames/frame-1317.h265 create mode 100644 samples/h265SampleFrames/frame-1318.h265 create mode 100644 samples/h265SampleFrames/frame-1319.h265 create mode 100644 samples/h265SampleFrames/frame-1320.h265 create mode 100644 samples/h265SampleFrames/frame-1321.h265 create mode 100644 samples/h265SampleFrames/frame-1322.h265 create mode 100644 samples/h265SampleFrames/frame-1323.h265 create mode 100644 samples/h265SampleFrames/frame-1324.h265 create mode 100644 samples/h265SampleFrames/frame-1325.h265 create mode 100644 samples/h265SampleFrames/frame-1326.h265 create mode 100644 samples/h265SampleFrames/frame-1327.h265 create mode 100644 samples/h265SampleFrames/frame-1328.h265 create mode 100644 samples/h265SampleFrames/frame-1329.h265 create mode 100644 samples/h265SampleFrames/frame-1330.h265 create mode 100644 samples/h265SampleFrames/frame-1331.h265 create mode 100644 samples/h265SampleFrames/frame-1332.h265 create mode 100644 samples/h265SampleFrames/frame-1333.h265 create mode 100644 samples/h265SampleFrames/frame-1334.h265 create mode 100644 samples/h265SampleFrames/frame-1335.h265 create mode 100644 samples/h265SampleFrames/frame-1336.h265 create mode 100644 samples/h265SampleFrames/frame-1337.h265 create mode 100644 samples/h265SampleFrames/frame-1338.h265 create mode 100644 samples/h265SampleFrames/frame-1339.h265 create mode 100644 samples/h265SampleFrames/frame-1340.h265 create mode 100644 samples/h265SampleFrames/frame-1341.h265 create mode 100644 samples/h265SampleFrames/frame-1342.h265 create mode 100644 samples/h265SampleFrames/frame-1343.h265 create mode 100644 samples/h265SampleFrames/frame-1344.h265 create mode 100644 samples/h265SampleFrames/frame-1345.h265 create mode 100644 samples/h265SampleFrames/frame-1346.h265 create mode 100644 samples/h265SampleFrames/frame-1347.h265 create mode 100644 samples/h265SampleFrames/frame-1348.h265 create mode 100644 samples/h265SampleFrames/frame-1349.h265 create mode 100644 samples/h265SampleFrames/frame-1350.h265 create mode 100644 samples/h265SampleFrames/frame-1351.h265 create mode 100644 samples/h265SampleFrames/frame-1352.h265 create mode 100644 samples/h265SampleFrames/frame-1353.h265 create mode 100644 samples/h265SampleFrames/frame-1354.h265 create mode 100644 samples/h265SampleFrames/frame-1355.h265 create mode 100644 samples/h265SampleFrames/frame-1356.h265 create mode 100644 samples/h265SampleFrames/frame-1357.h265 create mode 100644 samples/h265SampleFrames/frame-1358.h265 create mode 100644 samples/h265SampleFrames/frame-1359.h265 create mode 100644 samples/h265SampleFrames/frame-1360.h265 create mode 100644 samples/h265SampleFrames/frame-1361.h265 create mode 100644 samples/h265SampleFrames/frame-1362.h265 create mode 100644 samples/h265SampleFrames/frame-1363.h265 create mode 100644 samples/h265SampleFrames/frame-1364.h265 create mode 100644 samples/h265SampleFrames/frame-1365.h265 create mode 100644 samples/h265SampleFrames/frame-1366.h265 create mode 100644 samples/h265SampleFrames/frame-1367.h265 create mode 100644 samples/h265SampleFrames/frame-1368.h265 create mode 100644 samples/h265SampleFrames/frame-1369.h265 create mode 100644 samples/h265SampleFrames/frame-1370.h265 create mode 100644 samples/h265SampleFrames/frame-1371.h265 create mode 100644 samples/h265SampleFrames/frame-1372.h265 create mode 100644 samples/h265SampleFrames/frame-1373.h265 create mode 100644 samples/h265SampleFrames/frame-1374.h265 create mode 100644 samples/h265SampleFrames/frame-1375.h265 create mode 100644 samples/h265SampleFrames/frame-1376.h265 create mode 100644 samples/h265SampleFrames/frame-1377.h265 create mode 100644 samples/h265SampleFrames/frame-1378.h265 create mode 100644 samples/h265SampleFrames/frame-1379.h265 create mode 100644 samples/h265SampleFrames/frame-1380.h265 create mode 100644 samples/h265SampleFrames/frame-1381.h265 create mode 100644 samples/h265SampleFrames/frame-1382.h265 create mode 100644 samples/h265SampleFrames/frame-1383.h265 create mode 100644 samples/h265SampleFrames/frame-1384.h265 create mode 100644 samples/h265SampleFrames/frame-1385.h265 create mode 100644 samples/h265SampleFrames/frame-1386.h265 create mode 100644 samples/h265SampleFrames/frame-1387.h265 create mode 100644 samples/h265SampleFrames/frame-1388.h265 create mode 100644 samples/h265SampleFrames/frame-1389.h265 create mode 100644 samples/h265SampleFrames/frame-1390.h265 create mode 100644 samples/h265SampleFrames/frame-1391.h265 create mode 100644 samples/h265SampleFrames/frame-1392.h265 create mode 100644 samples/h265SampleFrames/frame-1393.h265 create mode 100644 samples/h265SampleFrames/frame-1394.h265 create mode 100644 samples/h265SampleFrames/frame-1395.h265 create mode 100644 samples/h265SampleFrames/frame-1396.h265 create mode 100644 samples/h265SampleFrames/frame-1397.h265 create mode 100644 samples/h265SampleFrames/frame-1398.h265 create mode 100644 samples/h265SampleFrames/frame-1399.h265 create mode 100644 samples/h265SampleFrames/frame-1400.h265 create mode 100644 samples/h265SampleFrames/frame-1401.h265 create mode 100644 samples/h265SampleFrames/frame-1402.h265 create mode 100644 samples/h265SampleFrames/frame-1403.h265 create mode 100644 samples/h265SampleFrames/frame-1404.h265 create mode 100644 samples/h265SampleFrames/frame-1405.h265 create mode 100644 samples/h265SampleFrames/frame-1406.h265 create mode 100644 samples/h265SampleFrames/frame-1407.h265 create mode 100644 samples/h265SampleFrames/frame-1408.h265 create mode 100644 samples/h265SampleFrames/frame-1409.h265 create mode 100644 samples/h265SampleFrames/frame-1410.h265 create mode 100644 samples/h265SampleFrames/frame-1411.h265 create mode 100644 samples/h265SampleFrames/frame-1412.h265 create mode 100644 samples/h265SampleFrames/frame-1413.h265 create mode 100644 samples/h265SampleFrames/frame-1414.h265 create mode 100644 samples/h265SampleFrames/frame-1415.h265 create mode 100644 samples/h265SampleFrames/frame-1416.h265 create mode 100644 samples/h265SampleFrames/frame-1417.h265 create mode 100644 samples/h265SampleFrames/frame-1418.h265 create mode 100644 samples/h265SampleFrames/frame-1419.h265 create mode 100644 samples/h265SampleFrames/frame-1420.h265 create mode 100644 samples/h265SampleFrames/frame-1421.h265 create mode 100644 samples/h265SampleFrames/frame-1422.h265 create mode 100644 samples/h265SampleFrames/frame-1423.h265 create mode 100644 samples/h265SampleFrames/frame-1424.h265 create mode 100644 samples/h265SampleFrames/frame-1425.h265 create mode 100644 samples/h265SampleFrames/frame-1426.h265 create mode 100644 samples/h265SampleFrames/frame-1427.h265 create mode 100644 samples/h265SampleFrames/frame-1428.h265 create mode 100644 samples/h265SampleFrames/frame-1429.h265 create mode 100644 samples/h265SampleFrames/frame-1430.h265 create mode 100644 samples/h265SampleFrames/frame-1431.h265 create mode 100644 samples/h265SampleFrames/frame-1432.h265 create mode 100644 samples/h265SampleFrames/frame-1433.h265 create mode 100644 samples/h265SampleFrames/frame-1434.h265 create mode 100644 samples/h265SampleFrames/frame-1435.h265 create mode 100644 samples/h265SampleFrames/frame-1436.h265 create mode 100644 samples/h265SampleFrames/frame-1437.h265 create mode 100644 samples/h265SampleFrames/frame-1438.h265 create mode 100644 samples/h265SampleFrames/frame-1439.h265 create mode 100644 samples/h265SampleFrames/frame-1440.h265 create mode 100644 samples/h265SampleFrames/frame-1441.h265 create mode 100644 samples/h265SampleFrames/frame-1442.h265 create mode 100644 samples/h265SampleFrames/frame-1443.h265 create mode 100644 samples/h265SampleFrames/frame-1444.h265 create mode 100644 samples/h265SampleFrames/frame-1445.h265 create mode 100644 samples/h265SampleFrames/frame-1446.h265 create mode 100644 samples/h265SampleFrames/frame-1447.h265 create mode 100644 samples/h265SampleFrames/frame-1448.h265 create mode 100644 samples/h265SampleFrames/frame-1449.h265 create mode 100644 samples/h265SampleFrames/frame-1450.h265 create mode 100644 samples/h265SampleFrames/frame-1451.h265 create mode 100644 samples/h265SampleFrames/frame-1452.h265 create mode 100644 samples/h265SampleFrames/frame-1453.h265 create mode 100644 samples/h265SampleFrames/frame-1454.h265 create mode 100644 samples/h265SampleFrames/frame-1455.h265 create mode 100644 samples/h265SampleFrames/frame-1456.h265 create mode 100644 samples/h265SampleFrames/frame-1457.h265 create mode 100644 samples/h265SampleFrames/frame-1458.h265 create mode 100644 samples/h265SampleFrames/frame-1459.h265 create mode 100644 samples/h265SampleFrames/frame-1460.h265 create mode 100644 samples/h265SampleFrames/frame-1461.h265 create mode 100644 samples/h265SampleFrames/frame-1462.h265 create mode 100644 samples/h265SampleFrames/frame-1463.h265 create mode 100644 samples/h265SampleFrames/frame-1464.h265 create mode 100644 samples/h265SampleFrames/frame-1465.h265 create mode 100644 samples/h265SampleFrames/frame-1466.h265 create mode 100644 samples/h265SampleFrames/frame-1467.h265 create mode 100644 samples/h265SampleFrames/frame-1468.h265 create mode 100644 samples/h265SampleFrames/frame-1469.h265 create mode 100644 samples/h265SampleFrames/frame-1470.h265 create mode 100644 samples/h265SampleFrames/frame-1471.h265 create mode 100644 samples/h265SampleFrames/frame-1472.h265 create mode 100644 samples/h265SampleFrames/frame-1473.h265 create mode 100644 samples/h265SampleFrames/frame-1474.h265 create mode 100644 samples/h265SampleFrames/frame-1475.h265 create mode 100644 samples/h265SampleFrames/frame-1476.h265 create mode 100644 samples/h265SampleFrames/frame-1477.h265 create mode 100644 samples/h265SampleFrames/frame-1478.h265 create mode 100644 samples/h265SampleFrames/frame-1479.h265 create mode 100644 samples/h265SampleFrames/frame-1480.h265 create mode 100644 samples/h265SampleFrames/frame-1481.h265 create mode 100644 samples/h265SampleFrames/frame-1482.h265 create mode 100644 samples/h265SampleFrames/frame-1483.h265 create mode 100644 samples/h265SampleFrames/frame-1484.h265 create mode 100644 samples/h265SampleFrames/frame-1485.h265 create mode 100644 samples/h265SampleFrames/frame-1486.h265 create mode 100644 samples/h265SampleFrames/frame-1487.h265 create mode 100644 samples/h265SampleFrames/frame-1488.h265 create mode 100644 samples/h265SampleFrames/frame-1489.h265 create mode 100644 samples/h265SampleFrames/frame-1490.h265 create mode 100644 samples/h265SampleFrames/frame-1491.h265 create mode 100644 samples/h265SampleFrames/frame-1492.h265 create mode 100644 samples/h265SampleFrames/frame-1493.h265 create mode 100644 samples/h265SampleFrames/frame-1494.h265 create mode 100644 samples/h265SampleFrames/frame-1495.h265 create mode 100644 samples/h265SampleFrames/frame-1496.h265 create mode 100644 samples/h265SampleFrames/frame-1497.h265 create mode 100644 samples/h265SampleFrames/frame-1498.h265 create mode 100644 samples/h265SampleFrames/frame-1499.h265 create mode 100644 samples/h265SampleFrames/frame-1500.h265 create mode 100644 samples/kvsWebRTCClientViewerGstSample.c create mode 100644 src/source/Rtp/Codecs/RtpH265Payloader.c create mode 100644 src/source/Rtp/Codecs/RtpH265Payloader.h diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b57473b076..9ed0f4c01c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ on: - master jobs: clang-format-check: - runs-on: macos-latest + runs-on: macos-12 steps: - name: Clone repository uses: actions/checkout@v3 @@ -78,6 +78,7 @@ jobs: runs-on: macos-13-xlarge env: AWS_KVS_LOG_LEVEL: 2 + PKG_CONFIG_PATH: /usr/local/opt/pkgconfig permissions: id-token: write contents: read @@ -89,6 +90,9 @@ jobs: with: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} aws-region: ${{ secrets.AWS_REGION }} + - name: Install dependencies + run: | + brew install gstreamer glib - name: Build repository run: | brew unlink openssl @@ -552,6 +556,7 @@ jobs: - name: Install dependencies shell: powershell run: | + choco install pkgconfiglite choco install gstreamer --version=1.16.3 choco install gstreamer-devel --version=1.16.3 curl.exe -o C:\tools\pthreads-w32-2-9-1-release.zip ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip @@ -580,7 +585,7 @@ jobs: shell: powershell run: | $env:Path += ';C:\webrtc\open-source\bin;C:\tools\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64;C:\webrtc\build' - & "C:\webrtc\build\tst\webrtc_client_test.exe" --gtest_filter="-SignalingApiFunctionalityTest.receivingIceConfigOffer_SlowClockSkew:SignalingApiFunctionalityTest.iceServerConfigRefreshConnectedAuthExpiration:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew_VerifyOffsetRemovedWhenClockFixed:DataChannelFunctionalityTest.*:DtlsApiTest.*:IceApiTest.*:IceFunctionalityTest.*:PeerConnectionFunctionalityTest.*:TurnConnectionFunctionalityTest.*:RtpFunctionalityTest.marshallUnmarshallH264Data:RtpFunctionalityTest.packingUnpackingVerifySameH264Frame:RtcpFunctionalityTest.onRtcpPacketCompound:RtcpFunctionalityTest.twcc3" + & "C:\webrtc\build\tst\webrtc_client_test.exe" --gtest_filter="-SignalingApiFunctionalityTest.receivingIceConfigOffer_SlowClockSkew:SignalingApiFunctionalityTest.iceServerConfigRefreshConnectedAuthExpiration:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew:SignalingApiFunctionalityTest.receivingIceConfigOffer_FastClockSkew_VerifyOffsetRemovedWhenClockFixed:DataChannelFunctionalityTest.*:DtlsApiTest.*:IceApiTest.*:IceFunctionalityTest.*:PeerConnectionFunctionalityTest.*:TurnConnectionFunctionalityTest.*:RtpFunctionalityTest.marshallUnmarshallH264Data:RtpFunctionalityTest.packingUnpackingVerifySameH264Frame:RtpFunctionalityTest.packingUnpackingVerifySameH265Frame:RtcpFunctionalityTest.onRtcpPacketCompound:RtcpFunctionalityTest.twcc3" # windows-msvc-mbedtls: # runs-on: windows-2022 # env: diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 50432e72be..767a567d67 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -13,6 +13,7 @@ jobs: runs-on: ubuntu-20.04 env: AWS_KVS_LOG_LEVEL: 2 + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} permissions: id-token: write contents: read diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml new file mode 100644 index 0000000000..cb08eefe65 --- /dev/null +++ b/.github/workflows/version-check.yml @@ -0,0 +1,42 @@ +name: Check Version Mismatch between PR branch and master. + +on: + pull_request: + branches: + - master + +jobs: + check-version: + runs-on: ubuntu-latest + steps: + - name: Checkout PR branch + uses: actions/checkout@v4 + + - name: Get version from PR + id: pr_version + run: | + PR_VERSION=$(grep -Po 'KinesisVideoWebRTCClient VERSION \K[0-9]+\.[0-9]+\.[0-9]+' CMakeLists.txt) + echo "PR_VERSION=$PR_VERSION" >> "$GITHUB_ENV" + echo "PR Version: $PR_VERSION" + + - name: Checkout master branch + uses: actions/checkout@v4 + with: + ref: master + + - name: Get version from master + id: master_version + run: | + MASTER_VERSION=$(grep -Po 'KinesisVideoWebRTCClient VERSION \K[0-9]+\.[0-9]+\.[0-9]+' CMakeLists.txt) + echo "MASTER_VERSION=$MASTER_VERSION" >> "$GITHUB_ENV" + echo "Master version: $MASTER_VERSION" + + - name: Compare versions + run: | + echo "Comparing PR Version: $PR_VERSION with Master Version: $MASTER_VERSION" + if [ "$MASTER_VERSION" == "$PR_VERSION" ]; then + echo "Please update the version in CMakeLists.txt file (project(KinesisVideoWebRTCClient VERSION LANGUAGES C). Any PR getting merged to master requires a version update" + exit 1 + else + echo "Version update detected." + fi \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e362f5fb6..bf6660454f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ include(CheckIncludeFiles) include(CheckFunctionExists) # The version MUST be updated before every release -project(KinesisVideoWebRTCClient VERSION 1.10.1 LANGUAGES C) +project(KinesisVideoWebRTCClient VERSION 1.10.2 LANGUAGES C) # User Flags option(ADD_MUCLIBC "Add -muclibc c flag" OFF) @@ -440,6 +440,7 @@ if (BUILD_SAMPLE) # copy sample frames to build folder, in case developer runs sample program with command `samples/kvsWebrtcClientMaster` from `build` dir. file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples/opusSampleFrames" DESTINATION .) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples/h264SampleFrames" DESTINATION .) + file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples/h265SampleFrames" DESTINATION .) add_subdirectory(samples) endif() diff --git a/README.md b/README.md index 51dca36d64..0a71be39af 100644 --- a/README.md +++ b/README.md @@ -268,15 +268,18 @@ After executing `make` you will have sample applications in your `build/samples` #### Sample: kvsWebrtcClientMaster This application sends sample H264/Opus frames (path: `/samples/h264SampleFrames` and `/samples/opusSampleFrames`) via WebRTC. It also accepts incoming audio, if enabled in the browser. When checked in the browser, it prints the metadata of the received audio packets in your terminal. To run: ```shell -./samples/kvsWebrtcClientMaster +./samples/kvsWebrtcClientMaster ``` To use the **Storage for WebRTC** feature, run the same command as above but with an additional command line arg to enable the feature. ```shell -./samples/kvsWebrtcClientMaster 1 +./samples/kvsWebrtcClientMaster 1 ``` +Allowed audio-codec: opus (default codec if nothing is specified) +Allowed video-codec: h264 (default codec if nothing is specified), h265 + #### Sample: kvsWebrtcClientMasterGstSample This application can send media from a GStreamer pipeline using test H264/Opus frames, device `autovideosrc` and `autoaudiosrc` input, or a received RTSP stream. It also will playback incoming audio via an `autoaudiosink`. To run: ```shell @@ -288,11 +291,59 @@ Pass the desired media and source type when running the sample. The mediaType ca ./samples/kvsWebrtcClientMasterGstSample rtspsrc rtsp:// ``` +Using the testsrc with audio and video-codec +```shell +./samples/kvsWebrtcClientMasterGstSample +``` + +Example: +```shell +./samples/kvsWebrtcClientMasterGstSample audio-video testsrc opus h264 +``` + +Allowed audio-codec: opus (default codec if nothing is specified) +Allowed video-codec: h264 (default codec if nothing is specified), h265 #### Sample: kvsWebrtcClientViewer -This application accepts sample H264/Opus frames and prints them out. To run: +This application accepts sample H264/Opus frames by default. You can use other supported codecs by changing the value for `videoTrack.codec` and `audioTrack.codec` in _Common.c_. By default, this sample only logs the size of the audio and video buffer it receives. To write these frames to a file using GStreamer, use the _kvsWebrtcClientViewerGstSample_ instead. + +To run: +```shell +./samples/kvsWebrtcClientViewer +``` + +Allowed audio-codec: opus (default codec if nothing is specified) +Allowed video-codec: h264 (default codec if nothing is specified), h265 + +#### Sample: kvsWebrtcClientViewerGstSample +This application is similar to the kvsWebrtcClientViewer. However, instead of just logging the media it receives, it generates a file using filesink. Make sure that your device has enough space to write the media to a file. You can also customize the receiving logic by modifying the functions in _GstAudioVideoReceiver.c_ + +To run: ```shell -./samples/kvsWebrtcClientViewer +./samples/kvsWebrtcClientViewerGstSample +``` + +Allowed audio-codec: opus (default codec if nothing is specified) +Allowed video-codec: h264 (default codec if nothing is specified), h265 + +##### Known issues: +Our GStreamer samples leverage [MatroskaMux](https://gstreamer.freedesktop.org/documentation/matroska/matroskamux.html?gi-language=c) to receive media from its peer and save it to a file. However, MatroskaMux is designed for scenarios where the media's format remains constant throughout streaming. When the media's format changes mid-streaming (referred to as "caps changes"), MatroskaMux encounters limitations, its behavior cannot be predicted and it may be unable to handle these changes, resulting in an error message like: + +```shell +matroskamux matroska-mux.c:1134:gst_matroska_mux_video_pad_setcaps: error: Caps changes are not supported by Matroska +``` +To address this issue, users need to adapt the pipeline to utilize components capable of managing dynamic changes in media formats. This might involve integrating different muxers or customizing the pipeline to handle caps changes effectively. + +#### Sample: Generating sample frames + +##### H264 +```shell +gst-launch-1.0 videotestsrc pattern=ball num-buffers=1500 ! timeoverlay ! videoconvert ! video/x-raw,format=I420,width=1280,height=720,framerate=25/1 ! queue ! x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! multifilesink location="frame-%04d.h264" index=1 +``` + +##### H265 +```shell +gst-launch-1.0 videotestsrc pattern=ball num-buffers=1500 ! timeoverlay ! videoconvert ! video/x-raw,format=I420,width=1280,height=720,framerate=25/1 ! queue ! x265enc speed-preset=veryfast bitrate=512 tune=zerolatency ! video/x-h265,stream-format=byte-stream,alignment=au,profile=main ! multifilesink location="frame-%04d.h265" index=1 ``` ### Viewing Master Samples @@ -350,6 +401,33 @@ createLwsIotCredentialProvider( freeIotCredentialProvider(&pSampleConfiguration->pCredentialProvider); ``` +## TWCC support + +Transport Wide Congestion Control (TWCC) is a mechanism in WebRTC designed to enhance the performance and reliability of real-time communication over the internet. TWCC addresses the challenges of network congestion by providing detailed feedback on the transport of packets across the network, enabling adaptive bitrate control and optimization of media streams in real-time. This feedback mechanism is crucial for maintaining high-quality audio and video communication, as it allows senders to adjust their transmission strategies based on comprehensive information about packet losses, delays, and jitter experienced across the entire transport path. + +The importance of TWCC in WebRTC lies in its ability to ensure efficient use of available network bandwidth while minimizing the negative impacts of network congestion. By monitoring the delivery of packets across the network, TWCC helps identify bottlenecks and adjust the media transmission rates accordingly. This dynamic approach to congestion control is essential for preventing degradation in call quality, such as pixelation, stuttering, or drops in audio and video streams, especially in environments with fluctuating network conditions. + +To learn more about TWCC, check [TWCC spec](https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01) + +### Enabling TWCC support + +TWCC is enabled by default in the SDK samples (via `pSampleConfiguration->enableTwcc`) flag. In order to disable it, set this flag to `FALSE`. + +```c +pSampleConfiguration->enableTwcc = FALSE; +``` + +If not using the samples directly, 2 things need to be done to set up Twcc: +1. Set the `disableSenderSideBandwidthEstimation` to `FALSE`: +```c +configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation = FALSE; +``` +2. Set the callback that will have the business logic to modify the bitrate based on packet loss information. The callback can be set using `peerConnectionOnSenderBandwidthEstimation()`: +```c +CHK_STATUS(peerConnectionOnSenderBandwidthEstimation(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, + sampleSenderBandwidthEstimationHandler)); +``` + ## Use Pre-generated Certificates The certificate generating function ([createCertificateAndKey](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/Dtls__openssl_8c.html#a451c48525b0c0a8919a880d6834c1f7f)) in createDtlsSession() can take between 5 - 15 seconds in low performance embedded devices, it is called for every peer connection creation when KVS WebRTC receives an offer. To avoid this extra start-up latency, certificate can be pre-generated and passed in when offer comes. @@ -434,6 +512,32 @@ To disable threadpool, run `cmake .. -DENABLE_KVS_THREADPOOL=OFF` Starting version 1.10.0, threadpool usage provides latency improvements in connection establishment. Note, that increasing the number of minimum threads can increase stack memory usage. So, ensure to increase with caution. +### Set up TWCC +TWCC is a mechanism in WebRTC designed to enhance the performance and reliability of real-time communication over the Internet. TWCC addresses the challenges of network congestion by providing detailed feedback on the transport of packets across the network, enabling adaptive bitrate control and optimization of +media streams in real-time. This feedback mechanism is crucial for maintaining high-quality audio and video communication, as it allows senders to adjust their transmission strategies based on comprehensive information about packet losses, delays, and jitter experienced across the entire transport path. +The importance of TWCC in WebRTC lies in its ability to ensure efficient use of available network bandwidth while minimizing the negative impacts of network congestion. By monitoring the delivery of packets across the network, TWCC helps identify bottlenecks and adjust the media transmission rates accordingly. +This dynamic approach to congestion control is essential for preventing degradation in call quality, such as pixelation, stuttering, or drops in audio and video streams, especially in environments with fluctuating network conditions. To learn more about TWCC, you can refer to the [RFC draft](https://datatracker.ietf.org/doc/html/draft-holmer-rmcat-transport-wide-cc-extensions-01) + +In order to enable TWCC usage in the SDK, 2 things need to be set up: + +1. Set the `disableSenderSideBandwidthEstimation` to FALSE. In our samples, the value is set using `enableTwcc` flag in `pSampleConfiguration` + +```c +pSampleConfiguration->enableTwcc = TRUE; // to enable TWCC +pSampleConfiguration->enableTwcc = FALSE; // to disable TWCC +configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation = !pSampleConfiguration->enableTwcc; +``` + +2. Set the callback that will have the business logic to modify the bitrate based on packet loss information. The callback can be set using `peerConnectionOnSenderBandwidthEstimation()`. + +```c +CHK_STATUS(peerConnectionOnSenderBandwidthEstimation(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, + sampleSenderBandwidthEstimationHandler)); +``` + +By default, our SDK enables TWCC listener. The SDK has a sample implementation to integrate TWCC into the Gstreamer pipeline via the `sampleSenderBandwidthEstimationHandler` callback. To get more details, look for this specific callback. + + ### Setting ICE related timeouts There are some default timeout values set for different steps in ICE in the [KvsRtcConfiguration](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/structKvsRtcConfiguration.html). These are configurable in the application. While the defaults are generous, there could be applications that might need more flexibility to improve chances of connection establishment because of poor network. diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 112c2c21d5..c37f243d0a 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -56,6 +56,7 @@ link_directories(${OPEN_SRC_INSTALL_PREFIX}/lib) # copy sample frames to this subproject build folder, in case developer runs sample program with command `kvsWebrtcClientMaster` from `build/samples` dir. file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/opusSampleFrames" DESTINATION .) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/h264SampleFrames" DESTINATION .) +file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/h265SampleFrames" DESTINATION .) add_executable( kvsWebrtcClientMaster @@ -78,6 +79,7 @@ if(GST_FOUND) add_executable( kvsWebrtcClientMasterGstSample Common.c + GstAudioVideoReceiver.c kvsWebrtcClientMasterGstSample.c ) target_link_libraries(kvsWebrtcClientMasterGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets) @@ -85,6 +87,18 @@ if(GST_FOUND) install(TARGETS kvsWebrtcClientMasterGstSample RUNTIME DESTINATION bin ) + + add_executable( + kvsWebrtcClientViewerGstSample + Common.c + GstAudioVideoReceiver.c + kvsWebRTCClientViewerGstSample.c + ) + target_link_libraries(kvsWebrtcClientViewerGstSample kvsWebrtcClient kvsWebrtcSignalingClient ${EXTRA_DEPS} ${GST_SAMPLE_LIBRARIES} kvsCommonLws kvspicUtils websockets) + + install(TARGETS kvsWebrtcClientViewerGstSample + RUNTIME DESTINATION bin + ) endif() install(TARGETS kvsWebrtcClientMaster kvsWebrtcClientViewer discoverNatBehavior diff --git a/samples/Common.c b/samples/Common.c index 2deb9d6175..913093dcab 100644 --- a/samples/Common.c +++ b/samples/Common.c @@ -145,6 +145,11 @@ STATUS handleAnswer(PSampleConfiguration pSampleConfiguration, PSampleStreamingS CHK_STATUS(deserializeSessionDescriptionInit(pSignalingMessage->payload, pSignalingMessage->payloadLen, &answerSessionDescriptionInit)); CHK_STATUS(setRemoteDescription(pSampleStreamingSession->pPeerConnection, &answerSessionDescriptionInit)); + // The audio video receive routine should be per streaming session + if (pSampleConfiguration->receiveAudioVideoSource != NULL) { + THREAD_CREATE(&pSampleStreamingSession->receiveAudioVideoSenderTid, pSampleConfiguration->receiveAudioVideoSource, + (PVOID) pSampleStreamingSession); + } CleanUp: CHK_LOG_ERR(retStatus); @@ -395,6 +400,10 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP // Set this to custom callback to enable filtering of interfaces configuration.kvsRtcConfiguration.iceSetInterfaceFilterFunc = NULL; + // disable TWCC + configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation = !(pSampleConfiguration->enableTwcc); + DLOGI("TWCC is : %s", configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation ? "Disabled" : "Enabled"); + // Set the ICE mode explicitly configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_ALL; @@ -531,8 +540,12 @@ STATUS createSampleStreamingSession(PSampleConfiguration pSampleConfiguration, P ATOMIC_STORE_BOOL(&pSampleStreamingSession->terminateFlag, FALSE); ATOMIC_STORE_BOOL(&pSampleStreamingSession->candidateGatheringDone, FALSE); - pSampleStreamingSession->peerConnectionMetrics.peerConnectionStats.peerConnectionStartTime = GETTIME() / HUNDREDS_OF_NANOS_IN_A_MILLISECOND; + + if (pSampleConfiguration->enableTwcc) { + pSampleStreamingSession->twccMetadata.updateLock = MUTEX_CREATE(TRUE); + } + CHK_STATUS(initializePeerConnection(pSampleConfiguration, &pSampleStreamingSession->pPeerConnection)); CHK_STATUS(peerConnectionOnIceCandidate(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, onIceCandidateHandler)); CHK_STATUS( @@ -544,13 +557,12 @@ STATUS createSampleStreamingSession(PSampleConfiguration pSampleConfiguration, P } #endif - // Declare that we support H264,Profile=42E01F,level-asymmetry-allowed=1,packetization-mode=1 and Opus - CHK_STATUS(addSupportedCodec(pSampleStreamingSession->pPeerConnection, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE)); - CHK_STATUS(addSupportedCodec(pSampleStreamingSession->pPeerConnection, RTC_CODEC_OPUS)); + CHK_STATUS(addSupportedCodec(pSampleStreamingSession->pPeerConnection, pSampleConfiguration->videoCodec)); + CHK_STATUS(addSupportedCodec(pSampleStreamingSession->pPeerConnection, pSampleConfiguration->audioCodec)); // Add a SendRecv Transceiver of type video videoTrack.kind = MEDIA_STREAM_TRACK_KIND_VIDEO; - videoTrack.codec = RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE; + videoTrack.codec = pSampleConfiguration->videoCodec; videoRtpTransceiverInit.direction = RTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV; STRCPY(videoTrack.streamId, "myKvsVideoStream"); STRCPY(videoTrack.trackId, "myVideoTrack"); @@ -562,7 +574,7 @@ STATUS createSampleStreamingSession(PSampleConfiguration pSampleConfiguration, P // Add a SendRecv Transceiver of type audio audioTrack.kind = MEDIA_STREAM_TRACK_KIND_AUDIO; - audioTrack.codec = RTC_CODEC_OPUS; + audioTrack.codec = pSampleConfiguration->audioCodec; audioRtpTransceiverInit.direction = RTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV; STRCPY(audioTrack.streamId, "myKvsVideoStream"); STRCPY(audioTrack.trackId, "myAudioTrack"); @@ -572,8 +584,10 @@ STATUS createSampleStreamingSession(PSampleConfiguration pSampleConfiguration, P CHK_STATUS(transceiverOnBandwidthEstimation(pSampleStreamingSession->pAudioRtcRtpTransceiver, (UINT64) pSampleStreamingSession, sampleBandwidthEstimationHandler)); // twcc bandwidth estimation - CHK_STATUS(peerConnectionOnSenderBandwidthEstimation(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, - sampleSenderBandwidthEstimationHandler)); + if (pSampleConfiguration->enableTwcc) { + CHK_STATUS(peerConnectionOnSenderBandwidthEstimation(pSampleStreamingSession->pPeerConnection, (UINT64) pSampleStreamingSession, + sampleSenderBandwidthEstimationHandler)); + } pSampleStreamingSession->startUpLatency = 0; CleanUp: @@ -624,6 +638,12 @@ STATUS freeSampleStreamingSession(PSampleStreamingSession* ppSampleStreamingSess } MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock); + if (pSampleConfiguration->enableTwcc) { + if (IS_VALID_MUTEX_VALUE(pSampleStreamingSession->twccMetadata.updateLock)) { + MUTEX_FREE(pSampleStreamingSession->twccMetadata.updateLock); + } + } + CHK_LOG_ERR(closePeerConnection(pSampleStreamingSession->pPeerConnection)); CHK_LOG_ERR(freePeerConnection(&pSampleStreamingSession->pPeerConnection)); SAFE_MEMFREE(pSampleStreamingSession); @@ -674,27 +694,61 @@ VOID sampleBandwidthEstimationHandler(UINT64 customData, DOUBLE maximumBitrate) DLOGV("received bitrate suggestion: %f", maximumBitrate); } +// Sample callback for TWCC. Average packet is calculated with exponential moving average (EMA). If average packet lost is <= 5%, +// the current bitrate is increased by 5%. If more than 5%, the current bitrate +// is reduced by percent lost. Bitrate update is allowed every second and is increased/decreased upto the limits VOID sampleSenderBandwidthEstimationHandler(UINT64 customData, UINT32 txBytes, UINT32 rxBytes, UINT32 txPacketsCnt, UINT32 rxPacketsCnt, UINT64 duration) { - UNUSED_PARAM(customData); UNUSED_PARAM(duration); - UNUSED_PARAM(rxBytes); - UNUSED_PARAM(txBytes); + UINT64 videoBitrate, audioBitrate; + UINT64 currentTimeMs, timeDiff; UINT32 lostPacketsCnt = txPacketsCnt - rxPacketsCnt; - UINT32 percentLost = lostPacketsCnt * 100 / txPacketsCnt; - UINT32 bitrate = 1024; - if (percentLost < 2) { - // increase encoder bitrate by 2 percent - bitrate *= 1.02f; - } else if (percentLost > 5) { - // decrease encoder bitrate by packet loss percent - bitrate *= (1.0f - percentLost / 100.0f); - } - // otherwise keep bitrate the same - - DLOGS("received sender bitrate estimation: suggested bitrate %u sent: %u bytes %u packets received: %u bytes %u packets in %lu msec, ", bitrate, - txBytes, txPacketsCnt, rxBytes, rxPacketsCnt, duration / 10000ULL); + DOUBLE percentLost = (DOUBLE) ((txPacketsCnt > 0) ? (lostPacketsCnt * 100 / txPacketsCnt) : 0.0); + SampleStreamingSession* pSampleStreamingSession = (SampleStreamingSession*) customData; + + if (pSampleStreamingSession == NULL) { + DLOGW("Invalid streaming session (NULL object)"); + return; + } + + // Calculate packet loss + pSampleStreamingSession->twccMetadata.averagePacketLoss = + EMA_ACCUMULATOR_GET_NEXT(pSampleStreamingSession->twccMetadata.averagePacketLoss, ((DOUBLE) percentLost)); + + currentTimeMs = GETTIME(); + timeDiff = currentTimeMs - pSampleStreamingSession->twccMetadata.lastAdjustmentTimeMs; + if (timeDiff < TWCC_BITRATE_ADJUSTMENT_INTERVAL_MS) { + // Too soon for another adjustment + return; + } + + MUTEX_LOCK(pSampleStreamingSession->twccMetadata.updateLock); + videoBitrate = pSampleStreamingSession->twccMetadata.currentVideoBitrate; + audioBitrate = pSampleStreamingSession->twccMetadata.currentAudioBitrate; + + if (pSampleStreamingSession->twccMetadata.averagePacketLoss <= 5) { + // increase encoder bitrate by 5 percent with a cap at MAX_BITRATE + videoBitrate = (UINT64) MIN(videoBitrate * 1.05, MAX_VIDEO_BITRATE_KBPS); + // increase encoder bitrate by 5 percent with a cap at MAX_BITRATE + audioBitrate = (UINT64) MIN(audioBitrate * 1.05, MAX_AUDIO_BITRATE_BPS); + } else { + // decrease encoder bitrate by average packet loss percent, with a cap at MIN_BITRATE + videoBitrate = (UINT64) MAX(videoBitrate * (1.0 - pSampleStreamingSession->twccMetadata.averagePacketLoss / 100.0), MIN_VIDEO_BITRATE_KBPS); + // decrease encoder bitrate by average packet loss percent, with a cap at MIN_BITRATE + audioBitrate = (UINT64) MAX(audioBitrate * (1.0 - pSampleStreamingSession->twccMetadata.averagePacketLoss / 100.0), MIN_AUDIO_BITRATE_BPS); + } + + // Update the session with the new bitrate and adjustment time + pSampleStreamingSession->twccMetadata.newVideoBitrate = videoBitrate; + pSampleStreamingSession->twccMetadata.newAudioBitrate = audioBitrate; + MUTEX_UNLOCK(pSampleStreamingSession->twccMetadata.updateLock); + + pSampleStreamingSession->twccMetadata.lastAdjustmentTimeMs = currentTimeMs; + + DLOGI("Adjustment made: average packet loss = %.2f%%, timediff: %llu ms", pSampleStreamingSession->twccMetadata.averagePacketLoss, timeDiff); + DLOGI("Suggested video bitrate %u kbps, suggested audio bitrate: %u bps, sent: %u bytes %u packets received: %u bytes %u packets in %lu msec", + videoBitrate, audioBitrate, txBytes, txPacketsCnt, rxBytes, rxPacketsCnt, duration / 10000ULL); } STATUS handleRemoteCandidate(PSampleStreamingSession pSampleStreamingSession, PSignalingMessage pSignalingMessage) @@ -848,6 +902,7 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE pSampleConfiguration->trickleIce = trickleIce; pSampleConfiguration->useTurn = useTurn; pSampleConfiguration->enableSendingMetricsToViewerViaDc = FALSE; + pSampleConfiguration->receiveAudioVideoSource = NULL; pSampleConfiguration->channelInfo.version = CHANNEL_INFO_CURRENT_VERSION; pSampleConfiguration->channelInfo.pChannelName = channelName; @@ -882,6 +937,9 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE pSampleConfiguration->pregenerateCertTimerId = MAX_UINT32; pSampleConfiguration->signalingClientMetrics.version = SIGNALING_CLIENT_METRICS_CURRENT_VERSION; + // Flag to enable/disable TWCC + pSampleConfiguration->enableTwcc = TRUE; + ATOMIC_STORE_BOOL(&pSampleConfiguration->interrupted, FALSE); ATOMIC_STORE_BOOL(&pSampleConfiguration->mediaThreadStarted, FALSE); ATOMIC_STORE_BOOL(&pSampleConfiguration->appTerminateFlag, FALSE); diff --git a/samples/GstAudioVideoReceiver.c b/samples/GstAudioVideoReceiver.c new file mode 100644 index 0000000000..83ca43d800 --- /dev/null +++ b/samples/GstAudioVideoReceiver.c @@ -0,0 +1,231 @@ +#include "Samples.h" +#include +#include +#include + +static UINT64 presentationTsIncrement = 0; +static BOOL eos = FALSE; + +// This function is a callback for the transceiver for every single video frame it receives +// It writes these frames to a buffer and pushes it to the `appsrcVideo` element of the +// GStreamer pipeline created in `receiveGstreamerAudioVideo`. Any logic to modify / discard the frames would go here +VOID onGstVideoFrameReady(UINT64 customData, PFrame pFrame) +{ + STATUS retStatus = STATUS_SUCCESS; + GstFlowReturn ret; + GstBuffer* buffer; + GstElement* appsrcVideo = (GstElement*) customData; + + CHK_ERR(appsrcVideo != NULL, STATUS_NULL_ARG, "appsrcVideo is null"); + CHK_ERR(pFrame != NULL, STATUS_NULL_ARG, "Video frame is null"); + + if (!eos) { + buffer = gst_buffer_new_allocate(NULL, pFrame->size, NULL); + CHK_ERR(buffer != NULL, STATUS_NULL_ARG, "Buffer allocation failed"); + + DLOGV("Video frame size: %d, presentationTs: %llu", pFrame->size, presentationTsIncrement); + + GST_BUFFER_DTS(buffer) = presentationTsIncrement; + GST_BUFFER_PTS(buffer) = presentationTsIncrement; + GST_BUFFER_DURATION(buffer) = gst_util_uint64_scale(1, GST_SECOND, DEFAULT_FPS_VALUE); + presentationTsIncrement += gst_util_uint64_scale(1, GST_SECOND, DEFAULT_FPS_VALUE); + + if (gst_buffer_fill(buffer, 0, pFrame->frameData, pFrame->size) != pFrame->size) { + DLOGE("Buffer fill did not complete correctly"); + gst_buffer_unref(buffer); + return; + } + g_signal_emit_by_name(appsrcVideo, "push-buffer", buffer, &ret); + if (ret != GST_FLOW_OK) { + DLOGE("Error pushing buffer: %s", gst_flow_get_name(ret)); + } + gst_buffer_unref(buffer); + } + +CleanUp: + return; +} + +// This function is a callback for the transceiver for every single audio frame it receives +// It writes these frames to a buffer and pushes it to the `appsrcAudio` element of the +// GStreamer pipeline created in `receiveGstreamerAudioVideo`. Any logic to modify / discard the frames would go here +VOID onGstAudioFrameReady(UINT64 customData, PFrame pFrame) +{ + STATUS retStatus = STATUS_SUCCESS; + GstFlowReturn ret; + GstBuffer* buffer; + GstElement* appsrcAudio = (GstElement*) customData; + + CHK_ERR(appsrcAudio != NULL, STATUS_NULL_ARG, "appsrcAudio is null"); + CHK_ERR(pFrame != NULL, STATUS_NULL_ARG, "Audio frame is null"); + + if (!eos) { + buffer = gst_buffer_new_allocate(NULL, pFrame->size, NULL); + CHK_ERR(buffer != NULL, STATUS_NULL_ARG, "Buffer allocation failed"); + + DLOGV("Audio frame size: %d, presentationTs: %llu", pFrame->size, presentationTsIncrement); + + GST_BUFFER_DTS(buffer) = presentationTsIncrement; + GST_BUFFER_PTS(buffer) = presentationTsIncrement; + GST_BUFFER_DURATION(buffer) = gst_util_uint64_scale(pFrame->size, GST_SECOND, DEFAULT_AUDIO_OPUS_BYTE_RATE); + + // TODO: check for other codecs once the pipelines are added + + if (gst_buffer_fill(buffer, 0, pFrame->frameData, pFrame->size) != pFrame->size) { + DLOGE("Buffer fill did not complete correctly"); + gst_buffer_unref(buffer); + return; + } + g_signal_emit_by_name(appsrcAudio, "push-buffer", buffer, &ret); + if (ret != GST_FLOW_OK) { + DLOGE("Error pushing buffer: %s", gst_flow_get_name(ret)); + } + gst_buffer_unref(buffer); + } +CleanUp: + return; +} + +// This function is a callback for the streaming session shutdown event. We send an eos to the pipeline to exit the +// application using this. +VOID onSampleStreamingSessionShutdown(UINT64 customData, PSampleStreamingSession pSampleStreamingSession) +{ + (void) (pSampleStreamingSession); + eos = TRUE; + GstElement* pipeline = (GstElement*) customData; + gst_element_send_event(pipeline, gst_event_new_eos()); +} + +PVOID receiveGstreamerAudioVideo(PVOID args) +{ + STATUS retStatus = STATUS_SUCCESS; + GstElement *pipeline = NULL, *appsrcAudio = NULL, *appsrcVideo = NULL; + GstBus* bus; + GstMessage* msg; + GError* error = NULL; + GstCaps *audiocaps, *videocaps; + PSampleStreamingSession pSampleStreamingSession = (PSampleStreamingSession) args; + PSampleConfiguration pSampleConfiguration = pSampleStreamingSession->pSampleConfiguration; + PCHAR roleType = "Viewer"; + gchar *videoDescription = "", *audioDescription = "", *audioVideoDescription; + + if (pSampleConfiguration->channelInfo.channelRoleType == SIGNALING_CHANNEL_ROLE_TYPE_MASTER) { + roleType = "Master"; + } + + CHK_ERR(gst_init_check(NULL, NULL, &error), STATUS_INTERNAL_ERROR, "[KVS GStreamer %s] GStreamer initialization failed"); + + CHK_ERR(pSampleStreamingSession != NULL, STATUS_NULL_ARG, "[KVS Gstreamer %s] Sample streaming session is NULL", roleType); + + // It is advised to modify the pipeline and the caps as per the source of the media. Customers can also modify this pipeline to + // use any other sinks instead of `filesink` like `autovideosink` and `autoaudiosink`. The existing pipelines are not complex enough to + // change caps and properties dynamically, more complex logic may be needed to support the same. + switch (pSampleStreamingSession->pVideoRtcRtpTransceiver->receiver.track.codec) { + case RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE: + videoDescription = "appsrc name=appsrc-video ! queue ! h264parse ! queue ! matroskamux name=mux ! queue ! filesink location=video.mkv"; + videocaps = gst_caps_new_simple("video/x-h264", "stream-format", G_TYPE_STRING, "byte-stream", "alignment", G_TYPE_STRING, "au", + "profile", G_TYPE_STRING, "baseline", "height", G_TYPE_INT, DEFAULT_VIDEO_HEIGHT_PIXELS, "width", + G_TYPE_INT, DEFAULT_VIDEO_WIDTH_PIXELS, NULL); + break; + + case RTC_CODEC_H265: + videoDescription = "appsrc name=appsrc-video ! queue ! h265parse ! queue ! matroskamux name=mux ! queue ! filesink location=video.mkv "; + videocaps = gst_caps_new_simple("video/x-h265", "stream-format", G_TYPE_STRING, "byte-stream", "alignment", G_TYPE_STRING, "au", + "profile", G_TYPE_STRING, "main", "height", G_TYPE_INT, DEFAULT_VIDEO_HEIGHT_PIXELS, "width", G_TYPE_INT, + DEFAULT_VIDEO_WIDTH_PIXELS, NULL); + break; + + // TODO: add a similar pipeline for VP8 + + default: + break; + } + + if (pSampleConfiguration->mediaType == SAMPLE_STREAMING_AUDIO_VIDEO) { + switch (pSampleStreamingSession->pAudioRtcRtpTransceiver->receiver.track.codec) { + case RTC_CODEC_OPUS: + audioDescription = "appsrc name=appsrc-audio ! queue ! opusparse ! queue ! mux."; + audiocaps = gst_caps_new_simple("audio/x-opus", "rate", G_TYPE_INT, DEFAULT_AUDIO_OPUS_SAMPLE_RATE_HZ, "channel-mapping-family", + G_TYPE_INT, 1, NULL); + break; + + // TODO: make sure this pipeline works. Figure out the caps for this + case RTC_CODEC_MULAW: + case RTC_CODEC_ALAW: + audioDescription = "appsrc name=appsrc-audio ! rawaudioparse ! decodebin ! autoaudiosink"; + break; + + default: + break; + } + } + + audioVideoDescription = g_strjoin(" ", videoDescription, audioDescription, NULL); + + pipeline = gst_parse_launch(audioVideoDescription, &error); + CHK_ERR(pipeline != NULL, STATUS_INTERNAL_ERROR, "[KVS GStreamer %s] Pipeline is NULL", roleType); + + appsrcVideo = gst_bin_get_by_name(GST_BIN(pipeline), "appsrc-video"); + CHK_ERR(appsrcVideo != NULL, STATUS_INTERNAL_ERROR, "[KVS GStreamer %s] Cannot find appsrc video", roleType); + CHK_STATUS(transceiverOnFrame(pSampleStreamingSession->pVideoRtcRtpTransceiver, (UINT64) appsrcVideo, onGstVideoFrameReady)); + g_object_set(G_OBJECT(appsrcVideo), "caps", videocaps, NULL); + gst_caps_unref(videocaps); + + if (pSampleConfiguration->mediaType == SAMPLE_STREAMING_AUDIO_VIDEO) { + appsrcAudio = gst_bin_get_by_name(GST_BIN(pipeline), "appsrc-audio"); + CHK_ERR(appsrcAudio != NULL, STATUS_INTERNAL_ERROR, "[KVS GStreamer %s] Cannot find appsrc audio", roleType); + CHK_STATUS(transceiverOnFrame(pSampleStreamingSession->pAudioRtcRtpTransceiver, (UINT64) appsrcAudio, onGstAudioFrameReady)); + g_object_set(G_OBJECT(appsrcAudio), "caps", audiocaps, NULL); + gst_caps_unref(audiocaps); + } + + CHK_STATUS(streamingSessionOnShutdown(pSampleStreamingSession, (UINT64) pipeline, onSampleStreamingSessionShutdown)); + g_free(audioVideoDescription); + + gst_element_set_state(pipeline, GST_STATE_PLAYING); + + /* block until error or EOS */ + bus = gst_element_get_bus(pipeline); + CHK_ERR(bus != NULL, STATUS_INTERNAL_ERROR, "[KVS GStreamer %s] Bus is NULL", roleType); + msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS); + + /* Free resources */ + if (msg != NULL) { + switch (GST_MESSAGE_TYPE(msg)) { + case GST_MESSAGE_ERROR: + gst_message_parse_error(msg, &error, NULL); + DLOGE("Error received: %s", error->message); + g_error_free(error); + break; + case GST_MESSAGE_EOS: + DLOGI("End of stream"); + break; + default: + break; + } + gst_message_unref(msg); + } + if (bus != NULL) { + gst_object_unref(bus); + } + if (pipeline != NULL) { + gst_element_set_state(pipeline, GST_STATE_NULL); + gst_object_unref(pipeline); + } + if (appsrcAudio != NULL) { + gst_object_unref(appsrcAudio); + } + if (appsrcVideo != NULL) { + gst_object_unref(appsrcVideo); + } + +CleanUp: + if (error != NULL) { + DLOGE("[KVS GStreamer %s] %s", roleType, error->message); + g_clear_error(&error); + } + + gst_deinit(); + + return (PVOID) (ULONG_PTR) retStatus; +} diff --git a/samples/Samples.h b/samples/Samples.h index 83644c0689..5b77ab9c1b 100644 --- a/samples/Samples.h +++ b/samples/Samples.h @@ -13,14 +13,29 @@ extern "C" { #include #define NUMBER_OF_H264_FRAME_FILES 1500 +#define NUMBER_OF_H265_FRAME_FILES 1500 #define NUMBER_OF_OPUS_FRAME_FILES 618 #define DEFAULT_FPS_VALUE 25 +#define DEFAULT_VIDEO_HEIGHT_PIXELS 720 +#define DEFAULT_VIDEO_WIDTH_PIXELS 1280 +#define DEFAULT_AUDIO_OPUS_CHANNELS 2 +#define DEFAULT_AUDIO_OPUS_SAMPLE_RATE_HZ 48000 +#define DEFAULT_AUDIO_OPUS_BITS_PER_SAMPLE 16 #define DEFAULT_MAX_CONCURRENT_STREAMING_SESSION 10 +#define AUDIO_CODEC_NAME_ALAW "alaw" +#define AUDIO_CODEC_NAME_MULAW "mulaw" +#define AUDIO_CODEC_NAME_OPUS "opus" +#define VIDEO_CODEC_NAME_H264 "h264" +#define VIDEO_CODEC_NAME_H265 "h265" +#define VIDEO_CODEC_NAME_VP8 "vp8" + #define SAMPLE_MASTER_CLIENT_ID "ProducerMaster" #define SAMPLE_VIEWER_CLIENT_ID "ConsumerViewer" #define SAMPLE_CHANNEL_NAME (PCHAR) "ScaryTestChannel" +#define DEFAULT_AUDIO_OPUS_BYTE_RATE (DEFAULT_AUDIO_OPUS_SAMPLE_RATE_HZ * DEFAULT_AUDIO_OPUS_CHANNELS * DEFAULT_AUDIO_OPUS_BITS_PER_SAMPLE) / 8 + #define SAMPLE_AUDIO_FRAME_DURATION (20 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) #define SAMPLE_STATS_DURATION (60 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define SAMPLE_VIDEO_FRAME_DURATION (HUNDREDS_OF_NANOS_IN_A_SECOND / DEFAULT_FPS_VALUE) @@ -72,6 +87,12 @@ extern "C" { #define MAX_SIGNALING_CLIENT_METRICS_MESSAGE_SIZE 736 // strlen(SIGNALING_CLIENT_METRICS_JSON_TEMPLATE) + 20 * 10 #define MAX_ICE_AGENT_METRICS_MESSAGE_SIZE 113 // strlen(ICE_AGENT_METRICS_JSON_TEMPLATE) + 20 * 2 +#define TWCC_BITRATE_ADJUSTMENT_INTERVAL_MS 1000 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND +#define MIN_VIDEO_BITRATE_KBPS 512 // Unit kilobits/sec. Value could change based on codec. +#define MAX_VIDEO_BITRATE_KBPS 2048000 // Unit kilobits/sec. Value could change based on codec. +#define MIN_AUDIO_BITRATE_BPS 4000 // Unit bits/sec. Value could change based on codec. +#define MAX_AUDIO_BITRATE_BPS 650000 // Unit bits/sec. Value could change based on codec. + typedef enum { SAMPLE_STREAMING_VIDEO_ONLY, SAMPLE_STREAMING_AUDIO_VIDEO, @@ -106,6 +127,8 @@ typedef struct { PCHAR pCaCertPath; PAwsCredentialProvider pCredentialProvider; SIGNALING_CLIENT_HANDLE signalingClientHandle; + RTC_CODEC audioCodec; + RTC_CODEC videoCodec; PBYTE pAudioFrameBuffer; UINT32 audioBufferSize; PBYTE pVideoFrameBuffer; @@ -148,6 +171,7 @@ typedef struct { PCHAR rtspUri; UINT32 logLevel; + BOOL enableTwcc; } SampleConfiguration, *PSampleConfiguration; typedef struct { @@ -167,6 +191,16 @@ typedef struct { typedef VOID (*StreamSessionShutdownCallback)(UINT64, PSampleStreamingSession); +typedef struct { + MUTEX updateLock; + UINT64 lastAdjustmentTimeMs; + UINT64 currentVideoBitrate; + UINT64 currentAudioBitrate; + UINT64 newVideoBitrate; + UINT64 newAudioBitrate; + DOUBLE averagePacketLoss; +} TwccMetadata, *PTwccMetadata; + struct __SampleStreamingSession { volatile ATOMIC_BOOL terminateFlag; volatile ATOMIC_BOOL candidateGatheringDone; @@ -186,6 +220,7 @@ struct __SampleStreamingSession { UINT64 startUpLatency; RtcMetricsHistory rtcMetricsHistory; BOOL remoteCanTrickleIce; + TwccMetadata twccMetadata; // this is called when the SampleStreamingSession is being freed StreamSessionShutdownCallback shutdownCallback; @@ -209,6 +244,7 @@ typedef struct { VOID sigintHandler(INT32); STATUS readFrameFromDisk(PBYTE, PUINT32, PCHAR); +PVOID receiveGstreamerAudioVideo(PVOID); PVOID sendVideoPackets(PVOID); PVOID sendAudioPackets(PVOID); PVOID sendGstreamerAudioVideo(PVOID); diff --git a/samples/h265SampleFrames/frame-0001.h265 b/samples/h265SampleFrames/frame-0001.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cfbfd2e5b640113c45c9630b581dea80ad239815 GIT binary patch literal 4162 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0002.h265 b/samples/h265SampleFrames/frame-0002.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5deb4d1dbc21c7840df25213f8b9dda673b0e10 GIT binary patch literal 329 zcmV-P0k-}C000330niD45W)o`1XP}af&vc$0fB*mz+!EEMkps)KEBfD)S58<($4|R zX@}c+V@q;!-v{+sglpBDBF;3Z^sm8!d62rIn|?uS$K*YeT~txn{G50s1pS~FA~geY zGwl$tFGnHBI>CMX5;e}$_9KIJwq-i4J70uN0V=9&* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0003.h265 b/samples/h265SampleFrames/frame-0003.h265 new file mode 100644 index 0000000000000000000000000000000000000000..370f1500b617e7e74263facd451d41891870b469 GIT binary patch literal 594 zcmV-Y0>Pfk1#j$Rq{>0f69LLjHLF`_~$;lbAi?(vWq6 zHcCOIx6%%mVBYlBnWyr$N|5&Q8t|L=xF|4pWsOSsI>;86Yao_S|`egtyv+Ryj=6yrjMZRFOL{W^sU1=y# zDSU~hyk5SuRl?^7O_Oy6Yr+(INHf&j%MpRT;L_3#t+yPcm-Tv||5_eX@3*CN!1dRS zKcLsKW$rjXbCe24r>lNZW*`hM?83OHHYnUPQcpnHIp!w>5xk^P(YF(LQ7XiF4mk?( z@|S=NMFx<4PMdbpP>?$nkkBW>jj2+O-%@T!vi9?0-_`qZp;rr~kUm8zLyEzsOS5_H zWO>`wFS`yF&&p9Q=}-Uw0{~D!`AtMD8@@GfSrp99Bs_o2+jLl;z{#Pf&C|4olDRpBc?`V}?vU(oE}+^8fB+ZJ&OiVI?oEIIH(*$TnHyzkeXyd5X7#StzMAYN5~=^#RNxmd gN{OXAqvi#G1|$Fg67T>3GoSzfVL$)?kbnRZ&_A~vumAu6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0004.h265 b/samples/h265SampleFrames/frame-0004.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0f0e668835119a658c51222025270cbe632ba0ed GIT binary patch literal 1154 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0006.h265 b/samples/h265SampleFrames/frame-0006.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5b1eade0c0a254e663cffcc50ea0945fd4eeaa1 GIT binary patch literal 1382 zcmV-s1)2H)000330njP`)I$OsFjjV)0H7!c1&)D`1_6L@QpBjl`qhN^0j4O;O;grh zo=Y6ScH=BX3ifqN%r{#wr+iI`CqXisFgW=w$Ee+TXe?c7*p^?k)*umj2A?f}<7Ie( z@OgNB+qI`D8WLx)CgnB${oiD*LS9YJf0CZ*szD`xAUOFW4=fXU4vAr4hl3WtG;5-g zx;@+cp`ekv&J1MEvU+B}^eX)kE^AyQn9IiVa#!nP!(KLQF2_%*#xc`U+ z2?MVYs?oD^Q$k7b!#t17TZHCz$2{WI3AO|o?P+^2l!GE$Dy;rZ)2HMVMJ?_3dHKq{y>n)`!bm-k&?J3=PQ>6!x7c+;Tb1@nmz3|PduQd1mU%tHk>fk z$)uw<)>^dl*wPy8h{H#!&K_(zm?HhvC>`g?adMrr>_piYSw>WRpLh^SU_OjDh>|jN zk=!k@ZV|ybtTEq}1?XObIr2K`;AA$W#Dn5BC?54k>Xa+qQlq{zpYa07BMLTSmPg0f zJFcIcjWdOjD=4(5z4h*SsY+IB@6Iux&_b)P4o!%Wd-Q1`GHtFOMg0DpYS5hSo21n0 z0sw5T5I5>|;@nX8VGjX)wBTozuE>DQ4bQP2_w=d;q*Ocz@^ZqA1}QH4UXNHP)Gh6L zbxBJ=ZillqTkwaZVW3sT~Z!e0G(+DsgMcId$G`Cb)%W zHq+iQVYcqHpwSuC5@GG3lZXpmj@wohz4Ku^>M#uRGGmqnOv74mEU5k9{Ft+I>&&sy zg{uu{eVA1kbB(0u3w{qsMux)yArpY3Jav352twr6<&cE=^I*=`=r!E4-~6b{o39!^ z-YhH0qQ;99t+{fJsVjbx#on$Hfq(j1#;W66aq)p-`6B|rcF|L^+y(pT_5|M|^k639YN zxw_3(kI1LNF$|~kghTpDh#s@@YSh2LCCY+m01iM*?fiXSem5b!aA4d-@F|2Q?K-Qh zD|B8K4j0nD?GmPlec;1ae}?28*<-w3CJ1JR5X@%D+{OeJg%%*xuT|AX(y7+7!8BZFi6Ov+h4zw-Xlv=>&N;Y9Tt z+*|@Q@iGs+H{Q-h4)c0D8BQy5@%r$@~^@; z5ix~dS#voZ`oY4a=+;I_E6$@JThArsO#0S_fNa9Dr+XamZ|h10<;|=pMA9m9z!etT zQU0{`|Nj=KIhs5T{!Zjz6UMVI$N?_^2|HJ!2(EYI#_@Y?ke(0&E0_|je5mH?nd9hq orYK1dzi~cZQYj^>ic!jl2alfiJfHvoIiLUlbHD%q^nd^fc-+#ZLI3~& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0007.h265 b/samples/h265SampleFrames/frame-0007.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d3b291db2e620cddcd4508a80c08754ef64d5d7a GIT binary patch literal 885 zcmV-*1B(0r000330njo3)I$OZj1#hWfqCIBiTWqViEy$l$H>(j($WNM0C4{ zq4D0aCN3FoL&3pIQL7pc?}?o+0Tq)cS6408-YfCOIr<|5>?Vo;$vOU?^Y)Cj<<*NL zV^kz)rBTWWg-IUg3>JFJ*fgkxD01m^YgB9FPY^*vsjbxJeOG(djSzY8XV`7l&=d&eS502}{-6%#>bjMu*OC}GzVhP-C@l-Q~ z*oEszJy`JH4%}z*eK~CGq_6;pM!NCudpeUSg5G+3#|yxi*$v>(7%MpS{Ls!sl7*qz zH{6Tt@m$dF5qY(1Dt*9`Gq>uQ$v$QmnlWbk>7NQ&WFmmjw*fhaY~L!QY}c$}g$K0o z5Rg!dZzko19g=pK28d|tEjRpmoY2@wkiL7)AO~46hmE4a(H9a6Z)Sco@`bU+ow&mQ zdz|+3_oJ^&luughx||kzRzeyNi4sP%e&VVRCBKYHchOJHAnq7I%m4~mM?AyoqyLuY zfbYJu-NrKi`_G+_nHXfAzJ{M(#8vN)Bi~_1WmTPVg37_J+)gC&gamej|_rz|q zcxh4ojsbt$%qgRsFaV!~36^i$DuSlh0)RYlkaaVg^u#2f;G~|^;1F=y0UCf07}bD4 z0xFjPTT%)0xOOxQhyVdbu(EXwB9WBv(dFidRv-V5ZwAV8OM=cMtzjl~;kY35(9+*@ z^HNv|W584+=D|qgbG$woka~`(gp2>f-Yft^zyJclHnI%2M=zSagUz3e^}LDsEEN|e za(hyoybzTwnA>8!w1KzHWO@DMR^?lE;z(qV^QhRpjv5Ahr_NXZ_!8a$Jpcd?7ytk# Lpa1|tzyJk|YlE|M literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0008.h265 b/samples/h265SampleFrames/frame-0008.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f1a8334fa7dbb39e141d43afe5d09a7a4202b1d6 GIT binary patch literal 1166 zcmV;91abQS000330nj=B)I$Ob3>7J*U@!^-0U=2?0f1l}3KuD5mgAphmkc`KwMwmJ zT#?bPKjXogLwkL0`_4U-3RVJLS7ZkGm}CB5FfPH|{d^FjevjIOCYXaB_1rJ~e)Cviv?eX7d9ku} zeFlQomT8tkclI$1BRJJ-rZ%yxmJCB$#^Jq~tu~et;}h+Nt2>y=)u&Hojl91ZfZP%i zG2w)!v5T}LXShqBe6&Uv!9G8}`2(_39x|Uy%sFPfbqy{*w}^Mc%7OCi(i?tkjb%|G z^yUXOiZIG>d=?MPD$&YIQhf0^_6choq8+lKaMb4w?X7906YU88R+Ipdu7-E&D=yF7 zFqWX!)4II$$y)3+Xg-Uh{4nSwYkmL3_cTdQ>MPNSlvWT!tpMpm$sxrnPXRtoQx%8- zG=w0=zvpwgQ+=CaN$LYBpH2Rw&& zKbj*0TQz~pQ6jK?bLV1*ryXgr`QcbtEIe@E(K0gKEM{?PVc~Lu_~pBG5t5(E9ag@C z=RWnU9K<39jp$cP%Gr0yPLH~;7V`~6@icMmaa zi7N^JzJeHuR?9QivrELb3h}8%gA&dE{m03iAhC3d7lhkwQD|ki=`JHCijUirX%6Ow z`@h9Ki2T&{l!G7q_0CnAcZFw`IW=&jkWCFm0XfW(wGobw4ZZ=K-7LjpI!)CxqJmZ8 z@Q8*`3CoHscVP}mcLgk!)&uF2?XRjZeL76MrPzEs@il;mQEV2=fCF%Lm)dUs0ummy zsnS8R2Nlj#Desv4JO3^$I2&&95GTH={7o4Yykx;b0Fz8*-YB~N5_H6(du%@s80=k*7cx@zj)tz zsP`j?2l|(zFISoW^&M_~U7+<{F(&k7<_rIa>{R82I)W~+7X5VF+A@VmUbV_m`olT6 zj^Ivf^K7H5_EKM|q(@01Y=Z>)@bK&E+)iDZKAYT{bIbYXIa67J&;bAo%G}*cpa5Hw gTW!@sjG_tE@g000330nkDJ)I$Ob3>8naKrjjd0Kho{0f1l}e73D!ub@y#fB1oGY}BE$ z_tPD})T4%l;wOHit-kjJTe1!8i~l7*?H8h8m<-7!bscpOGSeC(M}Or$0G~&;cef0` zYBkgkQCT*V9RsY$Mwmlc-@BpQMdvHmAu1C|PE)+(Dt=Z-q zfn`DF3fN>16SUzFM9m$uR~E6gw4y;XFnOBLot^sTB_tF$D{|Dthf2F9%?s^?3Taj_ z?K>c7-&a5@!NEtWMG(ib0lfO~MnD(qV4VPzkBj}uP z)xK5e?J5h2#<`#)hA zTKD+M^mI|~SGxF8Lbe+VHKbY)CO{~wW{4BBSMi)_@L6*F(qZq8*jZ?y2h%E#Yhwa? z&Q1uz!O%M^Q1A9?(I-(+P3cvW6A^=prjsTa$;qe(56kQkZ z|BTDSfVw7yE7Jga+@I@X$cMmZv_O7|V5r)-OQot#E?ayxyV&36cxX~!EL2G^VmOIK zPk!G-Y`lNG{B+ub(NIBt#XU*STX96eWm^WlWM#tJLid?;<8eI9#Y@^JdAlb_Vf5?n z(O^&rG?ph#oi)a4gMpUFa@XOgg%wCuw%vnFmviO{{}B;mjAvwzAyU^zPii^vIHstx z1GlkK7wd0EmMaKfOE@6FeZIyt(GlQ7kXl;vt?VBZM0G0dv$>llOA1Mzk-H?ISzRbd z@2^7|!&_J6WK!d3%3FmFGa>uSxv?g@D}@R{%Po*dl-k=+4k^cEHqt z00FN*O{v(<00Bi7@hBMO2uur`T|{u&whDFiI!e$)L`>f;1xj1~Zg}-r5#z_bWu6uk zV%>GaaBz$WArwE~*yvOi>V^CkJP~ovtTsUAdq_jcTeNc00^+JV3cpeR{aI_6Orn4F zbQ<7;F=5SNrdD9pB!D^7zau|ms;D~$n|T*x{MPJ%1q1*AySxAZFQ5PbUqAo_jPEjL Ar~m)} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0010.h265 b/samples/h265SampleFrames/frame-0010.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f27f68cb894e2ecdfebd7f7b67184cc4085e3aaa GIT binary patch literal 877 zcmV-z1Csmz000330nkbR)I$Odj1!@00f3-DFd0+@0f68M&k)`2SrxoTpv~iNatb_8 z2-f!OT@)(-OoMumJ1KeoaB>6>pYTo8Vpj-JnP^$U`?qHWg{_+bKGwuQ)PiM(FFkC|M!{W){KRY&v0z+Wm?WEMV zzyI_QRj*4=cOxk$ModgzvMvrAN_MjU}#4&*S z`!W`YqV5B9)tnz(Lxc%pJf8*c*nnuYg9@^h+MPYv55SPXZrcYTt|}1!ANVw8$4GDh zdk`dm0@yES{nP{WE0M)VX}B;7rg3&`R2D{xqsvKsPkhJc9Dql&T4)qzcnN?=R?uxO zIl~e=D~FJp&Ljk7)WyvLgwg;G6xxyRdmYjnwJl0uVYi@WKvN?F3^_thCwca}>VXQG zP+8NYM#T~LHg`>dzGjy{jY1Vq8{+Kcz^n{Pqbe=_cb5 zr~9cS=7V4*3vbO@o5t;gLq14J@r1^cZSZ^OwV8lJZ2kJmXX^?2$bu|6shRL_dQu$9 zbclcsy&{YmUTPL`>7>UBtfo%S&ULp76?b!dv4Rdwas>bY0{{w`;w?a}AQ;fxCHa64 zh}Mii0*22JK%#x1TGCt#k(@A^4pfCyo0KhR6H~?TA5FjgZo<9iLv{ilWC{!Wl(KoSZvg*L4)c7C0TodRhW^L&3QUjr!?-7F?6{gv4kS zbegX~40_#;CrVortfI&xLlU`e{~a`HY{+_NO2d!M7dB^rJ5UO(>JnyypTSdtN@Dn^#6Tc3=z_5S;JgUP3D?sa944 z2BhCUs}CKJTku8D@tjb%_R8ykAz*1;EZjA_b&S8&_nByA%skFuK2(imZ5)32bRBbF z{dBGDH48xT!#(|LgE7FBO*OVc#BQ$wkr5R(#c-YcV!RXw4!`W9m$7Y(d%*n6|9ap9 z*)TD?E4EO=|2aXg1+d==2Y>d|KoRDWG;zh83So6C#Zc(fstkhhqO9-5rEUV%DqTFQ zBO|1fgi;a9ho%DKIK@M?yy9tSiH-5D7(N$HN5{$)!3x@NCtFWwA!m?eU3#<~1r}a4 zuD@y@k%s&}on}_t^vW^Ah$IgC@+dWFt$rf2d#A0R@TYsg#82R?*#^>Ma%Bm0`aWdE z#MZeoEn4=*R7}ikA%Ov8TIu3n9RYy>#0sigec_T?EDVfx*5PvoVSR*_bGqNpOJo4Z zKkcHCSthWb0LZ4wleS(BaA`AkPsah&n*Pfvtz6DC{}eJBDKC zMja8hedvTX0>lJibEgG?F&CiT|2_Z)z1N#c!=w=g6JWa9gEq<2m_8%-$y#^<*t^Hc zvBbzk0|idat`I=Er=R8Bq3LU`-mB&r7pRI`y40h-7%AOlusj7F0Ka8Acov{CK0S7| zx1(QxV(&7PGz&FP8weC0ObFGr7OAipwk~S}_H$U8-38?OO|_VxXL?G^8Cr_b#!EBh ztAr=-?LN6LE_KJM6r19^5(X1$sdCbb`hKwy6k(|sM^=Qc3)C`?)^C}`mlDb=$;kyZ zn$+$GM=*PBKQT(dga&37{5RAIF;2m_>8xaG?i+1xuyJwn@P6v~*-bA$olw4`Mvi<^ z2{zs*;ot>yAJc}z3Z;}=GL?dmg_3?Qy@C|fVaez(efK4!f1VWWgp08H8G&g9{nLgQTtS4UCTaczyu`P{ z4lh8uV;Y(Y;XyVZZ;z|KSxwg zA*DlfvJHu&#(9;!$zFd5nF08-#nmnpZT71{gO2>BxV+>Jdve9Unb z*-62@vlvUXt|NuE#MihTPqCCDM8tzr5+a}zXB>CTyP)K>pBVV*#KhrJ#)t`&CLN3) s7%18b67?_bNE0zvfJCq=jrxL0GLlTUa`I%OiAVqdGvELKWWWFgyz(`vF8}}l literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0012.h265 b/samples/h265SampleFrames/frame-0012.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c654d5a7df2b29baee2137be87b584c3f63dd746 GIT binary patch literal 950 zcmV;n14;Y<000330nl0h)I$Odj1$mMfk1#jC=}q20f3-es2}j zMDo#vJ`O@BZN8uW85a%TXS&AoHJtTF(S66Bd38tsEMuMJRcTNpfaNP|{(L3;L>>-B z4cz(Cj`|R*l5*k5zQuWAbd@)Yc-)}mX>~2&1CfDbAx|I#$hk{<_v`ZL)~8hRyjuJ4 zLIj6#b9^{A9t-ABRTLWl@^g(uLHZi+u3a~kU%jx|;V88p6D2zI?Kh-c+aLL?Vpsk| z2i5MYOYR(&HcsC`KuJ$OKsr^+b@uX;dzY3ajGN`gMYpnf!Aoc~DIoSyFJb|YEF=2*sJib(We4&$WMnLAtc{sx)a zSM6eN4bW!eM6lB}Xb-k>HKgrg?rw}Z{1ETg(siOn9`KKhI9L>4v&Tg_8^@<*YZf)= z1>xR?sT+vrG<#kK0}5?ha`b}dra}#pOOZ>INieG-_w36`Vfy!z3Q@fwTYZ{JoDm3H zzBKB}IjXs5O9_IJZW?EWIxW#!pf#Kql58rD003XW&%`LEMd^sl<~I0WOmxeQo24Lp zV(Fv77e##JxaiU-oe~;J{|~>IK*!Jkj;+>?@s%8ui6u2YBFMJl@?h(LWY%@CMS%qA zd=P$vHLp4nH&vG@pxg(^qq3Guu(T<9;WpiA4z^$tVfN@XqBv@kD$a_ev}sNXwm!_! zk;^^P^X2&a*Z@54pQV8xc9Z~ttQE%5-}cUxHRA|*mEfmT0W;LVfB+NF$p8Qb>`j0G zg@9OsQ$2?~00b`=2V?*Xh}6j|x1F5FBMV`$d6*gy+w6}nPWcDrRHJP!CE1uwS?xdlV;jkoMR++@@C=Rf5Squ z04zBaaVF$cw+w_eB}~E8s$XvNbl;Ew3xeJ&-;0cm2%IK`!7JdsQs6Hb!&}!7YXCw= z$HZNBwV%0iB#i)CQ7W&6TJp75yb>J)M86cEWpP`PP@ls zlW@px8)&KxP~*1WhaG`gH>e`I#1We2*%E)1WkUeiyiEQldpDa@M7&Cdtf_a|kg%rx Y1iRB@#SM)@fFU3N0L_2^0et`wFr$ym&j0`b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0013.h265 b/samples/h265SampleFrames/frame-0013.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b30a96d75954ee40bc6444e0065e7fbb17bee11 GIT binary patch literal 1075 zcmV-31kC#Y000330nlOp)I$Of3>69=;4lgT0KhO3Wq@EDE@d-|5OuZ6ZNLV&h?3WM z(hpQbIe(Wf)i?mDdCS-mm}7WtkZUXYj7G9m7bmB+Etu<`ji4Hj^|tLMvL|9xw$DCJ zQ|z-?yuov}oeKM{L?gt~G!y|FtDXv>tK2=8b8 z$`8>%aWw{lKim`;UE!bDXg=41O>zMf*%*e|qNaVE_i>Jf!iv(m0olG}!dMZcI>9Z} z{J4ePK#e3(u9!(B+8zm8D=t(GdxGR}z)Ay9H=bXNkW z(%i!~I5GO1&`fna!O~8hSWe86HkWte!lj{o+R(_ZvlWxv5&3Or+Wz?ciS%Cr(1Q&= zwD?Tg*=o}B;eaO0vpz!}lD1F7NmpH)_M(3y3xoiwJE$5`o|CV7he`nmYKljK8jAw# zRwKi**AR8&hQhM+BvS4@L*fJ4gOg6H=AoL#y(+m!(@Mbbl|vtxh((@OeZ`SL;YhE z1|k{<1csQ5cgU2p?*g%|e|q~%hZSz+Lq%K2Ev_h{xfCU84a9Y~1l7IjJ)mWO@fB*t~Z5mA_-XVAZ18yPhBq&f=&j_IiWTfod zkX1*fv0haG%RuNHa450rJ{maiwpX^D!~hYFKR0VyVsiWQ+#tcQSZaN3Tg0llq2hiP{JXZ`VoC*_-(KBR$Lc`Ov{QtSQi4_h0>01y0BFDf1&p3W1_A&8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0014.h265 b/samples/h265SampleFrames/frame-0014.h265 new file mode 100644 index 0000000000000000000000000000000000000000..232ef943f0dfd706306868323bb27be8066b8a18 GIT binary patch literal 1266 zcmV95CASem~0H7!i6M$eGO3^~B&aO7npI1Ce8`ppL z*Ug=a9#pWLl5QSlfXJPR8r8OtlL#qd-}ks2c`Fy6-t#|=Fi7{bY{Fmi7 zj59~TQGU2l`y1ArS@v9(NDXZ88QgHMgoVXqir}mcRzZ{kj=^HLFrOddi)mGiE5kfR z)i;ekgv2hYPdFG-mj%Xi$zU-I_#7b#FBxnIAv2c*( zxc>JUyme7NRt5JZp{4T@*N#NI^1xvAba%-tOh*<`BtjXaK7PLNv$K} zLyz<))GgUjY3%wZ!LXbD@)TD#3>WYopDrxuAm~dwO|D1MkpTMVsA522wLMD%gp%DO zAiB=15S2Td@orCxAS;t=g8*h0#W0A@R}`K=-4oj_TRamZiLnRBY@jkDqX!AA zv7stkC!^mmE~1UNijgEI)wV!!Cs6`P#8KL|*dwm*=*2qZ0$2hDb7F*MWutYHp}hKD zKxEE9z7DPtSw`3>j_D}JYw*LZ!IJ7D{@iSg*I&Q=_ueZA%QUKe$T@?AN_?^6&CYSg zrW6+G_L%C)`;17hzxy zaUS#L-Q^TClqrR>u)WYAYwxf6$n(8QEgyx`XSXU^&2W>TXIIMn<#C@tIW8lSx#)|x zgc8@Gse7uov>ufoVe^rb1|SiJ?7g~r0cj5aKXH6u$8$(*Q8>1_3P<>RH0wNFAVI^| znDw3U%xd8n6mFNFVp0nuu=L0L_&q3e>%h4nAwYOQ`tuuYWV>g^Z2K-}5v^PMT8Vkt zjT8z-42-SK*ckXCg;N^LAmTypRZ&BoJa)U94E1XB|Gje@gMgkD8fS#ajy_Y!QP4Yw zUPu8+X)Tu14YDjEjn@Q16g+#_JxoNhJ|@Ka{E3VM81QfHkD&DR+1fJ>OqXo10j3X# zz{*|9kIz~tk@q55THzluG>LIf1F0|Bic+C7*kfPR-y`ki7{WZC!%2)^qGFm<1`pY7 z*6eL6aQrz0e+qOahbj>~)>lS_Up$0+QW_u)hVCFVa(IonMNxeHjk8-$g cvbYkEwA}yy|I-uz!GHh&WWWFb?0^6X$kLZymjD0& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0015.h265 b/samples/h265SampleFrames/frame-0015.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cce6a52260f45dda6af2d599309851f5cb13b973 GIT binary patch literal 1102 zcmV-U1hM-7000330nl;()I$OUV+8RWU|=W^3(qMelYs;j)|Dy;Ime$fKHK|$SmW$6x zrX3>U_td%%*`BC)>bV@h$cqN?L+LuwL6y>!K6%oi({_bHEiQ0A`b5j%?yM2DN<5pT zoz06$>2E^tR3LZ#y3-9%a`!es2^r2I25GY?-qsM|Gj0e;#_4WQZmemKtsfg5jXki- z&38yG3U%HrKKhPg!fSmwElttiv~pF2Qt0NfJfj2IsY`l0yXrGha+pu!P+RAK(U+DZ z$TkUHPmlbm;pHhF-y>)N8lVz3azNz(1f<&J02mp-)1b_6&%1hX-h*{0M=Nw$_wJfr zy`0LGLCW!3YV@sC^zQJU)tbdV1{6D4I)K>pVE7Qh*o+0Rht}(Jk^O)G&H3%YQ0F9i zoYmM>M~tm|<&Vd~u$xk<6>I_HougP1GcljT!hc))*f5{tnE{-hy&DFkGRF}`1sPIF zFrqEr3kID?zWw|!SY9j8Kyej|z+d}UzyI^E+dn#7NBcWh*SZ$`vA2+9#Atm7`y;*0 zwx+O5(H`5Dj3Lja>Yhz@gkt?-e^pn3D5l3S4qNr9f=z$seA(m8LS$bCR_x9e*H`n9 z%Pp`(A?TNfyI*McWu565jZnZr+Z`IQF;oibdpc*jT6-0m% zFxH7c0>aL~JUd`*KmY)w-Ta+^00P!DnXzg>00O~KVu(jJ`zyD9p`eZ~@ycIq6u1n6 z?K)f_f(>Jn#*#!(L;w14EtLxsfBM>^LeGhl+(#-k@q!Lp^Jo%R`8d&4QLqZL z`z{iVl2xg8@bX9L6K#l#|DKABKx8N37u8|M(rTNB5@m{|!1-e60wM`FPzY8_d?}Oi z<_V9sy?954T*`r1@O459Wn9y)y&g=mJr6m;Ujs2SsCM)44qifWYS6|lY-D~GL0P)^L&5Fmx#{Jhl&NPkJa~_M@0!u8-4qSZq2GusFSz~ z>Jk(X1-w+x#Kagm-~a>rz8#Ay?`wN!C=3RG!KLGTYbO;@qm_gJ4t{pry1X{07}>u@ US*PLRofNpSYN!AJXutpkjBTPN;Q#;t literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0016.h265 b/samples/h265SampleFrames/frame-0016.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5259f169285836a3058e51e4efb4ad6946c65398 GIT binary patch literal 1718 zcmV;n21)q<000330nmB>)I$OULj`%Pa0~+gpfCyplp{z7byi79(Qs7T5;W>q!{LB8 zD`S%fSxNS=9iq|a`@bkVZ8b|^37kG!0~X`qxhZ@O_ZLYFPqArg`|S)F5p@4G__5iYHHwX+x}Ou|G`OAn z`D4#b{(LpSmWc2|*LG0|yZ3t()lH1^|H%2ITr-MSCByj2;P#rHgIFyPEh>Z|va>KzPS>ilzK@BoNG6k@&@LX;$pla35FXw5s!lR4c6w~?gU-P#1 z^?qEs&8{w}qd5cu@bzq!L23yOq2*OHC!ZKxuv5e=cFVCm|l@z?+?iLN&l3v;> zdKIJA^233pvjwys5p>S{6 zBghf13ml)RrOuDyW`098$=fU=V&VYCVN0=DJ776Peuh=h$Qq9ghO1|KCHA0)DQyC&+xB+@qOy{G_cG=vAstJr8jsIM|z8(9``vrR9?wYvih zQd-bfa}$mC^a)(OeV9^U8?V<80*cPDI4M?PV8F}cxlxY9U zC>VvukfdK7(v8%X@?xQINpK~Lkrr8gm<-9LcI;oQy+Wv*_c(h2|MG}7(8WhRmzo6{ z{gpGYCW8Ll3FFbDv&=vrvj%~#oeSCxxZKcXjz$CNweM@2aoBvuT+Y(rNt;cwdU*oD z3_k(!aXw7(gN)*n?Q|>(G{eQDz#kV2l?v{ZJU**u<$Y&=Uzr6Dj06d1OrswZ5!Puz zXiz(__T(rQ^`Mg@8fBETxMPwE1+v}_q){vTg&8Q=HZ+6GG3FT<;gxl;(KNlDlsbB( zrNKc6b$wF9Z(?rY^=5zo1Lbx6P53D(!RM2kJRkLQ$6oiwZrgE`lQsbcRch_sl!CLQkP0pPVn6=Qm(`ZqwDL&w=JNZc7kuM Mc)$PvuYdp%FuznuF8}}l literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0017.h265 b/samples/h265SampleFrames/frame-0017.h265 new file mode 100644 index 0000000000000000000000000000000000000000..337bfc3423fef01b20249b18d2c27aef04655ec5 GIT binary patch literal 1114 zcmV-g1f}}`000330nmZ})I$OULj_00*bD-IfG`XLjYT*IAoL!;Wp>pt8`0VxQim7q1Ca(I2XP(t4 zp+$ur?P|X&Qq;s^1kj4GN7jw(p|Ry{o9hwsH9=wJa?BvePQMAS(;H;XCaq$tpHvW` z_&l2SfBjMzyfg-+RwCHEQtIyiHbs}Auco2cZdlp}jGWBkzM?mt__1V`Cr|gN(#b#K z>ul8v0|r&&cY(T_AJjbPtY!6haT7NTPLbcx=;5I3_EI)Tr|;(dwlm+U!hU7HH4oag z9f<8Eeke7spqGOpbr_Y;0QubJ-jWISNu z(i{xlLG1f*jJTnac|umANJohEFK5*WHiHZZ#0iGc-F&zJ0D*wfktv9^Z?8&UR0J() zL8-!=kdy)jo-%;hOvIfNfH`m3Lt(L$)qVYemvw^RA%QDr@eS6aqU86)z-(*;&>Azt2%-@OE3G`A+s)4KrB z?Dg7IY?sJTK#(Z5NCd}AQ5#eHtZN-qW%khV`r8KhYw4Mjx-MOPBOn7;riN~ow*6E< z4G?5RXb)ZefE%Sb!6v)FnUN5&EnSuX1FE1}Z~zR*lUM)(&Hw;KE#ON)007)y1fYNb z0<1U)-axQc4XCSC9wY+LHfTLisfaGVd0G&0z zD%=?Z)r3X+0kW%Q*HKkotM;ie-#ejK zr32V!6`h&XGN1qhu=Ro&BuK&%Qc)WjQ`Ol@@*DuCg#D0+8~@!X!@*!DQjx@PXQUq_ zO7)Q$gYO7hbODBMI{nk!NSK2U>xSxFcF9Kjiv-uLIIqk?R1l(3Gs@}w*`q?70{#Hm zk&7~-`La)SNFZ{{P}fXoU{*{~X$IrfI$1;G1V=ZNsaZj>M4ZsZf~QU;iP>%X6$`*) g!gI&C{O79Eji@PU_ApL1;#Pry@W!4D2= z8qPaQoNyuW*Ht2zcU4&Rl*PmO1LYIHp3+xOF1MI=H|>qgr1=GJM0BXg*+f&eeCx^4 zPZRc>8b=lXtraV5r+@x?J!3p&^}7;%sTw2$`n zZb7%o3Za(@^1NKMC;7mDN)X+@2zb=&r-`QSf!NUyGKt|Oe@hSS&u@Q^p346f43dM5 z?empoU=0dXi-JyjpC@#t$mX4~2EGt8??3cqv`2{7UP-&gF~Y(SfK#{G1Iaj4Jbksd zXGA}8$FB*lB>pUEEO37fUR8XZ3!dv6mD~Dy57*C(Ab*gGN-7q@X*1)fYUDdQk+cJ2 z(^SAhg2PoHt?e$`65Wd~zNS2vl|YQ($HJ@b9pH^oWQHe<>@2XUify0CRo$BVpjJZV37{CwT-rwiB_tEU)0!z=M(QFuMupH`t0`G8gdqJPPb;nU8EO!n zalRnL%`V}(ZydSt?cm3W00hXEmj;1L0Jh1ZP-8AptW3SpcZ?}K2#8FO<_r;45Qv}5 zI#HQcm=v@q0HSh5Ko821w`~9&VQaJ4;(5GlmzPxteav{_2q$iA(=7dc-MlV@~lV1cSknba8-5NCSwqb0}D(74Wicf z;d9O#o$#J^C2m=Z@mr3LOHF_b9Sh6Bki98JLd6IEy?O4}T{43NS?3$7JN?Hb3I8;* zZSgUU;H%y1Q<~p&U`DA zbqFu#1SKXprgJ%cu0LB;J2KmSQtipZ`eqK}cnU(S z{zYWCB7S*P9=s1OV27Vakr4Z8V<`0)Nv%Fa@ozG${>Pta-djBn|N~Zp;az*Uakmj^&6<`u7P{xl~P)A&HKd00&Kw01fyZ C@>1jg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0019.h265 b/samples/h265SampleFrames/frame-0019.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6dfaa7f2eddb8aa6a2db683508395b22008bcd06 GIT binary patch literal 1372 zcmV-i1*7@^000330nm~E)I$OU;{{tOkPHHVfG`XLfd|M3D_-Kvz` z?n}-ifD4+I$KxS?_uCT~khlOWU{f$~BM&>b_MtblTdS}<;9H)0+6||5WsP-3K&@=& zs~yXdxj`@gtly+c&6+cR&3@#vPOze+b59&JtNy}@x~VNW&!XG~>g@f|RCi_&D3bo) zQRAauV)t1}Nu_2Y79;i`Vd-g>%-&dRv8;xbR%>bD!g_~~(|jH^@ij}wt5;|X10pwo~cP5(RWP`iI%{Kp2_8S|peBlN_;&LYtKdTO?@DSC>sm>y1 zQWG*xZsN{eARj=DMzg_w9tvsu+My6rl(>X|?U*7oeE1Y?Omjc8gn`?$5S&@mxrwXm z9cB&VM{N~h4$XsBU<*5{-SS#3-bU9wjq=u5u?+S4Z}lQBLIe4}X5?aDh#S(7pHCxc zOH9E52d?Y6>NMDU2AfRQ$lD-@sRnK+fyIc0o8CvSSYAPl%ugmtKrS$!?F1=Kg!dao zy9(W9_k}6;o_m?)BI?o7R^(H7=S+nSkQO}4#%CB7eulqi7DawmhdhBd=!V87Lh+M& zjAl`@s-gRqI?y0x>lrUm+)nUj=WSPq`3V})(p5Iexn|xC zYe*YodRAdVAL0meBPr`fZwS!Z5;D55$y5(kROaZBYcR!ic@?X}VXqniAt(|ih(<2| zjcwW!s!~hU>X-w%!jvK0lGtBV@Q_c34a0HA4i0Cw&X9cEX{y#w223`DaHj3SK_9c= z<14il!Ai${p00HTj zKqdC@91s8ijA-a@KmY;o&rIDD&eQrU%l;Z-WMJE$bYXtE%@@mg^_rU$4$EE`o_8Z=I^new&RPSlW?ES)VYNoj`u|6nNw=X3`x|-0JIiIv50Z)acn3 eQ}ood6ge0=%RMMy`w0_g-RMj}00R4b00rF5K$;H# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0020.h265 b/samples/h265SampleFrames/frame-0020.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fced64dcf3040b8ecd76b502a3d0f87e06ec46be GIT binary patch literal 885 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0022.h265 b/samples/h265SampleFrames/frame-0022.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4a3958095ec1ca5333e1c22b3bd4c4fc692e119c GIT binary patch literal 1071 zcmV+~1kn2c000330nn-c)I$OU!v#Y{m<$4dfG`XLfaO@n7|PM(u4hxnPikg1;7#x( zqcW(?dyv!HRv&ku#sSp|bjkWfrcD)cJ0?SW3G8(7C6LRI1Id#CK^5FKM#IZf&|}M) z4Kkpc4pXyw)S8Yuwx9`Gew#=4AKCTHseFBs&bc+!Soev2Iw5QtRG^3Mll(D%?6d=X zOL|&{<;5RHwrYe=Os0x=*|SRpex4JG!nRNy3w@ZBM-@0QslUVKv0{R79m3mBIvD}> zWhgm7SE{}vEFTpzB9pVfAe2LRr=~#@wZhk$+k${6XPm8EE;!`?Z`Q;8&zhi_EvbRj z|A%)G6Lm!_ythK8LML=phG&3)RO34vaj$A)?Yb{cL0+U%h5phnh&4)FEhc~!a*|pP zGtloS+&N#gMGZ50J?0`$H28!vU!R=5UqGeVjewXDxb>isJp*HIT?keGbmnnRYvWaD zfD>UaC=7Wq5T^CA8NJ66myX0{w?VZOe)zBkyJ`rHJ{T|^?n3~7IQb%^VO2O3I$DJJ zuZ2e0aKL({P406xA@Sj_kKPiYAClcjx6}lgH}~J8rTK}Mn>P8oF_QDpm{;$Fg$ml} zbT5`eB3CssY}%V>dvj?Cxj!Y$`-3SmGH#MBmwNy;S=ll3c<@naqqKVsX~e!6wTyG< z6zUCp%gb6Ms0pPLF;$UWS3W{o9Tm8LvE^lT$+<>`;G0gtb@0Nzev&T2Me0zfO#lD` z0A#?NNB1tl3yj zUQ#AdAeO_ne2!bQW?}--T zziv6EkD8gLE9ODvF#Fa3ggY}yW(aMZIO=Es?Cu&h(KL|_s(e5qobn8 zo%^+;J{$F=tRlrXw&(Z%{jnr% zsz3-Ecq1-y{4_x)*NpKyv`p#+W)zM?l&NJP{055kY$+P4gfG=MxCXRl=*%Zi{$JT> p0uA$y^8o8Y&`?_|tZg%TFJM?k43}%vpjK@n>DDHrA}N3X3CM&<`hNfb literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0023.h265 b/samples/h265SampleFrames/frame-0023.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e96d0797e45e43defa30a0212545d1283fea8b5e GIT binary patch literal 1245 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 TaZ{lbG9c(OgO1L(2>=Y}A~%@Tk2 zH^v&}zfy}L`_`7#N=Td%fda6Th4uL#lb9ZvCB=@UJA+fb4EbcQ({};vL~c-~X?2le zFBY=S^C~*=(y#@|5w79XzNEi|Dnvafi(9mG1*=&7Fc{dkuL~c4mFwXpp5@8_31RI` zws&HQ0nG!GUo#VcVS#v*nRI@YyUXNQM2BYr25X2_6NW#-XV)kof(Kc!Uy1jSSckA-{zKKED-AARw0F zzuO_DQRIH5Y2cLdM}0LCrP@KwuL{dYnZ!7#e8*N)1l@@9RbRuO#Gu0a5#YJDy5$2T z0w~6p%q(Wl&#|9(_aWd?)lLZ5Gym=nWoi7TFYb|w#9H@-f1FkDeBukNTaiiq@$Tu> z{^y4sXN3*9BpWqT*XrTpR$A7y$;5S*GGGFE7QoS{j`KGt$eX0apK%9gS=?85!={wU zfv*FTvrVG}esUGcpu)oy(}+Z_Xg~kpD>;lY;h=D61qSBYzFz^n8>kj{+T_)jt!y3)3^JOMlm zSaFF}gTUMY8f@FLy}adDeFYtE@#ByKMx-Q4U;rJEm#csPJz$3b01G$(0F+z6x_|%z z8K%-600iLU3SVZx00jnOw^nih1j_eW6pjD{gn`po(@>*FOf#>}*?Z?#b%NSRVRGE- zEhtqC!K*?|P-tuHnZaSw@_K;D?Wrf}R**@R%V>akxlDgXA4v)wiAO9z#|Gpht2NLM zmlK%zs76q|zIvlgYD!Fd;;;}f9y59#;>KUTy!-vRsQ3R_Xt!Ak3;5RRCak^^O6CHg zUar(hq`A}jjCk(KJaMNz^A%srY*3oT2_|R3jgHoh(OyFFDxj<*J9pTAa4!x1h?S@2 z-o^M+efH!ilSr5wLuCVNk>2%W|w79k|fe-9=asL@U zzu;U#(yjenWYF`FpK`Tm$v4d!AO~}v@Iu*gv8--3r*VQ_kY~F4v^jGb+vwl-M|obS wWB;)mtgt)kvY|BNPN%DD&Z;G|ZlZLbzwPif+I;&2rI4sf3It_3JLUi+1-qm=U;qFB literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0028.h265 b/samples/h265SampleFrames/frame-0028.h265 new file mode 100644 index 0000000000000000000000000000000000000000..69621977d91fb85842dcd90b805657dea503aff5 GIT binary patch literal 1256 zcmVQ z=#?-siB zk26!&8kW{k_*K`Go;gp=t>mX|3CNmGD;d;ZHGg|DRa41-{$;wx07yNQsw35Rx5-JY z{>X(b!x|3g=4zCGgNhUXEgjlv3HM0009300RJ0K-au|wo+ESI_MP31e?{}E(*|aFLUyUKdbz; zIMMFYYReFtptdW;h`2hQF;HwyLkQp8<3vW^nd^n@R1Y%05l)~00RIDxBvji zqXhkc00K>>(jEW>|I!i6lz;#QPGZMang9lxm?jN&00iQLuUbJ6EryDXQ{xq-_277a z3~vhio;o3H7hpxQ3zcj*NS1$M{y=ur@+oUc=ZvPgKB3OxP$!YsAa#T~`V-(;l$uUW z%$dTwrSaLdn*(3W6v-m2vJ1%UzZjo=sRoo zyaycL$COmsX($dyT0JBtJ&oz0ZFr|I35S1tRwVbPbglw|8RS@yxeWKr{5?j S50)x3>_fU?+R8crBJ99Ja8l*~ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0029.h265 b/samples/h265SampleFrames/frame-0029.h265 new file mode 100644 index 0000000000000000000000000000000000000000..49ef11f140a8dcc73b879d9d709a0dab55c8db47 GIT binary patch literal 1450 zcmV;b1y%Y0000330np+9)I$OVV+Bc#=nMjYpfCypfWR`3_Ao3A?*}b0pEVVj#$w3? z$?zb%BhYu*2TZ^uw4w=?kS|$-80b+=KREiq$jlHK5(Y6zBitBw8O?x2*-b{_qVmUF zrIlfqjwv13U?pi9pyx1o_h=O$7@ArWuqEz3ab;B8LhfyPq^em8nfcnvF|)2o79rmq zDP|s=>)S8$><`H8&hdlP!1-BvHJOg>;~5EC>djE@q`6&=FWgvB**%S@8i@%wH2@&H|}+{;6!v3dq65r+lJGv$fVJw41}c37^j!J71B#Q1|S@KS$) zeshsPzZ@37&C6)g`xZ2!f4UoE>7O=F4lrg2O27n6LsWPE`mf#nmz?4&2XFe@(e_#F&xnJ1OiS&t~dd0`orPEVk?=EhP# z^OEJ=`(tKG?Cm@^NNGa}5_sIjjQRmK>|%-pgu*=6zhjk3^DxFY25`pxb3$7Tp=$}- z`A7ai3rvix+sTmflx2?rKF6|>VlpH=>`fIk(M{@(eC746p!l7D%9;j${c@%$`c-?V zm$;0=Hjr%u7SPxv8#%nYvR`$>5Y~osoFxC+pDlt>7oo}v_=o?!9Wsf~RsaA400095 zzSq5*3UuyNl#|99U;n0m^{iPE5;AbdKCuO4CU&QdrYcNBH{W!z)$CbU4jKZOU>eXd z6eUInp%!wbQ|WE>faEWb_gvV7{ZWrQ?9bzy3A8@hN$;h= z<}dH;IX>9y?FJ29L}`q0JU{7^%S|WniXUo@%!v4xlNlBQ)Z*#8HF>UN4CR-H`j|bP zFJ93gt;{<3l?W{yje@6VbWc~5@tJ(XlSW`fN0BAs-)bIcRO+b;T003P;000936_5Y` z&Z7kVfB*uCnp+Y81|QN9%#?rt1xjMaR+<0?nwTaHb^rw8rDwGu);A8J`hO#O>}_Fe zSRIWvc#6IW`81#s*u`ZWPB9rXo|GZQb74nHx*UAa)22Wwyaf=+wgc)L$V*5!OL2O8 z$U6{MiLZnXvHpgJ;$|Xwo&T|Ep20-_zC zrWfD^M|5UiF_G%DNwcrIz?QpWvtO&Hv3a-WX2yl^Q2XH(lPXHqu E(21b79RL6T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0030.h265 b/samples/h265SampleFrames/frame-0030.h265 new file mode 100644 index 0000000000000000000000000000000000000000..85ca729852457bc76a781cf5211ed568357fc211 GIT binary patch literal 1159 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0032.h265 b/samples/h265SampleFrames/frame-0032.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ca2c70e1cf7ce4b2d965772adb0ffd9e4e4bc527 GIT binary patch literal 1052 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0034.h265 b/samples/h265SampleFrames/frame-0034.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1e3db67eea69497f75bd1b2cebab58a6b926cdac GIT binary patch literal 1789 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0036.h265 b/samples/h265SampleFrames/frame-0036.h265 new file mode 100644 index 0000000000000000000000000000000000000000..78bc5f19d1596e605d66cff0f5e83ef7f0e3dbb5 GIT binary patch literal 1769 zcmV z1}9m7SqGSAwuWbb=}gZB)|(q2L`q|B!Trz4c!|UK@s`nn#PUH-` z{v;g`$DZyb4Z&~~@ZAu%-Z;la*`);;1@r3P9y^Zo8r$QaB-Kv^@t9ne@QgY)EtOpo zy6^oNKXI08O`sc5$q+SyhpsVhtOO?AZb^w7wFNDiY>8-VsK?A zLTVF{1dFmT#oidBZxc8}-R#jo48s|I)-*{PQNE1bn;nzN4pBX#?&#RW!n`y@va&r5 z9LR{DnSJ;2)+n+xzoh9W+au5iiywz_uEQI@^;?BofEo91SEy5*EBZM970O}TjTTaE z8Z#^Dhl)knY`xJl%fxWmVJlERMK*bPOr#g+|MoZ+EU zLx}Rn6tHK%!{qw=5-G>Q^;Dy=C2J<2prz5O-`zPQ;%u!0&$|6JvF&qC>WDq7UC34l zUb}TeN!^Q3o8*&;K;lSq$wVWkE06+lF;2Z$_D*61LN}}&aBQHMt(_9dnA4gXqW)o| z(e>&~cMH>WKdQ+Wb*~rrpSa;PbJJWVxQ;bK#3HFK zZM$V0i{!gOLBh79x&?CHtUSTln}LAD!ke=^94+}4)uR^*auDxf8Npj?e{VpSh&9H2 zrKk;3WVi5Cfm}x)0L|Rja2(C4sDat^i|;MJT?~ngJo0BrNCcbSZ_gfcXwOUh`(e)O zE_T0dLZD-jh}Y&DBS*$%B2bHX^qzsO^&JG)y}N;}Xm+;xTJ6XipV!C!#_I6$>A&Xe zttNdi|CUTXyI}z!eBZ#-7?BaKQ9n69Em!7wNu$BV)8+Iy@idqN?^9aIn>ikz`~{3u z2Iue)gnEouKOY#e?tQ(ym$~<0>8EFc`Xoi&R4@h6zI>!8dG3gXV7BM8^)TJT!GjTC z_e@LM?9azb(0-jU>`JVaf4;LtLE2&#_S5}F!o_Dl%S zzzdTDB%LV-))f7%E)8mP)q~_Cn=Q^*Tb}uESEI2;^{vgjIp7*3BC}s+61)+UAO9Ch zVH_i_*Ylm_>dam_^fp!m6$>O-5yi{-XgV82Gt1Voo_$3r1FksKBP}m~U@Nf?N#dT% z^D-^TP%G(g*JOT7IfzJWQZze4{YI@)j6FoRX9|OOj8&%M00N?PiByA4&Jf@Tel%{= z3eAr);Oa0(A3{Yib+_NhHPp~F^03U{QubW!dSD;Q9)fj8dgG!bYtjtXSaCjv{pGcR=WDQ>fWm@q_9;!u zB(kOp&jPLS{5nwIE5`tMaVbsVy{jQG_FO((;CJ85E8YRjdeSf*sz7VD=G@a# z+JnPE4DY})A6Q`rf=y}-KobHZ(6+tlu=k(E?l zFNT?ReZT+{2%r5Xd`s#is8wYdVJu%X(STivjMH|oIX=rVnwSw(+mIu(f03Y_|~F^56e%A?r; L!;S^PLZrRERXT45 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0037.h265 b/samples/h265SampleFrames/frame-0037.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e16e1164f33b72e4a0de8d58fcee95a6aa9a95b GIT binary patch literal 1133 zcmV-z1d{sz000330ns7<)I$OWLj?BOz+fm43K9=dB=dW16~p>CVjRFX((p$Z)te+yd{KnS1VMOPi;c6exy@9Brr z|AhG;PLFQLz@O-gk8wV2dn2C8#drhP!T-0${u2(A6tooVX23XmkTlJ?W>XC(_>%H; zJ5}(Q{&D;+NhE?T2zQcg!Nd6GAmIlZoS{6i+H|DbZcO{h4{!V%zqsEMUH{ePFCrl7Tm&s7NluRX{Bxw+B+U5XZuklIH8_@D5a{~zeH@_ zTEA-ho1LTui%}+ua952uH;M$+@ylVvhHyh4ZRchOZS>xL9f?5Wx~MPvbkQ3 zZC-#rTy0V?DE-O;g$8PT@hm=IixJ;b!0FB`JIm4D+QWMuO(4wJkP;9tu?`Q;($L}` zXpIC|hEvIG7ieaF5l$PsQ?*ke&0v5mj z|N6i9BP-4O*x;ndr%wopMIt~jRNFQj47An}e6M?ecf@oD$j*>)ko;6hY#&3~InEGW z8_;`7%8c?qi5YU@*-|?QG#AE~82~<)Qi&7vz4Mo4efj;Q=3Vs^Z3`CWpQhSSWXgJZ z?eK?|>0HS?09x=D>+pK|lZk4slZxqaXkQ!h`8S@IU|pO?#t?8-M@-dz#Qt zNhp+><=Gx!NlHAvw^qdUy&`|hBb}vSZ5VWNGSf2-$MT3n6)hT4Z9Go>jjS1OEm(W@ zl^7g7R?x_ECiE|`0w%AvR#N!R(-awU4vhOA9w7%)vJ^nu%zLk?p**BeH_~PMzAvx# zV4TITIx8Q_JwS7R29)&p%%%65ufwB|2C4<^paQ}jLms-@+XjE*u21y+{zCZlOqp(< zz-f~mwI+ficbyNAwSlyM zEkjFg7~$c=r$bk2G-3#(@Z`W^Z&-56W}Y`fRG&yY8#nRJ3;zwXC8TN;y8L9n{_`k*VqqaOAh^g@oo2iv3~CHOb1CezB75{T4?Z3yJYVRlM;N8J{%#M387 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0038.h265 b/samples/h265SampleFrames/frame-0038.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bf05df64811a861eecadf9fcd44b6126bbee18f5 GIT binary patch literal 1280 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 PN#sw^1V6Lz+3_5Jgang9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0040.h265 b/samples/h265SampleFrames/frame-0040.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c8019a7c93def78171a24ad326c8f0028cbdd6f6 GIT binary patch literal 1044 zcmV+v1nc_%000330ns`C)I$OWLj?a?KwvNw3Izj!fXS%1GK~hy0;r=vR?_5|)=;(T z^gMb19Q~}MFA)FrMm~Wqz}t;k>F9p*(;fQ7%+LG}&}D==QzGVR{Y``}Xfp=a1HX#u ziZ(+PAOGotE=6i9l?kSz4}`eKl71w@n#jfxi#@tEEza}n^Zkb{9Beaj;W0J1gOc$} zFg$Gq&o6TQ0k>r7dMWKMRWv(5i|37A%$Fa;0M3WeLi zoNf1}f()0BwT9HiEx7~$u**;?TxdKY&bpBP1mV~5n1lkYqd!gxiO^FixjbXflGeYM z$~vvC7&f|4oyo7yC*}A#$(~hH2b+tq7I8YJW#7pf`fR@!&eG1FZxcJ+B5rt4+&X0W z&o6O%6CS8s@C*t1FMXL2ne<=$RIB&EwFqjz7s*VG@vXj7%R_~P4R4IL#hYU@9S5|j z13?iQ!cS@nBg@a7l`?TGM@&Rf6*y(U6bpE9*Z=@|tgK}NyH7f&bVx0G?I;W%B za{qW1q4a>?62Lj$29Daat8lGOk$3=OK+g0msxK%Ix!dFJG8X992TwoxqQqta!Mzya zTtF2_901O4a5rJ+cI!)*J-k2n!@u7OS~@-eYXG8SFkC*cI%V7WcXOlI2g}%;5~~Yk z$W@;9#M8++zA=38RN*j%&8{p#8USY>Y~!RoVlZuj#Ym{!__koR*6*!+@Xt{zQue~&H>O%nOM zY)2qoy5W8X1{r7Kq>n+~yPj>ya_%!j^gl|q{h#<}f@SxST(dW~Izt0gNe4luZH0zs zd$2(emfY3A<}~<4gCN7cu)&E%ILy`< OUzi}|sGEjsz*U&ag6&%X literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0041.h265 b/samples/h265SampleFrames/frame-0041.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5a4d6793d02f6abb49fd8fc41a3b674d9ab7f453 GIT binary patch literal 1982 zcmV;v2SNA%000330ntJK)I$OWV+F*+gaLps1puHF1At%*J)pQUjRxsKSth;q*zM&< z|Eyh71+9BUG~vy5u(BV)!JJ!7w$VOs_W9t2P0Ouqf+H#}`BvGKp6V6;YwOc6JhW&C z+*@g;2=+(!(S!f=g$G3;OB3ksUNF*0c%H5Q@BjPDy6ASKL>Ekl*O;O)=%s$EgWe@5 z+~D=rD)c2E#i$Y125nFGp+U=jKM8T|52C{zIf}$ z9rr6`j9Xf1I5&J5UtD!%sB(epa*NH(LBTUiysQL-tb-?x%GYl7dF<<_2a*ALRd;KC1e z^9ZQ*b_teZzpbAGWvJSU8vJbOO=@K}u;Wi!cQRA9OYjej`vYX*3@hUan5;eY@K--FF1zE-JriFWo>;JHrBUQ-}%)IyApWjco_Fji6&KNT;N zaWnK>fB*T(YGcgJEg&3}i_pk7#FJTubC{TWkYPY3PFXIstI)s|RQE-M32r#w7IyXc z_dT67oIwc6`T9EX0v(uL+L0d)GckNZ0D@{p?@;Jn=vGkeQRqp@J(Iwc-j1?Uxn#_w zBnY#e&Yuf_sH_$vF&dxA#WGM8*1w<4>fn4NcVH!Q7*4ZTN`~H9@WZrbb2=y{Z9NF; z!X8lZlRaVy4|9Fae-EoE^^cp~E^b$dtNK$@Xv}Zo4cSLoqkK@9=yi2ohkl~FJ^0%m zmmws{6cX}wVF<5SRP4Jk7fNw8PdDkPGN7p8u>(ioZm}lx+A~1_9O&d;A0l4WwN2GI zx|`t0J$#5GVE{Uel6fYNm004|OUgM$JI2TCg^FI6cZb#c{tsvNZ86>^oALe`_z&-6 zNZ-zX%%b-(n=#4!E(+fQm)4?5hL5S2@!8ZRvfjGP7Rpifc>V3D*Re@i8962l!oh_v z+xz-pm8(D3|4g9aAvnCA6jZJFn7z#2V*Po~MO!aRi3HF}|5-D@zjmkJni5*q{Cx>a zv!qBmO|Y*iXBXY>r1fnY9SB0b_@sON(Yrp4w{6JJ0O6fy~z%;ox3XqnhJGEc;c@vJ~z4ij6$T89K_9k|G)paLRVm! z**bsFK|L%Wlc4BrrDp@jwOj^=e)p1lN;u_iz0SpuXK^9qQ4D47e)MxcnXkm~?Z%!; zOUiL1s*oO@CbFwQd(TX4^`k@~P14#8XvJ20FBie{#QF(=^U_*h9vbd$WG+^56H7Ipy=r8fK*6u@8<#5&^TVEw$c`{uyxV3v>}Pbju>e zHSE6dP!pUH%3-Vty-dR<{M1KchNeup8yqNQ!l=C3AqE|li4?nQ+S#($h(PhHxJ`7? z^@S9~AQ2{V=KiX12@1N2GPW|H=3p8Pgl@vp4wlkHHJ~qyLNyZC9S`NdWUr3h``$7wD^)xV;sK+00P09TT%cAGd@gC)_?#8A`kyoo&X36+{KTeM?T{}0|1?jP;8#KIEUl_0?p!^3OZ~2Z9Znu<|B_4|B7lV)Vby4BBAr-Ix5;y_Sn*aa+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0042.h265 b/samples/h265SampleFrames/frame-0042.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a8ebdb3268a3cfa38b015821ab41ffc21c28cd21 GIT binary patch literal 1034 zcmV+l1ois>000330nthS)I$OWLj?F3pkOc*3Izj!fXqm^GK~ib4TyEjQNubWRdlhV zEtt)*4;q)%uRwyY|6jXIpG(j)EydBLYoXgjsv#C9A(U0oKQ83SzS>=?6s~#3?Qpxw zZUugy|8GMx8}h@tJ*sgR9^!o3_D4OHitq=f6z@&Fbf1O)XO8F7&ec-YKHM;RWbWOS zteRBz#g4B)r}LBlYB_e_2=++>c=D*L>nxU;sUaggyiG4xVxSttpELe z7(cOh&IvvXO{SWi#eJY_Sd8LRR6WbSLg%D$3&|6uLc>k@k8r7#>j0@_9)Av)8Mkad zU~w!q!LlnF(7_oHJ@x=V0nqY+0u}!=p4TYqyYPTekx)Tdx?7*jntJ zTFml<0DgEw7vaO_=QBtF8g9s`l`e18EO6+Wi)%!(eoryL28@(t2mk;yV21zz0{~sX z000938ZZC=>;sK+00P09TT%cAGd@gC)_?#8A`kyoo&X3vfcsl0;BKq-p#2N$M zN#Debg74S29@f`@<+y2ZbCtVX5xGFGPi~LH!D+A$5kZGy`Fpm%NA9DG%JuUF3k_x) z<*zIyFqRIy01{jONN^T@?g|z%L;9zIh+E!Lu1otFn z=p9M+C<%KOF$ROnZ4%%UA{!9C&8#}^- zt{+VK^>4?^^CV;Y?RyXfzj7UG*>WA-%LiwHwJ~r=_`#HUx_7{y$6?tu{{S#Gu~;&l EfL4_AVE_OC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0043.h265 b/samples/h265SampleFrames/frame-0043.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b879e8a55f4c62d204149d46e7f4ebef385a667f GIT binary patch literal 1278 zcmVw5U%v}M z@?oC~CRHeX*2VPo_+z+d>3Pwdqp1TP#RI60r3!ZAh3aa*nF#bfE1}iOozy=3v$}gL zbtOSysl^haS;-2Kr1kw_mFtqwg9oXugY3B(1yTS1P6QA?8MXD(TDjFNixawP!JTv3 znx;n@>vMWm^CAVfGUq@IGL7wwvZ$~)|9A?+T(7B3=k}a@{M_(?lqp0!$O!naM5p=F zv$7_-eV*HWIDaeMT5+gTFQr8!f2wR;8h9F#5YvHQv}BdDF+NBbUHZXGc5UGk&V^HM zC@-)i<5ogrZ2azp605VI93|4rV(B zHc=$NL$rL&lpdRdFBg9qjxttsx=5MrxoJZ-t&}26(A8rd6 z$4<3({jL}ib2(`i@UOQ+K^!4=Vn#Gv<>O1LuZ!NeE1ojANq1jJqqt7r(I6$lT&Q!_%h`Z4as-tp!78F{;QJ+ZSc6t&O5WUQv$o#mJ?h@JKrpy}<L(3WA*Oh1O&yxpxu`W_;@&e+O*9geqOi4#R@A9WTeEX9_xL z2wL9}yT3v}PCi2jPzGqPd0iKW+RltGHI-iUiPJjRoX8nSIW3NrpjiqFtkL0na zzjdz3FI?Rk(lPSFQUC`tK1@#5fB*&}5C2x400>R)#wiQ{1zu}t<=v%(zh_2J2{%Cf03DW<)2LA0 zzHfY4WdU2V5aJ!`?dE7i$ecTDo2CbU!3fzB>@AVc7&B068kqKb$^F2SoBHqcvzcn& z&s>)H8?JyIZU4w~GyhDi5HY^iTD;+mgkjcoQ zbhSp(aq4Q_1n4K2_X*5Ntdz)jp#y{*(xUd^bXZ>H1V39hquDQ8o-!XEyZkpNMAX}ll^vlAAdr1L4|Neh)e oRgG8|EC3s!oLbV`{}_Fmk{nqa`-};It^4}MGQ5BGRiG48J^;06ApigX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0044.h265 b/samples/h265SampleFrames/frame-0044.h265 new file mode 100644 index 0000000000000000000000000000000000000000..55463798780891c131f06c157d1dd3383d860e1b GIT binary patch literal 1634 zcmV-o2A%l;000330nu6i)I$OWLj`C`I1B>-pePChfWR{QxH63f=z_32AN!pz|FC;& zKG}-mmMXqL^1#%lzLms_pA8^}_e6j_gYqv~2eNK|p;d}_t$<@5s@&PLU!BxCo2vu;-N{z4gc}W5W=W`qtx!!0 zTq7w3LN~J9IjA8}VYWpeHWEKF*=hJAz*=b){wfD|#9##GLIOD1aA>*bC z)~bl>&Mx;{Bu<~>SC2e~%{>!MH$F)NVsljr23qf96o(Q8>o@wz)R;|r`H*L3 za3PUx7?{guz>ny($UcB0If#A1@Y?y_bb|?XgEt^P^GauGeCP25qGy&Y0cwSm5PJ!` zv`bQ_a)xQaL~i$K(1&N{0UqAdpA1z3nw6)ugR0$e^aD%wkZ9iV9Ss;7cV zw{oTW$raEsi#+4lpSq*I7%;E`x{yD9TIjRV(k3{>4_FX#^id%&1cu)o_2m2%ut@Zq z;si9sWu7?Ju%XS3buQwF7K%l_Lv zJr)&S{_SM|*1O6s9xP# zq)u^xD%93?{gW;MFb{fpM|Hmg99%C+!A`a)vCb@wA`IkLl>Elk0JHaxp+xqgdVMqE zabf;42XWX0&#^X`ochXqH#Q$U84$~=B|oKYLhM3D)G{E<3;UPg>phXD2&Zty&Jkth zhJ_^7(o*J6|M!U|=k=53ITehn5C8j#{hdI^B^-hI0>opG08hZq^en4b4-JWm#|7Iw7}F7=M?N_zND5*)r-qD4T3-A=tj1T8CJ0uh+XZu#H5^caf zztk@KH#gku7~2E(60?OgZ%zgJ>K^)c-b%tHV1s(++GmoRP77#B2cPnRXWxt5@`&L~Po>$8C)f(x-7S00RJBzyJUP02(j=0PF*ea{vOtnp;u;2QxlQPS$_`1|kptR-OO| zP431i3;+dQYiQ(*shAx?s!yU2D$8HF=Aamiv(mRjnUL7;CUN(NpF6PxUN*`95yY-- z0*8PW9eu9B;gZa6andOy2E5HCNhyuy%K?-rXpU`ul6wia~j&5=v;Z& zG|pfH9FuXjqIgB&@XdqCYZpKS-9Ft{hoyuHb(%WvN9Qx-Ur{co%BfQpC_N|Mc;TN| z(cn%2huj>0ah0Tx#s3+}-E;3DGlE9vp>4BEVU1(UXDy3o9(5w_h}1)YjP;-%-*RRv z76SCWwKlhGt1EAU$KfCsxZgVwPOmdo;|yaR+2e&mpxN5n2NWB2WL!&|>!2&Bhg0&r zD68`x0D}J~H|g-U=9kx^-a@V@I7?oEUo069_s}h{U9`9pgRdW=8OBK`hZE^Mx5mMm gkzg>y=uI)}P5IT#hm~3hG#8C4JLq5l8=!Tb7l!f{-2eap literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0045.h265 b/samples/h265SampleFrames/frame-0045.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f795349e8005bdd4cbc69c7905a051f8e5fa1bc9 GIT binary patch literal 1122 zcmV-o1fBZ;000330nuUq)I$OWLj^>J@C*Y0pePChfWR^ZxH63g2@Ht2XOsCo6nYlCrc4u2JmP_t`xXJ;i(THfGjF}xVy1U z5L)G1=0ikrEh8z#NDxlJK@bpCrx=uz%Jl?^Q$Q9V7^30qnW-d@f%X^<~vJ4ieF6PVt(?a4PSMILByHMLY~+d9)6ay;*bo^1!}* z5pk$B_pU$wn#5m>Ya&lSTOhU(!6b){wCUGBFxa zRycZBnU(Cv9;tb5D#+9;PFvw8Mj8Qo{9zFZ`pVZNL%j^(GbVfE{-G zfiq1fu$d0%9YU(RG^ghupKY57T(|md+ecQ;p-}BazNXlPE0YC2q1Y<~DLmD0+)MTh zqqzovl(8@DeVdTaetcb?v>Ox~;WYul5Eg0ck+?(`*FB%#4uAmT#DY~SJW>7(P&AMy2NbnNB^4Msp zrE$cFesMs6@`3-y0Mdr|sTB%^nY4lk#4S>URrB({|Mv8#HFT8)^+YqkD3?W>#P_wo ztUA2ksh>PunX5j%kQW6`tG7bKm>J)Dr;4?t$}`iMh+;CH7utw>p|X>4a&-TT>#25O zY5);;wZZ=AvSBq3-4}yfTp92|QwX)^L|Pa}wbTsycsgtQ(@wmlwm?#cCnvNY+!F{O z7xAfMFt&roOa8@Cp?mwl9dKn==ZplOLI6IXlw}A205o8S00093UBCbU0{|K@008U* zjdK73!J1oA00%QZOitE-00trt|5ly=2u<$BDGUGwUTbLNjDOe};Zi|f9Ghpu0+79s z*olun&0%+V@Bo@!iJQA{j%arALEDMxrM5T`G(VL!7z<@6jXV-qmVMB|Jk(W zH46}{J=^h&Ci_HcW%?I5DAeK7;t6aI(|Jz~hK2CG44jwjIv9qV>4acT&F?6om-T(I oRjdyRHsG?S?_F%#uc-zT-nwZ9L3e1sq4hpd-~bz+S0nxsC@HlcIRF3v literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0046.h265 b/samples/h265SampleFrames/frame-0046.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6b87e9af30292c0e509ac3f9ae2bc0322d984e5d GIT binary patch literal 2174 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

Cr~6rHbT^iSu&J zqcLK4-;6izqsEJYKof%Z(l%Eu&~Jy68C*h*njQ*J_=)Mc8Blw5U%&O~ z6=*4qnFw=HLIOc*uJugNL$F} zSM|vz61P2NZ!yB*VPpVn(mP`WDS{~QjCyMp5@qMS$`!8>yAuLpc0ej z`&T$UhyVUiBC)rgL1SzG;L(EvMXMWi#l+f5-!X?H%KjQw7OMFKl909@R&f3i@+7+4 znpl%!1mseeYEozQu7J^=`5CG{y`FAR>Cp*im@k_rth>i4cw(;(%PzLB(?bf!y^a7S z+#o1`llW)r86~}%$u3?7wa&1 zA(NoCUba=xGmpo@?A#Xf7}37PZ`igGF~^Ct(HOQx8>Jl|Je|K~cwM-P1J2E?fVNH8 zjC6>XwpnJc90Px%+;cr2%1204dh_iq1q42g)CqP94Rlwt0R?kOXWYjB&-f^;vDQr? zJPx~+Wg&+&M$^YA_ok2l0=mxhEUH(D%93wlUWUKb|L9&YQVKoSX}7nvJYeHiX;0E| zOLKLb8`&rxG$@V_oUAWfx~QH|EtQ9V6*yOoZvw#aq>D$<8;N3Yc?{< zd%M*jCC1x2@NY9#u&C0(?g|whk@jc%7@#gx*B0LWty;iw002Wklw}A205o8S00093 zUBCbU0{|K@008U*jdK73!J1oA00%QZOitE-00trt|5ly=2u<$BEo4&11E0gREo5(P zum54i5TmRFM~@j?PWSVM=MD=%?#?ZrB-$A48yR=l}&?YiQ(*bBKUTgL@%REC(%;iJ0nGZv)3<#Qa{yeeR{V zP*wq>WtBiMNF7jjaQD=~t<`m%As63=(gA%+0jfP3dw!gF-B_EQh(BE$DW8ZWSP~f3 zaCATMrbKs-m@~=sg@+U`BJQRY4s0QeYN@mR{(aBZeqa|@yYDBIq78=$r7=q(GpA2=%Z z;iDyzRpj<-v{v4%fraGDa^^QOAU;WdM4j)MqqZOpK#c0k#E~}CjXEP=SD%=;Vt4=> Gp7M~7e}~8b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0049.h265 b/samples/h265SampleFrames/frame-0049.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d8c9632e43347b318ee12c12244b4e30a81cdeeb GIT binary patch literal 1849 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 JsQ??F9uS8L(kK7` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0052.h265 b/samples/h265SampleFrames/frame-0052.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d4340bad4215d474573c5fb96e9f48518c46987f GIT binary patch literal 1188 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0055.h265 b/samples/h265SampleFrames/frame-0055.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bed3ce88ceba5343732c542ca2316e647a2d93ea GIT binary patch literal 1271 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 M+}#Xz02to>5bBqTnE(I) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0059.h265 b/samples/h265SampleFrames/frame-0059.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4c7dd5f4572c30497a1d94339d077c5212daa18c GIT binary patch literal 1976 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 K>~;VfpB@l@TENKw literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0060.h265 b/samples/h265SampleFrames/frame-0060.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e8b3d86586f2b7a6597db60614663ee9786d3dce GIT binary patch literal 1262 zcmVf$WLv`k$f6lk{a={TY(s( zH;AR{TYg7O&OwJ)xPH``GhH;RzkUB3w;F`4WrIVeP)TOe7DsV((kD3zWpclOQL?Pl z@~4X4-!X|bu39G1i;A{tdGNUAf?B_VdO-J{m!?Bw{p-8+Ric~whi0VMr=0UlFeCzw zQhVc=j1oN>(dRQT#~gD=Iq*ayUTgQ)^moTs4NbmJfYs&#@`lrW19Un^G`No2`Lxhq z$B@;oxUjl$;d}hyD*@w5p}vzJ$<4B%2>M}kGx*U<;zM3r=A_5ueKK_`G(TXSF!itn zf1eA3oO(V;zP9(7BJ5Hq?OnQMghOpP?;MB}q2j_1 zfFE!{d33jZkqu`J#BJC)lM#?0Jck%N`(RQ)XA<+iwe8(HG{Xq}o?Gi`U$_v}A}!XC zv)}$Y+h^@>|9j>{r^VjZD_7Uw8d{WvCPnw+6WY!kiaJjJ$aq0ksYU>2FwON}Y@=*W zHlgbC>`F)gHz3W^4W86l@pXB!aLiDvJSO+X$?328(x)juR&ra~$s`JeyC~eeP93+j zUfo~K5QgUJbEZ#4ouwAAz*cH-;2j3=MO5Dz%)<2Vs25cU#g!pL&>CC@*pPSshQ`CK z0=EyII+V?xPCE^UjqYswdjdwu&&1e88bT!&vG&^NaE<};)cgxBiUf(*z)-O9IXA!u zdo*RtkSN+g0^OV;4Xx#{;c>wKOe5D@!U1rPxe}I%GZ~y=uaEAZ@0{~XQ000935Rd=>+!Cv!0n8H+74Z|J6|$QJk~%tYqo}i!J6NL&-CxBgU4?#Hf?q@WBc} zzyJm^5C2&0o=$C-Rw=WJbCy#f8Qn77>m~caw3$U28DU{j<3&Y0cAz*KGWDKMPOGL^$QoFBj0q*B6MR`@=WUjI<`12P~w zOYK532B3)Jn&HwT1zMJ$sL_-B_wsPXhuF;_#qh{F;{^Aa4fB~bAMHBBVjT~FDc{$! zdhWv|g8y?R;h_%V{1;hEcJVkaP{fSnN5AG-nN3n~$_IlV`BBEBV7eAiG%<1S70<-w zg~hQRK$hBd2b1Gus|BVclx%%5!;wJy+RyTC|02`kk5Y+K`8UO$Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0061.h265 b/samples/h265SampleFrames/frame-0061.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e761fe2c9e18b1b1866bda883c1f54e909118d63 GIT binary patch literal 1962 zcmV;b2UYk0000330ny?A)I$OW!v({WJOO|(1puHFWD6h=0pPW{?yb|IKaM;rd#XhHHl-iKZL6$^74ox@+4V>9&3!^gG3yqz*e42vT>H>)l zmb6GAKX(}(@X#4Q&EH@BhPQLxMSO!?UDvRlcZNL8l2%ai%Bg|Xjc&zX3$Ho7p}}w|y=!G%a5AB>QuBF8peI+7l~z-)=lZm~Q_muP zg5jxtm&&*erJCn{*04`sxT0s^Zq~dxYJGFodN*Ex%ty)O8}~271HGseHEcbd^%3oL zQosnVH#>S%)SD5z;{yc0tiO&2^9Ll%JSykd9axgcIJ&5RD2UG%2EuF{vKBXRVFw>? zh^F?90sxl#%Z?*GxUWR>;Y%JAHJ@TZ6?g*1Y3K_@=IVf&aA3`e)Gu*=q?{&FoIme4 z@grFt2#n}&WQQF!!n~~-XJyGhrI(*0-EFL1{L6j(iJ_&BY#bhxfMpk8)e0TJ-5F;w z`e1wIwO0SjMZDG3N3dqU8t`ox6TdJ(k;CFf@@2GIbZG!KN{S-&()F0LcP!0E9pd># z{?(n>-_BLxSvjj%zr>nAaZOS5Rils@Ju?)be*Xl&55{9job~##j}T8m^3W5oiE_&Q zw9eu>9D}q^_yB$tn9t~4GdPezC7_CLU%wrJ~O4fbi$M)L{l1M4o>3KvM6r~rqohvxK-nH zDUE$rx$ww3efA(aHqlUqI~4Q+WR*ki>k@C#bC7w>6N2NJ|Bu`7itMN}&Op`>6=(My zl?^4HOB3R0IEP?pi&m%!YVTm#b%3xH_F_sjOE7Ie*=g^$8Tg z+Ctfd3IVWgx6zu{sx3Yx<-ala0t0+{D zz;J*85@?R8Zag&j|-J#)cG0S04MzALJvL0OSLW za{vNurqVh92P-~IP_~w=gguq6mV!usz|;BQ{?276M*=_hbKXMJp4k#)?fP&G`&w;=)qr4sJa zCKV-JRo|ddANi?*sG;1H6CF@*An8!foU%U~axrCHbJZ(ro0PW~VWYme6Xe}*RGe> wRbpvap~~xNxso6#qIPbiTXVo3*x_IR2nFuOE8mNN00mxaXxr>|02`kk5Fr7&?*IS* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0062.h265 b/samples/h265SampleFrames/frame-0062.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd98a9353c403518f29014a942f457d550571e4f GIT binary patch literal 1151 zcmV-_1c3Vh000330nzFI)I$OW;{`#cU%^EI3Xu=U$oKo*Dve$``HOsUeEE{;dYFi6n3(WHCrGIiK9CoISX^A_rOeV_Y7gV z4{9kaU)xA+H_u7WWW(wIzTV)(baJ&&G@i!(h>xq#d&R*V`1{xvc&Xm&P1%);G<35> zz|LX=fZ4{){347#cKkFGNg%fPxI&t+E7>^-y>IuRQRR zZGKD1Q)T12JJhgTo>e#o&*!cWt1DqWsausBBF5BmeOs!>zgImP?a+& z;8e=^_|WOm#m&;G}J4YDzLfK!Gr`t&I%zL34%C0OSLWa{vNurqVh92P-~IP_`{yNil-6f$^gNlF5pd59DEvn*eF1&tfDr zc?^YE{#5x*D!yev>GUF(xaU97*cpSfTMydI_5IMh0=8xeYT5JsmKTbZx5U!ENuz`H z$_8>&aH|Wn%@+l1nyg<~j)#ABMZ_hDfcJrbO*?Dms23C2W4Jl_miBkx8EQejwW+NJ zt)YL`8}#zU*C4H+*PzPJd$E~(`w~(};ww*FT7=gI-&!Q<``9}Wex)W~byWXoA)}he z`R#wCykMTkM#6(c_LA~BLzv@V*x9sEE*^IUEkFPUG7tY(>C6m00;%{#w*{8 RfB*$vYiQf-b^sfn9uUE#Hm(2w literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0063.h265 b/samples/h265SampleFrames/frame-0063.h265 new file mode 100644 index 0000000000000000000000000000000000000000..98c8e1208a3559025dd29efea06ea62932e86da1 GIT binary patch literal 1480 zcmV;(1vmNt000330nzdQ)I$OW;{{X;zzhQbpePEcfdD`cwYl!C&_3a2|E%MmqhE!f ze7yh}0w&ZSb+LU*$h`u);u3SB;2Z;f1cE``M0FlMG(^|de=-sG`5>>vFssTiNu3Um zD2Nxb-DU~#&K#^pZv^3H{JuSb@4EaN1z|LQXT7ce|4+uFSrnBwd5P_k8q(<$%#8h3 zX;>iNCY3w0^ZEI{H+6ioX()69(k!y9@DITDD>U$b&t4s3;~|mYT`70|R~b|XJSt>T zJ*dLm!Sq;E~rFqyG{wd28Y@4+w4TT@9CEA=Udu`~T)~j7X)Y zFjoq=L~nEh+rc~{)Z7bWrotKw&|zp8!wOEDFP%ss)HUDl%PF6iWeTAOP;Pw0!@}w0 zM)YoVIEKh1!^@55jKlg{G{s?Jzl=YIYpcXjol~pMp zqO!M;ojWvNT4k0pjaEMcW3gf6_ufsR5Rk12A;9p@$)^QrF}fP>cX8K+^Lta=5I1)E zDME|X8^6?v=u?q>d*DKp&d5}LDD$Wj{Q4)6Duq_cr@%3YI5N{9>xA)2LUSSKAePe0Pr_jmbqxYga;QL~LBy>+X!=e9VF;Q3fH?aZrs|Y zs!j(gcnIb4;rr}_rkUh<`ApLB&y6l-q69#1$j85Qdy+c~1$G+9U9v&PuWkh}#7vx`G?hO2-4_e$OG6SGL(3F*qjV*=e6BFGEdAm9w7Rgbu23EwSu0tT2lLs0>MrylD4qBGY`x$d4B+2R7-gXS_H|I i00uG-|64M`Q~(GC?#3(Mi+}(HUTbLE>~;VfpB@mNGSOcE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0064.h265 b/samples/h265SampleFrames/frame-0064.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c03ff1a051e484f7d72606a308920026b24ec79e GIT binary patch literal 1916 zcmV-?2ZQ(k000330nz#Y)I$OW;{|N7zzhQbpePE!0RTV`wYl!Cw#09sq||Um>>A!v z?BEB+2EC+_5KUM6xCVjG_sc8g&5MbxuzY6gxu6FDw(<8i+Gz;tj!K{Z=J8W9A7@I$ za^+p);sxWSqaI#MM2)u6h6mU5N=X0*O^+4VuX6t@{LlA4mE!$fhl=Rj zQ>i)fTerc#kBZWAb&y1UVJA03AIDFTd`mLs^;7~lGz7K9dcO0$Fv%v=5W}bu-ybP! z_+{2}%cDMZ{TkKCoEI+m9vDiCNDbK2RF)pnR7;3E_{ee?3~NAJhb{CIU)I_ZV^m1I z?W-8Rfd@`@Aun?)sgsOs3zWa5z}<6_M}&uw0y#2cmFh(#A5!fvj}Nw5oA6<;g_)3S z=UVB5(*kiR(S7iDim4uFtl!|=lu@}5!4_iBX7E*rO~F#=+9mL_<0DX69T8D1FHG29 z;=A~m6l2L4WB@^FeVg{)5=T)k`E##ATSegN>8Pwr>;n^#Hvx#D8 zmTn!_ij}y1-Vm7Slcs1$L<1lYcabX~J8d5U26eiGgbW9T5Eb9Is`wm9SDL1FNxZ=UR=u`veQ#=}Z5x*N-^o-zN5MX;87C}=rT&-)E+sjn*RiosFxEzmV)Z8$TYciH~n4q}X%`E5?yN{UJg|#X1!x;Nt5_ zMGy0gq|v)Pe+WVS^x0)o{?K_5L{}kDK{rqHvU~WC)YqPig`uB0$7rrXr41oDu5#nv zK>eD?PJ;bw?BnT++g3V>p$lqR3K_|hgQRx@ry@VoBtkS2+g4|pOb{HS;V@i-xwRjnNqe$L6K6sf|egtykk>UNm ztSG9?n*aZm&a-Fzyv04}#*@&%0awk_4MEo7`T%zN;NSmo|NoXc+r#5pQt-#n`C_q; zquwdc&ru3efdvSScsF5uR3avy-AR_e5gFvk@hVno4fQ6XR|I=>V~1^zlm|cm(Nru|k2gI9x z_da>}?A!P`5=3WWP_~y_1p+}~-N#+8syLJ2%gq;bY0g9Nqvc{14TM>^3Jn z8!GY0e~dZ~B;_hQO2QN!jWO#H48^lLKX!qalDW;~5g;SJ4J8=n!Ax<=!U1fr~;U|#?aSrCd0OSLWa{vNurqVh9 z2P-~IP_`khsP=ceXH7k;i*6$r9NWZw1xQf=$fx?y4|TqR@pt*Mu}0n(b)%Cj<1jfg z{_v&B=O9>mGfBAlwFuL0cl3<0QLct=OxgS{VHN(^2vkx#oma@7pqL`6i%Du%R*F|J zo!=*laG2eIK)q`CR2i=n6wgzD1r*2?-iEQ=i=?EDbwbIp(RYm+XijpoYCT z$-=azw%>Q{ARtp<23UKmWApphD z;MixCX059)l}K44KZ6wScG1ROLCE-G#*yYif6WfeG}PHdyy`-rXyj=9T^K!T#s(sce=o8 zJ`^a;;^S1#wa%EfK2R=McLuIKN2diVoIC~;VfpB@n8 CC#ER? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0065.h265 b/samples/h265SampleFrames/frame-0065.h265 new file mode 100644 index 0000000000000000000000000000000000000000..06c2a2572d7d4277b903b3dd954f14553ffae5c8 GIT binary patch literal 1358 zcmV-U1+n@7000330n!2g)I$OW!v#$z_zVL8peY!D0RTV`wYl!C&_6Wh`HEYqS>H0# z0A?84q|UNjJ=sLcKmYoC5oev0Ej>Cc_z4UA6UJyk5q5yfSVE$Pdch)+e3^GO_F{@D z&~Hn!Y#X5C`&SmgzyG^wj{Ba}|BV(Gq7X99wn~r}3(W>DyeEDNV5f;a?|kNcDVi{T zkz)~_RwWx*!c*Aq`UCJ)x@0ZsV;#eHsS~1NyOWF;H|EQZ|DM+jq}|F`Ml}sNs|6W6-L-p%lzPgA6K&W9v6^IH%WtUX#jxRGaTCZNSL8556 zz*j1a`O}#=Ow$+8UKb@f4N@X`0fnW1@zgix4f_W{9WcEOh*A2c@+Ys?P%aV$k=r}@ zGr(t4^Z?#4>E=d@x)NeCa3Q0h69var`jShL%~(cD5WJV3h?=5YDxh6{n@ZeNg`VO~ zJBr#(sf>}mm>Zny^N!?0oZArsQn(KsQcnN?DIm?$4NMp-G~b_(E4w=AKmO{pL{YQk z<+D6kHphygUk{!s{|sH-x&#p%HuLLf`{5OF;5g){)A*UH^kNem;EonJX{^hSL_=ux zsdVHH#-|QV(dpC#PkV-L$NLmhKZkS85lvEeFt{K)nyGcgNN*Lm`SReLOuL0Vk2xpk z2ij)E=?u%~sXdartQXfNop}K~8Fi9VFX=FDCKdS4sz+SzrrlKS7Z!0A8z z_>@!vBpv78Bj&6Hq~%BU>khvf9J2v<227MDZ~y=uaEAZ@0{~XQ000935Rd=>q2kfu3(NL?PFy6RLj{EC$vqTLt?jwdiZ+ZK2>2g3z~ zkgWz#tvk9&E8Y%gQjEo&AOlEfB*+8K1@)yCD)5}L?_z7 zh0dRn?TN*V`P_Vwfu28CMw}vgnNj+uzyT-S`|WQZY~ypiY}VT}gRs>57@?8?2lW18 zn0uk;d5=dd_XX!tfx^#V6#{5*aUIOW_(qX?r=!n^l)=0|&K)lL`)VwDbtXJ}PaG!t zI%s#G^*83okNRLDA0v(fLK;D`&!Z(KTR;Z3@Z&F5!~pU`!yXY%Oml(p|LAb_@3KX( zqelvn`dk;jX-kzr$Cm9BQXFH6DO4Cr`IU8{Ar*FyY1ElvYQv9vcxV2~EkS;H0^oq( z^yHD=GFq5)=;6X-3=G~VV<`-HJ52(F^3biha7Xih|02`kk5W=5|bN~PV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0066.h265 b/samples/h265SampleFrames/frame-0066.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e76d01b21d7feb95eb5fc0347da3e4f8617fa971 GIT binary patch literal 2225 zcmV;i2u}9^000330n!Qo)I$OW!v)LJ+5vzt1puS4Ux0uR0pPW{?yY#x9~TqBv4*B@ z|MyIF-rQ#sil5R8J*+J>SCvH);54VO`0?EGRoyW_O>KkTKSBHUIkpwYu zFbi>7Nc9UIl}VigdVHkW_m+53nA0cDF30kgv1e1g@)k_ul_ZR?S}oWhju*MrE-Dv~ z0TeGkkIAtk&EAXr@MD))JC^#!(v*`uJn`3{V6m@sLI!3ECKw34y|5ssFm(jity4<#WnS*W1iccOn--4P?5BQq8#1 z^a}LD@On16XEbY#Q=gi0Du*b!Uq5FzUXvej_dZ@Vy2_x22P_T7F$nsn5{)T+vh106 zcBPzf5*uPI<0Xsh;1VGlfTB{ipy-hNi&|J3&}A15-TP?+n5HS1*-V0hh`YVwrQbcp z=x;^Kwl*WS92GHmF(+bT_CZb`B{5$@VSyy6Q%A=JsNM0Zz0g%&%EryZ#HaBNpvn32 z{EV-0jPTc&bR?_Qu7lhDLzhVXf0wkR-Tb2N*gY688qD~8vex+Nu#y8G$37$qc>2|} zmRC*(PyB-Zt>DhZaiVYrG_ccFRC|vSSwCjkslE=en1I5aoUM$G+aEYzRR7ruY&YK) z0SvrYD*Ck2hvVe2p21qtc~*r@qythqtNj5V!Qbv@kU{fV26ZL4u~Xh!!=#W5_iO?}Qn#attrttpZEwYQ$hf`!5bI9t)@t7$hQ!&Fd( z6}_iYb@k>$6|;v4sw58ZK&#R~Mgo4HFM9D|lHMU6S&WrL%nd#|s%PRrW5y7;(w(&W z4W)NaSt))bcRz0(`%NmG4?b0L*y(^+ahi}T(cD?7?j-43t^GNF`n63WKy3PCDU<)P z(Qfz$>pvN-HXXwObA;;er?b_0xKa&94QV!amc$*gs7T(pf_f=kajiVJ{n>1+N)Pus zxop21FBS9=sE}Z21<8+(2k4Xn!GqlTiFukvgBtC=_)haIw|%+g+lBc3GRxzf0Pa7K zH*~Hy62CddB+C;PLw@CCDRsY!Msd@*O@ngyEG45iYHm24${E&F2xv#@U^1{EP!HXm z7@W$3oPY3n5sC{t@;5R9T9bKZzCuYns10|$M3@uK9eBlw3BkdWVvdbfGxc@aE$Y#OQN|tm| z1Hb{B&C?A&6j_8H0X19xfmu^vnk&3C4|Xd7C3283j9%I`c)?_aox`TqSPp-z3dF*p3GFIpxh$RUhZJADvH}(?etx}&iPMq68WArRk024$lR*1 z$fGO4#I2ZW1K%IzlJW&X;5`cFh^>2LU)ff6mmhrflw@s}NHTk+#zwt23DbgRl4p}h z5n*u0&01zqBvi8uJ*8J8(bpH35Fa@5;Ac#ha6-QUameZJ83`O3P3>ST%QBQyR-Xaj zj}!>rU|C~-O4TDu$39o+qS#E38q>iU0PxD(Nre4l9)&D(9ynFw_0D)EIs00Es0^>aW9W_M2Z~y=uaEAZ@0{~XQ000935Rd=> z4qz1t^ocrQCiI2mlom4A z0#FW|k_kW>i_OC*!&H5|kteTLyoa9TJVrE7B~3?@6CS#aE#hqJ+0Ke!xG z#I3ZhuxloRhsgmj&j5u!XFfUbB&3j3*SmK^VnlU7N!@)CF zt{tNNXjmI&O=33*T7UC&v+nPDfUqd!eH`jS@F~1XFbxW{l5EEPrbPwlknXyn>`%ON zXe@0rm%6FEf63BIF?brcW;x;bNya~5oMi7`9bURoWB>;%K1@)yEN60G;Er@x$apU> z4Mz7RmQB}XeM!SJJEx+NqfRT?wop(6=GYk3e(pFT4L(j1H4e}HUGBc*)`H~pl3rU~bgC&*}7WvAFdocpVHw-E=L3eU>C zi0MM4#N35R+`dVTVO{43=l}*X5C2#t%5VS(1@6Wx-;00%1zu}t+w67#8=oE!`aV3E literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0067.h265 b/samples/h265SampleFrames/frame-0067.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da9ed42d516b384aec8c1d18f3c784d6b9402c6e GIT binary patch literal 1213 zcmV;u1VZ}&000330n!ow)I$OW;{^U1z+f;G3rHsd0RVWlx$dpdKH+H#6PJh1ji(&_ z8vi@F&f+#OE(st2VRsC{wohJ4Sz}j~GY8Hxh3DS#gMUXchU7W$kowwsQxB*9`+I;v z(aP1D(s(f!5Z(bm!s?WO%hv!|ZEm{|>GZ87t6!0S(Xs9TX=3+)+q+^}S8c$(OU#sI zdM>pOIt}Wx6aCT47s)4D)R@C&)RLho*JV+@$j~oS7(8n!J?6vOlJWFF)RaGC+V06+ z-rvMQ0SiBFOTxU{|An_T;;C*{@jd{(j5$LPK~Eitr8{8wyScE8oh@YA2Wx%u{B$Ls zm}TjpCKwF(L|A-qwt1SGViLYX@V@N~x+*798pt=UrV3?6zr@2rOW<3GvKL8Y8$Wt_ z0EI!9**NgfT@+y6nTp}MyvL4BK1ZIT#NMTj?5HHd#U-M=TA#0T#NV+(_?Iaqr(PNB z#z8Zz#<>kORZW~|)}}UgaDL}y>}0Zismbz-EDjzD zNCjUFcT|s;v&|_XskHozi0CR0-mRH-fB&$+XL@k4MYCtYX4Fn|4AoJUY>;9nOpSsg zka~=XX8&D?o;<@-)-j_vCk3yQZnJnvdQZg8>$ZNO?K*C(3D}+A4}FODZ!V#FY40OSLW za{vNurq(+k6xlJI?BEYUIUFB%N}{DHcOj6HPJmx5rP|LI zd=*EXhs6o}ON);8;Ko|JFNo@uBHw4GPvVD@5qF}#oUYFqU)AkhTDX^8PAvtBxBwc2 z*}PwE9SUIG58TRH>Xfhs37NtJO)?c(k#%u6>s7~zZ z^o-p~pn|K$%P%z73}fci2t*^ndvA`tvE#DQb|4yfqpD)t2-~xc=XXbWhUChhfkeuV z%_GIq5a3K0H*;wOOSyJiRMKglmzpCGPKL9BAeL4K} zw$WM^y^?wjP%V(eQ#sBUD763wD?Ut6c4NM%P8M~CO?V2peI?3#pb*L`nOzCF<{Rrx zs>RNJ(tgCJ)p|mL%>M!p`GH2l9P-2tuz9xNvmzkq09sqv2p{|lNHJ<*hyVsM5C2#t b%5VS(1@6Wx-;00%1zu}t+w67#8=oE!#r006 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0068.h265 b/samples/h265SampleFrames/frame-0068.h265 new file mode 100644 index 0000000000000000000000000000000000000000..349cdf719f7b80622b045b20978b4a7bd3d73b99 GIT binary patch literal 1466 zcmV;r1x5M*000330n!=&)I$OXLj_bw@C*WgpffB50RTV`H_P0R_B9y@_q3Y6<9<4Q z$U)YDS^pd#b+Ea~3Hpt7>RaQXI+dI;6*?#If!JqVEmIZ|K5-FgdMgEymC0CuB4k)W zKM=WTyoP;kT`+|g|VNAXT6*cb%duR4#a7;x#fOZVYLJf)ii%qK-EyDaA-J^)JtDYmR* zA#?7NPGRzu7txNVe7}6_H9c1RQ5kXnSyLv!WP4ZUev!NT*3t`^^l>dMFc;TW9Y z?Bf!){(hiM#5Gv0uE`!9g7#DM|4GHSsM-GC3MV!xjy|-5Uy@Z@N@_^g!Sc`U_UB@k zN<9X~Q~Ge=wLoouRuP7Izlj-XXX#BY9(ORzqzyo3!d}K64KP4+sKRRWrHBHNNl7+v zTScEUG*vk9rp{r?0#^*nCGV^GzmM(OX)eRblOZz#YmBSKdXZ5*W`*#9l36~pLjKxj zFTQ1MI#FCtOQY~N30mbcN$Lk!!nx^!2We&SVXm*3<4^r759TXNK>c&EIS1~FGq@xI z4WdtsX#oeo1_NV*Relw6=P(<_2WnUNVvg%?()4l@cxssEwyVX&nRF0Mq(pmqUi2Bm zp6n)vKVjl(IpY`YfXP$6;SQWAWU^MP*(8NN*i0SuuzL}M zB8Gfts9I5&7MAc>|A-4Gc7MH^%1s#8@AvxcmOQUPv@*{eYXDN-0&MR~?H$(n>GtDP zc+#01BEIocm!S0oZ59>S#^l0+p*x9FJB@e9j{CJA0!Th_WLeZdPomxXDHo9v<`TDd z;!Kri%zDPybhgUd@&KGHr# z6^{aymU-(G@b138xllAxqvQc5raY zaBA#iw*z}Jsr364#k}n+UlUI2@jXqJU43-`27l5a)S_KSw}b!%T4Ik_5z24?1?tc! U45ETl$(*OVf literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0069.h265 b/samples/h265SampleFrames/frame-0069.h265 new file mode 100644 index 0000000000000000000000000000000000000000..792c156091ee1680eab427c22e22bf9dd9c2e2ce GIT binary patch literal 1613 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 C`jJ8a literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0071.h265 b/samples/h265SampleFrames/frame-0071.h265 new file mode 100644 index 0000000000000000000000000000000000000000..78b2086def33dc3e3068ada0f44d4c01899c7c10 GIT binary patch literal 2807 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 BLk$1` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0074.h265 b/samples/h265SampleFrames/frame-0074.h265 new file mode 100644 index 0000000000000000000000000000000000000000..734f8c0d8f87676926770465c41852cae2af22f4 GIT binary patch literal 2353 zcmV-13C{Ka000330n$nT)I$OSSiy3z{Q!UpKgmc30U#g*0C*^4m*4?Ez#IdGMzXel z{{R0DMrMJ|A|tB9TAI5{ip4-mldD}~RY5}uIh;^H_P7Ppq>~(Lt|MKa0#?~<8_w2u zB?;do-XGZU zSM;j4Mim!j7vQ<1bGS+HQ3^;PC1=Xm;T|B-Py)aqW){B*jQ$o$C&e=TG&qPTiqu!N z!GnLR9wPIEXpC0y6Ezj1p7ueeT+l};bBESdPa>h_IAy#@Jr-@zBoQp+^P3TzA2Vgb z-nWR4`b&yt-~AmQ3x_vpA@)k=#j=h4 z^#2gaqW>1Q+cNk5k7yrgvbg8&dAhTmJ$&2aoyRd=u=3EPwsbyZA;|UN{U&vxXI1<) z=;*OC8{#y)ndPv-Q#xyYd(s5X-M0L^JQCK^V!tMA5(t3b%KL7k;=uR95oFM0_*doa z`sc-#weWoXz7%_WDO^}sJtp9%Th`w&;=Fu{2d&~6hn$NAR(Jd5i^)6hxJ*XS95PII z4SG4ze!e2@kRTh-XVF(W=@|}2pT8lbNfUACxB6qx^w`QdwwGtEM*FKlpdA8>xQ>8bjWUmOKCjR6dWZ5YW%J3^QEcIM?eXXFz)5dOtr3Pe$!(ZX zl?&Q~KVSPpAO5Hx0A*zoRd7Z6#=OkOL={i@Egq9@i!oln>fP7{yVWDzdl&3mypcAO2YbNL;~z)#gTgZ}0r1U0g92SA zB7Zgg>L$Wp{87?96$6=Lt2;RZx;U&(;$CW?0^bmx4{ zo|b_x;{jm_^?=`4iI9ykJ)Dp)THfzEZp)(9^L+IFqlMV{b8Gff!Cuc=;fQ-pvpaJ! zIP4Qm-#|p@jZ*~hLimNzr0xTJjbCl?hp>wn+P+s!(l6W1loC%peB=a0xO(iNpNqmo$(?CNsI>wmZI%TkQZo-@e^D`UhXbvuq|QgIOVh_+S-wrjY^ zdhG%PfDtimXSpX}A{d)$ieAg4)~P%GnZjcH^d>O56F^<27%3f%ARDl=8G63xHVT0b zE>E>Tk~N=9u%E%Mbmq2-9iK+2cb6m3;KDs-+$&xg@_qNwSCEgo`Q_W6x!DN1qG|*cghY*7%hxgIn*@)iQXl|3tK-&)d|cZ#S$M z`le75kgVVVT4W^v017%)R4eEx7GDm@ixq`bE*#amWszFf^-lD_>{pG2xLnpkx~j|M zPy^4Yy}Z(c*>Fo$#}S^``72oQ$oqpiB$OWBCd)83zCU+KoOTvh0mi%ytZJEUOyvPPK;7HQCcFY_$M}yl&U0nF^m|6$eD4g zNa~TCo=!Ckqz&qbmhzvh7Iuyp(?lu&BA}jumjD0*0F;1`OaK6LKmY&(0Bx)?tBt8F z%m?jC>yu(M-B^6fKF4g(@Cq~lH7QE27cET@@qo~tC&;B4rr%N0l zA`@cXhpJvm|9sA1NA)@%(&1$~xxTaf#s_-%(crV>45RPuspOkdtbd8!J0_XJaBKQ8 z-mt&=m?rfEN(JZ}latC@9C=9U6r^8VLc>5>4Bwj{X<2T{KDeS&&f5XLQG30|OzFAV zGx?33-ciauq9&Cb5WeQ(kTvww)zj3EbUEvW^KO}|$-#OT;f5z@FPsm+%(*;L-`J?+m00NXS3DQ1=;3Wg~zF zv7C`!TTJB2ku~6Ye08hH4$`sls$ZQg#RNoe58QWy>4tPB@w;q<#m000o^ z3P^1XRt@WUD6w1zTX*?>f8+OWy|lTjRiIi+Q`;dk;oT(+-*-BGGcm;|6?s&qTtS!OgDxyHu%^b4D+Y(5`*j%F z$tOvwdxxHm2;?{OI?B6yXKAA!tGO^T9NbF~;sIkU0~+L4vA4EB{p_Kgh)*lu6w5jP zmbp^xu|5Mj!^)fR-l6A47>HN^0@Iphp5n>?2!Y1k7}xW9Q~(J@Fj^CdrQiSx X?VxlXvkrg&2(?Lxy&6ma84mss&?}YN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0075.h265 b/samples/h265SampleFrames/frame-0075.h265 new file mode 100644 index 0000000000000000000000000000000000000000..52908cb9d67254cfe2ca7af1e566e277809d3285 GIT binary patch literal 1543 zcmV+i2Ke~^000330n$;L^o?XcH^ zA{u~`2_To~z!Rg{PYU(!{_YH`@a`nH^VmRa7DCRrnf)moWJyQl9!m)prL5x$$A+Y> zKJFh}L0=qo;CNcFoewKQfUS+)Pe0%P&Jf77wi->`_OJ74Y`>PBI(gweK_cDZSv0o!EjWXEgw}l0?_*zMHU;CHO%N3<^1Jz>FEXqOy$N|?AE8_~75?av zVEcH(UM(}Bi+sbHW(hDa!GFEdR+_m-ZhBePXaI`MRd7MOArDN2)CH_xH0|D6bu2f< zfS1`61Jg@bQLExSv&ZI70OO zOAwu3y(b5*Ff8P~aEempB z%5ZI~AzELv$@#SFa(*lz4fyjiMd~Jda2F$QS66@l00RI30{}=s)YG$^s|ngv87^IH zP&X>mo`IJD00RJ&fRIc80CPY900RK9K-CE!?Z0GhvhTWON62b;&?Ab?N(%L) z0qD``54^iPee+I_g~m3H8Mc8iXqJ5wrB`u>Y^C7+ z2Zg@5@X0uQt;FIc5{6QD_3c_6wLfhW(w@}G5&lM*U|$LK7hTthJu#C20XVmkZh*Bi zUQ<6Gz0Zsb+g3zGsp?mWUkk_-ZN>+hBDRFrEGu=k3^Fe33d{&D32(x{y|rU5KQ@5F zq8Yc#UUpKU7a%2Vd1=2(U!f&izQEeRdsgjH-H$42>0y>D_L)!aC*SiSXsws}y=S@e zwF8{cCvF7DtdalM_|U$5DG7rml3Y=mnB(xZ>bz2i13}tt+hDE#)qis1umA$nnqa#( t*Z>HD#@!g#^LkVO2}Lkk6N#nZ01EA(bRM$~fB*=!Nr}B0OaK`U{t!@X{Rsd7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0076.h265 b/samples/h265SampleFrames/frame-0076.h265 new file mode 100644 index 0000000000000000000000000000000000000000..31e85d3e1c7be2e9a70c376fb75e2740de5046e7 GIT binary patch literal 3458 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0078.h265 b/samples/h265SampleFrames/frame-0078.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1661aeb837aa7afd21cebe64e11297ebb0fb74a0 GIT binary patch literal 1824 zcmV+*2jBPr000330n%yz)I$OSP{CMgqy!qwI1U4WAV3fUz$jyv-~l+b(gk{WHsTdG zN9x!A|C=4v8Re6Ac$AR)s^o(xFiSo#BCXKlunBpYbqnf0xBy>9H(O0>PPRQDI53wv z92MCN_w-cnbV*~EHkbzD1E^^FHK9mxl^C+tTxE?Wdekfn>Ld609Od?W)X2%Q!74Ig zN&oz!JLzLB=6u;+BxJT{kYplgkLr67n@03Ax@ntDFx)Ldes+NNkJ8?rYl`G)Zm$=y zv()wGKml@Q*UN+O`Ghc6;(Juzcb+0G0+-HbmU1<&|IWcBXHm>*YPpRZQj5CpG=xMV z4XMPHts=ds9-^HJo{`tfT)MMsr)EdtfuoKDpWT+S|c6!jTp#`49 z6*+A}3j8=W0c@0LfhedCN?;Q}?{=SWloQYwuy(y>9xMXC<+B*T_Zzva{tklLUAmU< z8Bp0OQhqeVeN7A8P2oVy@%Z-~H9%PHX0nK#z5~o&7X0y=ajzuo!Fx{kDHl%3*(`7>ydz;ofd9L|ziQHQMjs6er z_&G6f^ZLDANbk#;t?W&#mEwsGI=N~jQu^X6Bx|BotI)w!*LgX_xCtF$05OOMldNSc z@$npTSzs@~izmiv_5W1KvUORhu?MoAsl=!c^^3Pe8y}`OQPwnKt1#JwI8)d)e=0|g z04UN)8(*jDF-%q(xtOgOz7?|jEAqo{<&cQeiEY{s$)M3nt4R(LH#o)cev9OR7B!%* zC|~mpwDmA{46cri--Cj*#GGEyjVrDi6wKNw9L4|u0{{R60J?zG)3cniASjd*fD-&A z|NH&d$s&OqzF0}ls4P0Z^!rmEZ3#Cte@VjkhPleb)qi?o%KsS+#iysj4PATTc#Tp3 zzkeWor*d!Fc?pQ2>igU7dhpqUKcElcp!H~-bA5tL3uds;^WtwE&#+X68c>B}5BBKF z-!sEY6RRi+l?ltmc09V-pBA+&@JvZB)t?s%rI6I!H&!zhh^an$jDP|`0GPUoD0MC&cKWgDT{~o+dPmP<-2GT~{0LAAXGR(k-?sHSa zE?EFJ%?bD(rnWvoN9pWLRZIiLC2^}O#3CPPnj6ykHFAQ+feR9pAP@mBJLd}0{hZ@z z=W5vznz<^BNgFBwuOs)gUZa2UhX)$t$D-(Ju6*Hh-^lEN{y_~o8PN$3d}hO-SR6;V zcOL$xg*DM%2b{nl6;PgmmjD0*0F;1`OaKG?msm$ma`f4mOa5top16=*&DXhG(>sUW zs6l`JfJqM2yNkym_a|P%wrdHz45gDkU0W5KsW#l4FqO06Gw1Z~Ce439W02V24ybv~ zQfXt}Ey}hWv=1UbYqb=rw{Nm8?T46diKG1a#&${T_YmBfIH)P!mn-f&ibd>ub!05# zGYIkQzod%w7jDVD!;Cb{s`=!Iflt0|R$ny-oEB3+6OyQL@4i|G)@LNkmG_5{H#zrA zU?M}Ff9?>WEXi9QRcx-$WM^(-%RXaZkwoQH;l z(2R*nZaCV(RTq7qR$@zw%D437=xUY7cRKWC{kS%%qp>h24bno2)MapyWTEAoRd0? zvfC3DM(ddjsM;$HE68{OdN{siH*+ygB&TTA<|vyC8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0079.h265 b/samples/h265SampleFrames/frame-0079.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ef70515d4087b1e7c8c2381e5dfe5c1c44a4d3b6 GIT binary patch literal 1884 zcmV-i2c!4^000330n%~*)I$OSP{CPLXapU_U=9O;AV3fUz$jyv-~l;ervT=%$W(v& zJaE=W?#vj(L9>^{<(plvSwohB=RPxq{WEgBF z^}TlHx|QS<_0AuBRct-D!!vYw4F)#poopgcpMnRv*(l(H*Ja@K$#X+Q1-a1BD6T5} z(ft5)<0vG!JFITx zUIP9g0-!F^3qk~iYc+RRiMBoi8ozKpgNMc~oaL%(uA5uMJyU&NC8!H!QwVX{ZK57k z(C89(U-F@lYpHbxN(LP^>f{x1z+~DAlGEhRGxS>&LXwVq1OBSQ!RJBlFW}eoT&ylq zzN%1gpy;pT+y90Qa)QwNhd8}|Noy?42d336^MK8Bk!sB1PwrP&yN=?b4I2l51v_!l zUzANg&_0fUEW+m(A~@CjtRFF4R^o{oArw!5yV*i6DJWCW$4W+Z=mR?oR73lG#9fl% zNguJtw(+?G=-_z6AN=u%a-joWmRr{ee~wKan9 zku7nJX}t%^8znWBwN7h+FyupwbLQHbxPN)){VUGm%S(WtEx;hSMqg53w>-U+Rhfof zW9&{ERT7W@00RI30|0@5)YG$^vL2#R&Z*^-(2W26|NrL$G$d@<7IpvikU)y}^4oI( zmPbvo8hBFYy=7UAP&#m4no^qKTFzzGr*79+P&Q}J$b~~H8N~b)a3y6!msWmS4s}A; zvxK99X%v|Ld35JFDl!v8R`EB)_~?-t{D662Qwfwv%nL*DtG~;nabJ2WMbRjkMhY7M zaL!GnL6Y%jCg|ir9j2!TPZ?BHbE${#{JiMmU-@u|?rU-K5A55VHzy=*BR)??{?*%H z_g@joI>Vu_X(PwM%KqDf8|!Z-;J9caFz6F1G#1YelFx(dGL$Zwz3HD?9p1Ex zL*o*OzCKLkX#ZDh`D)m1#IQGwoq#aPe;4K79e#!-t#nwQK&9G`n9!bf#<*2Fg6dm< zu2wPzOTSdnIMyliNXDT`f2kz`Da(>#Y8ImwhMaJ#p>4vAG;T>je@OsCzs1VFrtelr zOmZiz1zSI%mU;0sJWlKlBgUrL|AgGxSITf{DJtf|bv{j|3RZd9xgDv!AmdtcZai*5 zbh{t`6Dfiz4q1U~y>?Qrh$k$(U%l^nEvAY4Z(PO6yg&_N)NecB*sB}_{0?B)Hn=}Y z`1OpGX!B2V@UtwUFkGlHi5L;#e9Cb00$cV&Pr6wb=cMHk`Yfi<5q@m>G%ax-kpC?a zj3e(2+v<`JoZL3N*c&l(Sj3_9FuCfEm__PpBn6p~bOn zNcGMcVd?;bfS!Su00093lz@;-00dDX`L$69&^v#(fkO9~DV$)jbi<)<$Gp|L89;zn z+H7Bmf5sV|@^eFTG$tX=?`!351PikjX!OZd0%U~7v^RrUxAwI@_G{TNc_4&T7F9g) z!|N&%B*TcY94j(xfw|&Tw2$gJ!-Kd;&lJ6|G;%b0s?fKK%kr7dxlfWe?}gvGPozeK zZSm06vJ>DQT7IG>gDhPO{MD`-s(O^ud5sWAlenA$#3{JAy;9gXc!%~?^>t%uUH|3T zuyjip6jOSa+$unW4&|nPsSyizVzQbm;aE*>230rT6YNk-PIk83mSe;stA)`$kN^M! z0WEqEh5hAih#1A3m#3(IY(en_;WDr&AKY<6l2)N5mK9g}7r;3_YW@xa@AmbjNWcX8 ztJS(;ZzuzcTdJND|NrAUHeo4kCzIIj6}K|(&TyK687}QQC>5NMG!wP<*$EoMh7t1( zx#Ql6b-(MIkgSv*oVrlCGjH02t%8B%pnXk1KTfKTeaaeOk%uxoC|M}Wv|nw29FQsk zHm%ZA;pIsygfZ|Ri+cb8IJb=5Wzhfv)0$wrH`o9OfyUh!*YkQ*00~7fS`&$--~bBk WpmZLy4uAj%wMmJ+8cYBg4*n2~;+(Dk literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0080.h265 b/samples/h265SampleFrames/frame-0080.h265 new file mode 100644 index 0000000000000000000000000000000000000000..94ec3ae128481b3a89a70d3ade9a8b53b7e70a3b GIT binary patch literal 1662 zcmV-^27&ni000330n&N@)I$OSc)?aOo&+``pbi6pAV3fUz%$=e%Yeadz2&HE!oMZp zh7C!#B?~o^4kwE^0=Ar#6E;6oIrrNP3irhoV_ActOl1qNfK$xj$fc5PDoo^*fB*5+ zm|x9fd-S6=oLc9Yz!Rg(ZwmF`ukH-twC*dSb%8&b#nBD&xMgk+8 zv&!#>N21^V=QU4iqncbb-f#YIau7!u5~%+2*JwZtE9UB3yAKFO-bu4agN50L;~DQ^ z*$I9JBY+L77(h_P8Gt$;&hkLRv$#3WIlAh#0aBk4l855hx7`g$JAS;zU0ZmB`U7mk zJ7x&&7WkWuUB%qD-`G-`W);p|83;1lq#X5s4&J53uS>Db~UvtQ8)&%uF)PxQ*t?iU#?ZLR$mq&%bT6 zDZ}g1<*-HRiRvY(FMfm^8=PDpCLe86S*;of9FyfXgf)`+XVReKmg)~x8||vW}Dh;i@*98PiX*mWtS`E zgxy5Fa16lPS*>sWvD7i-`ieZ0y=#_q*HHvDeP*MYvX(Ih?YqCcX?%*CDqW|TBg}aj zy-*f1b_sn8(kRp*sH4=;%X^~?0SQlU>i{V~ zdw)-mV$<3<=gj5?0009300RN7(=P%w1Js^Pd1UmQ1mjeKp?531cHt^X5cP^Cu~@>f z+~yZnM?ADgPibYk#ESbc`M4|>M*lzemF|;I^<|+z$--Y=`+Dmdk#3?Wy+6;*Uw@(}|vRGvO7z5;@WGGllopQdX%CY3|*>7wLIf1dTFQI^&Ib-s`!o;$` z-L2i}9J<4qswa$A=^|%O((d509@T@V6270L-j+v`!bw>^q0WMC51tB`;}Z$5!4ssz z8Ap`3M24n*WWMoy!%KaV6k{$e+|LLR|LYCosB6OG{qR_g=|Ch6+G%pm8>vYTRwSvG zH#>Si(@rPW#~J{=R5piq=tY2g##WJ3aP4G_9e>00;79KC9xGn90N)u;3RAfY>T{@1 z4FNw!kt=coQ-2SfEY4lt)!dfp!K$~1c!AIM$JoewA4omyb4BMah3{b?o>24v00RIw zppaw$1I{Y3I#yQy>V1faXLC4g3)*cVXDF-oh$G;CImoB%8b-+c?UeB{)m>tF{n zGQu6T>i^aCLd?LMq9=w{Ynll<&?MR#Cf0Wp&`g zo-NLf053SE_`qwYfw&OdRT9{1$rx0yKWwl>x-GHVP=8!wAzCBITzH7z)Si}}DD9Qg zS3H5rfaQy1JA*HDCYl%Xf4nZp8Q0;l3&;au7#f~WtX?%5_Wk}KR1n=T?sUpp)A z0^H(tKh5Rsh+jB|9LL-$JWrgxd)qV#c2*)~itB2h)T{lrv~k2(K?EC@MHIVCrc-hh zIptNTTh{ohP!I0&sKsj3YCJFi00RKu1-M|p8W=HH^GrUnh_Q{&0MZc%WSehSOjOiVM2}bjX=^DUYMsPbY8>T#g_WE@pkmegcP=jY%Nb!z`S% z009uUjNN6?00N(yV7oWi00=q8-5A&NdQ<=jZ7^CBiKXBG3C-@}EH8_I00?zSiM<+3 I02to>5JLJfvj6}9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0081.h265 b/samples/h265SampleFrames/frame-0081.h265 new file mode 100644 index 0000000000000000000000000000000000000000..09ef8613ad02519e07935f7b7a484b12c536538d GIT binary patch literal 2479 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0082.h265 b/samples/h265SampleFrames/frame-0082.h265 new file mode 100644 index 0000000000000000000000000000000000000000..adf731bb96958743c473245340960258c4b0f6b1 GIT binary patch literal 1510 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 A@&Et; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0084.h265 b/samples/h265SampleFrames/frame-0084.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c52cf37e38a670d8164b698da336033e4b1859a4 GIT binary patch literal 2446 zcmV;9332uS000330n(ZO)I$OSP{DGMNs?ij0f0aU0U#g*0C*^4m*4;c@iIikxBvV9 zf}0LQ(+9!o^4naSN_lY_=--^G+^O+9s2aEJjh6H9zu^+WvKKpbjTne=GSWMXMR;Do zoZ!|DKz7O46!jURycsN(nEcLr0;Os7+>6dLc$`5PYd<&cp+dAvDh#=AxkbzhCjb0j zzQSE9#|TS>bxUI*SpbD5rUKI?8_~coRZUUB1%+|!+PCwCyQnLQq}<+hpVzQZ-ZzAv zZ^<_}zm?Usrzn!`V5XMTR7EBHl6_XU9kpmXSC3k^J5M+!rYzQsVYntir6_DaW*0Pa zK1ruLvhQaM#FfJZNqff`Mq-U3U}JtiaeP63x6xY;T>gZJoi9-u`_Kdb{K!tR^^*U( zIBwMbrGJ$;LqZjDd;LT)?C73BK-Doud{2Ui zF9zH}eP4=ok*wltb%WdD&ej87SO>ZbaqtY&0!?+Kxta}8w^f~zF7N~4xgoH^a>Tjb zmL;&jR73lOeHT|j`BCm>bFw zZ5635>!(SvXIEj%umI|SRLiM8+nj5$)Q1J5O*pwro_@|m*Pts-ee&;2gT)*9Y*t_peOZm{eu6!+Qc203%PPL}^Ot$TW`zCE> z!LD2BZRUU%y0Q};yO2Ud*jUso#>I^D9Iar_s}&U`mHoq5!m%x$7Yv}FHos?=^#n+4 zTuB5=^Z4J+ei95?{{zN-ABVfh`usItjT&HW?oi?KBZL#`YQ|1d}4O%f={SJu35QHDaSDDvMxwP0g;igh7rQ~PuuN>~m zjG)%fd+MCy0|V>C3dOTAz^Oj;0Q-X0({KzK^xJ5I4@k{4-_SA!m!EGXoHKMlwqpTe z+y&6z!{({P6#EFQ=~t7a+khc{8rPP?xsKoY&&D>0E9L+)fwYy;ZI)JUt+F()ynng< zp(JK2@-?yTcORA5aWOcMKlQjE6_Z@T%*i%2nd+((gQP>ZRtuP#gG)grfP+=Ck1RF_ z*hqN2<}A;r|F368&JNf=1y{Rn@Or)E8t`x3LiAaymhJk=Ku|Y(77ok7_KSTw4rSQK zVc9xG1ZaY?9biveE#FfszQ@jMaFV4A)WOh8F|Qa~7d^O}J@<*l610wm7c*gD7=}4* zY#pa^6Ago&90UiXdJYpDrVO!SWe-XKF*Xrtu3qy@h9K@)v|KA|H<9+NAAb5)nkbl! zc$SuF6Z&3OHa;J`j}+T6^;gE7d;KHWfLWha*b!K7tV^Yp} zY-Y#m)gk1XHw5A6PY)MO))!w zw=-LvG&GbMY5SYMO9H^FR0EJ4GPE2R2i*L0A6`0fB8s(Pid@l)56_yksgbo4y?apY^-8S?3zbG&mpf;^+~~AtDm}rzkkf4NUO2+8A)>8mQxAa_ zbe);Da)+Y7NsG2ZmAE#fc0CU>nv^JN9rQFpH=IKB48$Bcolk^&)U4@jY#Re4& z=GES3p731adwYEqjNPV>28bda1t-yQeXl0s=p1@YYw!QeYC4SZwcDS)gttZS^+5eu zNZV{WY#yeMe2WCpb1;FR{lAs0D_#m8F1TbV_;kcIIwA0X2X%Ey{w;4Rj`Ykl>CVzg zT|CPy8jf%&9sL8iliIJK82o=a}?G{`bM>q=y_KRs(>u3ay{^>{3Jj zdMB)2TmP5-`$0=7Kmlc*ftLUPMO<)sDbAwh56W8km;d%0{=(Yg|9ne(FtqrA@bn%j znOv2;OB+6CU-w^{Pwo^q+5s5IGDPWr*nmL>Nqv%-gY;K1DIhBto=3619_N}EMUX0##PGA{@|5xiHeZCUe`Bo92EgO@ z$}JsL(w+mj4FKMkcQ1c%=7?ZcS3M69mp_1X+yLBqP2pN0asH!)kM!%YsbJ*g)mD&9 z01C$DOa)&5|MTU+{nadviu6!!r^pki+&cpM>6G|3GCAexqt!{3q#xv)k}EJ93_ zBhQEHC|&F~@cj;axYMJ4n0vlBUO8PA4Q(VNqSpg*KL8N!mLr{7C8%EF#2LZIekd(-y#(00093 z&@g@g0XVmWhD%w%00PsRV7oWi00@D`-5A&NdQ<=jMKD?uiKXBG3hkhD9PYi)TFc1TQAV3fUz%$=e%YXsyht%tInog*x zG47=Ad7?dzDCpmLPjeJYbV|hIw(?Loc^3JsH~c64NbRtff+7-tlLcGU;C)$a%3+?f zIguPfm*rI)`uTPr^sHxTANAIIVz*H?oQxD0aoRBV=TP`d-@^u+%r(uFi<>}H(yBYZmXM=GqR`+VD)$*u>m zy(;AA+U*OWvaTbGSHi~R*t}WV{{#jhhn4tgwdBZ%GbBo9cq#Rdrp`QN&79KIW6A!H zExx@0b?RYE;h{$ccJRZ)QN1n<{Kfs@V-7FbY^5BUG~5daB}}))>`_uhUsBwPC9F$QsUvWS(sSzsd=#ohX zz|PXx7iKrg<$Sy1eGTCL06a6+=hZ}o|6yX>Y7Z+bt@NZ*NF z1#b85O@lM8dv{%Jb#bQiTWxm7QjsEg>=_eBQN&*RecT-9hFpG%qq~w~yT{4;1DKqZ z{-NFF^Ke+cDJ)kko4sQOHThb&&%J4fK>#rtcShB@6$6)8|VHA_LW(2Z` zzmVdi;y=|fUt7qi{L{?(>=y6^2hPGY$wsvR0UbdDnNKM<-+nwwe@PjTLAzr1q)yZ)KSMGDreV zh|3{WMR8MZ?`t0b7VuOkvl7m;1dh zX*Gc^qeJ&}pcfjyPlVnLuPg1Ss`odHhgBDF9gV_lE3Q0Fes)!9f@x)4cT(3#SxHme z8-&pTZZ$KN zI*Qghb*j(0av{@*p!;m|dHB80^DnmE(KIwnbZsKs7wvn(9@L)Hp2xR5vr@Vzp~EmX zoYy|$Od*Z8&WSw3d)(s^;Bzi@h}9XAL=Ev^MXMFfSoqy?l`QrHV5bmy1#(!?A?cd+2B<=Mk>2rrch19N*-KrGbg$h z+Xubse`$?lRUIc42e~#{VD>ei1nVv$i5(#J4}_iqaY3>Mg|-I?l0}Z}>iE(JWoiC+_Sm~QRHH;!+3gU}El;yHO7fl_AU#)k&^@}GbEON?m;w69Dk zGYTE!rALHnF>QU6?OCs)<|J$GB-_917mf_#Z}&J5Z{DnsL0X*dpNcP2$`lEzX%c_~=cnbg{{v;_IejQ6k5LK6#8 z*o+v0A6A`Z?o!lx_PI+sUST$!cZap8Qx-Y{u6;BJT>0d6puQ9UA`z>EnD4#23o5j+ zH#vx`A>4p}IA9pSiY;wMI`&pLj2W5B2fV)EhkW3t&^7;yo*&&c>h|u7ptWQlIb~m` zIWjsV?xusLm^$OYlzK{O@Wns?BW2XR)0y%(fTP8I{ZpzMc21~}WB>zThpY|<;NSoN z0|0PR7ytnfw}ggES-=1SpPFF1H`o9OImX=>*YkQ*010g{S`&$--~b8D?&2&ji+}(K ObxDc68cYBf-u@6K7C?Id literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0086.h265 b/samples/h265SampleFrames/frame-0086.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e2bdfb94d2f132a77467558349f58b541bbfcc4d GIT binary patch literal 2425 zcmV-<35NCn000330n(}e)I$OSP{DOY2b$mx0f0aU0U#g*0C*^4m*4;cQmq*cuPBE_^sbV;0n9n&o?ct3{rjtM~lr zcW1GmJQlllVzI$MA#h9%5vo;)s+kb`+0I(r&_lCay#U3)bZFY`QKW(2h0Ogiv)2r; zqx;mrF;Ad5ZAt{~{#%D42^Ak~EHG6R^<# zoyt}^cHd?>X#LtUF&Cz#rxV9yhx=$<2Jk(qcx5u?BT)4KpisVu%8x0jL;5_5R6OE{ zekTBK2o7PwlB3F6OB0E*iZs}pyH%D(`$6WoZG7!jd-lVP>q)QTkuNW87BY)$r24BQ~&*F0?%+u`0qQ5fC7xs+1TH%X#B7NWbpr^g*=8=v(Xf?%K!XdkKxKwqzKHv z5%?G9AA`c}QuS$bw;{kjwmUC8U~E46O>PZRfpljkbgkXfjTEYVB?VmtJJ^b_>EMQ} zPWO(}?Xl#T>*S%k9tv*FUSy52I(7lZM|d37Q4Oqj=&3`F7A~67c?|MaU$<_vJ6bvg zEtHGBX!gER9^Fb#baKt(s{ufz3u=zRv%C@Z z#T#%q^|17Zv89K7{fm6GQ~-TM88on!Hc8o)ZF>usYQ+?F|H32XvtpYPONjQ6jcUyz zYj+jry8I>4=(es=nVa1Tchm8x0ircOx+;DZ!Xd@(XQm8qM^i01VfWM$)|7{ixj?~M zI#M3-`-|Ayy+IMMCiim%AqerABlJa2bKeaqb90>ayOUCz>Y*p9cmDZqxIP|=T?znq zH4kFtVE8>1g<3@A_L$t@A}4v<-|y7QF2jv{+l8xR?rl-Zh~ZwHr-=<&NZtv`W+2ok zfVr?-^NqhsXrx+7twddB+eC-6?Y=kE{z>Z*y75Ypt0juMi`o~VuH+*mO8Xs(&`xFr zV52%nr)J8@*;z*72zkh^eELGb{?&OPx$U3&2mwf(KRTPnxQMVp!e#d zy%ogqQEs^#x7<2g)}hnZ!lDhwwCy}%5ER*dDK|R}Pr4BqPwVUisIc)!;!T1CHUQUT zvK6;{o4%AIQ5V*vpuhA=i$sZQZa|?0!)r<>4J>)5%M1EO20tP6)t-B*-wu_`4NJGv z*y>AB$Q_r|v>6Iq5-?4&_-=q9f}T3rD-~q>v*>r4Ro`%^s@2B4KmY&(000h1)YG$^ zt3ZhfgiRSemu8QuAqt<=<`X(z9iizlPwR&`KJ{&4t4@x*5#S6m@*PmQFO$sy@~7JS z4X5w_MV(r#Y%NC<_!iG*uh`bVnfl`u zr3vMWGfskgklQRj)&5~iuyRfiB`(jOIjwGxpUm=ccXp>No84}nR|&NHH65Wf8I{4_ z)=ZW~TE-Far^FPs0gEOOK6UjoKB&??FS&%e)__J(Kg!{6?JBvVd)ZBAB5lTg~ zXA-p9l=C35qAn}vI&TP>VwjzyN}OoO-^*6567FAo{qa_!X6TGHIFUtm6_0W#HBU z4Vc|NxJ(=9?g_gFl%@EQ^H4ItYpH#ENOtbF@P!25ABz2jIgz_y!!7sKDVsgDN7P}t zpoo|#snfjp+(m(TJxrH^l7C>CgEll4%E}%CB#e zKnBYQ`Bv57=_(tldR-y|`_LxO46=`&;V>QU)t^qHswSB37W(WLHS^mGb+-lRkCNRi zvD30MuX)DzvHOpiZJCf$)hi|g$sAcacXYfT8yvd{yAg*=3MNgsa+}jKUm)`GYUdwe z$ax z-%M^SXjv8Cd(0D%oYW>xjUiR-W58yanecrtLasxEwH8CqR7BDmf`>8xT=Jp((ffNi z-G>W-AzSyO3U##e4hZ@T)ycxy1A!Q!{7x_eSmm;{dFWLL*M`ZKhZzFI0iOouoa6{j>}-n+tSsdv;qL6uJ*DvQI>#gwF}w+ zxjaT8T#G7(abk~}fMR3r>6iSy)tGgz&4CmP_672I+1Oe}{TBrdCA-cDOBL9u_!_=j zuU|!Io0y{RrGZm%$i(ccf$%=!F65zy*wTy0VO?l=&huylZXU)YgR*7~VbQ!&+rP&*(26;q{)!@{6Y&DqhWvr{9O{=z4)n6=l z(*@%NE5Cqz@3&P`IqxpF@Xy7^p&S+e>4D+%fTvJw$Kr8WoJI~y0M)pATaWS76_pt{ z9^)>IrnEYCoJ!`J`Fos4O*3;=D=8kQbYnT$QEaQ*O!Sp%H2X;RDgf)W%3+MbK$Jm} z`xQogx;hCW>>Xt8u(IrjoQy;3PA8MY@EracsnWrn&(srC|9%-_@g}X;lGS<+HWuy* z&Mcox3%b#Sf#Y_Hky6BYr^hd_q&286%syq_lwGNWggyz$V=ONy_Q%raLZZVu;vsqT z2!12^{JP~Pi*^=vX&Up|AtYcOTeG0566OPZXIkb44#AVUfUEWQx~GfannbhNV{2d4 zS%7CB@$vb-zW^-^9xvg(L>^D!o^)%l00093025HtF9J9+DLcrb0Fc!Bk8#4!`x#0^ zVZ>wk;=zb_*iBX?}9Y{8F^uBsyojXUp7?=P5*niqd z^XZu~lH7N}d8^U+NWDz{|6%2~b8u*{_TypNN^mj@9m zn^Tp7Zn4_fx9e_GJ;o6Fiqp5nog#aUGTKgRYD|cquWz;T;FFIQ<>1Ep>YZcpQ@=7-dawk+)JVwiP5P&L2(Ola zSst2!qo+@G3@MzK`yfKcUr1m7|N9!gyWTD%!r7wYZ0=LDl~Z5pC;14!|JgbNn?R|B z9`Dha+`j>8K;SIk!$9bVo>2^d0PSVy_+n1m24qybRKxjt3`DLiU>y!b`=5$a#6AlD z+8CwHkhl+;o$bCg_bI9EeWG1pjlis|SQfr|vK-x86v#h)dj3G=zuJ|#5;fiv<-l10 zI#m(?jn#~@lg?Mbq2g|FK2JI1PX*a_Sb<%`JfOu|oF)^)7FPb}x?-$`yQMNol}hb1 zkd~;Fbd4#KvF|~F$3lNRbterbw~lz!LNE!(lZzx~Jm}N4ihH%=0&W@r5=d1#$Tq>Z zek0C7#>6P;@F)3UgBWV2ev@BuW4`>_;8FJ5CC&r^tQR=L|HjxKF_?0gs1gC)-#B6u zhKXAAt*27wwKwqOz*9QB6RLqcK~C02zPcn)y&lF!>2Ci8SvZ8IzshyMT6&fA*{Vg@}FoLlzRAOA2% zei+>Q{2`BGn+U}DJ~+e*p5PxJ3k%=39qret7==k^PNX*x`>K)R$$?~|dnU#kk#1lN zQS}LokAGz8@`o)@X1NAA+w+8!@#ZOdin0_pDDzz}q4M}uOcJE~9*#?@!vZ1S%D_-d zfZCIV0g6ILU{|1(#7Zq9`Q#I9dcz5=@*gp`SK1$sf6k{eX0C5AkYoS`sHMCH00093 za8eim0T8!@hD%w%00N(yV7oWi00=q8-5A&NdQ<=jZ7^CBiKXBG3C-@}EH8_I00?zS MiM<+302to>5X*1~KL7v# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0088.h265 b/samples/h265SampleFrames/frame-0088.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9cae0e593afaf104cac43b55567ec60734929d39 GIT binary patch literal 1875 zcmV-Z2dwx2000330n)ku)I$OSc)?k;lC=QfFc1TQAV3fUz%$=e%YXog0}T8%u3vG> z|Nc1X;GE8Nhrqzh|-9_jeBh zFA6Oz>sq_#fGIBIZ$J(H*MBd`@Fupjh@eR)@|{f&Z4#U@8g8Yl0#x!KsvjR%h|@&Le7pYr~1 z3;w) zO1*}6Q)m@?GZ;(3_n5R9i$y#117j+{bBMR>%=ij^FO?RTP!2b5D|dgkqj}}>FWKTX zmuW>qd>7D`ZMJU?TFxq4T08|#`kOzGliVKsZ4q*1Q2Rn%t8cdc?)8nA%$FmzPuB4r zT|ArkYzdnstul!B8MAQ402X|a+E9&{4~hSxUWyOP(LGJT(tVby{x+xaq@g0(sHcus zIYVEVp|>$mS-Nw3$l8mp7$CrPtnv;=juM*Bq^7z&PgeH5kD{C8CNut9P%M$@#aw)q zY^GP;ANanXx8Tq1i=WH;&o7(Z@xPmXk3k=jO?9VLvvK5D$|`f6_HU03B!&N_dg z;KKU9EXW*kkcAGfnyrM3;Jv*sB7E2_COyvf9jq3x2XG`xidYopv8g_ADxG(^a(=aY zw)_N&x&-U@+dzJ4ZuMAP;jz94^ueJpCot;4ymUkc;d*wNyCc+e@l*5m4^J;QFM(9s zs;osKLh1ub2-O0e%ZNhK+LU!Umd{VlO8&N{MqG}FbH^Wq07c1O*+kfM#cF276bbGx znA*95u*wmbk%LjE;QR1x1voyk=gIF5g-AG5{yx@mO||A1yq) z9!$8CVr1~a&4YPtbLSlbw&;+>IPnaK8FXj?%x9;2Su_EYi7I$p07)Pph2!*m%MDRh zyLNS_m-7Z|ki9Ls>^W)QUv4()1W0O%Z?s}{MUCKWvtdPHVRg8q890K$jACtnSa>lo zwdzz*Qw_7sRpUzJ0ZuX9?lfn1AB>wa^3_kN1z;3`68&h~*588}Jq@f~3BJI6rl6H8!moE2GHhw)~pbs5vB2PJg#bacw4pv?1c;Rp!Av3#sGIy>DgOjU2L^0Gy zlfO9+`uX8d7BxR{#(6xCA0&@?AT%p zU_t+GOGK?nS2b%wjT}Yx6j#OkxUsi_B7!>!%z((c$1JEhJxqzNg41fT(UdaRO zI<3M=!DIOsQ>tpt^dzzo7=0|%pjvK#d5wk(j=v}wzP^ovg+XW_I~D=zV=wa`W6owR zwemKZBlF+96=R{E-(zSRy~APtHPy{cD0o+j-Rm zq~Kejv-}I}Q-px|Mum7gu@4MudFq@1^}ydc->*!u#~{$2`m=4?$y3`w;J0!Pr%34z zaj|fVj<)1IV)G`~Z{>3DO)}N#*>EN_ge^pK0^-@evk<15{a!5WOgVk?w=g6?5_#vH zFT`at6N9ko^OuOBSFE)ZjTU!O0btibs^l%~u@+g3$+w%SFm%C1y{bS7tOo6Z#Ck!C zo*-$`!Z0WXdJ_?|70b9#Ls;R!T>h_cWlFnFt<_3GQ#@!g#^LkVO32iW16N#nZ013_R;w&$VfB*<} NNr}B0OaK_({tzfLH=qfh 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0090.h265 b/samples/h265SampleFrames/frame-0090.h265 new file mode 100644 index 0000000000000000000000000000000000000000..26f1f6ae9846bf42e7ca4be1b7f58d91b517a717 GIT binary patch literal 1677 zcmV;826FiT000330n*9;)I$OSc)?Yz&O?CUFc1TQAV3fUz%$=e%YXog7k$Oh{PQY@ zZucn(d*Y1EMq~iLN&nmb#AQ_OMH>SznS1~L@zj`cmaifAvi~TEUSj}Gk7YQs*Sq_; zGN{wIlI{&0w^0pHsc00r-9%rY(ZP6L*JXI>vm||Q?Z&ItQa2;-C#30^9ZXq*)|?^b;Q;vE{r=eT z2wf6#N7kR#ieS&xl)T3nxD`pDg))ryE+jt5!N-ibvzl7`c__Tgyd!UmQL1sd4F}Ud zs>kt>O_qG^hBP}*Fpjuv0}Hd;k@Yy4S9AXsx+0G4+fe*Erg3*=2=kZBcBk82i9Z7s zfm-JI&6Nl=IleRNhd6DYRWi=tk>f8#WJ|e&g}|9!ixG~XurhEMAZ2yTBAY;wFao1M zRm{N-h{X5_>&WxcY1`?v>R1(v0+-05XQq?~Pufn<>3Ic8J|=d%ZzMG{v0ryxZFOL7 zTDxxV%N7(kn^2T0GSZ_R*j!z;f@8^))=!D!$f2`E8-;|c_0YDpJ?IEAzCx!_uZ@py zd^p8`Y2t^}RdrJn!3?&{Ms30^^7n8Zx9R#?((rS2|JAF~4bvd*vt-QU2bZ^QcXNV9 zA6e5XBm4IIYM}1hDxg;kSEndYkD|lJ<jFf_libR9}1k{6NywtJtpvr<^{31v5T5qx*^McL;OY6V%i9-pl zCfqHjO^U2mXQKCt$T@JN|2pz-N@0c4p%I22nAaWraLIV30^$q9pL}~0{{R6 z04$)>F9J9+NATA+b#MOX{-b|#>Hd^TqP3E1*cGf~dYJ+STM%RUwLHVf{UtU+@PryB zGnPw}3ft z=hccOBT@u;{3iS0^(^zb#|>c8mVGn(67~$sK@D z0k@twd%(sM-oyby3PaAkZ^yw+OkT0}KBl=f|{aV4+UP{;?H zo8}P(jPl_!LS^YW#Car%M*%1cIRutMkWRh}W#4df4**O2HT;Ljf|0Xj^o|@tUZ`JZ zTtyg9%#j97!Xc1-q=rP*n4598?vFAV31raHmG+tk)p6IFipnMvmF(~AuX#kG$5V83 zbgI#J>#Rp!nqi{qt3WxFu^0(iTxW1O)h_^)U)?0eLwIYs5GBNkp`s^YpSL5DKz1^)E+rzysCi{aMpu}j! zt}}+G)=f_d#Nv`WVAP%GeoN4-wg42g3U3EVk|*SyEsKN&YO)psbArY{&$?Wi-eUj$ z9Y6v6?qe#|URttXFG)qaZH(b55>6RzQJalBi1a);YWA27@teYI%7-#v(s1-Gqm-3_ zR;=m3070f%@kAFZ`hLCxPt4dmite^l;_8-=fU8_9rRGst34(er)8r$x1Rb zB6pt5rdX%k45ut&YBq#>v;kY5Q4D|qWC!=lLU{_~7L0VYCnqbqCw*NmV1t8#PX)V#pt z0Bd`cyAFDSuGb6a-HPI53ujaDJD;pDms)}DITaYg^4(@dz{K1Q`}(@>h*`I(DCRwo zWB>xWAp2kd00RJUQWyXM5VwSeOIg4G0-u^-yEoVX2sy^x7}xW9Q~(KWFj^CdrQiSw X&F~)2Nh&2 zy@UV1|NCAk54*@mk^!Y9-?KE#r~ZCt`U;~}0%yx7?HawT^yR@7pZ{S=KgEeokHBfN zk}A14(^^<%LnvHPh5kEVIpxrRLOVgOXZKKD-3M^C}MJw{B z==4dc|Nn(5{67b^&JkTaxoG{x!V=w0()sB4VeED{NR`LI<{JRU>{+S_#s;?E5*-9n zCg{rF8Bq(FWWHPHlDYjZkVh}T?m#72xRu^?E-}57wxjkO8M|(A1M8525xunht?!cP zDwb{0+oGA#$6Hic@O#All1F@1un1I}{&?%CKCm!S2yGb>nKV$^e7iRQ_@GUutgb?r zN#D6tn0Ld7n2kfCfRLeJqi>ji-~o?ILyPGY2=2?(XSlshC;1@-J+~({>mo@Vu z6X=(hy-c9RrWy-^-QPENax)*Ht*s{dXBhh7Ua}_ z`b3E%O()U!P22p2izamP-y1LBL(4m zdxdhpP4aL+!I|E(zQ^()X!^?d zZhCSgNRE;Ne&dGLdF35AGKMsgWkAx&82gV+Ko|WNoRR9s1F@y*)~Z-7iz34#NOJCm z?36zPaHaqu`vg6LYA)$-kmX=rligx4)gQAS_NE+{7{PJ9Ghyr# zG7M@uB?m*I=_Cd+i0t*7O|X}Ev`{ zIOlrgZZ=4Pl|2UuyETkPaeol1H+8*c6Vy}kNX`H^y1oylCIJZcpl9K3a+`Ky+NBCS zDcdy}WE≶V3}M?|>vr75)O?C{Lo0%yFim5}~Z{@BpKa5E|f25Yxj&6yu>`{+kv! z8kj`z8Tng65&LeJW+ET~qt^ykzgu4`QpP64ek1t#tIk_`SoVcQ@ofv!nBP#91lVg; zcNZ4|Yfstg_IDU=A7s&4=^WGO>D3uRdqwH$<~e8mk3Xi!oV$;pq4qa(yOOo~WvKAc zG1!XJ)vU&fZAUI#<3ftjlzExrENz#O&N=h*N05v0{#Iq{0Z$pJhuUFD7va~V>CF%s zd7+>KL4YSv`+c7bTtFPLS!78$Q6)ZYkw6-(frZnc?$nobyAOB)pg3NVotJ)PRY~sw z-#-P^su2gmw@hZ5zTMjR;b?QpA^EX0QqAt$!ET`6S}PDlsH^TDgO5|Ci6VUa4N9d}sL&M$ znG8+{<&QubW*0Ng#DMapP$rH-hdbdwbgUK)2-&gZHUID1BUht!xb(GYokXn=c>`0R zjQt=#bI0%5J6OfqxfK?1O;YOOYElIo4A+Xr2d;nnnk{}STA%DugK;l>$-&5TX3`To zyCD8exoiau=$7P}HNVk2&$wNXZHN_Zrd&3cVdVA>Hdcxog&p^!?JyxGkT&4-r~T1~ zWZEaO;AeOxFDhp1j(7Bzq`RGgg*v0g%Vw`+FfFzenVxuka!|$aPU;UNWC-y2N4?)v zp}=0vSa<=Bm{66P!lifJRkr70{{R60!Gs>0yrw5={^B};;+Z5ejZ>#VIVgr zpwwj|o4@A32I>z4oq7Oj_gan9rWRKUw_Al-@OUYYWc%#os~@tt`Ua7;&>#Qb|CMU~ z-;cw8efnn`vBLvnV^5LB2wGn*(<56llCEpZQgx}@NfJ+?SI=)&%yw0mGpOeXm|vHj zG~s4h?rdK1adjfUF?Qzze4Y!w>Gsw7&xQ!UUqA|3W+%+sH#JB3d;EsMn1ob);b`nU zC)ujevP^Fu%#0jJGjCf5a1#-}NUYcNeDMzMjxI1?fk_V0L%jG1QIcjR$8t7BqHqBH zLbtvHII}@c2sYv?DhS**aVJ%$#J>><>$XM+9YlD1(AxEeWVT(XqM=Ht_`Yi37B@ya z14BDV#nM34SnJ0ldVnhPtJ?`;RI6T_R!0=~Vd#K+GV~VO_UCIRIL$#Mn4E*65^Nim zh;h#oesIoA@D>^)kJ5Dj;CKryoxmV0U0c(OkFe&R-fza^JqMLQ8_6BOXr_ zI3Bku-rP2fW#`)TK;hKhAW*`Q8n%RB!A>D=1m9K`jiM)Na$U}F+${#95hW_CO0SR$WBc(W-LEz z0c3yx1g0Bj8FMmXf8Vv;O4Kd#*_Bbog|5y z{eE1=&*>aJr3pZNv8<4uk{nO~S_byAm-dpy5EvF2E*&^GTvFNdfSFk`e}Zlh>1h@B z@bR^r(q<3s1vGpV5gh5#RIXiu6ZNghi6Q2Nb?GFGDq%niD-+0RfE@R&2^d0U+O8&Di;% zkYoS?xgh&s00093a8eim0T8!@hD%w%00N(yV7oWi00=q8-5A&NdQ<=jZ7^CBiKXBG Y3C-@}EH8_I00?zSiM<+302to>5K^f!SO5S3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0092.h265 b/samples/h265SampleFrames/frame-0092.h265 new file mode 100644 index 0000000000000000000000000000000000000000..99321d3e238e5d1505bf3beff0f4aef97f9c4795 GIT binary patch literal 1582 zcmV+}2GRKd000330n*w3)I$OSaKTf?garWLFc1TQAV3fUz%$=e%YXog7k!~UeU)UG zvK*Qo0)5Oq(*Wr_7g9sT{D=SdU7$H^W)nfEc!gupT!s~mfLK}S{<8RXl(Gr#1j{}%D#ds`gjcL$$>c_eQY?jsyszb5EcSs7@O3E-gj z+L%fjL*!^Y8rjk*$QD!jpDae|1vaB_j|%KxZd#U01+(6;-~&XA-kwWpkdmp3xAt*C z4BB9<-1B%Nm&j?UOkk$$jtyJ21GC{pz4WTp^B}F1_O%Hq5$?W`vJ0}ZMBh5DrV*rJ zjvr~KpqgJW&qSzid8_Kgb`5kD@YHW}xxa#bEs+K(87F_4259}admIGUi;5j;CsigzPzWBv z?mZBcv$>BpgY~5!*;^^39Vn{C<*N>-e#I25K@vqj;#5x57B^Fy2UwAgR|buu1ORAE z{O+bz#1Q`ft4Z6F<9~cngD&fmDx`FO2QsS!A1Tx5>T-fc?HKa2&<9{+*?)A1UKAfZ zcowQSL!&jZp?BXhl1wFONCHWvsGcRhktiL1JZ;A0yztw#b?^WH0{{R61BTNt0yr{C z8CC`mJjB8xG3O#5w22pSgKzo&-Ld5#{w&OH^7_}9Exdnl|I}2v;2VdzfoSjU;h20Z z2jz%+O->P12bU$88$(fetpET2|NluX4w9imsys^91JBBHpD-W)tK->JSJ4;1X9|l{ z?%34rOTF?|TwbEmJ)5^d$`ctWx|4TA6pV=>DwFjFnn%I++XE(hcSEcdr<}lHCjb-v zEeFbiyLbb6%Mf2;tOAn4Q-ry;o6iA;2Kus;_?}54bk>Hq`8lbnGnShC1J!jiULa5* za57TtKx3+$+p0;Lya7aC8QwVA+zTyLg1k@=7fr0Yg>p!6YSEu=-P0yPg=yzwi&HvY z@&Ef#*ORMOn@ePlr(Br}G|f-z8Y?qsuMvgsr+0SAvBcI@3TV`9(({H$V!kE+{PUcB zUmjuHAB1@oO+r2WOEMzp|Q#n!tex%NnV*?|Y8GfZcAT^76L zn+w?>u2bb^qKjvyp&I{&5BvlR%?OrN+3Q}WeNBJyn&hN#H4xKSS9S$^ zc0E2zq~O4jA7^dQ6OKe0p56wrwAsj|3z1nr)730`M|9RFYnDfv(2jjl^i5u~C?0)m zD#}0jEGq&(^g4u+Xaf9Wd@Nhf8a|e|zxj9dBe%c%4J-R55=-~7hyF%YI%kL1M4nL$ zfB|(b+{?0fkYoS?xgh&s00093a8eim0T8!@hD%w%00N(yV7oWi00=q8-5A&NdQ<=j gZ7^CBiKXBG3C-@}EH8_I00?zSiM<+302to>5F;<~v;Y7A literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0093.h265 b/samples/h265SampleFrames/frame-0093.h265 new file mode 100644 index 0000000000000000000000000000000000000000..453cf82c26e88d4c1d7eed949b9322877ecfc5f1 GIT binary patch literal 1890 zcmV-o2c7r;000330n*|B)I$OSc)?rF>;(YeFc1TQAV3ZSz%$>wIn!kUBLJd80znGx z8#lFhwctP$<@~Hsaa7SZXOs>aE3I$5FoG8;H;$jVAck%dW*%eiQL0rWdYH((!_50B zmYOO8X$MF5qA9cWb>kvH&)=he|Ns7uK!ZPj-?dDf@*xi2T#d7A-+e+cqr4d{Y~%LF z@#WHGW%nC@0flPj6^!5%b6Z(2U&s|t!n||glCe{kf}9x;ToBUrm-gW^GU|YJ;%(5; z%M-3ZQOtUN6vL6f@;>Oq=jsHkYkI3QbZ$Y z^{7b()}(FKV}CW8QSFXRswQ?tVV!@$2S0(L`o02X)sIIaF1JLeo%h9TKydS|c|Ml>Eb9py z!kDz{21s4-w{B2CvAHJI{R2mpqCX_$`gJ$fj!{EW9Tf$r$-vVwZ2!sWMsT)@P;*7K*3OsvREi%*_ zAP5Be{Ozz^`Ws-O^*f%+N>7R#a}@=fr#HNfs`~uH0IDcvD-0^0&;-0e-gDa=2QTPN z)QXY^`>x)srJo}wQYQ+P-ctof{vW6Acr<%s=kosZ%jWldZ|2{l*ouiB2Bh;p8gm!E zKMJB;RMhOFKgX88+@cS5nvvJ&&GNAWC^53RQ&7FlgAv)MpHUdu6VE>=Sobv27Nzls z;p{}IQpeRQIkxd|CIRmTV1@yGt{IP_>LT~4#b~-$p{iu!`ESjD4ARq!+byH>2-(!% z$cb$5-qVZ+mLmk}yBFwDtK<_!2r17Y3-BE8(8(L78=sn2Vp56tvKeFJjF5uHB9W&c z0v#y-zOy1Pr7(8r0btWhexDqcuJ74j)VbSS6nT9l5oXQcz>(93P0jWSi(*L-AtdXY zg8?VeG@xU{*}~&vLH>*_kNnaxhcXx0%@_}mTmoh zQzk|FJZrT~SBTrFELPfPn_G4Jbi^I7WQ$;|&jfhZ*s& zh)hdQNKeN9{mqjVdm=kpt@?l@3@0x(cXbT-1#=jij)g8oI_o|zMqNsXFwN)s+~ILlgv z)ot7ypk?yQ&!31^0I$kroak8O2)5fnX^)0=NW6$K49r_mi~`;+JFL?ESu!-DqoIAi z8v!_dLM7orivR$A1JjfVq4v<2dWW@Ix)@{ifC8|to#hiPoaM!Y0qB`Y z5|LQPz*Ga#%_j9w!oT7snr~Vsd}C?HIuL<_GZ?3;&qi|nZI`U_;n8F?*?^E4ar#Tn)=vKD%S(u1Mk@*)=-o}dsJn(scqMgE&d?z3dl^Z z9=K9)olv;*Y+WeY&as5)T>9Ld2+xZv!N2hZJtb*1P6+N&$ApSP6o#)=LH;nzI?>{sQ;Tn%_r8 zN#6_9PX`KGkEcll;W}LnFmJ$TzkJUQ#IBMP8+#s-t5IuxNafpu#t$R;pZePqkr&Rx z0$JDj4|A{^CJBqCIebc9&^N(E5NB#kWat0XbE8*o;inPMrLe!Iz$LIVL*Sk`G(Z5R z+vB#cIFI}Q0<{>_pa1{^09eGB006T={)Xs)U;qM*kx6SN5C907zSkkI=Jcol2j%~B c*D)Yq013_D51a$x00*uY8;S8s02teFARbYri~s-t literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0094.h265 b/samples/h265SampleFrames/frame-0094.h265 new file mode 100644 index 0000000000000000000000000000000000000000..602e49c70d88147367ed66a9dbc87538fefa62dc GIT binary patch literal 2135 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 NNr}B0OaK_({t)W04UPZ+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0095.h265 b/samples/h265SampleFrames/frame-0095.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6e4dbab310a93f1a607ecef8a4b9a028d86c1640 GIT binary patch literal 1619 zcmV-Z2CVr2000330n+jR)I$OSc)?$*)&&6IFc1TQAV3ZSz%$>wIiaH^mlgVn*FyKu zr$4JLF&kO+97eUnkb%kHF`E%!Uc1swA7ymK4J^k}_~^yW)}`Y_NTCJCnCDS#pRM(B2hLXrgF6u{_~>A`d&CDob$0#$#=KDcXHDa@l0H zTEYpS4=LKhBn~O%s#C{ORrh3}xJ{JXEtMf?O#hQG1YLsq{voMH&?XmD-?O58hsic- za0TQr;ESo+_8<1!Kx}7~vPmqYteN5XgxAsv9=r9RlJXooT3=w#7Yto2Gs%ZScl`Ct z9Ny7Zl;#4dbBO=0yTLFw+MQ4uFiI?gR1`jnBCAvRedkb2kYg2WTXtwyECgIi4{GUA z3Pd^P%q6e<>P7S=aJ`}00ZST6>uy{Dd1`OeqW2>7F84kD9r?Xi+yzy(*RxJ?uDz|55EK1ZM)1Qal@QrD!1Pr|MIupJjofUWA0x zHs{p?cO5df$)RS7z|I+7b4fA`_f26Nt zejjWM+9Q$Q|E@*Ah{Rn@up3M{bMBo{yli}6s1{K^4^yWfmhAYphrVFm)hKi4eL%c= zrxBP9bOUxqq@dxwlx7QyWJ6^^12WR`o)w%@3hCUw=Txf$yZqj1i0uxhi!ut!SP`yu%KkF^GXEfba+ zj|~c0{}FW^Z)>a+YW~4fM5UtoVfBpXy^b3Up=d*Mu~b<00-svvnb--zyJ!Za?&!7 R3jheUG>O{clmHmofFLBG7&QO@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0096.h265 b/samples/h265SampleFrames/frame-0096.h265 new file mode 100644 index 0000000000000000000000000000000000000000..99b0905c1290384e81079cc41e6152f77cf6d89f GIT binary patch literal 3059 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 B1vmfz literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0097.h265 b/samples/h265SampleFrames/frame-0097.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2636dce7df8cd4a151a9a2b900fb3a7fab970aef GIT binary patch literal 1622 zcmV-c2C4Y~000330n-8h)I$OSaKUhF;{c!z0f0aU0U#g*0C+Rsy8;LR_;SYX|3N>6 z>ht&F5iCNPI|eYT%P_2592rR3>6I!?JO94AKmTZHSjPg;!TCmoQa({LXF%GZ5|T|k zaDeF+A%~Y&M|_1Sq81N9J1AmdvHK-|TKzQNu|5PpO7W2wrJmX=uYF*6slg8+{$Av@ z{%6NJc-E)#EAXeIT0*NEm%P}Cc#@!F^uN;y5k|kGEN85oWL3`PSAvxrd|i^&A8{9Q zP{ZtL2;4BPw0tw$+5tNRU+$=iSB%J&vN*ic9Wpp=lU!026&q|O4MWEu=bX{-!0*|~ z#Z9)>D{?V@06Txw%~8ulktqX`?szz54I%gR9t~{jgyel1FIrd$=Pr=ofbY^T`7T*m zNE5CJdWvmj0tn2j2u-^+Y7TWAw$580w}EWF%-2=}T$OiopiQ>+K2={Vc+>Xrf|cLEK6ihj*xnOnc43rH1WoVd z3Ho4WeGL@q4vvqW8f40Dj`;eH_AO-BH7OuV?&#lN;V;8ktRq{U*dPiE zrYCD@a?;cR=>}$^*GGos!TY{xli3*-x{_6=(TI^f9kD^EpS-$fPq*T~ zFBAa2JHHoE+}s~Doo1IC5YLy;Eqz(aVwK$)u|EK4jZI*V=ZJ4L>V`Emnf+Gk7zAR9>Hvd3ldpj1#{E`UhIt)|f{ts@I%ozm{ zAjPvB@V)@m`fHkc`jaYYj5Y1Dt1O3z1%3X5pkV&ftK5j`uxn6ZF{R_3U!HIsAB`PS zUxzn)cbCq01Ob8?9x@RaE-`1s`)2TDvEeu>(rxbPl9#lznK2E`hSbbxg?rixTm_o; zgqaQLAY=mC#hJ+N6{2R&Iqq<`Y%R=W+o?P_egJO#R;7ruRK^9muq3>NJOPs_RWE!v zloC1}=@wS_U^Hf2C5L7RDDWBDl%NLd`|qEpHrtKYb&X3r!&e!4wU_>?1WEt^+JMt9 z0yr{A9!2^2Yg>~QMN7EhXZ?(&B65%a7G^hjeQV4ZoMC7u4a3~PviczRKRyw=<4*X5Rw(pQI{rg<^V#WK%2S5D*xn|EczP(Q1aFV1M zQIHQ-0ZCPJgt@kx&jE%8`m-QFax2agkSnGZoz~vYi7sEg@HT!A?ftxq87X!kG1X3O z)g;ZN0HQC9?;LFI1(vG8aj*@YkbZYbh!yDf>~l73?ZC3F)pfT=U^?)(oLFakRGI+6rB&I57CPb#&lBUWgTj-zxT%)5h>D@VW}~z%NVuhZcJ#`r7g( zX-JevND;~Oi2v>e4<>uiuU<3%|9NMQ!OE|8SB(SxIi5fogOt`&ag1Po_#3?&vmPn~ ziKs)k7ZZnH z6DNJ;xre|nf?xlE?iQ_K`sgoA1Wg7QVD7y0?K!*NH{hPugq~3hfB`1Mc{u^lkYoS? zxgh&s00093a8eim0T8!@hD%w%00N(yV7oWi00=q8-5A&NdQ<=jZ7^CBiKXBG3C-@} UEH8_I00?zSiM<+302to>5GgAX3IG5A literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0098.h265 b/samples/h265SampleFrames/frame-0098.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d094a857afa4b955601dc57507a503599e3eb110 GIT binary patch literal 1904 zcmV-$2aosw000330n-Wp)I$OSc)@h=-+-VF0f0aU0U#g*0C+RsRLg(>h!mrQLGaeO zeaA2V_~WO7aaq`qZ_TJ>$7A?4sImn z%sS0Onh$$ZzI2LEJR)$Q2{GMe{kTT-tOF$|ir;6K1F_-{TwpM-9dNSRb)fe0MMC zLP~l?qRXFCkI06!;wJO(5=g0+Y>CpC^qRZ|SjmbYPCTw@T~sQ#Go`*fDFXnhIih#f zt{YEV>BdUr8Nc8HdmmKc+^|J&#~z$%aMj#bF8?WXwLfDE26EgD8A)LeUKe)OjvU4i z$bRl_Z-M=*Pe^C*_%o8*_XnT(7LYh)d7S0Xd^s5}IE8=pJPPUb=sK#$LE&gH0unLX zc^NzBc^qHsf<|1p-x)@kgmE7Qwi#e0&h_6*ekgzJKH?W;k+lD^mhX5SS3=jz(Td*p{0J0b!t>avQ^%R9Y_8z zr|x&r?Tees`_C_%-0}aLzMFAsmsP5S+i%WAdPIqOEg>f-WH$NF14FP`{>G8R7|tIY zeOsY_go!?KDG}H9{bKxV&=U*aQ@s>toj<N#?V?-$}#v=}T2l|PBHt(=Q0KV4@ z)6g;`u?bxrq2w(pDjm4xZlk-07uZr2_J9MP-72Ol>PR_WECxy7{^$mBD`d-xeSty> zbI3yc2RrmH>g(e0$yJ6AF>T_+Ltg@~&~Og}2S@;iNh9y9IdADq6xshkklr{xu->5` zN5l!0bLqvY1$O;uq}5W%3=xHj{eq#~lZFH&opW$w4$!9DMopOyN)t>F@+!n&ch?N0 zHAG_h>R&q3mkF!l0053DclaaDwGwXn%u9qIP&{QZ0dwMbcrm*g+U$1SvJkIvIzBZX zQ8s4ZPy2^@pR{aNixuH%=twW2ta?fka~^3$asbUShI-CLLB=(%!BXTKWm5+uva9n+ zae3v7S;Z?|K9ip6JSRWW`+rJ1UNnJYI-NclXq*1S!{6Lz-1A;L_)jRcIu(pTFqM5^ zj3Hb+WdC0UoJv5dpu5jd+a7ha>Ifa=F7ZG(kVDuh5oEyB7w8y5*(!s$&7cfZ62mTCQ3QjkHb!uS2%Mb*Hqa&|y{?M2!_ZV?3qH zE6_5-Z3{vyp5AX!w=fUET|eT4q^|J*GSF4v89wj>9Q6FiVRgooL#r%EOcN=pVR-n5 zmOfyqivi&Gsfe~dZFbynQOajj#?k78&)v^j4%%lR@|s6I9MV+1T_!mtS z$Ur!Cv!=Xt0dqaZ0w;711*gM|rdj|10|JiIF9J9+I@ikprdkRA`~BC(5qfg=4F2;hrCDr{OJ#jqD1<*jw}RdTijuy-o_Eez9B75MF9&@KjiZ%Ac8%2xPBQr zm(Sne{;!MGV@%k!cw;&-p5hhJ)MhT{h~<@XiM8PC#8WjcUy<8Nh{#ObafELf(R&C^ zb&5Kw$!ZRkNz!|tzS5^fg9l&i=hXUp?T%Y4x5uZ20E6)sEsktShcFN(6kI3`@4yi0 z8i`BJ_FvUq22P(jN~WMEIkcnuX{*|-znLZLt7lP2`~ohC5XzPS0IDjC`eOF$r}I(b zf+AYV=XV~B+4}*%IRD)Szz7pWTJ_$SF(v6!Y?Z+)Lpw%|8wGo(DS5vxRb6%AyD)_j z*OT8NS!+h^`-ua<0SH4ZjZ8C;)}1gW zC9!gi_8%c14aiDmv)nT?Z3dmOre0M$+^CFd`eZ?5bAM%EI^Qigt=U#|tc08?`<0MW z^QnsSai5%?Q4D|qCc}9-0nm_S00Oxn`(OY70|0PR7ytnfw}ggES-=1SpPFF1H`o9O qImX=>*YkQ*010g{S`&$--~b8D?&2&ji+}(KbxDc68cYBf-u@6|2$>`R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0099.h265 b/samples/h265SampleFrames/frame-0099.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bc13ac007af0032aecab06e740414228ad6be266 GIT binary patch literal 2492 zcmV;t2}AY(000330n-ux)I$OSaKU`N3;>`G0f0aU0U#g*0C+RsRLg(?@9?)vk(dAP z|M0?XCvd)k_}MesnEOj#W{bEaPW-|)Ufg@c1I~M@YAs=b&1*9S!`)rDOb>l5frse_ zQcu<*uUuot&x=o}n_3G20?olB(cAw9ai1j03q%5WP^Ue}5_Pp=tN&%GCV`4%=?Qc>QpLRjxuKTP<9y#0|z-KB5O4ODYnp$#FySJaFf?%reZXq}e_{ zE4@<1bo8cRYJ$GCtUgw(!c^4O8+X7&8nr^^1~Fz99(I7+gXSQi^ejb*1^utG`~Bu` zw6I*CZh;##xE^wf2z16CNI-UatOwaYP|psSdNBN-6b*9cw1<6ayR-u=WMka-@`l0U2TzY0?Qi z`1c(<^&e!2eb<_Ei(?P?$4JgVW}UnYQ;-#FX)uBi6T%k)f4Kr~H*&MF{e!)iS`jM= z;Gfv}<6}DR!=>-2O}FqpbaS@w1gVrJzW~*!^(qtT!js&JQKSm5z*-+olHa*#ykC88 z&m}U&HjQ*^{uvR9->~U)eF45tVU@?v92V=I{x^fW;jN$e(JL^h7jaB<3Lb3B>=l!U9zY@KtrG2o!Ss{S2V6i029$b@&izllBM5@J6p7?{nrBM3pk<-Jk|wdB$jHqyYt9(`tPZ>JQW@fCFX^ zA)__@l7^lVJ^RyIqB;F65|z?~yO$x=J&!-~3NN=YSWEvGN9;haM9UC;)bf8|-8S{z zm>wA#BqS1g+${Q?(H;ezd>N|IeEg*f?a?$t$F^WU2RRU2zF2;6urX_X?MgM8cjAqi zE=GH;k=U7Lj1N^5lB*cxtGNmhS;fC#7sMbt8$HOh&>+ih{p9ZH=cRAEz-Bjn z|NpggL7`UAPyka*=QpXoxE4d{=}o83Ce}~s;X!SMjce+I4Kln{mk;~Xl{=*szX9v@ zA9TB>Hb|`Z0t!=GKwZ}wKY?6j)x*R`pTD#L6ZEsfts}=N#H%RBn0vz&7BWZhn;z6=?gpL z(`&UH7+wOIeepSbI2n;0)5ul@7v^T{MdWx6Hk<|Yhx{9ibKHYIFOt=OF=SpxJ`)+d zn{F1TXLV@L1m`5LT)>i1RenJHq8S+qc4hmd=r?xCl;MO?%f1Tnm7#yc7Td||IGztN zd{WeT1AzRp6d*c7>Ve``g=`#QRB{LR>e9X{|d7*MM4AWr6<)naUw0gQrQJ8u<9QcbS^e*S8&7nfWsS( z4A+%_*y`|&sV2TQjVzGqq_En^#jGAbWbFu0_1i-#4QPn_^pQ_e0GfhLxwMP|<1y^O za*;u5h&HL^gu5R0iJBTj)?-X+&a2>~%)qj#yjwf$d}}Kyk2%mHd+h>zc%(5Ymqo*Q zLRFhiAiycbIIM+*df~|K<3{OL_>2s@(CG1WX30s#tKGUv)#l=clQ;?rSC>4p;2>q! z61o5Y1pL!40yr{%902E)xjY&P8fEMM|NpYWE-bSIXUgE6ID=PA^k>P7;f4+H-s!P= zMqcm`X^H^Zx=ihUi4DNy8AoXY08wAzlNTPKZpjukfGM1Gsuz@^6cS@?M6vp5=~7Le zBcdX-%_mw?`Hy_dRc72ZFTK18dM|S|E zXUiwMl@itQ_97wGIVl<4`3Q7XF6o1gB8Xj!g^VpnUqPhHiwS=KRP4E@`Z0`N917oF znp7L3*YkQ*010g{S`&$--~b8D?&2&ji+}(KbxDc68cYBf G-u@5)-qmja literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0100.h265 b/samples/h265SampleFrames/frame-0100.h265 new file mode 100644 index 0000000000000000000000000000000000000000..535b573c9553ffc2aaab3b4f234f47f5cae305ed GIT binary patch literal 1612 zcmV-S2DAA9000330n-`()I$OSc)@Zcr+}~y0YE?p0U#g)fOs?CRLg(>hyx7zsCAh4 zQg^)7TCjAohb3-j{*(5RE>+YcN?$WbPQU6$cO}0iRW$)86sSFC)te&%t6Rpf4}*s@ zhr`2V-z4TBK;eT{cFO|RrpGINH^7*)If{KA3Lr8KQ4kUT^!yg|$RAXYk(IEF*GVm% zfOh&lcqRA+!{BQcWOB)Lfm%j#y2@Bl)RQ4P%1q3>@Z5kZ^asdG^3w_^u#OK}{WZy$ zrlP*D#Bd~OaD;+250q_w^Qyu!B^4@c<+H5mt0ALD9#cjFtNv|62QST&RDL|nT)Hw4 zT)^iC9R>Hn2PQzKi+#1c$N8ZwiE+l>PlQUiK2`)T!`osEt;@lj;d$z$bIZNgR(OW> zEs$dniQru``^ou|knO+@JDVARo+j~Id>)9kyoH!mr>|$IR;z(4i2A;Xk=<6AXcbbn zrk&*2x5U2P23`6or*Y0Jmu5`kzWo@VLc#%_=#l0JUzRnOpC52eG06VG8iE!NSQr)1%Ue z6mRz#8nOg9u2>_0>B{28IyZ-|q!xkEd0=F5|1OW8vub}OU)SMqJ~}^3vs;8cMGaV| zF@Q+2SoTOZ(}qLS_1-!9KIS)f{k>0Aih7K_b3sT4_SG-(jDk&-zn3(o>aiV+81RIx z6TH2wO!q8L4**f)VgQ6Fc3uDgr57kLy%M1j`Xyd!NBE4%Yi;GNZL81qbJo|g&jG@= zJlIKi1j3L4gAv<%sTP>bP#LE+4(62vImv@tKzjsENgB>o*R53GP1IpN;9zG8zTjl*0%brtQ`~UX$_?F7) ziK(M;*1a2hQl=Xu8?#&2pRz*xoT;Gog+Un_*`2g8$0qv`3+z_R6>pXkbCP& zS~)?a9)=Lyewh-x&8Gq?MBW=c`i{NlLw%+-3^sK7=ajjkR{z-3|8=m)iO^2^yI| zsn-(X5M9yn3hQMvTi-)h*o2fxGjxu7rb+1l<%FA z9(89E+zF)JTIPVDo`+O#UBfK72)^zHj6j<+!*mX1v`PLgy&VKuovNbcQzK~+!x@a*P=PGdDVfFW$Sb_b7zLplS&*b9|EOU&EG z4LLqF1l|qlLpw1!^Ut^#&%k`hfIbM5!q={E?0H6$AV-9j%Zw0?nVV_K0}(62hnae` znbr*ei&u(ERGLCcbKqBs1$0FL17$c(@O@bMsKmKBN9`IPv%CWaMv_G_MPzx~#69I%3ggPs<9AE$j4r2*A3P%70LX+OF KP#gdd_zN)YwEz|X literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0101.h265 b/samples/h265SampleFrames/frame-0101.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c8c35cf036c0c3c5eff3666ae9f009c626ba17a9 GIT binary patch literal 3617 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0102.h265 b/samples/h265SampleFrames/frame-0102.h265 new file mode 100644 index 0000000000000000000000000000000000000000..60ff470c8bca6a478891d8c0d84f7171bd42d12f GIT binary patch literal 1478 zcmV;%1v&Zv000330n;h})I$OSaKUiMj{vX^0f0aU0U#g*0C+RsRLg+Uj-*25bnjdSeIp4^L$?3rg_vA%8;Dd|H*;Qeh_C*+ zletp@fVT5S>FnospGdAxH;Kvv6W&&n3@?-e_!|8JE@hibTH5L*PAg`yUj_=UDTou z>AsW^_#bgLb7#m%)==s_H&*yDE@^Ed51F0^Pw_^ps?`MUKhN@N~|F^?A5E`)N6}5Y<|UWizI*%CW}f(h9G60V1@;N zF2_Usf_(@$;}%b|e4T+?CQYSj6a_kCg`W&?VGrg1xpH#k%0!9TCYs?;>HAf#T!F$h zfi@=Mt^70bap*?{Kl)%+H-w1=PU6kq>ELN%)=e?$_Y>5(_y66ps}`7@nzOw2&if$f z<>oZGT(gv@FFz-$v0T{m5069y!7^$m3_D7cWy~k`qkR0-w&?5K>bV!ilt^z?C$t8r zXk9;|(7Nza=ePCnDqv~2Ag9v3(f{`B5a_OR{4L?UX8MEP9bdKTMN#^G-q8#cLLA{X zMWcU6Ugo>%z-BRw7jo#({d|&|I)R)K2*v8)egyX{SuNw|t2CGVA}yEyybf?a^;2BX z)r?laLF_i3*duqm7Xt$0JrWIIU)~KBj|M7hOc8YE85uRjY%SBanM(26NNP!?sGcRh zktiL1JbCv0zIbiad7JfQX}WhV9!t|Q4T zE&}$)k+v0j3qj+kmnjgIA~8=-6K;1=!S&x4`MeIaYBPCllXYDLIUcm)XUPOHvpw2_mh<3 z7xheNnpK7ES&2xvU5yXBd{FJp#b!$3sn_KI!L5s<6HA2pjv?WOUE4?4e1>8%Gp-Gn zKK30pyCqcOPvJSibqElEN!88n#F8;z)W$BdM9HZNdJzs7Q%gxfL>AMxH-NQZZqwdM zddwJO3&pvKI_f(WOP}K=EDnRn`5UXM)O zzuWW>@BJcux>2+L7H&6ree28@zCXBs!YW?^2IDSZTDsjpF)Kr*`+;FX@J#{bBFv6P zG#2N5|NsC0=_MY8reVOKnsfC$HK zh)mPW2H(0Fn)QH6L@R6m1##=&cH1tUI^t8ioB!z0=lS^k|A>$fO8IQ>BJ&!6o#*tB z00*85on#JxkCXraSR@lv000937NSW207q^=vA;mj00BYIR+f(}00jhc>fuu>U#|cK g7Gv27c+&6y1>V=}4}!pKjYPQQ<5Czvku@py!pn zg!6H11Gb*y{>{VMoqObqFnnZ@3V^mgvj2lQ4LOulLq9EajpXGIZkEyS#}Rl8ZYJ@@ z{*G~`Jm(~_2BW_&Ldq7zU|Nh?`!`O!`%n$)Rn!3F3c^m_GRbo7iQY_^s zkqNb_lx{E2`hQRJ^0o5vYGkVqNG{wbcIk^@GYKREVP$&=`n=>@YfZnn$w5o6vle+x zysu^P(#&0!%fK8dRz?FC&hJZc5qaAVyi=>AnSYnE8#GG3H!UYscX^O|_1 zpoKfkkj^wf;GwgCzS1@0NU5PDWejadOM}gU7wz5I>KsUGEcfq4S4wEcUg68{Uniu? zmJ;(zK42L|ALqv+5hrqB1Q_`He`Uzx_Wo=mC&n_LDaBD}0LeQaZ;qfq>Q_vg?T;?1 zp2&%pp7}LeI8qh-i7}m_{d9{|g|u!-Ae9OD%c3kI8ij2v^bYSk66)~@` z_m9W#>cC0;+{Nx+KQ(5=+QjehNKML$Mwy^`Tj`sb@d9q}IzNh{o?qMhSN7$q@4n%R zXEE9nBOy^2Cwlm|;;yO8_81^M(D|@#AE_SPz#qI!lvnlOb)?0E^GgkY5G>`kk4Aa= zU!VoP7b=lc-s}9YAgYN1i}ubPq^bHY=n}o9v9B+NEf6Pp(}shyW6}Z~zN?$)Ca?5A z%Kk^s-Lt>M_`fU3SDqd5L&{fi1o6RSBNMRv-)M9C zLk{Ed?GUibWbho}n5Y6k6*_37YP;C3;$+}jxYcEM`gcdU8&PJ8_fF=# ziK6zPsL;gySa@Gx1@3h^)EF8c23)g6R=t}gxi%uxJ$H3bh;BRhiqn{0d@;ftw1{$uX>Ft(syOP!~s^-PDK0E!0YDDX0qs5U&-5l8>lLsj;21rjtF z{%`;YU_~);*@Nfl62b{LTowAJo}rog3f`-&Fs-w4Vmr*|v}V ze!#?@O;T&!6V7l?brdjAS>hW;8ulmnUK;)M?~Xdg=lfL2>|5cxcUh^?PgfseW(J{2 z#l>Qh$AQBBV=Ci>1Pc~R7Yx3tU*s_9J@n>z00irFK{2taRk?-FB4THhF7cQsQh7kh zx-NzUqJ!Bng>U2DVwnn(#@!7=PVZgY{{-cY3i?L%dzM5%ocs1$bD}RU$555!W6IxQ zsD-^L*{=)u5|^j9oXvf3+Iz;LY`z0x==caA{U1$cND~{n2xBibTbYH2P&-J+ylQbf z8)yI-a^d;o!||L$@C=?$#X{c|cqyan*>?9*x$UY$nPByu`}c&all zsjU7|JKo%^v~0=4&Td#Ki+KiKm@0H2ic38v(Fkp!$(K}?AkT^irSeyHr?p74w2Z0J4D7F9P&>-e+$SNZe)r`~BC(5v@wCU%VERQmGoWQcdEhsb*Rq3*^pTRD%w|2miYhluoAy}{g1;-HkF0h%7)r#}A zY>Hr&nQ7ZAl@#8EzfzkkK}b4%^8CE+HjbG3Jf9%iK+3XH;ZrMLuK)!WW7!FK((nKU-q-98A%{Q!1%`9|p%DfE7~r#T D@X(X% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0104.h265 b/samples/h265SampleFrames/frame-0104.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3b25c06e0549c2ded855415cae03944e4f1bf9d3 GIT binary patch literal 2147 zcmV-p2%Pr-000330n<7E)I$OSaKUyNGk~xT0f0aU0U#g*0C+RsRLg*z)(!9G(w84! z{mDOacZa4jTmoLj?;nq4jnF`@=Q zP|h~#ac#rZb)Xxm20y(V^@A(1WqU~P-8P7bZ+Xy}y!<*}071}YmWoem;j+P2fOSUN zSJQ2;CZ?Q3;_0dL-NDDT8i5_qK}iG-6*cEvfG8vY&toucN+E0qB-GNUlL!p7hfEri zL!KJMIZnAJd7vO|yw;7SftkV{ZGtq^JE8dgV>D-&khnuWvrQAKI1x>&6C2RxlNkvp z1kYRtpGJCD16!%tIGzz9VYnruAOCN-Wok`3JQ31@G|rBOk=Z69Nya%3S;^x*V8aj? za`)pjHGldQv=}yO&QUy=98jc^%X2lL=>U|xh9^hWYFSZ_#?J%Gp;n!MkntyM|I4*7 zVbbF9+5-QSRXH$Z2V>Q98@YlnnFb=U0^|VjxR8u7^ljv~;uX_xDmyoPb0brhh!6V3 zGFKc?hlhbcv6prEU#snwceOW6jZAo?8Crh%Lor8x+&Y_L2gOb43}}{)P+*1rG|THZ#$=b<(TI(oiy4hy9e<8AA%WJfmcXhWx^j-Q%jpUL`;a}a~HV)@{Ld}-z$eV zh!_CH$?hJ?n#l4ec;3{BIMc^Y=}<|h08;{Uv)fSueqXcy$j&%D{8R&2Y)NrGXaJ(w zWPi!;<$(h~7vmP}vLi^@LRHUE^~AbZW!J%ww#`IJb!RYtb-LDw20yyvzz; znpn{1*O_FT7+$+N2CBM^)@ToAoEASl-piJO(}sh>TXZeGJ)A*dnF9Ar4`#uINzjZx z(5Lj*Wi<=VE%4MdoJhqhi7ABk0I=#*MejpPTY`>X=PF0sY*oiz0Juh)HYFR_a|vBm zr-UlI+^(LvE(^Vw$Gm5_!jOuPmiK88{cZUppZ`h**VS=dyBKs++75pfs>-5kCFF<0 zQ&WTYTbNo5LFd%)%#}UPk2=e+L zq*I5v@Y)g?L9JLAaw=hGQgsgdXo1}MYopje?il2lhAJ+(Q^@cv){{Mgz%{A2{ZSBw zMR`kz5+e5Wf?W&>_&)c+2^Gr8TYjcT^C>;v=prFoFUQ|F4X{Ux1%$@hVvH04JV@DYl9Jt8o&=JqqG82M!1wZ)bZ7$ZI=P(Wy=`!*B7+XIDj!ij$Wju3^ zd~Sw-J(BW~ngKZ5G(&w8YB;zEai+kvW!J+Eoo5*IC7uM5fktEOr(E9bm<&4~l31#N zv9T}`sppd{(;5sUY00Eu60jOil>$!VF87W z*N^-ETz&o;izJl0tEyi!23T~#4>ipL9RH{kAOASo#PVUZzjH_uxiP4~QSer=#2?*9 z2lK%m_}4;m300mi>OoY~UK7^wXRiP$F9cFwfQ^M6fSc6Ejds;O$g=HJtjAR@g4aR3Se{w0b42g*bXVxyka2!W0_DwCi0wCSY+l`K0)=k3OyS9@XyE{Fgd z&wPA+P!shEqY-U}9D;&)W?QeJ01?P}>7r@o0IZ}->n9L?J&Ox<0TZe!mchTtWx$W{ zh78zPvOR+iDZpUHBAh+LvOpAUn-c+bKjetue-NHs?pgDwFQ*R$z;b)-%N=BMEL{S+ zE{JI*0K+hrA1^2;Lk>1^FbauQvEb0&c3-S~7w}%L3pqj;0wXUIIGyM8kN^js3Y}yQ zfRB^_09YgwQ~&@202ZQ2002jBKe4|+&;S8J&sLU?EC2-ra_ZqzD_^ew1r}r333$@* Z00rLH><=M_KmY}XbN!(a1^^h~vv5SJ1F8T3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0105.h265 b/samples/h265SampleFrames/frame-0105.h265 new file mode 100644 index 0000000000000000000000000000000000000000..330bc7ef028e64e233ee3697f58c34f43b032ae7 GIT binary patch literal 1747 zcmV;^1}ymi000330n68l4~%o=gcB}41X!k zfeUIGdooZ<9vPA{>RvqV&i}Oq^h|;rgKfX}xfpi|8a|`lk7rC<7ytc8?Z`{XRY^dJ z#?))d47vsw6d^iD#*_CeT}z>YA?+6g!4SjKZj5+Up|nE9{Wb}o#mm9UVjEcin=IiE z|KGuHRU!3SsC0`z&VVS)Npk?O7ItcoEfyZdQ9zK75R)icD47bH~P# zVR(BAgBxhqn`3Xh#;;_~aVo49W?eqZGG?|~+TwSg2TEDEMQ!8@2ufqlsJwGJI-?&P zg}2~2)0K7US2jH+yioT zJknn>0(7y1Z{~6WnvQ|+390k2w#MFfYCDnd2uuLDcE>ba=Rgtw1|S|u@ZtM*op$=W zI^U@xv>Go$m$>OtfD4N5Bofg7M)x}0yQ2SH#OJ*Jb*wdo>_6uTSYh3~cN_g@{@6lk zc~C`jHS*o$7FEfxYo8YX>}m0!2?Hp%s8D2gFN|wEx*-Fiy%pG_+C*|)54O@@%Z*h| zC1YAX#hP)jM^emEKn}7ZL!m@p$9FLwEdvZ!VuS+44#4==Z_XRd_K|6kZGzNi#ng2l zwSx#EOFIW7&jvKBcifo}5!>n#ETQ5!9(1xV$^v2TS<-=)r%RHSI8etum1oU^WjE;i z?6}lFCRw=2cwbUJsB}4C-q7P2lR7IXHxi{F;5$_`*F=c^Fl-_U2L$ovHk?7tWc?l? zkc=K<6PQQ(S#kotO2mEOG_Eu68qB1!R)2|J(v!we0~aUCqnw&&CWVza!ltB48&)73 z{FPB&Pg+R<;Qdtg+aYgU3@zPVmd~#p2Eu>Y5(zF40Mg8H*s@ZzOL~u0rHW_*-iT__ zHd*fGyvnrH({81y^!2^)EC;4=!pTLIub#bf@{MABn1@YaheXj6G5SGqOIINsj-H+< z**gC>OB>@i;}m8p*l1X!7xJP^vncW4J1_+BeBb)cCGw===GQ`@I|&UZRm`2os;d_8 z2L>3&V?}Iyv#u9d%n(j6FqBx@Ou|Rk^+v6I(CVY5FWhS8q^$4ZzQmfC%v^-iO$?Wm zcv;D64_tql%Re%!HTlrv5pRc<^maAki%?G_wCUE^gK;A>zLgn@e64lsPUay@>VAn+ zUkqNKy(g6c!oNoj&)&ICFUQ(htJGj@9i|{YROhe32K+u35>O*-*f} zUX#$PYQ7CzWQFj$iwm0*L)08+<|?1O%*cFfRLT`IUF!c{;5fL^Z00tyVbD35qSq1&^kXeQd`m96vJ3#}<7Oaok$KtG`z{Hb|OyS|;N3b?l7SwvsbaTaZI$Qc~b*pD^S1 zzeDd@s0_9U6cNlWX(eWME^HM1qD4d0xm$OCs+5Lw4T3=o#s>L7oBqD9$&!(a$@@!+ z0;kZQ0Ez$&gTt_Zkw5?hPD8)|034uu!DSz8004?=df@yo00PoE pVQ`#fH`jmw0_icrDyV6A00dh9+ZE}>zyJfg5hmei9sm&jhOpoQKkxtm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0106.h265 b/samples/h265SampleFrames/frame-0106.h265 new file mode 100644 index 0000000000000000000000000000000000000000..36b4aff4888f41b428b482258a8f912ca9d22b11 GIT binary patch literal 2577 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 VzF|p+KmZ1|B7MYAJOCWWgK)qM2o(ST literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0108.h265 b/samples/h265SampleFrames/frame-0108.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5e217a649d71cd752264bcda8dde7c489e16a9b8 GIT binary patch literal 1838 zcmV+}2hsQd000330n=Ik)I$OSn89@jx&Xis0f0aU0U#g*0C+Z5mCL{YJ&o-IS$K;6 zWZjW3)v+2wC<4q0Smu)uZG-h||NpkD8*~i_O*L9ieS}D@H4hLAoU+x%>H@SjS2JVz z^zFe}j|pHJ3CpUChP)F-MpIS&5mC5o@ag!mEzsdBXzF_`{}CJ8e>d1+3-Gfu+Mu9? zVs>wUN!*`>Pws$9I4tEGSxAm%dTkwJp{@V>T%lTO@P@mUEwLW>-KCF57Y9f={X9fn z2M9H6gx#_6c7@^mLtKDRSH&l%(Oxu6+C!HbG-adRM|#rkiq)`IEmgU7dz98+bGG$etJdv>0yMq zn5b6ijg&L;qI8o7n1vZr|A?tZ@?yR^Tc8O19f_hq6I_EhJ|p6Cy;+QDxKA>E`kaWe zx}UJvOO_N@=yY6R`_Xcs5!|!bBQ=RH%u!_cunxI=JjEvcv#PCS_b|0e2GL4%1tuOQPTq|VqF}1_| znWvGY)2c#j-_RZ&bs|=3@SVE!G7|P=H<)&S)id^`yyyW)hwmN%Sae_u1^z@v)LEwS z^so?V1%X;61{E{t(cqr~ccH}k8K>iA0C*W$tk=_j}$jlH`M zb^~eEd9Ro%NAfO8^^h^tkj-%ei}xA zFTRTFYgEdA2Dl2nfVy;-@5IQk>|qc zD*!$cqSN3v#^pWTT!09J^@2a{?5XD|In{z&_PFQCX<2i*Yk7xYMFT~Ay*Pb|8MrqX zBSq4d)rJf8bRps8MMyIaiebZ{%*$#}Qlrq*j9i1}z>?kygQpvT#KdzPCGHvBq|g>< z$-6`k78l9u-EP;H_r=Hxd4CGB{#>tZtRsEMq;RP&h^THcL{cAKQeRkd9B7~a@tmH5 zl+~l`snJwCWWoYjfmfifdX^7#Q4+6p8%=oQapdVOQeI7JxM-7MmJCuwYL!bsI6x;R z6ZIv^{yehlH`NXi77A0^v>DNBi{Dz*)y@TH%E-xLCI7{=ee2o56HViMuW7@@jWMYv zIqR%TbbvpQ2qqQaL$MOx?%gQ)q%I6Af(Txt!vSD;Sg?)`dq>y8N=^bow8|ew&ec3r z-Wy4GzufW~*blIB9(V>dfWt6u_qMA%Wbfxv0iMhK;#_;kE_tJzI%IZqtcQNP5wlk4 z3X<$3XB8QYnbK*qfpr*`qyF2E{`MWzsLC=#zIE&v*J7f^HvaP5A)o#14wE&pd!$Qu z$JFcqpB)i1_(S3zD51=cbc75zo*)cHb*kVq7Fhn6W-2EU?I!#9p%U4yz}-{_4l^q6 zkrgtcIUYD^WO3F{$jw{+J=6zuWE^@)vAuG`Oe#OKpwd59BP-|USZN;g+-mVK1HYc+ z4}n(NfYUlD)iJ@lbnoE*>q)Bpjn>^WlF>||2)eM= zbHl?JorPDqy>>m|K=E5=3d#Lw7io!7Ovig^8EgOo&dQR+$lr;iY5_`&kN^Aq?;OEh z*Q-|z4ss8`Z9cN^Qy&uMYZdK8EIO!80l5Z4md9955cU&IZnJ2{as@%!3IA_^tE}&K z8J9`^fVlrnw++(QPX>T_+VM9=5fG|`z#Tx}8g79GOESh9E_jS*o&3UT-kShu;s4Sy zM8Nyp7&tL0aeMvy{BPaz{0t8}rQq_&g=jrSyDk|ClH*M-ib}bU@kkV$2Jq!H3nODe?ct3xxET=4t|cHgUVlM8pN0^;&O%R#pa?Bi@mtmP?p<0$+(XWY5d00rc83gK)kpRWK0ni-_& ctdP(E2bP(>VM&KT00y=qeZ){a0364IaPy&n#{d8T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0109.h265 b/samples/h265SampleFrames/frame-0109.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c714449d6b61d26266939e8054563f73af7a47f GIT binary patch literal 2475 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0110.h265 b/samples/h265SampleFrames/frame-0110.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8ad52506904a33913f931072422e11a0280c4941 GIT binary patch literal 1736 zcmV;(1~>Tt000330n=&!)I$OSkim3No&dlQ0f0aU0U#g*0C+Z5mCL{YJ%x-|TWMoL z!B;b?M7nzqnRF!sdBkEw1oz3=6brGwG(k@Ow6 z=U;-gM(1YCkzuVi)Bp340WY>dP-1MQesbS3=_wu-qC@+H-~@`TZ1X=5h zDC{;o*kx=S`*4t+{L)JQpKwYZPRfb%)U3nWqoVpoA(YpSG!PJVm9VC+4+%uS;k#qD zi_Vywk@f7dGfV#$tE0gGq_t@Ki7!Y{1yxkNT`@L zM|)jV3u;M(jov3aR#XAA7`K(9Msmx*cTu}m{j^95=hPb)fi>YpqR~@Gpd2eN6@r*J zXcoh}yL3;08e-NQ=7qiCCK)-sd9g7}Zy&iWXly2ijgZOKel;?L-pWGF^1T{$)_neq zza7c{lPU)ZXv815-jCekqz_Y3h_f-5%aDhQqI=&iU=EG3L0d)KWNOGYx-~8XJ15eX zv_}VQ&=K>L8>hC}J;yR47Lw)}p_rlX*I0$@n|#&Wl)lSd~&Isp0STX2(Z z0~P=TpR;l}?gSJFzOIyKe=nmrfebh*4Vv=~xT3@R(1gODKLE=)urV1wE}9fNu-#4U zKK-#M871sn9Iy7+ahqfM5_V9+!H3m09Ky_RLP-8c-v|BUTQcrGDS}nWgYk~1f)BGa zw8}B$AXzCu$FSE*NhACY2L1<}>J9e}yWkF=!*A^M5IcN9%T~4>S@%M-e?`z2^j7Rw z1HYRSeC5Y5iWFshjJN=oP5^2i$D<3_Q_BSrA}JYbf)JSRGyZ5+eROTP=Vx`(CEIJ9 zj|tj#i1>=RT~>M6sdu+Mna5YX<4A~T>YCtL-ZVt%NC;*RWJ8|N7ko1b^RI9Vh)-%X z{Ek%bqUr9FY#24crr8@NPy%QZ9=3eX^b2#?Xtq{))NvWXDA6*3%T+tyOKa9>G&1;= z{qeRrekcp=-mKSH{#CA3ovjM0mmO8DGLnk>@*}f;5 z-bEY~6Cf2c@%9UQ)-|~x&a?!+Ggs}xJ8Ou%4~9bi=?$5;&nZtyDbIFHzm#o}-kQkNSgNFOe}%$G{58ayU0ZmH zCZ8$&XLxJC^135#0HN07ZFgUW*`V0ONqllEld0iKARu)ee5m zB~FxDi)rdLm`W#!OaK0_>rB03KP36CRX%xnT9Qvf!2f)wWhY8;9d0aVJu95pT6(4N zl7c3XCwTNJ@#gXG5oJ(}I>T~^$f9^g09Y}j`G|{hlSHsY!iYx1I{e*AP>%Tk_W~G` zbndse^T_k}gMJD@ z>8(8=0ASsNBg{I?iIk7OPGW0u=$b0%41P}m{JD)o$Buz3r|Ko~&2h=jMJ`M|RELz{ zIWL$TUy&QC#t~+}&I2OIpZ6Wg5M~M9kR6GLyX#>UXy|B=B3{l4aJ);*GGu+8Y?t6I z0dDv4EQK3RyP)wjaLuupEkXUp>LjUL1F-FLA?6p>k|?59+q*l$vCYFClV3If00RTE z_gSF er0J}X&;SRPnZ993hd=-ZwjzDRP&@z}$AfTAQBq?7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0111.h265 b/samples/h265SampleFrames/frame-0111.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c90fe162fc128acc3d45e5698408204e04af57c8 GIT binary patch literal 2647 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 FgK(GcG8O;; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0112.h265 b/samples/h265SampleFrames/frame-0112.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2e03e31a5c473759a905f7173209f4e757442330 GIT binary patch literal 1618 zcmV-Y2Cex3000330n>T^)I$OSn89-_hk(Ek0f0aU0U#g*0C+Z5mCL{YJ(+gW85zMr z!tT2-qTtVo@@!HTVN!LN2ugN{ni<-kR=@xGYg`8agU;7_jNvE~jL8scxg?~1it&N8 zjVIc1@DY~8*O%>SNuDpZL5PLH^ZLx zt>M@3IBguB08lO`jk`AY9UNTOR*Q1Q^Y}DQJq*VMQg_RIvWerOH$7<@!e&E=y^Ps6 zY-gwuXLg~puw_1&qoIMe+6Tu)`-xGGGoHP&1zN|5e}R^TR)GWnr&AaeD8cE`q$pp2 zR1ry&rA^*nC0v`0kD5*Cn0hVVWpp`1QIR^9W_Pn+_x_q4(T9i0@G&Uh%9i@w917xu z=r#tT@YE|J#Z_nh1N%%rtUy)-ca38PAIMDE3{P zscFjkWjyHyy7UnXd>#KPD6{-Z+ihV}>*CGf`tK|>Z5WeuEh$G73bkgxug~1_DFxtE za)GMo=xr6X%8O)!FcA(VPgtM!!wIAJ_G*p4LPC5CQn~#-9Lm0RRXe+;cr$ER$1GpY zx)t1=H3$8%7nW2P{e+aDz`xM>&xLr39m7=#=G#dpP4U+6aWf#X&XFD<=)=>ti^+=U zMK`^Cy_W^%@?@52Jq4NRKJT0N$c2OIEG;P`v%G$t$A7;)B*RAsnZH9dwHZ2RE> zhUgL3|JL6>v4}OtPzZ|o<1?`77SHkX^!>aVh2yeB`>Y27Qh7Grj9Dy+L=*^vSedtL z#CoD`R6u&HxPl&u+t8Zo3PT{#YE8xnK#K_-?qg+|k>SMyq-W&85qWbzPv_H_GPMHZe&kOl4 z{=bU+EA4C6>@aS>ywM%Moh#2eSdaX4)iBhzIHIO~dCZ7JDeUPW77!z^|NsB?l3Jb# zaH1~HGiJzd53Be;9=?RI!(KY=FNUW81iBKgE#39;x?T((4!+;aJK%c|TBPqqJO&abs00e-0I=;lUoyCmYB22{j!_xeO2iCs&$W&ptdJu*3Ng ze)Ez>@VX24lZ=VKuWgGl)Y5d00rc83gK)kpRWK0ni-_&tdP(E2bP(>VM&KT Q00y=qeZ){a0364Ia1X{8NB{r; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0113.h265 b/samples/h265SampleFrames/frame-0113.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4bada422bbe22622a553d2df0f7595af5fcaff58 GIT binary patch literal 1906 zcmV-&2aWgu000330n>s1)I$OSn89`!x&Xis0f0aU0U#g*0C+Z5mCL{YJ%xpII5khW z<^TP)SlggzLTRefd;lUvX{dOBT;&_CH&7Mda#Td1d0v{&f@i&xOY^!H8c80AAC1xO zbTd&#+s6A^y7S36FUCg@um~Sa%I;T|qbeQDEcr@7_y0@0yZucVbVU`a$kvV%MzTseaDa-ahmA6~bs9t0&Tf4}|&Ejd93UdmAaPZUkj*qU4(U=m2o~ypwxQ+L zi7;P`61X9@Jl2fzSu$L~x$?HV~cH`WeVevpVKRlAR@~i7>3Cs)+ z&D|cBRCi)WU^4LD`4IkjlEax>iR+r_iKa~00#toVvJG8P`kG0yHmKFnOyQk5eay!? z5?zojx(MpU z6<^QLYML-#-@l+kjEa1baQ35St%LJwI8efR^?#xMSMol7?VbmT@qS;BuRJ@WC-A=@ zu?DK#di<$ev>kSAU7JqI1zhq=s}$(HKz2AlfPNU#ORSJ3J99~-zvz@SJ?9cpVpqG z-U@!LHgt$x(CFwqMC|gIdwRG(-M&>jQGPVTz%NlaBfws>DRDcME>6ik%ZzW_3rMgTvSR)) zztN_%UnImzQ!ha18^w-%&{{E?bb3-=XG!~ zLaug_Xi8>wy2r39Q-EY3HJy<B_OAV5V%a#=84iSZLcOSoH3_@TJtoKHRF@R1u}6#lf;i z6>~s}K|M8tePoZe8mF}3(MBF)JGR*uaJQt;FRS}1P9x?+H@D@%udV95iTZV|mdd${cJUSH3_Bb=5C4j%?buy2s)h>Fx!JmM<%7w%C;xOcIE2Et2c?4K ze1&H!@tV2n!F4eTZatnmIuHcPFv~he!p~Q)X%uj;Pl1_ z6(FWDj#mQzpPJrBjxnXcRcB%|g$LTTo)8fci#UQF{qna&{#KfEM^)wxgTk82a7LN9 zBG4D%j?vkedH?bfLvFbA9j*+fBMePd_gl>D6M*+KR}U3c{-z}p8Jt8foZ-1;QKsXV zXI1SeY7NB=*&dQgjMgUe8v<|;g}W6MzZZjDR1=GzNMn6D)=<}xR0`a})Q|vgK+2ND z$lr;iY5_`&kN^Aq?;OEh*Q-|c#&P(-VZO5OQy&uMYZe29EIOzmfd>XdmmpY95cU&I zZnJ2{as^9k3D&cKtE}&KBTJ*$GJ)Qpj{x|OVeg+4f^6&D>9jz0rky3Ne*#*c_J446~^PS&u}f_P#Hb*n-*2_es8O*F11hInaGCys=Y+M_SPeYW)NQfMPv zhWv=C$k>x#HUIzv1G4v7v@O7g00093J#P`x000934}!-408MT`x4%SC00BhLR>Y5d s00rc83gK)kpRWK0ni-_&tdP(E2bP(>VM&KT00y=qeZ){a0364Ia2|iB6#xJL literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0114.h265 b/samples/h265SampleFrames/frame-0114.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3df2d054927b79c529df311e90da35b6d1df9ae7 GIT binary patch literal 2429 zcmV-@34-^9)I$OSaKU)JYyhwh0f0aU0U#g*0C+RsRLg(?^5on2z?}b{ zj@%I%ha%2@T$>Xchl=BM-Cpd@Qt}zb1(8&KJMlF4wac>S+IT2$k){F|Yo#FEv7VXT zIDNKx%>Vs?6v9}6!jj%!p{⋙CLzvtayC!em1v@(0eE58$ozj-nbEJLyj<GRV(B={eGXC~z#^eim>3w-q#c~4MHYc9&)PhGPu5#g2ZSIe5L0!0O^`IFf7JYpv$rxQe?V2&F~Ct zXKIE5lE{O<_xTnT7ax_;$c~m!H}>x(ZZEbR+l~fdJ)+tsH9B^N-p_}5@Y+uivsd`? zO=ze1e!z67F_|vB_0=kZ+^UsW{jaE=Q?67nyQ@AdlE6)&(MnzDnp8A+)POw2AH)tP zSwoQi>RLl{LCa3TjS;~1k0Bh7gfDnjm8o9jd!#b*YnvmH&6Jh^kmO@iJXrE*wlj~V zoaHd|R~$^y?~Mb`R^ZK2a3|kE1pn~z||^SkF}|JEdl<9A3=?zlG$j@Isw-G@<*N&ZW?2`ePxR#%=Q{2P%Zo>8-a z@~O`ytq3Vp)Bga7`WJGGvir%u4~}X9T7TyJFQ-l!u&-4$;PLqWgTxh$aW-?{H0iOm zxPlJ+Wy>thKd_uos)rUNr)$+nMkMAQ-w{(XEoqQ?IlNU#jmMPa66=n|JhLeO8^zZ& zT+vAF$a;s~S!tEM64tJ3<83?O{BI{tNuUK*b3b6eoPx9?rPW@ECd*u2L|>GzJ2-@e zn5Y8H9abzAVx+kTk35$Jsk}P2qqy7&n+En(QEQ(8n$|GVI}t(sF!DqxL+~|dkoOBe z?dPvQ0^U8?rj}xo`LQLKU4n7&GIsHHKNN&p%(<-&zPqeSwBMhAU+2eV^IYH8FmpU* z1{ZsD*6Zy?ya_fl?A8pO|F#V`Jl*?jHcJ<-6o%SjGqA!aH|ggE&Sz_v!XE$Bi$W8; z+|Hf23a37E$6l-1aY&-ja?7dyOv@;$4GFx(^Kx0s16rAj+%9B-sKhP*Rv3qW3P-xGk~j~~d;%&=dh za!c!|F#=>K8m1qE?_yrijJRQ47Mk*B)0@1^{RwKeS4Le&3bQCiicOY`u#l#Lk@f% zdA#)>xOUn1Szua+|FIpD<8yPM$@3`@ST}P*aad^*JM$4e(r%x3<(frqMU)w}i!1aB zH{W1^RBz~di`x0h<9Mi4J&HknOMs(^FfUZ=%>e04;{VSW)Ss9XxcpHSH!_T-@^*HR z!F3et5#+Ub1Y0@~9r0`z*`Jogm|C;$Kd|B|9g6Vn-TxjO#3K8&Nk5me~XDE({etwfH; zE4=pv8|WAJC@~_=5sf=fp1>8^zzSXQUF=7232lO1)>&rRa*u^I!%)u#8-o>$*DZHtpE#?lNh^ zKv;zJx)tX2@S@Ch#>4l!c0)Za8z7^VKuyj97j-aU-FH#?h%2inHF`R;ZzpCO=m5Gu z&V?^cbh1l&ptjZ;hBC#i>*=4v0ufQizk_4f%F5 z-5_?}Y1!OTRGJtVn6<$1yxfaYL&KK`-DTCmvS@2*6p z%t(>I(>1IeBzkxb#*(r67`({j&w~>ZAs)S)XXN6{hKN?}@1@#p735KoZL11gkI>Tz z@b2p9MDAYxIM)<^A&{*d(ZpUAc#%-So&AT}?V47PBT(=>>b^OHPz|Rhdyd|lKGH-@ zeegbbe6G>Bn~@A{-38aZ3~Ks~)9Wr<&w9Ty*aypkc=w zowWG444uT*959CKvc=AqyZQqJP3q?-XUQs;5{p7O6Ec%rj$0$w1jAFIK%UtiH~M(0 z^C?Pwt#`6ZHpJ>04uuZq^@Sa>dHZ#XcAB-R$8Kudg}M&2HYKG1Cmqat3ALQkGf@jI zx`{BI)(jgUY`Ml9$>JP1J+#+)K%qmpg?;8ww7l+lO6KLP1NR%H3gzeT|NXu{&!L+0 zc$T>nDD5#oX-(jKR)ObRaT`mtw!`pOQ@wG@Eu~;XOiZsPI$czU**xudR3`@#TxesA zpw&uH;ZrMLuK)!WW7!FK((nKU-q-98A%{Q!1%`9|p%DfE7~r#T2lvCE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0115.h265 b/samples/h265SampleFrames/frame-0115.h265 new file mode 100644 index 0000000000000000000000000000000000000000..977547c972f4655167b668a99ddd16d3ff4d4763 GIT binary patch literal 1684 zcmV;F25b2M000330n?HH)I$OSkim0!p8&uR0f0aU0U#g*0C+Z5mCL{Y`0dGpQus4k zI5lj5v7sCL-}_y63mg+n3lkYZ+Hk1GU2H{`!D^PZoi=oa#rw2{3&rR?42b*J ztcS;p?Wf>3%Ez#X2ejv%P&`wr+5sDU(sh448Rd)7DO#&eCG^?LWs=ov2qu6$r)vn# z#F)UDrf7xl!OWhfBLizN(WYjRMOjxSf*3-~V}RKbxnSuFHb34nctY-m@VW>fyFXw~!foPsQw|R({p6wjTqy<8)?KND13}~!|E{TgzerJ%P7JFScz0<%5e+d>g zfwC+3u?J%&h`O%{&N7IZMQ2Op>DmN|tKbOL*0Vu%jlTc@8ipP}=1$B*PJiGy?*3(A z96*LJ1y%wtM9r4rNWL&K>gvg3Ni720^#hn%PGhaZ+8L+a5uyp~c0P^M(#R zAPD5YON?`CX$$&Ef^DOdN-_RwjQQ0_DI&PI80=pKlYJdKPA^pFAHew+I>cZ7N}AD7 z|EuS&Wb`w7mel|}>yVhuc~OC^=+aEFwq2DU*ETqNQ@Ynf+0*K<%q&+el~Cz5T~bpEvVJg^v?vZUyL;Td#KSds}xjb?+S65sk9a!l#&t@U5= z)vzVf8J|B5P51B{&c426P#0{WqdPNNb07T0YZx7RBVvS3W_`(&*^<(?I78dO{kLf6 zF$Jm>|B@kP{V`fn;*qV3S+-QQWKfUxFf;WHN~3F`M#}vYR)|2iE35v*vtQnUhfXaq zAAAQl9cRl5WrKOxN!Bl0P4g=Hb!Ssm+nN z<|bIylZw9G+=ciLQRyBU4XR{!U;UyMa*aTO^Yn`FhJW77N~^*jr)kpWLa?5Rkq_pd zfr@M4<&)>@9_`#y6Bv1lX1CopTCG9zT%B0_=q+$2@|zq`A6(S>5Gpg=1b8AoGP=01 z5XHti`yB~{@7rOnT2|6uiCg;3N%`}W11CxHUmyU$(_Yx@C*X|>T?`d-#bn;q9K5}F z{O6UA6cM-lC6Y<^EmF!$@=iFSGS-3l8z4qduf4*B{vSm1rO)n{Qe*<=d@r+(a z`~!@j_pYnf#c3bEoR0hR|YpHEGdy9f_K24CWg6 z_mwH6y2caX&W!elfX&UF;}0ymOosKCR@O#3&gy`CP~%2XeiNu zjCj?ON$V(20UpS=Lh(sup3i38M3pOmb{(!{Ji_|YMIJ+TJeFk8a@{&$lV3If00RTE z_gSF er0J}X&;SRPnZ993hd=-ZwjzDRP&@z}$AfT?Ge8{x literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0116.h265 b/samples/h265SampleFrames/frame-0116.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b108349d4c996b7ba43a8f870dd04019562e46f0 GIT binary patch literal 2889 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0117.h265 b/samples/h265SampleFrames/frame-0117.h265 new file mode 100644 index 0000000000000000000000000000000000000000..125e6d4efd434ca39f8de511d7d093e6648b0a2b GIT binary patch literal 1869 zcmV-T2eSA8000330n?%X)I$OSkim0k{(ztm0f0aU0U#g*0C+Z5mCL{YJ*8#Na8Pi& zeSwNjA75!YSmL0|6H=l1{pDicucjlR5f9vQ{T_yg5_ZK8C!EI~;2A!*<+`ly;*XvL zH@5p-A=0n%mhX7?XW%!?x4~8D^9jW}_B0y^`_8%j{w!s3NnnaMeyO;0GC(Jl8t&U# z)RJMMiu;zWLGUsGyk4C`KSw-ci6Z^M6tq*vA+ zR5fa~K^9yYcS6QT8=>d}xu$dMjp-t3vbo{_uDq?+kp_}`spH>VGJm2-a+G5yAaY!) zy^xBtn-+c>B0wVc@k_B!KC|BgkUhn9*I~@hc|XGHE1qGpPi>)w6b$o1AqP#zwIT%X zZ|-K>7l9WK32ZsWl#usFbgV~0?fsJbC+ZX5-+2{HQWEelIl(Kna7u@D%YiUqD*%qy zbUlfY`F}*dc+WpF)NnQb;qpQSCkUKzD_AyMLs?gJ{^Jb4F>Kx6-*9cc#CQDn3L`H|o4qJ4S(aONz}aeB5%a>@ixVb*T#FGeu( zmpn!{`Y z$sEfzmc}6~u%8r(fn0Ffi=qWqMgqX)CtxUauYO39^Lz^HgG zx;CdWrymC533IaSXDB9CjuRmmNK{T&Eot^e&f++npE!sm={W{VpEC1(N#H_>s`*F_ zO{@W8Zh9QDiZ7IIzp*_}GJ%ouv@?>gPMSBlK!tt&cr1*k+>w*riJ?&~p`sT?%WeCp z!zjNY0nYT$O54pKG)S|jV7)}1O`FE6j*q}zry*WA!?ws1I?nl?sywRJ0qdY-FCz6> z7r32C5X^62)gj+tR1rTT{&+IHi>)V2Evt8?aLRq2Q#*O&1kKpbJnm6`Ad>NnJ|0@; z?z9uRTQaViYaHG^!{o>A4y^oRnOk*GHlD_<>I1blR5oP)Tfl8hb}9O-Li>O!FF#mo z45@?}ThZ_=mabKd$V+*jmwxG1A5Oa6B|N9H|~2 zx1l9rIV>>w0$Gg4Coq~?5WTXcz+&`}>;GD}#OhGk(_gO&Kp$z3qt>#RzvYDV(L+3P zz&KnZ-7_gHnR^p;M%3491%vkZK74nc?nZLA7|=^tF@DE)n6rIHLPLhS4Bb3T4U)aiC4P zRGbrBXrCx4D?MNZ*i7u{KkH)3R0;F{RjsW_e@OsAz{--u$lr;hTzNFI2sYq!yhsx? z=J;%78vQ!i>n>G)l(nxRqyO;KmrPaPdvylEN9(BT8*F5s9A)c@CNUgBSX&3Ie!S*z z>7}Fm^y3R`xbn%@etFLKfB*mg+DT}5B|@0HT+N!gJLvnqnK9?(OHJbwjvNh0g0Ca&oHuVnw>%mO8P0L59AP~Y)-I{Tmn25r=7@QCjcH7 zeodXLkH%cUov{eF_yCxFH%(%Y1O1I!$K@5b=$Sx~l*Wb*Ky;Ai{69s*yX@%-?Dk2= zybctyES`n!PSE>Vj^scGQn4_pH_8czd7g2tihv|G+@8~~W4=+qv&`6q0_16j4& z41lbG^5G@at?5Z|R6`ej*V8>N_MgwLcjL1+3fnE5;)~r=!Hg2#rU}vV)gI|G9OaI% zuP*5%TSx!zYKs+d;On#O=SX-9vb65-(U$91%&(9Ny;lGRHK#1kR`y@PEe^#lV1(P7 zd!+(V!FM1LhB8RbeeR(_SHnsU96>;nUp4>$2bJQ#Ey;%f00RI$ZxPY}00RIIg2w;= zO>RH8zeG>~0YuMM#E*Oc1>|!I;cP3PuK)&`8Kmi~kk9}JmYKd`NrylH2DT!7#85l{ H9LIxjFoBz3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0118.h265 b/samples/h265SampleFrames/frame-0118.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c25b3f030c740f195a936c7b198600ca5bd116fd GIT binary patch literal 2470 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0120.h265 b/samples/h265SampleFrames/frame-0120.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f4df7ba15ded47c360da6306bcffdd11b30e08d8 GIT binary patch literal 2268 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0121.h265 b/samples/h265SampleFrames/frame-0121.h265 new file mode 100644 index 0000000000000000000000000000000000000000..afe7ddd6748ecf7257eff21c07ae6df2fe76affe GIT binary patch literal 2851 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 BdL94( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0122.h265 b/samples/h265SampleFrames/frame-0122.h265 new file mode 100644 index 0000000000000000000000000000000000000000..25ab60f5cb03931e27413f752778829ab4ff32d8 GIT binary patch literal 1963 zcmV;c2UPd~000330n^F<)I$OSc)@DsJ^-)|0f0aU0U#g*0C+RsRLg(>hyy)F9?D#j ziNsu3H&uo>JLEt1(~uRX?75nh@~$)=o9%^q@HsZhmZ16btoSKt7=y$R3r)dx|Nn*m z|LmszKcVr1bP!9Fa2%Emd;gp(x!pNM07$?hI-J;V`huhW$fS|SIW{I2x?|PacRNe{ zbO#EpWGMAS_kiPF@wYN*_u=Sqe>oZvMm}�p&!R$X29xe89cG52zssTP1B#+ia*E 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 K5e5Jl;InXq8Yp)F literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0124.h265 b/samples/h265SampleFrames/frame-0124.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c793a5c59d4d78466734eab20a79b928a2c817d3 GIT binary patch literal 2520 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 UVM&KT00y=qeZ){a0364Ia4nE?p8x;= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0126.h265 b/samples/h265SampleFrames/frame-0126.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f134dc192d4d71934f861a3b70d563549f00358c GIT binary patch literal 3400 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 Y2bP(>VM&KT00y=qeZ){a0364Ia4Az&lmGw# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0128.h265 b/samples/h265SampleFrames/frame-0128.h265 new file mode 100644 index 0000000000000000000000000000000000000000..45a2c734ec6347ab46328b6e9ed34d121482eac6 GIT binary patch literal 1902 zcmV-!2a)&y000330n_>a)I$OSkilA_^BVyGFc1TQAV3fUz&2Ku%fO8GVvRegVZC%O zA0$y*)0Vo5l1C9=sQDoJ6>RX1y2G}=e}IQ zhewFLR9AE+T?}NK88oIGL*8dy;Qwd{7ysoF7<+selA5&#L zuzJuG+pz+fpP=#wvDnZ1W_|?;-l`*w?S8n3)0w$t^TUG^-A@A$min!&XBk;Zk0(ev?9ZN6r%3*t`VQ~qpCJrkY@+Pe9%{=K$*wg1cIL@P-qRl zE0=%T7N^l){W%g72SwuAK^Y$rnIYQa11=y?J`+4B?8&TM20BqKlDL;+?Wvl2%|S!X z>cp)t82~j8C9l^HDZidRXTZ^jZ;|^8^L*l5+FQkPvV9dWxk*f8{RBTrKVUit0`Cfe zmMTnYD!${UX6m5z8eCs^@E!RVe0Lb{dKt=i6F=B~d1O2`B<{4o&&hD}b&$fLLw}P& zdNh+16KvY@$tYyUGD)+VeiTbhBp9j_N zZof)uzFe3RQHIp{30afyT--Wqp!nA^@KB|X=Ppl2j(Ki}^6>I~I#w*@S|Q}ezh2yS zUiUagh`U$AaLwW6OX0@FFZ`Im-I{g(8c`!6AL?(g57!#9J`tJ%xe7vI?$Sr%pKs)K zvdPa+ak++wF?AZqb4b;wNAJ0mXU%v7U4M=@BpY>qa@PSUU|)R=+Edy5Npd;@z&G~3 zBdKE`{)mE5P>ujMuHq77(w8l>MVmjzkqORWy|G&(j&-7}QcmyW z*5qCY1MbR_#K`7D0t(z^!iAv?@dD5P-~apS8}|N~)L=UU&w$B7Nzf^eiE}lJ0m2p< zj1a(sh_TCKp$7%rp{#=ee2=+KJi7ssxv8rrfAFOxev^O)jVu3AyC5F8#(WD=Z)k>I13tS6I zgeDUwr|bbr0I_mLQ2WF_5X2maEU!<;F66#Rn=|AB&tMWZ8EgVP@9DLrs<0uL$ew6H z79A#CztidgKwEWJ=|}Tq2(rr)qalm>cCc#lJzyZ9006xJh)u6_;ba}baoIJNX;2^J z=#3?YcwI=iv#t|Z6JV?HtR#HjyxFvF)G`@lls?JB(WZht-Lc&Z0Vceud*b@eik2#s z^9kO%l%w%t=Emy~uRT&Gq~A_RlU}DQ2o^chE17z%fB*X#W8$6CfX>8$Z@Vs+WTcWl2@WWl=Kz(k#L+gdw=p)qCzB z6#qJdZ+Fe#Swr5)?K>Vg^>~+qOinvP#Y(SH)#*3W{7|EYbfvUX{WC`{SR&nwFT zn{W-kX|^}UGS?INpa23TcK`!vZGbt(^oZcYG=TVYr$-Ge zJKzG>+eXL62;XPV38{QveF1$C? z4#aT*|8^k}tw!tdQcLk~ltTFug|7Z?1!+w}x;lH?z4`v{5O2>=cr!%!;HClt6Mn6K zn^}g-LN`s0)aUb&I0Tn5%vak59V42JJYu4eSPVI{-S#FvHo~QO#G}e~=4#?FM)*^G ze#ReNT>d%@4~i>Hi-CR=XJHyu$jyQASZO!Z@cdmG;JSY#Zx};rB+tLqPesX%Lm0eQ z2t`z>V6V|Ys{xctzt&)G0^Ao-8G=mj)|`qs_=p$UZ{F3}TxP+<)9I~XkQP|xTdR$; z<|QFLy)`cfQOmT4971@e3jZ@~K_}-(b2>4M6iDNBWjIv&cM%M!S2iyW!#W4_R$^`z zn}U*l>58h3fbw?xQJK((5Ep<2elC(g000934}!-408MT`x4%SC00BhLR>Y5d00rc8 o3gK)kpRWK0ni-_&tdP(E2bP(>VM&KT00y=qeZ){a0364Ia1F$j<^TWy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0129.h265 b/samples/h265SampleFrames/frame-0129.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6319adb04e9a882775e1043381daa9853451870f GIT binary patch literal 2185 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 L#85l{9LIxj2mLvt literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0130.h265 b/samples/h265SampleFrames/frame-0130.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0eaee11eef0b074cf483c41a6de400715b4b21f4 GIT binary patch literal 1747 zcmV;^1}ymi000330n`cq)I$OSkil1Kj?NvZbYPbfWcC?02J)aj@OD z*up2{Ebx0q+d5nf(j1U6v?#MO0cSzqp7z*85M0-NJMrunkahwnjqyh^x4vBB@xgQ1(K@tuP0og zBY!ouA^Z0cWJ^F+^VdT%J zZcpwBC%eNDqGqth_nDG$z>ORqAQ0QYW1`%iSzI7>$EjaEye22*5aHN~Na3O?iiDc% z8LcD&NS@=){!iPqD`fQRD3bo0a=J0|Q z+*z;D0jiWb6R!_sp@brHSv=13qiG`>Z`u0M-wNxOtGQOlJdwz&NZE0}d7KfiT3)cZ zV?mjb7(WvR4Ia>ef}Ju(>|aA%h3~dLVQ86y)q8CK@R61C>mWpwAIamNFbNsPe7aH% z-#>xTzyt2elEld0mK9OpxO6K2@8e1Jt*JN4QD4F9|NGVbX_v9+^I5K@z;uO_GF(PS z!7M>1s{29w!eNl4DE>)KP>)JZ6;Cj7lpglIb;1oMp^rd2zs%UB$%jWg*wBJW9l*-tN2^G8_~F!R*A+=01hY1B;c%C4;rLMHo-^Ul0+Ce_wGk025|{Q=n| zy?pS@Gf&tMbPHCpDxB<1Gry?y1E<83UZ*Ps;FQCSa^FD*kDN8s>*7N~UhP)a%b)G< zH=qHvluKM;r_4+uN+#xv*!JrcbYc*|oU#>jUR169ZP=IL=lzK5h7S3= z08D$Dv#VtXi< zXrW8#qT;IGA2Ar>v6*YtP%l`&8yew^zimm5UsLbVJR2EH0q46eCgXqLCzY|G8rGWW zK?v|#`-bK+`0hF!I#^7xaW@-Zj@$95Q7rhk??l0mlhLdTbK8dB=hH=?8Q8-jY; zuoTc&(j&UXiN;!oHB6dac%{}hKO8(%Cfd}F`@_)ziT?Wsx19>*ipd*!4dHF0%qPdPTkPOZIfM}S zxad;gI#gyV*1V@~-E{c2Iut_2zwPSe4PXR3WGVsfm&3@xXDG7-0i+sMt+S3)Ou4v- z=ixc`{?83UtXbLFbpVqY7Uz(l07iDMJOBU#01tx4002#HKexX`Pyhi$&sM~bd;kUH pa|+>XE1$0b2AUb9>8y~@00)+tzF|p+KmZ1|B7MYAJOCWWgK)mhd>jA( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0131.h265 b/samples/h265SampleFrames/frame-0131.h265 new file mode 100644 index 0000000000000000000000000000000000000000..513def9affbd5e6842538ca636abce1d2093ff5e GIT binary patch literal 2605 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 P11lCt&-jx75dW^Y?86uN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0132.h265 b/samples/h265SampleFrames/frame-0132.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b75fbd9716f01dfe8be48b5cdc087cf3a0e5351 GIT binary patch literal 1669 zcmV;02737b000330n{1))I$OSkik_7Hbc9>Fc1U*AV3fUz&2Ku%fJ9VnOmeXGlGMK z%zB~g7*kzls4`(EtfT2$i0DK^_Z+|f!pGMV2+@o{KH?>@1LeOh_UsE&JrkDWXd}vz z0vbZeMuF*0+l8}zvNGpI2p1v!FX%cK#GrWo{^Yg(@7Hx%R*&-_@48D&odNwP0!*XF zX@tkAa0o)COoV&SxL9(NtjYHKV@h_rCZAk%Ekv zH0KbTNXrBG_JYr?2+6)42@OFPH~s;;>{1?z==ZKwuZ^910(2k~W;nq}k{u~Alrr*9 zb(=y{UUOqAIkP(qk^6Oj({YAZwT5tdg|HZx5yNi}L9p3ir&ecs6SV2YeaOTkC(vFv z!&JOGr)V8mj1;cGq>=p+ukpDN7a}@g3e(5RJ$6ErY=c9we3%D)J%#Tf z5;t9_1eOEGMa*eM*{_~8*V0Qeei1(|W6754%Tqj*2KN$p|T6awfJ$k)We^VikNg+@>wP+FSHX@Yv|2H#)y#ULJP$Q)H-cL z`AGzlY_`1%7Dp<#<=6ETNb{jXygd->D9nu{(gmw?5FIZT=-+{|d5rE89tmIZ**}XF$y1PaG z4Tyd6_I9Qrd(OfiAAb&J&QY)!zyJUK(n~|ZE)+%D=5g$3ArcXW>GK#0E0@xD6y$0j0csBKQRL`zK14MaAeOMdYPGfsbO^u23N_ z%ITO2n0~;MVQChz^+QyEnK7pK^dokQBC*7ZUvT$`gt7flxJRDlyB(oNjAo=XF^zoS zy~IsE7kP8ii4o-8FW_orwsu=Cl`2tO9_4B>M!mgy|Iw&Yt&D2;==0`aCAV5PPCetl zKE}~_b{W3b<*0RR+T%blFU!MrmHoz5w>9>ut6A~@099#6AbY@wdC*aTYt{#1rK9%? znU7b7?(IFHt^O?tccIT0_XPjO{6$%1s$~Qa50$bi-Mn9>=p23fjz?0P5-R)qr_eH5 zdTwRsnxqD&P=DH8EP+OVeUijMg(C1KmLL32LhoMjGd~LZc0`G}p3(W?e1}^d-_?MO zK`bPv2gu~%_6$89gYj_{arT|S;ZKZ@1tXh}_7_{C8yjOZZK=Qt%VGKh{4ownC=VR- zVoFAEp@txc2!`fA9or}7f~-Zon1dv68O6NtDH(c2X~^+?9l#8EICnIGoLACU7V<9c zBM{K2H53lD5e(lf!e5K`@<=WCOBM7=QVV;sEfiK>)@D{lK`r%1zXGS8Q(dBH|FL?P zF!efqO5{Rzp>n3mHcn}^gosGwMyCi%ns95Km-P1{6LT! zPykQ>WB>pN-EAFHPznG5P;y|#jVOQs0%mZq_Rt~zl>h=;OUPcPX?Oqw*F;tKDxyFD P1HTT=lIP9<5ImAlDb_6f literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0133.h265 b/samples/h265SampleFrames/frame-0133.h265 new file mode 100644 index 0000000000000000000000000000000000000000..74f5fc7ac5e11e32089f116c90e02a6e461699cf GIT binary patch literal 1842 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 Q0s&i2ri2H801r)Us4BS$3;+NC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0135.h265 b/samples/h265SampleFrames/frame-0135.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b54cc13e8f51db17b6bbcd0ae8247f85d30abe9c GIT binary patch literal 1814 zcmV+x2kH0#000330n{=7)I$OSu)$c8d&_2csZ*ZA08>}siWL5U>k8n4m6WXGEI2GgC;X4~EBra~ zfAEQ?u>!eF@yS{m-|#&I|Nd?fjWX?f&+KZD=PnST81Ljq5G|It?GYNLZY$NW_fC72PPELhIR!k#7pqE&YG;Vfply;s5{q>&9?n6nto* z{=eWtR=hJI>m?taj44!SbDc~%iXYQwNu-250QgxduS?M|H#g7u?@Y^!Y^!aaAxJcr z${0Zk)}lcFR9ns)!zR&sWh#;Y8U^kr1t#T}Xqxv3v&4ZAOOdmucaqu71-@%Rv0eUy zuh&k@Nfv&n4ip)0|5^*QTs4iSvH~_zZ@*MrE=15LGPDDKVTOJA!lsIfT4+#7uNFNu zrTKv9FP^-Vgu2+K7DVU$d+)zS{QN~yjIYx=@hFlyTWJW;(s zb{`SHpEtjzyQyyZ3ukQ~L3j4=C1#)MB? zsD5{r#VMsWfyHYVm9Yt^H|Q;h_xzpFFx;$pz!smwbf`0m`w##GFe|&rfv@{g30J^U z>i+f0IjsOlcjI7=V2KMcPZJBmm){|X9e&z|{+sbd$%ibwb{wwWj_D_}M1+&wP#i%zPduls+#gNd9_er~xTlIl z?0BIqLPy-c@yYWF{|u06vd>|hEvq1`+#6q%+@%Y;M;pXfHRE$UYb9=G!xr4eTB^T!vbw*T^AcT2Lj(p9{W=qlKK6q@$cDtn5@Y3bzafOO9Vs9`ze4w5ams8ODuINuVoh-oh8Vs)P_{mw5 zUh?$LgMa`cV?am1Fo{Gz;o!{96usCxZih2GkMUjGr5&`NUW@|eue2NJpkpaXhUv65v!yg z4r7N++6#)W&7bVY_73pUGQn@R2i={SZIHZE*?pI~?kl5|8#M`2K#&;11=fe^AT#

~fHrH%>3(j-0EK#b&4IfVMwFg!R*Ii3 zuFf6+0z)}eAdX##v(IW4fg%64omsx9>uhPf8GBfiGCB)>*zNkg8=q`Hj4!ssE0N|tBh2CqpSJa`wgv{fj* zrFhx@r9U%4X7y272Cb~zF?t?f@p|pKAhw4KfRGT$5WnlvL}-dtj(#E4=601%I~gbg zQhu9RrH?pxj3qSRMjGk4@gAnWU7am0`F13&{p$Caf-*O|DjmS_01WpPm1}@|P5p0l z6)=YY4TZ;nEM>p|0Im(Pe7q63tv~<)9-^?xs7M$90q>luW(=Z000L=EhIJUV00&dr E*gvU#xBvhE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0136.h265 b/samples/h265SampleFrames/frame-0136.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a9629f413a0bdc04d9a6c5fe690c2d51fe834d2c GIT binary patch literal 2761 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0138.h265 b/samples/h265SampleFrames/frame-0138.h265 new file mode 100644 index 0000000000000000000000000000000000000000..081856d03c428b2546d378bc9755940fc7cacbee GIT binary patch literal 2043 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 P0ZWbGi$p#E5AXX>F$a!? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0142.h265 b/samples/h265SampleFrames/frame-0142.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6d03d62f8333b7c441de8c7f9250904e9a27eb63 GIT binary patch literal 1529 zcmV41J`L%>7%Lc7G_Q{98u!y1?(5p606 zu+6D2YxrICcZ&JeQd+Z#JQe-@)&LraXlAD0&SMNK+Pv8%GC!o?Ns<8U;h6HZ{*YLd zKm9-Bd_Qf*^t^~*@t~U~Kb;2G994rnTyJ8VFFX5O`k!U?F;mwBY8T{M1mxOsJ-*9j z6ipw)H%-aT@qAPxiO$V+%Aj|}Wh_;iVd-fEASf&C+4Q&Qk{u~Alrr*9b(=y{UUOp3 zJ)A=R@9=-P_EW<1k>-ChdvYB03pTJ7ntR4B!tH7H*nd^kh?w`yNM{1wa;-dT>#9(i z6J)cZ8fj)BgsOPRbm3tTlo(3lN(={y7er)C2VZ0F*=0b+#@GodowC)8J^;u%=vz@4 z7AFSV`U@=)^7che63Omt9*L(E;3%}Vc1}&d;}!hZ@Oo;bcxV+FJS6v*aUK6d<2@<2 zjk{?3JRlZfje!0R=E+Mb75D?HI14U!DWruTCd^)`N`%^+hNQ&3VB|-qkt90v26h8*v_mizAg= z^eW<${z|n`0^R+TjJs(rgT8&n;zCkOOvW>_67}0rb%XY(ZJaJZZ1wHY2 zo-hf(WO!P5s1nUyVtd&In(VtZ(~d6z_2nIS?eN~U{FAC)nST%r(yVF+7fWz)8=`2< zNmgIYY9dLh=j2PVMWSe6j4oth(6(Kv29qs&)6 zuoR(+GGrGV&?2nG7#o^KcLu-@xXO~m$lsO|2sw#wFALlOOQ@Iwab@8F?7mI7gqzES z{FnbSL!Pj$HfOyx!?YQ%HS zCcppx|MrqyA0;_c7`5Fb^u!(s2-l)6Z3{0Ij8fYYcr7x8yMuzmZB_~B%c}o2Q6eC> z3F!+lOrl@0P{}UfhQd*mF6pav2rsJzeoyS7VQoF}p#?aQ4RG3-j- z6aq0b-hC3OwtS5@Tp|15s^-?bfvAnz#NXVQ1NjE`=iKoW9sNNUqP=r%35~{Gb$zWo z9>;(bPoz2Nx&NRjcvr!qE}$2aa?MJV6%{F)k}rDA<~oSurznxOKr}H8E) z7Q}!6P<&FRAYh0RqF-?U0bjRG&bDwxtY&_YQc4<9uV}4G$%` z#?A?@N$HI$TMAn9XQ0SC^UD@Np2$&wJSuw10_lE@8sBp91{;b{3Mg18Kxfkvvlp~- zJW4G*=j@PA&nZEDZb$KW&Yrfh`CwDYq;rW>E~9_TuGLfE?wTc6R+wfx>;xXSI^e32 zwyElGLdrp}8Pd~@b_DaQqvK4-itxt4q2hx~NXoA`eOG!6~ne2v1qB&CDr zO${d06E5wc^!Eke(%Q!0Ku)eR3LyTYeM~7r|1qGL4zo;(!HTMxMq6N%aE7?d_;@ z6<#}RH|sHnG^a#k=V~(dDg=VDmJ8EafMf_}?*b)e6MX|V7{loTn7MH&J@|{JK|ZKD zWZm1JJfFBQ!Ad5XpAGQeqpTu806%Kr9F#P5KPmtei}4TNLx2DP4<-xDg+Mk;&;S5A fZjnxLyb1sS%1BSwhCd(x0X&{A>%&a|5tG$Wi3`%j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0143.h265 b/samples/h265SampleFrames/frame-0143.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7ef845b5b0688e1c6948d0282ef2e44ce85282f9 GIT binary patch literal 1856 zcmV-G2fz3L000330n~B-)I$OSxWQXn00x0TD*85oKtK=!z&LHEOjP(aA0h)&A!sOl z#{d7^87Si9;$~^Lc7os}m8P0i3U`by;k%QzzZ>SbEc;GVw2)%N!@``DPF+=5iK;8sPE&8!;e!EtnY=KTS+a;IqS@br5Mw0~ zH$AxQ^@-V`>(ljsv1PCS{GdEQ;Na#zbJ7B*GtHxb#~>_*oWD-Y_*>}4xQHe30rw*6 z5rNEBmXlksi`S$ONV=Ytyjx6XKRdLjLq~c_Uz$XNYQF!d^TBotS=udvil^>`W2GW5 zl1{Hf-$Q?pHpo~4VoNgt?N!#Sark`KODMY>2rzu)vgfoHQLam~n2EXui?kcJEns}wMbZIZ-Hngn4|X%2^o)(RvW}Bz zApyt#GCeN;@LYGcQPiLToPN*-O{a!=%3Y8{HT1dpMp8ctpwiJB_d zf$W6%bW9|n=@Z(2Pr5;AmWzp$Mtzs16iq`_b&)RMiWp{+cR|fte5`=DGdnO}cUy3e zK})7wRw(asvxEgF(BHkh;U0;BlA6~Cfj$LvX2Y6oGnaeVb#KLN&SqnNeg&B|cpGK4 zy)*JJ(!vnYZAzhc|Lk}Nh5_Nv2v$5M`?8=19IhcQBlm1I{z?5#%9NP)`X#n9AYBO0 zbR7VUYV&1eL#K8d`y`u1E7(Gi+581!=UVU#nA*^0wPy09P`opLXQq3xAT<8#JQTy+*?EcQtcvkmyg(F4ZsLJgwtMtCjKh;4L1HWs4IZ0tnY#Y zRVxD78jl@~-Aj1Eo5<5OasN+7SExyx>d#+;ep?-$Z4I6vFwu9=XHDVOH#QYs26i9) zKP9By)=FKnYH}k4n{FO?@v^3qOUMuDm8o9?BVOPZ<-N=)ns0u-<)8V#>v~d5u;Ewy z(iMwqg22(4rht5N(wmO!Y1=ONOz7Wz@uN`p0c;}_QU|Ur;f=GUXa(wdXg%}Us-s5s zFILD1z#^vrR7&`)a`Ve?L-ObSlJLT4fKCI{)_RiNK(ycu;CCQj&c1_=`;>qEmRn66 zBr!J5>itEu*Z>EQUrvsr$&kHRVX^|6VAPvkSjYS+tYiHEA{TWZn9Y#aUFMQv-(b~q z^8>;Y(af2fSOzB8g+7j9_ZP!NVMMfeC;$Mb*_@q{m~>7wCs}`OZs^MmjGXbwlp6Xx<@xbhHWTUzz2N&M%+55Nj1^9ZfkK` z5bP|IY##4}k51D>>d&QfP4P_d1a&aq6nYcxim7xvA->a;6+jn~P$m1Q^ zGKl4xJM(AteI%M6o{NeVFcTZ-uIvV7zCE`lg0HCV|Ml{C>^2 zi;%bgr+M&HzLY0v&91Vfd5~#6hItS?LCfsec_-3J0}8~jIfKYm>=7j1-Pi$1&CDu( uSO5Sy_%JlraNjdP004JgU>xT-6aWEeqlG&Den0>Lrg%`U<@EpymoG3>ON!M1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0144.h265 b/samples/h265SampleFrames/frame-0144.h265 new file mode 100644 index 0000000000000000000000000000000000000000..461b91237de6f195640d298d5f49b065a907f850 GIT binary patch literal 2349 zcmV+|3DWie000330n~Z_)I$OSxWRF(?f}pf0ZH*W0bnEq0Ejqkr%Y7%%JBK}f#3eW zMTb8PbC?jldP>kSP5tAs>z(wK=IDVMK`AW z(ht#$**-&PcSL_1BQu%tO=~%k1McYPGdEmf6%gZp5o$=>mTh3DEA=w}9P{G>U06tc z_4#j2Z!uSq!>m*84J*W?UMsV&DtyUYYmH<9r3mqhcv`E*`%k&gw4a%+l#I>M?-5%{ z{Zb1s-HXWycs&kn;~p0E*OEdN0HBKYwW|2z9?q%PmaF zN_3+1%Rzm6pBmTw)E|2p=QvxWTjaF)#ugWrNy$X29t>ipv|tFTuoMecZgm+M6UF>Z z?Z3EI7!;5qRbhPa^aH&PFyR{Z@*!Ns25bM=J)2%AJa~PLg^=n8DI|K>!LR>h&X7?& z(BtY>B?23zMVzj$akaT}`h+I?&rM_4m8Fav83emUyNu-Be$)0(u=(H(K3Vs%k7j8i zi|9YJzem-?vz(BJJM?hqRl2k&8{2^0#t>K|G^AOY5r%cJvQ{GA|wz@28PCCKqQ+nnM&7h!BM-{F5+{r)5%7-}-5fJTCv3 zG!CL-kjkS1rzYR%ltgLM9wjW)v=PD3<6-YW8C^gsUI?T?nHoh$C&R9!dyKA^j&- z@)Ok+!QH01M`JcBH?Y-ZNn-SA(4Q0{s$6+?)4-pxZiO#i{iaRtq9$ms0w5iL)}MkB z@kRrQk}Jkd9fBAV59Q;}|Jr40W$t8AvVGVXP|Z3E;5&Q{E{bHTO+CKx_r$+EdncD# z$i#n6P|7DZM}ER8j(r9hCZz0{El>QI{us_T!f6QnOX*K5g#^|(5TuWz+{cVzDGT2ryf%%-2mH~09a56r9Ox7gb%OTuT1pRT z7?tzL5}`29Os_Nd4&V^^{FX?k?D4KaqGx!adCaUv)2M=&>JTXlpBcOOW`8(p0^&t{ zI84?I8z4QQ9^hc2M3CGn;eZO*@%?vVuDtp^wsyL%a)@_0eGpJ_<`p>D{A=V}m@_Qo z;vh8eh#j{f@!;a3b#aX9`) zO|2To?uXW9000931SFL+y^$b@jjjafr5-W2vt`2IUb@#toBYx1z9t_efo_1gpyU4%yHniPUm~mfyC(z^n*B0OkFrnPr9m z!bz<3lO%_Kc-EBS=aA4FH7zh-xIW~Y9ohawu*{X*?=kEFOIcejhn9XK6cxjI1{*HC zuMO2YcHfWKl7+1q;mDTJ&mX|KGy9zych}BquQ1NPYfIw1BQHH0X$$Jv|jb4pOjt_trn29oZI0J3M-aGmNi%1li-{JMGk zx8LD1o;mDuVWYhhLxvPh-T)EGwB90%tn#}yfe4MVfQx(UxQDeja|Qz^%|{+zcmF9s z>d#l;7mpxj-c$F23}y8BIEP0AS`}r=a(IWl)02KAMqM=rkRvL0p66_e6}QN^_o}xL zCDnHJT?_i6iq+;u=I?S`;L)F zcwdP7>Jip0nG=?ajryRlr)~wVX6eMhDWM&f6rOm^?MxVQk9wx&(rK!DpQ6Y5Byp25 zB`T!wI(eU1ZIYJY04Pro4oVt2fc4)M6MDO;6950`H10DnA`iLGcb+^#y6mWs7m8TQ zJ*cGgi>l6#BM~;MUc5aanidJu8D9rE`aKY=8f-X#XE5qRTMyHk)@tpkm@k0_r4Fs& zWe9@owU4>%UK68Devw?#3I=AimPs}0@o&X#uE=bDv%Sj@Sn=NZJJGtOfm(B%Q*hy2 zM`Y_)?onZU%#R83xePPD;KpCx_>v&Mk|xuQyfUY{RlAiRx47b6(q6p2uD_D{k;%mn ze$!fe*s{;mo)x3%8gR!qczV#_aM&KxU%`E+lW6WamZ%6X+`lh421B;_nk{9257Qn+O&V=)EpbouA`_EL)e;K;AFUOH zmwLGCW1-K>nJ7!rfx~6s04lW#t-L<~00RP}uwvlm6hgiL01LEdigq3EKmY(oYzPVy TEf4?zdR^nId1pWX3kNSS;^C4q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0145.h265 b/samples/h265SampleFrames/frame-0145.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1fd3721531ff17d4c4c51cd352b8f254c0c6f506 GIT binary patch literal 1581 zcmV+|2GaQe000330n~y2)I$OSu)$Zteg=U+D8Q8gKu8b+z&LHEOjP(aC=KDPiw#|= z9hh8l_uM|bUXkTQIYFlA55Y1IHlDE*u3(flr-X2bpTHRRUH*e|Q>tAgR(Ng>fNMT(3J5uKZ)pZ|UbCt3$_ zv1)U`nahMIMmzZt#0zR$N5J20AGeQ}%~B@NE~`7fgVXsBo(C7*q%2NegknZxitdz7 zp>^uc2f2+YmBOHYh6V@s(&#@&Q*8kdL+*s78D^!|i7!6GrjcB4A@uZkAY4S0yLbkD zWSQ)nTu@dN3G}sjn@B|1A#UrKm62A-IPXedF2|aWPuxbxbi>%?wC7Qs`xj?@=ekF}`WtDpm9C9*AWyvq3Sez#LiG zQZMvX+%o@Mh`8$E+i_w8w+91Vr;RkEKdOCTEiMDtZ;?9e{018tlDTom70T`;7SUoU z%*<=i4JR>^U7lO!pi^FHkd~wv8m?R&e=DAUq&~jV(~IV~)V2OI-C6Nas`iRWaHUQ> zo{T=Y3H7px&aIttR0~F$iGy4UYSG3!#u;w)Df5g+0XHc#8PSRN@#8e;Dqp^Ik5~L< z-)&>67*-0INL>E3EL^w5WQ!^11`xAsBXmZZ_UaKXBv$(S23aFr{j~ zxB2e!&7 z-$+UxI6TBl@eTNY1kC6^2c^U)9$V?ETC8g}cRd>b(JcG|9n*(P52klG!(ZS3|NrRw z{XiIwE&YF>(SK<(krUtA0ZGe^*xPfqs*Ko}rhEU~zt;zj6GN%X18>xFT%Q7}iSSGY zO6YRs|1pm4zf^xD&SE_0I8g_Q(gEH*LePjG*!D7dp$+SnaM7{$m z5XZ#??fKij)g9-{1R$%RMNk}*Ry4EXJ~ha8^; z{!mLswa!c9{y;n8Qd8N(z^l*Jv}GAI8y9P8BgO(&s~J}N@qDRAEDHyYmS45|YlW!T zjS^5ByzH2NOL0?r444hK*3mw4r>(TNH|bs@RUw2+u6!p`2{&oK!hAIOY9yg!jF|Db z9llUc3Cr8)eb;m+sNDMZ!doZ-^tzyQ_<)mM^7PJwfB+(6Ku5qZhynPYpa1~r$HGtp z_SpbBAoejdGY^^H2u%L};`7adA@HBNpRVyKProy%daVM?sZIStl*+xeQ{on1CeLW3 z-T6Eed9C^5w7KSMo4zWt(X=~*ol-_+8b^~Oogw;=ZEX^|8Lo<(ng9W_^8mcANVqNI zg({uBK`DkbW?-RUe@3Jsfan{A#c_p)yfL%oPZ^#zmL>A)LGDrnxNA5ywX~<74XhfS zDwBb2>8xGVE|QQq+pmgg&Q#}JGyhXFVGZ)MfykXEpK8ExU^X6YZAMdU0U|)IR*hqq z&R}q1r1bxEVN0rhJJLc*=CRT$qrK?3qabc2@sa2zPcx7%?s8WkZpegBsZNjB^YNxW z{2)z~9eL65*PK6+T7bI0a!3)@H!5_C&Mg>a64%l-Fy$Uwj7z!}Nz)__o?zrhr z{8^0q0^ZD77>|?xaEqYnzyJb20>A(O0{|XlvH%6hJXM7RcIgzGXF3D0INpWF&Q}k4X_fBKXL(5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0146.h265 b/samples/h265SampleFrames/frame-0146.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7c78c2557d61070b3dee06105b8dadb3f8f999ba GIT binary patch literal 3064 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 GAozHZ@!}c) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0147.h265 b/samples/h265SampleFrames/frame-0147.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d09494162fe9288cda26285a2d0851b872c01246 GIT binary patch literal 1667 zcmV-}27LJd000330o0NI)I$OSxWQK9Kn8(8CrR=h<_Zym$b zKzzZE37{bEqYirr$9l(Ya5j_)Q$&)1PZ>Rtj-q)s()Fc!pb8nD-2?uUa#YW-?4w|9 z11Kxzk1<;FHsrwK^vikSwKEsapNSWCK zuHa7?^RN?`LA_4lp)Pe(J}Qqt_0@r|<8?s$h?o+u;+RBLhL$<;De#};L$2;qZGj7DGCXc-Qf%J zh6jyAw1;oMs2{TQcxso9k!+5yY-IiG9c>aTvd}ry5I2X15@Q91JEicQMtKnC#%(_@ zK`qx{7jg<#tm_t$pCb@&J~?A*I%hbQZkM_Q<12#I#^)Nvy{C&c<25w7`UvyI{4iJj z;m?jbU&1O`{$BShH;-zmnqhf|T$U?%-U-$^7QQ%wy<7!V_CAyF4}ZE|VAwxiG33(8 z+DXVJEpJ<235|AuuRrqtOBTb^IwL4Q2}+r^rP<$Kw8w!v7~qW0GKYmSe#9&`?=zq; z=?wp!G%58k-TeT5;(5?25}&0c%?Ct~qBhLFx)cBXoSK{FPi;&jvCixzIr>FE$ZI6E z?wVr|j@e?aO3l$nm{%f&tH43aGI6#_gTJbCiJ__?g5lher?9f?viYQH-Wf%f9b;2@ z@a#QP)K9)~)N(P{Nmwe`cf3;x!~Xt4a-C`hd_{J#WrExxLTMehxyUkWItTy1}&Y14_${*xPZJ#OE`o zxSWPEpJ4D-jp#&rpZp|+SNTfzY})VthQel;tYgcTAYv4LyTr;nO(g|F`s5128i-?j zv5xX}{tuQLQZaX{{S^SaNu4hBd096-p<8BOe}Da?mR=JOW@8VV1EDgsH=a)4uqKH= zEcE$oG>ADR)48YW^cU835NRz;-c6xKYCdjw{QgDCEnlND-l(1MtsvMaj$4fm-{lEo z6L+t82;+6G?Ca63-KIV+C5=!H_BquQ1NPYfIv`N8 zLId9Sl$G}IQ91SxAc6n%S;qu_0qhf%wnLO=d}mfU;fWGNm<)*OZsL47M)Hl3XxT)mp!SCeW;5B9n0?7=gtSj!y{s*kx-{#ahi{KJJ<>Oa19Ct}0df{o~ogT8WW zF@3Nl+F*nPktjbVFgs|7w4PU-+zj+;zIBCd{e&E{nr3rBs%#c0gWC?Ejn|0+F2~V# zlSo4fNEM$sNz8t2J5(?Dcy5SdXlESl#VYk47Yn<>mU)qPr-bg1XwU>>@T9wkUh41! zhbzn1zdGCG=ud&=bFp!izxkHy&&s?~I0h&ceX{OIJAX35n~A=ir2bt_eg@?9gU%W} zK*lpUA$iHdJhlbEH?nc$^tNfZoj4iXgsU2F$hvA+%|3lEM*-n_pa!*Yu*e|oric$` zf0li!A7obGh5HM`Jr8!us05Txh)D|w805-JJe|L;dg+379|bt?*qwvc*J zauqKIT8Q> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0148.h265 b/samples/h265SampleFrames/frame-0148.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f8ecef33dc03131bba906ffc6f6466f7c28f33e0 GIT binary patch literal 1996 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 Npj(z7@Bjmp9HczD+%NzD literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0151.h265 b/samples/h265SampleFrames/frame-0151.h265 new file mode 100644 index 0000000000000000000000000000000000000000..150316e2f1b9eb6192e820b54915fe712f3ce975 GIT binary patch literal 3857 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0152.h265 b/samples/h265SampleFrames/frame-0152.h265 new file mode 100644 index 0000000000000000000000000000000000000000..96dfa5de107442609355be3887b86b805335a79a GIT binary patch literal 1345 zcmV-H1-|+K000330o1ww)I$OSxWQH`Dh7c-CI@_S@5j zwPxHd9K~Q0!Ds0@UmxGxmcQYCo3hT8f0+LJXnNNml>NUyit5qV&p9M`0ZN#E`hUjw zzSE27c`!f6eEBi_@GUgw1cYZZkJ;#DFnAh`By@c9YQs``FoK_X!__;#7barg*joZ( zTW~)aeUrZKM*Q~6$=*pjx)YsJu}L=~^vLE*`V1|S9Vs!CGSN?c+d@-bwoOkZU8&j8 zS{a|dTwMPxKyVh%orR~GceY4o0GO>Z=dZ^(4$s`RFRw;o?79TXL<@Mvm*9@^heGeu z8vn2c9jy_U;=SPfd_Y4)BQQJmE9)axBL1#YTPhUP=Okqdx_SL$Yl>rlLvcxi+r0 zhHr_Xn@uYJ_$4o}{~?kyGf~Sv-y%QJI_$)OU=});Mm+bYq{qiHz-Xjmg_56Q#)v2T zjz^|*tl}W0ZuUM_dGk@{F$jt@X?-3~IVC;{ENQ~7H(g*EbnGcqB_WrWJQSoc(GrRu z&-am^0;f!Yj{xa}f_nJWtwZyQ>LVD?+9}$oSbYa$kCP7Toho6S4BGyQb<2Nb(ocqM-C|B@grYHlA2 z5C*aeKV9C6J5H4aLi+ER;SEGs$Z166=oxBa^tEM5gH~$}JQ9e&X7A?0KmPywNi7Z& z5N2l&o3EuU*2mwre<8>>x*k0W@%W?wC3#BSeB}E2Ag7-vk;CBw$iZ1HN^?y~=Dzq>@p(18X3f8e&B_}Bso8YmKYZ5xHS&q+0uh5(9gqW}`_{}e?~b%=Qb zjWQQw!%h|I8HJ1EB))tnHscl>X@J~9QTdLj(>CBdnc81>raL8TCrpCO0Uo}zB8gDz zr{MihVr9GnW1{{2o`9tH6eT<@$`tp=dc;OXo5veG?s3Mspp#zm^v;8T03u^RN5C+M z0r;Pw008O7!cYVD*#J5qP_jY;-bzqt1pN1uSHnSaMaCXztd=JFnXH;VZ)D+DK*@I1 zOs|BO)b%en`Fb^gi?EZSMR0>CtotHzz$iVM`v`lwriD*-8$dISKXkY=zNCpWq8OSE zJ2^<%?4qfmC>DD1ce!(b474NEY#fsC_=Ir1ocE zWoD0bbgn{2grEQd@~rFv4jTuNZs!4^?R^FT1}z@2=i2>&DouSWD@|MJ;bYtMbpPSp zFIc5Uiy2X^N4X!eqjUFub~6-&j?H$Z!uEl{`G5(K+%rRPTh%SWrheFJd01|y0RiTu(PXGaw*Gpt=Vn9>?2c^$siQW(Z0ny+} D2}zEB literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0153.h265 b/samples/h265SampleFrames/frame-0153.h265 new file mode 100644 index 0000000000000000000000000000000000000000..488d6ea8b26973bdf42f22d54d3e03489db69f24 GIT binary patch literal 1973 zcmV;m2TJ$=000330o1|&)I$OSxWQXn0tSIVC

6sK68iKsaruOjT=^n)S5)co=fT zzO8@%?hKH6b)7%x2ch9`M2gc;^$K^4`f|z1;P>ctfoIxsouq>nCLR>zqH^l0%v_{g z#j3`Iw_gNC@;~Lz+MRrPLkdTn(m`+~;f|r>)L~9WP>n7ZFvZiG65USGfkhV22N;7H zD40}RXVhT%P%3!s_uGH}htH_F$)i|WM46~6Qy}md;^65WXK%@b3=e}Dj4^wF*R~(~ z79_PE)OD&yclVqKU$bcrdtcSBt~aR0z|&6s6*YzF0fxc7Gj||A^6jDTQPLknMIPV( z`G3gx!nw;Is}F#S}W`qv8y=hBILf1-l!$}-^@YP zTi!k+<{-EsZUYSy$iaLhBRZsJwcP?roOXbVB0t{S)tDt)ak+a!qg|m{mA!=*FqaP= zdKES~lW9nlFT~eO+ZDE?mj(Q4ISXk9Gdo#X`Phv?M+D&7>lvmTRjw=a9V5Q^e+~Hd zoL@t?84m;Ecj1-cHXI0xnVja6@cJ$}aLjOpV@g*y@;}(#`eP1O-+{NkC`hv}_?zunxF1Fyi^0!VMtt zZrGi^e*G1Jb$_w`gY&+>9}kb_{Ku*2v)B(T61`2s4|@(hE?Q{DZfehv=X=sEyYa$u zdKD-C-38?%2XkQZqQ(!}aFY+PkdQA?aX}!OMR%g95hNjJ^vgfz=mF_f2?5=_eO`Aw z%x0z!@atP(8vBb7E&ol!6+yH~vO*QBOZ{n|jsVO8KIz5n=w zpv@Fq4b>u-1!f)oT|L9=1{-3oT#2^fhhA|epo|$U+({rYeqQC#+oIB)1-nv5@FD9d zzLwUg@8SfaF6sP@1FZMVIky1G=klSZ4CC{5HorXe9ba&aB#)>*@eh!a5A%&DD;Oh9zzU#Q0^&;=Vw+lBrcctFm;1?d8$QHBd7Fvdwr@2UV76BquQ1NPYfIv`N8LId7PP-q1F_q0&%$i#|c_|dD8 zbO@$Yipef=j+%UVkp#QF70)}e+2paMz}n7M)9S$8_quS%JvVC~M!BGPpC~)B;pOJIml9<4_>v)un8gx&`N%Otb+Go1y%koGbJ+-QUO z-hr}H*M3{bY7G>urPeNONFZcyhD+Op*rD>Zn9qMc*#iZm$`s*ILJY-=I`dJ?l z^z{QY12*(k73*}kRARq=iHm6vUDDFTA5(O>2taS}|NYYmS34Umop?Np(K}n$;3^e71cS_5BC~X0CK%ojEHaXY2F; z0gj4Ws|N*iT3h!Q&Ukslx9-DO2cNtYngc9|)!xh~amr)DWD%;$FIj=i{`&Ak@AHF= ztCOPL*dH&7&RAk17ytBPjwbf0FI1G)@=jJ|^P7|8P9Vhi_p?PJc+LH&i*MQ3su=f$ z%m&HEPO7VlUyO@mQee1 z2BiOKHIS=oE0|eyr#&e^D>)#maGziRBTVqve@Yqv00RI}C>@F!|2O~u1cGrfhDk^O H0gU`o(7@6= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0154.h265 b/samples/h265SampleFrames/frame-0154.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d7dcf00a7522f51cae8bb3b8c737e98beb5bab4 GIT binary patch literal 2315 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0155.h265 b/samples/h265SampleFrames/frame-0155.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0464145e71a1d898e256b8abeb852e7d1b7b384b GIT binary patch literal 1969 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0157.h265 b/samples/h265SampleFrames/frame-0157.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dbf2b7d5f420e02e2783366f26b19ffc69d8608c GIT binary patch literal 1670 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0159.h265 b/samples/h265SampleFrames/frame-0159.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8c39fea06ca52ddcdd208db20b5d45e917843e60 GIT binary patch literal 2810 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 H1M^kLn2~44 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0161.h265 b/samples/h265SampleFrames/frame-0161.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ca8339c57738fb35e2e1568fdd339b5749a42eaf GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0162.h265 b/samples/h265SampleFrames/frame-0162.h265 new file mode 100644 index 0000000000000000000000000000000000000000..49fba638ae5473e15ee56ff0de49beda8016c488 GIT binary patch literal 1637 zcmV-r2AcT*000330o4ir)I$OSxWQIJLI#0AC@iqvBr#swe&O7Om1W=-04p_!6al5}yln9Qfw`@*_h@JYo|+fwrxUnazSwCR8VExE2>7d))V6UFx2aS+5(a?R|8><8(m zg@@qIuk~8L;LhCs|Ae*w9Q*PYYF^O#k$Bi=I?%Yat1BgF1W&1ewjy-Y1RnQ`-!GO3 z7boT*c3L8Qg}SE(Y}idX!7^H{Co;c*n>h?h{VSQ}|4$?Kh{6qrPIF4mM5Y`b9H!`r z025UoBLckZhl>lKBs>PA2mDZVno>Vy)3cr^oM}SH;UjGlaJk3Hwc;G%@FY_+!@sT_ z0su1fj|KkKSJzS6k12MaeL=S$FjrBi&TLT60Y(EW7r7iJPPbM;rQZ!w@zO1kX6=lh zy=t9vSd5=7>_19vUZu#sz&Qm>EWY`6h_8$A+JU7W-`X7_6tHgyp2Njaj}Zcj<>Xn!PRp#!tDoFBMJ?hFcBS|!Yd0bHMXv7Dx=v;xMbNe|i)UziHQ_kckB=s@$veFo}Tq`6cZC^PD?cIgKIF3u&%zlxzgQ|KI;< zCDHOzl`)Ji>b{h>7gzCqZTQOoQAM0M4dyNf(D$6H!RIJ%o(cK#`5Yb~KaJLX3a7ah z6V(rDz@46o!t?%>W$^jtN>Cl2|lb% zgy~f0fam>H?C=7|q8RvWtm;sOIfC{@TrWR*=!yUm1yv6Hcor$`Q1w@K-#sCx0BMs0 zd~CfoF0R9>2OgmSp3~g>Im)Q|TdYK$E!O6j&=~#xhyUdgKYY_DJH|=s%=2KKQsf#A zlV0-l&VzseB4a>Dz%Ymb_@AHv0O`lVPy_ba06HL0vO)viN>FG7{7coq01NrW(-=&s zWV3KwLO=l_X;P`Fd(immRg8ZLrv-EWtN-+~7+zD!{KNyhiiGe$a~Lx-c(xP6vvrLp zr6B1A%Gl+$A`2#(oVTtU$exlIRKBw&Q8cESL|$fpvL$R3KEIv`Xtc5d?v~~AVzs?- zR8H7dx{xf6FFP>dq8@>oq;#Fsg{0haV51v*x!uky<7HhEx-LXl`3 zhvkY9{g=@UKpCOUV{aNi3b^2i<3_3xvMFVuc?9qC72SxRkO}n1+lcw&{$(G=tABkW z9+-b>qjCrn56P}kIvokHK_6?PqiRyIJ1%Y56Yug(}@UQjU zvCBOJ+A_sVPp9YJPg-&g(n1XlRFjw3_7rsd4PxM(pjqwp`xp}=O_b{IrGwOw-P&>{ j<1B*t`0B5{(N1e- z|M@l}PEKFuRzi_O&Y%1j%-ueZJS=v)c+6B!xZy#lV36^|9SwZ2_IS(lx*3@TclyLr zm$H2TGf_t3nECdu{QMEppIapI0Q~KD_#cLRjbW~qGodZgqO=_O%D)_4Ej_O1(~VLR z`z9`r!Z1EWKUgdKKmU*kv#V1L=DL%_j~6=Y=ij5*Kv0XU)H%We!J7}SeB5wE?ws%7 z{{{QoXO{l%H`d_!0MDOF-d65)Os!tUk`vsAJUL_Yf+19SLGM-w*=9D5>n-(v^yN`7 zO53~>ZYT-^@|(SE^e(wZ(vQZ7HWG){()(h;Xy=ub+yNare=JYjP&8iurSA8u3ba)O zKChlyP(5{ne^xV5e{k3|8J2+GEkUWGc?0;|S7aZ>oWEb2G&u1aVthb!ce86tk8ZJQ zbMl$)nm&QJjSDBOwvgIhzbynOgG>0mIAs;);#NW7gFOL>5I~90(1benN;pyZ=Nw@K zkzgmnq$bi#hYk((-5>Q_bFv|XvV_y0h1er$SKVY8v^Uv5d24k@{o7v}tp4At+s+f; z@rNoy5xs;SA8yo@4G8b2mc;ZaVn!pxUuY@O1Fa}<5>}^NUU(6y9&`M<@0+D!lfU!| zeHek|57fWnV`19JR~Gu!ZdXM;zhYk?G6b`g^dfrO;of>G<(7s|p!IoEr<#0rkxAiN zb&>=FV!ZqbZu>I~ni}iWWlk%s^LW>6E51$K)~H_9A|Jk=95Tl9Ugq_02r{CbC1xM# zsHXknWfE+x;WEwewhAONB^U+tr>%QS$Y}{P%I=V0`oG`*Tl&9%>FD%5Z>RTt z#{3w1=jxnsBT|THx@Cfg)X#F+Oa@AHPC+^GLe=PBHhoHAftPC|YZ62Ggxp_~Qu@&KWL%Z=FEbGE9C;tq+x|NH&#BR{eoFhE$xK{~xyk99UFkBM_Np-8rf z1PNLgZ7IAk^q!~$9>Qs_Kofrzd>PdDch4vTAZ82lJDct9<6Q zD8hU%j(wN;1wO8#rm-Tci>C9q`TcjuJu38Kl>BS>|}8uE+1Dz%Ymb_@AHv z0O`lVPy_ba06HL0vO)viN>FG7{7coq01NrW(-=&sWV3KwLO=l_X;P`Fd(imZHFiVX zFx9km9h_wKjD_`d1?z!;hmaJZt8v1{%>q0Od#6nG$5}?u>Otq4DSt4pn`q%HyqPl3 z%Y!vgk$9)D`Hi$Pwr8S?;nkn{6?JT66OBYr>%Pwf3&EG1uAOE1t5Z3gVAj}Sq8rxu z`t2&p$W@Obfvr|SNMOU$aBRIm!^cZv6?9bC4(NxDpZ5W={JeE9c$?@yL>|>1UE+B= z*Ol@K6^p~Sz#~UemhX$2?@@vvr{C)>@ZNRBTsMLDmc3x8ztl~Gi8{EF}=sQLE*fv7w`qb#GQr?a(z5`*;|q(fC%UhSP2

poTSxSJHuXsQMH7_M5A5D)R(mL%PlIuKEfxN|$8an}&!- zN~IG+Hx{KYa|%vuVP#aV$TKJJxM8{?qS@U#us**Wx4G=!D?tP^Bs<04BQ zy9aN07SkmLqb07UhKy!|7~WbiY}YM#lp}8Wtq}G=%^?>w8VA1D>kk%zVt6m0*uD@c t)5*mPkclz~BL5^@XF6@Ny`>CDWJ(qX=l}t=f*io9E#LqE0{|Ou(I6(n0n7jZ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0164.h265 b/samples/h265SampleFrames/frame-0164.h265 new file mode 100644 index 0000000000000000000000000000000000000000..54ec3bbcb162e7724fccaebe41742575cd0dba5e GIT binary patch literal 2732 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0165.h265 b/samples/h265SampleFrames/frame-0165.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cbee86856835251d4da1621cd2962702eb1f89c2 GIT binary patch literal 1918 zcmV-^2Z8ti000330o5V@)I$OSxWQRMa0Y=uC+pi_+>5^ct<`!BI0 zjwXfo-U67{${zcGzPrT!t`#lU1Pt;ah?imJRzK4QhddEIjhTS+kt!7Fh{> z83*SeMRzLd2ex{v`fSOIEsS&fU(P4JmZFS0_g@)eg%9^0l{rGn7`-rNze-VjK_%m% zR&jy*+J!_~)^i6g=cQo%KWbNy>heG+;fE2I%d7{&%92OXq&YekerZyGGgVUoMq~25 zRuo#+<6VEkWQ0pwmU2KFti!!b7TeW6oP3~BQm7+~ky<4_Usqa)|31*tFEL}N9sA6N z_kjEi2Ei#B7po(Nj-MgklT@ROYZERXERm_%VeMlrzP<%NsY= zhqn$GSyZ$J((LwDv|_0h)XFrk>XlQ*ZnmWIFVzXr_atGDYOHQ)gHdW#=X-9K7I=Xx8Xceih#Th4d2 z8dmvdG`s`6hL#TidBDq!*xPfqs)gyH#OZ(TU+aU%38cv7CR^t@F3v!3yyfA@F;~}& zllw(rJh5D7Enby*wC1*R#eTP}NMt#%Ggx?kyXComEBG^4klOMPxMtL)L-upXm2P$| z30U#}_wv_0X4ZiT+m31Q+YsCbu}##2TV3;s`tM?%Wh+kW7fl;%u>u0M8ywk0uSnIq zD~wO(mW%pQ`?{OInzk|vfx(=A27S-Q7+HjA$e$)sKVh1Ne0JL_&Q8kjDSWVAesj-j zAQHvf7hL79gIDL7BzL72Fv8PiT&ST%Xsb37n<*zPvLVN%7*9vL@3K|5IFJ(`*r&2= zR8Ltog4t5x#gbEqo71+Jt$8S=u+A7|aAi;d_8UE0Rz|mvlJ7?flHBquQ1NPYfIv`N8LId7P zP-q1FOVz*t3;D&<7)+>Svv6EOKmj3XQmLtX&}MM+>sB6}QxE-mDoEw*L|81%+DP{Dvkv83>5*)i9bb!8PYiGMWZa6)=-gnA5cq z2x0F5<9?$geyx42*J#r`KKU!VCHQA0;e$@&L}B)6crLHOaRY9hb7&u=lm@r-1dTP; z;b(qYK6RSRRmS&8*`Sr%(5hP4)oK5ofDjGnx8kfCKzspfufnP&(Kz3QaaF;}HTWou zTW5EANj+-a;{3EkN+dJ3^GR8|X@d9lmxPE&?K9^EP&25owJg~}LK~K)jiuo1b`0+{FHi4&_+LJ)#z;o4sTEV~=t)a) zg?@?JR#s}L4A^x7o~;9!V7iz;j>X^3SSuC;gAIeCx4BReJMin|G^-A5FJMB1mb)`+ zabE)5AKmp~e>S9?w*0BBJ2%?qPdIFNn20r}c=v_5ikk^JNm!*J35O?Hh=R|8LzGG3 zQr!~51aHf&?K)d^qc|C~`49fGTi$}O?7hbJ#yhKS!$(_A*CnbL_i$s-YBH2I-1^@s906?0# Ez*qLYQ2+n{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0166.h265 b/samples/h265SampleFrames/frame-0166.h265 new file mode 100644 index 0000000000000000000000000000000000000000..50e98692c78da96470654adc80f899534a5ad20b GIT binary patch literal 2959 zcmV;A3vl!R000330o5u0)I$OSu)%muL4eQ{0YD%G0iY;9p!hg#r%Y7%%p%~1T3g80 zAN&9RUeCxjN-eAn&`%Ow`zG?A%gfCJX;BtMkZ^#>{lxOrX^x_D-s+SKOWF0~c6kxL zkm;ue?0^c8^6z~c-S8){W>cwS-=_Ik&ueYz_>L*Mv6~af448G@mvqxwv+s_5G!;$uY==qd3Cii2Adp}y_m3E#? zxKaB@sE{K?4Y=Z!{*E72Hk8ll+=HF${Iopgq|AGd3;N>36hJBvt_{P-J9r_7hCtds z_F+g``(vuYvFLzAio3_rk|=JxSZ8|)u&EJvd45)r`%34Ht1)!tm2>uYn!O3V3W&nR zW}iqQi)LPr4kl5JqfkR|L}%8&Dwnag(C~$9f+rT1Sv+uOnN70*8&rH#e(WENCQ@J|UD{`P~U6Jl479prr)Q8X;fT z_JUrEP*v(JiUB6AV>(v*VZ6qMFEl4#yzDjuq$*)pK_nGXbHIXf@26Megwv{w1qWvH zuA&3uy7uTW^Nxqx>gN(~9Rq=2KuanY13a{pYv92dg(ka#tngGFgyMfmu5Tlp{i@HQ z%zYpr{qfMDk7hpI3;!*lIk08mtYhX{DD;ZAZ8(>rEZDmL!SthFUafe7>co}9-&m+b zacd#aW&osfok&^KRDK(jcj$xCe2x2B>8DrwrR6?EE zv!Kq>@~)?saWz}ne*i>5tFH;^CFoawc(D#E5BQ1FI9L+S4*fWRb84hjJrDUceuQ3( z$T7@_MNYDjN1{^M)_W_vd7*i(V9(a;eSTDt)y7U+G389*AgwG?r~6u|`MyGR0)9GzLD#ys-Xj<9t1gY;=joi!CP-ZKtMoEh&}+{ zs=LT}8>gW6SOhyO)|IoMP1YMrs z^Zy}KJE^xjt=4ZwClsd?ZH=-YHS?bLZgL8z=zT}=rvpPq)2eQcna9^3v0C``zel^E zQ-hT{qR#7@ZdO>)OV$-pK!Jze!*B0@BUHB<2EvN~q=3tf*xPfqbCOLZ@A#+vZ&Ykh zdJKc;5}pCzHKBM8L4Y7clL?K1TwmkFi@=^5qXN>obwgbd4tvC+svFy#Av~Nh;{%_N zW5@sR{}pQgAMNvJ^7HcCShmkJ6g_PD$F^9yW%xiu zji{(CPH>W2k$4k?<=e%4Uo~(~F(YW1)(6j7g{fAx#G}gfDeT}O`TZyH0y;;)*!3Dp zb7(4m=^@b)cHCzv!gacIY(tw9@EsXrQ6w|XQ!p96>3p5|4M?UPLARE-x)&XvvWpyR z9i2w7n4tR`pUYQ;>?yG|^>9nT%OmL4|L}5Wf7ddFlIAiwB^_7Ev)zO!_nSLnC}pyQ z5#F>+WX@%@6=*qx-kaUgH$UNx4!Dre7%;<pJN=GH=UpI>}$aRxprcHqnYA~VgcSp2g?^=~ut z(a+^qwiLtnkW;~HJ%-f$_CfpjC-gCLy;#Mo9xl9!j62Exo~=@oKPTi0k8nhyr9&EcEQ~L$bDVD zDEpsi}L=W^LaIBzZMDo~1XMfr&OTJaGQ_@~Gav8ICGiP4WzP>|L=y zT0H-`4coas{FREE(!Sdd_I8m2heXH2O-5STpE%_y_;(tBOwT+}K51T8Cnn5tE8>#S|E zn_n>2O7Q~z-EOaeJEWwMqv(9}e$tDN_}>thZI`7it<|u2p7eUGKzseZ(PA4JXd;-~}W1R(c$YLee!fwNE;{y>FlhBN1)H*p@44|Tz8Ic@Yt{au}q3yA02nUO? zXu(^m#2f~L6KQ`HhHJS6$G%iDd_eKt_;uTovzOc5PT&rd(XkSDq*}n z*ZtXuBmfujyS@zI+gOn*@rS>}dv2={wyiZ6%Ej&ztX{P^|BT>g|1N>6WSohb5lUi( zbbm0F|0YTs8PXaz0<3Z6-R6$f;Jz)OatHM_b^b3HzgmVp;m-g73ar;OVAUCb000Lk FaVWj{$`Akm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0167.h265 b/samples/h265SampleFrames/frame-0167.h265 new file mode 100644 index 0000000000000000000000000000000000000000..79c51d81e0d26ebd74272c397e38523bf2454086 GIT binary patch literal 1752 zcmV;}1}FId000330o5`8)I$OSxWQLKMh1aECOE=%F9BK{h*YM)th^S<$r~m9`NmakB4T?hy_nxM z+PI?g9gc)Sk757+|1E3aglwad-lUD(_&Of&u9rL#SPOG=Wn`!>d?v>FYz_DoE$OW2=m`T44CDmH_Zx!)D7B^;Nu+@nFbj&14-ijXz7q z&Zp&{z|~Wn?q*vSO_vVrZh9Lx=Ipt15b2sh*ux6gD3xp(CblDCs72Uc;Sp<&L^N&M zrD6<#3GVVBUNZ{nBT;PEBWT)iJlNOf6|gB&r0((XWk47-P7T^oeQW6rbdf6btP&i8 zOu+ji;fjktL;z!VxH_172^G`2MR!1*8FHh-yyLd+n4vWp6aS>|4l$Q1Zj}FDxux6! zK+x<-%H-Bv?Eh2}nxcc-mj&m$PjWpVsD1@33yhLfA)+~Y?yD1NR8@mVG=TO>RlKVP zv#igv4vv-U#_f~z&F{!L?9 z8bYg34K`wgj#qI?XcX_)Cua6{bSjKL0az~|V93E>{1y~ zh{iR@)*{@Sa!b{=Ps8)jjZP8(A>a~~oS``@^;sXFO3t}Nh=wD$JH+cjB2gGclnZ$D z0!GV?*xPfqs*J7^082+8H(-xW|Af;!O{OL0&8G?ZA_C8)!{I^z);EvuLK|(R(W zf|b>7RrEDV*sO)4SWI4_kz#h&Meqi={^i0YC*d^z{{Q<)E{~#|sf=3gt3Y`1U|Rm~ zYho&TNb)>z!*(=~e9oc)sxtMTzDPs$zeTZV3uF$K-X&9NSqY17^TJEcKCGz5{n1Nd zc!JAKU>8`~5Lsq@F&To;iKjD{_2D4`z{$K$0dIqJ%sYG>QTW|lUHhed0p_VY4+8nY z(eZTQWlnFtlis=_fCPb6Lo-FWl5{$GyjYWAlSlv>Nb;pjmRa6XeV)EqUcfXRgo1AN ze{v=ihJ)t{gQ?I=aet8i`BdlWlT80f|BakyXRXvL0zQ*o^7PJwfB+(6Ku5qZhynPY zpa1~r$HGtp_SpbBAW*VG1KvtdXaxLA)xZD?`Nh*1OsHhDa9lz_0U>Epsi}L=W@BqA zKrNsWf*q9GE+ybhT@)7X$VRJJf|}{LMb}dYfe1e+CQ=Yafg8&klb7vLWRlq z*BC6lcLx@-k!Ly*TFE5@d5~p46mx~ctA4}F&a1=H13r2FM!lMqpto((;=mh3e>pp} z%_u1E1lrc7Ht|lSLO58K9QodGyaBP`rWlNwf zcEW8}3)lC`;6em>3B!NnJSnDGVkLV**i6|fPFkd9ArMp5*OhUWxoRhgxam+aC)kuV zLZ_!Q#AOp=^@oURUBcg+oTh_sZzcgqfRF3ywfglG8U_s9GMWvedWmkwn!~;z$o69B zT86wESIiFrHB+$Ut^2VMY%wdH9%V<(#QpF~oEWU3WkENcj&T0^U@tYM2MK)}Gq9w8 uOMGf-cDet9{ov=G+tc`M0qV*a&3vXlr-41@J&zDt0F!_K00RI(|0BTWlwDN- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0168.h265 b/samples/h265SampleFrames/frame-0168.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2bfc8797c13875a47271ddf034f4a9e34e188ce2 GIT binary patch literal 2021 zcmV$J_u=1_M*&j0t?#A2!Ba!>OQ51nntj=l%V70)%arTV5Zh0 zfJ!=cO7X_hSy~@E7zML6huK)fpFe_RX3C~KjDd(Tqv`+s=vVfr% zMF>hn1%oypUirA^qmCCcQ^1dk01SWqgC3ZH|D5!#<*?^e%GJwRAw9@*#2P?A5s^D^ zQb&65>LBy$sMs~4ZxcVrI&|h`u^OQ<&~M53M~JG5$O@QPO)9lh=FhyHkdsapB2)Vx zIX5DcwzqxMn);lBE86(BP06ik`9tL8c%I;%F&9)FFA`HC=>)NnMeO<;L;6cpll&dq zbq{px2?vyH6$0xGkBzpBp4Pk~A)BzhwSB_wCl9Wh^BXfUeqQ){wHR*_vDMf%k%{Xt zTqF8p&nExr7sJDN&MgG-Zqy`egFVt?s#?jU;ZWYajGG$Pa%=?dI*T8WvtqGrB^{!o zjE_{Nmd8$NYb*xjL0REP-({*dd}ztd3(YwwPW}_ZdO$8>Tcfk-Xo3P2lm=J`RHbd+ z=N&&a?9TasPlGw3*naU#0KbPi43w1ofLt{Iz7ER_DreZRG+=XM6r*UKw)l6Rin(Qa zZh%gOAc|$G2t&+^FKmKJ=(4W?sjX;U@1^-ALI#>l|Gu0jc1qqmike_S+SoDmEps=n zvcomhmyOv6eqPinb91rR5=}pJk8<(1USy2E#r!(yf&e~rkb$TE65c6ool0vn3K{+4 zhKSLyelr{Y3XuL2jv>gWyJSi3vN=4*l^4Fsbf(W~am~#rWgft*Na*(V-*o68U+%B> z|JMGm;5vFe4_oQ|-*LYN9=e*7AXhwjhsUpItkdNpiF!AF{F~`I%!tODpVPcI{09SO z$q-c0UMFiR76VeXLZXDjCP>X^;rJ8{Ap{5&*)l-r;(t_C+%ei~HCoyuX44dtGfWs* z^ZRRA452>vw!^iG>dV3zY%!~V51&&$csY3C1B?lf=tf1KYwlxfJX?efuBN}c9-c{5 zAdeK*MpX@E`nOv0v@B$iUa&*e{R7+T(mjTe_j?8>dh1R4%cdam6H;5K);`2Bfm zr%DqPe+C?AZ~JGMrv)cm^7)|vvoZjHfXj{8+jF+6hp6A@VgLR9_mQ930*0O}W1rkc zk4w5bl*h!mn$6n$^0A&)h8s$63_T{`1Rla^uRs%j6?_F%oT2B{z*W|F!2zqqe1?O^ zj>kIjykO1bX_}9S)QmnA0M=e&y9P-N@sMuoE-=w|(4|e`);Bg4UIJU+|A;*S!qIT3 z)O;)zn0NVf_YbXj6^f(BX9rpx(Zrg9Fl4uaWPru9@PkKgi%DP>s7W8dhpeXhTUw*P zh!Tjqr}8u@;nP+kYG~fVA4j8OON%XgWzwK{j1N$=<5RZN`^R|Ly_rC(Pb)xwa(JFn zY~Il90L_MnK-o--&@jtvuw3-)W4VJ1V;Sh!4o$Q`cNc3LLxM_)0uGH>?OiDzvriHe zR`Ee>$$$WKu^!?xNrgG|{UT~jkp5DI+|?|AR`j})6ua@ASM! znh{j9?gT8QHP|V_Ds$NN8TC(b(2_}zd7FveJ#SXnV$+2Oe-;1K-r)HT8f%p2pFJN1 zS3C=$;FDhR^v;8T03u^RN5C+M0r;Pw008O7!cYVD*#J5qP_jY;-bzqt1pG_YzyJ&R z#nTu}sARKnTtYwrA!$;nse907Vlz+=$QL|_2hZzTMo0UxfAidaEtP;Y*^m29x*UB9 zs}$o87D?1>vfpT2?iYW2!`Uj&t`8tcJx7I`XS>K^Z0#0xLFuCdV2<%3i zlqN{HNwKS)T*G4gfwp1nDPH^>mKAjV!U9v$#B777JX;GrAG8MuYyR3vy!clW0;_Sn zc(QL|2|=bv^(}_DT4&RljEi-^@BLc4Y7S6#l4A$LF!SFOFpU3YjS6DnKgz`6<>Wee zcFkJz#=Q2=Y4hCQnQs5E?AF6Oh({A@jTdxffLI6>tM6mLt?R|WCAS6o%bRE|E*scn zk5Mf1zOh#TNBL@6f75id8+nc3nb24zeG0|sLXXLP3ZBv|#5QEQGaN2N{b$+{;_>{OCjzqu9y8+DG832cere!i| zB=#D6<#SS8|7A8q(G$?fh7_ljMVCO!Xr?&3^pC~ylJ6z14zecSXYeqIEB$X>JPzYp zkuA81X*x$r4yrdVfkAI9eth&@c8p#nnid`s`p}3zW|Ub zU;|c*iXMe|V@}cSBDlK7f2@&kSP5tAs>z(wK=IDH*CCot}zsF;Lb5Ip=y6Ye2H#*KV6Fr4J%_V!z8!!SV zcNy&Cluw`ZAjan#vRxhw=p{)>wBo}WHMA-!77}Ix6XeM# zN;Jp7K>|vP%e}$77)Edn$c)u3>TPtxETxE0b2#Q$Apz!!0EYHEC2Ea!^QxVy~torVYu& zI|W^8?@~3${^pbgDr596Z+{*rxLpt8{@GPjSa`s>-z=NsQJ*U%fFN!S=QqQdzi)(r z0OOeYkFVj&m~f1s_`DZC`SD+Y2Mkxrbi}JviB~Ic9h{LLg8zBbk2q{ zWJp+3KIo>Ei?seTz8ZXvc=UJf*SZhclW|Z#i;@@cW;X)I-++!i?m@45**0f#lFevR z%f}Jo)=8;B$;ag2oDDCZ9Ij*?t$z^Eh|Y=S|stRjYSim}Qub+z1@C zGu+0c_csc#BTsCR&=@Sr!;WA19&qh45YgYgI{i<0_e}T9VYCQRURW$KXaUz;MMf;r z=Cc538D}e~R$7abmlU#;m~ts?2o_eUYuQNQk@uxEWd{b-wLXRMF5yxDnBoL^z<$+b zh`L2xCD2i^7Kn?LNUbzfH&u3mJXd3NwAM^{V+SP(kVl`>8iOy6bkS0#Li9)@w-`2w z`P^~kdum%MhImT zLpG)@CiCkXeI&mDZ0${$*eYyLnYxPHvE^G;z-2jP#p#EYy0jD1G}yCkk6;?&ks;`Y1>eH+sLm5DL7txa)X#vEUh?$LgMa`cV?am1 zFo*&8pP&E$>BquQ1NPYfIv`N8LId7PP-q1FOVz*t3;D&<7)+>Svv6EOKmj3XQmLtX z&}L#YP!Gr#Jcj~fn`ZX`Vv}S)7?{4i6l?$SGTx#i^Mgd6uo3^~?0}SL2^Z^F@mEE2 z6dNZHB!j6Dr+8gbe#lQNh9|go06s5tG0(1EM#Dce1@-(B4(m#A_P33S(Lk-yZ7m|RD3}T zaKnQj>@R7S>767!Qc?74{N1Ee{{0$=`T3CC;$la%mU1=&2+wT47R92OvWY7gxzihK zFs%8Uc0aX``pp+*VKt~3&bSPGS~zK9r>ZcEw-KM;|CEmN#Ke3K?u-U;3puOo zcl&SQ{i{dr#Z8j>?)3P1KrD{WcMKG9v5`E~BBdi_^$7W3L{K>-iL-(>Yirv&=5pzo zU4Q*|B*erdK#S;onz+}%m3?`|PBS^y>Pe6R(&nAeZ!xP*X<|-~@>}W$%4)JzW7vrw zAL{<0bwTP-#B1EzonGUOpfQ|{zhIF18Jda=DIJyXp@mzek$M=;vD*6EKxOLFx3tLfUQ(rT zJzE6Ov-1wXm)N2&0&vmfWDXLM3XJM!vLRBA5A^^0Ua?>z0A>`p#P;smiQLH@$mL&~ zo&-++$F%56-0z^VDJQqjXMP(+VIRpKe$Q5oRjukgb5#K2RECz$OKgGFXaECjuS8+9 zQa!O~YYC#m;85`y%i{az6vrOq;~66us!YOxX{=RvDi-77U)iLKZP#xc;<1F#|7u)~ z$ZoimZ_O%D25PEcD9nCWs=|v}+-tA4&2q9XX<7r z*>fMxK-bQoZ}ak!I{9W_54^tlf>2h3~mAA^{v(1PPtD93C2 z0(#*1;NlGJwYky>^K)zOg64NU?<7lmz(Hni0=^v#b6!SAm~mt`=}A@VlwXLV#?XB* zHXN@2Zh3{`FIwGEn9CKA8QiIfk1#K;cW#7efRKR8jo90BwyKQSn0X%m@Bja!EXd~S z3Fqt;BQPb6a1L4(1icq1cAG)gRMzUIcqqlCp!Op!c_2IFaZ(;CjTSV#0b^ zy2C6|Il~C_E?!PXjTE8Jo62n_?M$`^h9#%&eNo;i4JQDElvnMDvLgg(-y-06K$Hla4t)6hr0#vojLHOZOlz?rT&*V&dO!)GzZnS5ZOfyNgx5puz1J^GmWT)O(e=u_?e-7 zwD&^)HFSYDD$<&!!;i7 zQg!-Bd5ql&&Wj|nOXqY*PN#OY9_nS4Ee8o*F5V;b+i}gP?3Sw%U+Gg8jqsU zl9$KCs}4LFVb+?}NihJ|XihD|RmKgSh?|I%v8{ItRuE(`z014c)EIdAzH$UnUg6vK z`t4`9OVTm?i(Hu@c2Bl+*?HwUti+|$T36h>`>vFNz7nCf_Z~ zTSmI$Gx21RF|rav)r^jJIm=n{Li=bUJWJl&e+El(VRmadvBd)SQCC<4ap_vI&PD7X z)n7*6avD@aITdM#>PZdPpsvvali8+Zyq(psY6ZtO9ye!HOTZwCW0%pmVPAS6Xkb{- za2tdMVv;c!RaV*z*BzYNK}mn0oD2}+VBC$n|K5mB5e$Q~D7hDK7}&NArn7~_kpkEac=wO?m790p?u_Sj z`t@VWBKjA$4YWZ{^OX&YI|M;)Ls#!nv_RZr?4AGTDqljnPz25-bpp{pg#`f)v za@Sc9f{Dn7`*_aHBeTcWB!agHp!m{6IEx-?lG@ez$L`*kOGUGf`4 zo^+#M&SM2?#6{IUL#gAGr1v)nNkUK=2-OQUB7PSVEBLQ)YHiwe|BMBb-Rr%E@PkbA>yCm=#;c@DTfjfu@XU z=0H%Nwah#gZQT|vl$+*rDP{%Vj{yLg%A6t>(-VjPHWo;kSpC`-wDf$_Hw6U`bn(@& z8!3F(%eyVtTxSZLCC5UN88F$K8WJ8|fswRck((h-rcM=peG!ryjYTUY#ao6&oY`3s z=Rt0iK8y#8a?!z687(rt6ildA+>?mwjk0W~A|8Ueg`jy3NKB2<&Z%VD;pwkvH zFzh_0UXR0qPiRR;j^a8X$#?KO%~U~C)li!@(pl^NsU=@IDOyua(_`YXrK-r`Y=D*2 zcA@IHTrTCydfr-e4mn+YUbRgbWl9N3jDoo5d*gi+kseb~9#3zH#n7VGoi?~745bjF zU}F}S1T-@Fvw--JqQp`nM!pV%e<#fqj1)4PeAI-_NC|TT?%OhgPv(8I5S+1B<#m6D zkKZ&(dwDCd`TA2siizsn;>+V@P--))KyOFu8&&o(y>r&#EG;&Gh|!c+`0RASw7uoU zVqcH3x;D10h!P34_&;tM+uH+N$*4A}a;lG{s?AXrCu#)Ribjt_7t7ook8ry+-;flB zlGaary`^MCx=r+isVulW7+Gx z!MehOOY_o7hRG&DD|vYV`5fe*F%eBjm#U2M{DUUN70#(j7egH}ocW(uCJAONqJgg- zRVF@~c>#tbqVdJ~8^xc%H%%#)&3Mu>y#2;vW^C)5>nX)9TG}NiAMuJ&(J4e40g(HW zQ|Y$W*3_~lvM$|>qnH6tLeb-){=|>a0GR8+70n7i6^eS;F%a&l7eWo#%y@zJCT}0$ zy|Rk+!qM3Vn*u=J(9FAXy2lz|T?+s&dv_sE4~AmruEapTuvM>z+l6bCiX()a7 zjQD9BQuLdNcCmuWrHMMMcoVFMt7<3xfMne8h@ERlpX#@7(M)=JV#xz!M1E9B(d#&*6Sg{ z58>`&{VxZx`^#wEbf_wX)d12bx*3{Wz1<5cp&B!mgWl&aYVnW9^%ow-24FrP@U6M9 z-?eSWhQLwKOF2F4!Ibvfj(9{96m|#A$?{?#oZ9ye?q8*(dwl3UL3rz@@R_%(d$yU8 znqeFS{$9TifoJW#=f0+#z$rjoXl5sgpkUgFCj))*X=rkVZpn|r8I54NmFQCk_a2OQ zBMbEMYIE&`$Bx732vZBZ4(r23GNU)sC=R-bhhu%nmfgG%iyUA7^rv%L=d%&%$6}WP zHSnv&i3B(*RFpCiSsA)nQjKOHf12E7f@&lbC?D|uFsmFkgXwmf6%d-6mqllIEqa@7 z>t=pibk?ibLON=yyOVAj^%|+jF*ald;S;pTGb2y8d!Dczw4g z;Jk8!tD3wh;(>YM2gin>{7G<2U!)^RvsW?XS_dxLvhQ1%nd!O=Ub;1G*}?lkU;Q_z zfwPD5rT}MvN2MH@Xt|J$j^5bj$;VfC8%I2hw`dui&dl0t(&{h&}Mk{pifCr@UI@ zQ~FF19UsigJggVL1r;VMdjW#1h5>fj7XLb3PJjRZTBO1N1B`U68_K%&XKH|D zFgHAaa^QQnvML9)R#4Y#RH^(~Dps@<_tH8cLXmZxO|G3a=Z)y3LGf#l5uKVuE~$B! zw&He0;^Dhhuia#wk7ZKIZvk^PW^*ur2BUdzKC86yKYyp~UyT*f2?NjO7!Dl)FG&`* zH2lXf`u>Zl8>cRg&e9!qs}c)@d9PzXp>$Sc`=KDG#Cpu-?m#nvTRYC?JNoshtyw$F zUdlC1(V}kWjLdQb6aYn-NU!!N9O|F=pWSXp+b_=dJoG_4CS@75QxB)})_Kjp_d*Tc zImj3ZfB*my8xQO`z5xJRK$Bkb^v;8T00xUEpsi}L=W@0l?56BkP6e$Cla3nx{(!$Mr=-~qe?4W|?GJlQ1qQ!upS zppZO@kactLBh-{{p#EwdyY##@@|pks8wG9UzcMJMpz&F2)fNxM&AyqsZEibd38Ry{ zN}GqB=+BLtl10vWQYChZ{JbD3h)M1iWdvv^EOqQPLWy>OrBzxJwn?dkJo02J^6 xWB&ftwb@QFMYd9~;DJPez`HJG^1R1L6sWk23e^d~eEH35d_kSnoL~WZyJ9vo6S4pR literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0172.h265 b/samples/h265SampleFrames/frame-0172.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ffdb2bfd0d9c8bdc449c9338739948b8b1fb421d GIT binary patch literal 1592 zcmV-82FLjT000330o7Um)I$OSu)$XPC!^Z)<-KmXK--1b)3 zL$Y}RgXBKMQqL9naheyBt{o&4fBB2iLTb!c?M)Y1p0q&F?CiI+E_3I#@h8sk?Y-Uy z=@1jk@S`>pHV`_-RcXdg81ans9xPbj>?3sLtJ?d+@? zw-#yF#Hk1J-gDlw-Nt&YaeSLwf~%F4Do!XSiZs}ub)pm>PaTn(_o?COz&yD%26ei_ zp{{0t%>4p7Qf)=$siR=duaie>LFQFVHK-(G0K(T5_0@BefmC_+6$XFZ+=I6+^2;KwAV{M`njk!0U$FB43vntpOV#fus`VYLnV{Lcq z6%2m(jl(M&SbjpvX2Xp7s!{ho>tANRlK(76&R4+7puW4T(<+v6`yPR+c7|V^=+jF+5 zg|CRzUgF2mmg!;fzxZ!rS$}Udk*gHH>D&N3VSDu`s%{=Xy$T3lwCmBxM1qyoZdLR( zO751Dmav$;GJyp)nkF`W3u&%#X7A>?fB*meq?TS25N2lIS6Tvtt&hKK{zHiGbR2pW zRJe&KmgI=0l2a|Z%Rl& zZXqcA$5d&XXKppf$PZZM^kSo|U*Z6kQs{*0BquQ1NPYfIv`N8LId7PP-q1F zOVz*t3;D&<7)+>Svv6EOKmj3XQmLtX&}L#YP!Grst5y7f`HTuA2tb_+;a((8No$Iz zPb2WMC+D3cg&IwCZR}*Mx>PM$Sv~HeIGW0=tB)MH&9Dh^-MCKjpmaNPz?tZ%wBbjA zKHA}7MXZ5;fr4`|RCL`W%TG?&5F{0lpIu_)2j*x7Cj97l+`!ODLiD?Wo=m*hx z=@A%W=1;AwrDaHgC<14La@+g;m?S31jRoDQ;RxFJa4@QwaY5SY#foC=dQiF(C=#={K;Uf4S+-nKo{A;0|gY$hffou3s zR36dZvCxlQP6-^C;0kX%M|g;XpQH6qP%QEX`6R6|J&q*$lr6rcw>`p*#>REZS?lX^ z7D%!O7s^!?d-$Gf6o3D{u;T5i!-%9SkRN0B*N)&NMSrz26VP%o-WCqX9&Q&cPD^}q zW5dD623+?wjJZRmt2mPAEXJXYulFd5)uH@#Jmx?jL7f|f q7x?$8xrtxy=}-Fj0CqR)2*=m!k^@zLuiCtGvpB@OWuPz~f^{I=F)aiD literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0173.h265 b/samples/h265SampleFrames/frame-0173.h265 new file mode 100644 index 0000000000000000000000000000000000000000..54ab7901a11a56adb04a98f05d9a48fee2eab530 GIT binary patch literal 2064 zcmV+r2=Dg*000330o7su)I$OSxWQbTFb4rZC0I{ z|Nh{~P42Pi)_dubwm1nTX{MFF8da}bKNKof8|OKcQ;d`taS}tnJ8sZd=X5a90Qq%rz75}K)?t&-DU(ovrhRmtlN{4_7;k8v|J_zwMwYCL?{T? zoPN0fifZX*rma(>YhQBHRqIBC|NhM?3bP2sn|+sU8yg=}mP_5KL)X45kWUz0O0LV@ z7-NxBNw?n_?e>JBpV8k+=Ub|Hyp=ED9N#c`sZ)|N`i>R1X5@Bu)OZve)^Ef05+gWN znz0If&S!;Adc9BnW(=JVwkmqJ4hR>0GkISHS_T(U28q5fi3(GAT37G**&rDw7{ zVHt7z9S~PfV6a8kSz|R|1uW-XK;wb~f4U014E!J+;96YE$3=y-ly-`WGDJd}TOB#6 ztg;EoSX1(kOs%r9y%s4iO}OFVV6C(cM6DSLy8&XP86^<3yR#= z5W88-kO409)@qOae~IXu&(2ux!u?5uVRuB;>{`6ZyGwxJ`5WuR=y1SOkNn$l&{_Uu2vB6WwxX3o zY(Y{=clWEWyau{8oo%fF5zCF(+jF+5g|Q4)#&$0OG|^3rw$ZcLI^qBQ|Nqq7AFA;T zV%;^fF0=wU0tLiZYve(Sw`$-QlXx$t$b z%{!Lz^aGQ7yGAHZ8VRxz!vl?IbTzv`NpzjIdiR}2AuYi6{cV5>ttaS)RsmaFu0M-^ zlH>jV_>vuM)9z#YhB_5=mC%0wNBJLj%?6m$9bLZwWwVH_j1d<+jkxA^t|;0H*De_m zQ#aJlK7mbCO~9Cur&FI8^?3fyOfT{${_X=U$MUHwd_gN(9>(kT&xE)hpd}0{amJl) z?(5whbd2+7vLKhc)bQ^%O5KtQvhn{5Bf7%>v0V3rk>O z-MzvP(_AV?A_zgw$XYYY{0orJMju1~3DATAm7t z*Elc%=-a~ESe&#jyoz?+>Z~dfPKx8kLEyAY>Vmmu5h7N*HCYSt;Oct_Pjw8cX4@ua zH%I4VEw`co1GbZ1^7PJwfB*)IVwH#@fQSM3pP&E$>BquQ1NPYfIv`N8LId7PP-q1F zOVz*t3;D&<7)+>Svv6EOKmj3XQmLtX&}L#YP!GrssfSaJMjn7L zBr!kyx$XZ*EKuKjrnFf92bcm#JFyZL7eLLym{fvO2MjuciNzp?9<*{^vyR*^H3##Z z2CobDxgBU^tY4+#gwmfBcOLi_s*b}OragZu-+pTz88$+SlL(HL3{}Vob6v?{49xCs zd266VusQ$vDe{Q7v}MMncF7utd!<6lTRg;T;}6B#=HsU_3_}tJdcr;Mz;0+IY}^~K zEi?aQ@L}RuzY=u|8%t`WFh6yE?DSS(oVWwX{nyxOju<86SF4vT|@ zad37dZl;_kqpo|u|MXH}v%%maAPV8^Gln5a%21X=zUWlL09CIK;)?{B$gU&l(8&XruFba{JTtIil5z(#Pr9e|X?O6G{j=MC-U@ zYqN8|PfnfHP6uMLCia-dehAJe5iPQ3O+xP;DbU>OtV0RGz+`N)P0sADa}&u^jN>+; z0=|Sno8tZ9VuU7mOxRd>cpfp6^SZuGOb@wN{WKt*x6bwUgBxQ6&)^mpnNUdd0L@TW zTK*f>EfFI&l_>#&igY%XVOSp;znh^Z1W5827auVlqyKd=4t uRY+U2=l;lRZr;46oD1p|z2E78R2U-Q3~3teXa`ovF5_f##BFl``4Fkz*z7R? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0174.h265 b/samples/h265SampleFrames/frame-0174.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1ee42832ba8c0ad2cbec0715558e4659e5802122 GIT binary patch literal 2804 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 ar-Gh=hE74N9N(r#Qt^O^+_Nh}GJ$7}Ab3Im literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0176.h265 b/samples/h265SampleFrames/frame-0176.h265 new file mode 100644 index 0000000000000000000000000000000000000000..199b3a2631402a42992fc21345ae017075c22963 GIT binary patch literal 3686 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0180.h265 b/samples/h265SampleFrames/frame-0180.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e23a8cf77e5bd01cdd49491f10373b92cec2f0b1 GIT binary patch literal 1806 zcmV+p2l4m-000330o9rR)I$OS*uhweq6Yy$FbV>Jz*r2Gz&CJzF3R`^N{if?&*NC) zt#cMBqDG|yH4zI?nVZG_>VFE8L;`tm$-u2Z)?vVfL6I7Ju3j?st*Muox71(qk=}Nq zJ_mP40yug7pD4w8-paYCIDn*kXY;EHkJ z6T!Klj}4Y2l}aSh&h;7o=mA^YcRAAk?7wWsw5yn~Qw(w)gwGRS0B8x-Fw{m7niVQ_ zy0Oi?T(ki#FKa}--Sf1oKIi6`kOUye&z<$8e0xP4PLv?7_4cm9%Q0~qe2Nj+w+a#* zsn>0YCCR50*CaDC*lq*Nq0Ggf0>4d{GNneu(vfE@E!P%W#-z77>-X3#P`>NAhGa_5 z?_o*I5dU$kQHkqxmrJPyy}fqu|Oreg6E1x1Wtu)-1#CWNy;Tj@-N@ z_D7%ZHC9a&NOs$~54-v`C<8TBFcdD@>(yaJ$u2fV_UIz?pl}vQJk9o!Z)90wCn|I# z+Z?`3tc0uAEwCMQO{9!I-&~EqrFWh_1t_hzTllMuHAEJtrW|eB8uWgpv73^LEK>q& zck%6q2ZS;-XFnquzpYW)NkbQPtDAR>%YF)hP3y1pBD^TchC^m7Kbrr@TL8~8(JuJ= zFe%W5#CdQh7(3dMnSa>+^o^^|KoEh8wdBGP%O!xkXtsvCVlXTM0WTR9_|3VM7gq}b zl8>o+CwcR+4G?6bTsE9D0RAz_kp~i=-3K&Ky`(Nnw!z@psf9&{ganiy(bOM;(x5p- z+p^j{-T>3>SX`#0KmY&#@g+#PrkV!%%ct#)m0|5M;1KptUO43kM;gopKX&*F?Zjfs zmrU^Q(!<4mxZL2|un8z{qXtfqlV|D6D#KJn=o9zp;XNJ4Mwy9d_A03a#lPykhd?5c z+5FUc^>>+Eig1JgAU)EE==QsfzEqEfnA7#%rppN)Q$CQVaUucG zvH(AHa%c-B;zwbe-=$wTzAHch_4wVmAC@1MJxooO4)0A5samMQOvc815l^030oF1@ z`1ZV1s(K((my&~9KV*c-p#kP z&n?j(k=_xYd2O>SqF?}0zyL@W1=wx>00CVM%1E4G0kbSJBptvIo5+_0d}06qn1C%wEasGC6^L(;3svrD@{Ly-gKsq0_G`jX%B93Ow zR?Kf4ECkt=uU?!l%T0xvkpj^)sONWE(P$+VtbFM|>2G*hIMPI&+F{`Q>tHLF@MU!s zGh97(j}`fb41XW;i8Yhe9|Cs36FQmGS0{_p;BX|5aK3Q^jg)2}D*=&a5Q2N}YJDE< zHSbIwZ!U6cVZd{#ZJzq^Y*a=p&Oi-ZrCxk3Cr;wHsI&QZT zL;7&ixd;+{B?rnf=gb`q`bc_Q0TH2y$c>_-s}6Ze4qn;U&$2TY?LuNnoc6|-eDlq!GPZ~yWK6s(~ouL(ys zKdpDcC})BQ0kaK5bDRK#Lr!Z%UdY$TLRN3q`Hui3^<5fZ3p+rm;P%M>+JNNS;CCIkwqy#AZ2yZ9oo8Kq8d4q3}e~ wkcoU#xVHY%stVh6WdtU2qll=v+4Y8Csu?w5!VjQ6|KNcY2-PS_Bp3h`P{CPlkpKVy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0181.h265 b/samples/h265SampleFrames/frame-0181.h265 new file mode 100644 index 0000000000000000000000000000000000000000..70748f66a7ea45c3cf0f561cc9378d1628d5fafa GIT binary patch literal 2752 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 G02WYrO+0r1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0182.h265 b/samples/h265SampleFrames/frame-0182.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2c637cd36e3634d75ae37e10516a1cd159973459 GIT binary patch literal 1732 zcmV;#20Qrx000330oAGh)I$OS*uhq6N(TWzFbV>Jz*r2eKsRuIF3R`^OLf|Q_8N&+ zf4mrF*vCiDEi8AV?yAX=Q*>+Fe{%r6Qn@8d#*uW|s)XG5kpG4M|Nqr`vEovLU%Mxk z7?7sE@Jmqc=K=Sl`6hfJ$Y+3Zw?^idOCuw_mKJ^vr;F{l;tq%m;M>_3YzJJ}qn+RB z_)>82dpQi5#d}F0@xsdol-K>X%d5p54^?_QvA3!KI~#bt^7&waa(-e5Wuhm@TdHto z&2X^aJlUDc;KB>=n$5#nxmBI3D zED4_$$By`dc_dKiZ+8-Oz%f`1`?8=Jv#`=_S98+!(?G?izrH*5IP@P?fU}1Lt0Tb2 zECO|TO?ijb-J)hHooSK7vV(^f(7GNO@19S361qeS#m8Fjsx6U3Z7z^+XAzcZX4fv6 zj~jpC*~i^?O({6tNJLl5cMsX@*ejOc$W~HtbE=ZM+@*HNZ{iP>fPXBh(&!VTE>w6y z8_0dr6LO<`CG?%)##N1!G0JWu#+IEH^>**-&)Mbi*Wu`)>VofXTuGkoJ-l>?A9qInFMwW6p$r#a0VvH_I2kdw@W_7oxaeI>8S z;OekAjC=ZgA+1cjXuK%4{1IXfdl3>|J}8cnK^ysfE{HFrE_-(Yjmamm4F)es9mg%W zj6d>p5E%F-vXlvcfF22Uc@ot=J;N1Qg21&=TzTKIl_JlA9FG;9U9G%}k+kN^&s<4F z#4W%!gtDB96z}Y`d-q*G%OKR)0>d z_ASnNRAM)AzRW9lr~m)|{eyyiGd<+l-JwFwr0x3Z1kl0>?wiXGpQ=+~S>^b&0?|{rO zNVFw?U5{Q3({01--+l-KJdqq(9Ptscfb7{Y8&RX~dihkG15gy?^jJd5trD}EZfDNpX?SkxF%zNx|VQt4W0(-}T?s*TkKM|LUnH(xI zGJwe#k2XLb-~dP$1=wx>00CVM%1E4G0kbSJBptvIo5+_0d}06qn1C?K|ZnWtxJ^&q> zvh@u&a?e7nxF3zJM;E2Me_~%#Qdq2-P$9q6rTpv`hg3_&jS%sLzqiE3<87k*q z-i{6&(a>8+CYd;Dbq5mdIex&{D!)dq=fxAW?w+w9_4eZZzt*mCooskul7^$e1qr#) z0&+Riadw`IFXo!zZq5EILT2aH*ZefoHb*L|-`}SM^%ZSNFjQ!J3t^2Jc%0L|5s@iW zvVlTSQf6%Q4I`?TKT`zoL<5VyIH?eH`E{!}*0NQCYSg?o;jq)k;z zftuDH|2_uxT_;OeXJF8?_b!$678*lrRjy}@X>2joe&14Axp!GQ;#c2 zUdffmjvlT(!j}(~un0CFLNqRe9y2PmQ8Fck?zUg+3;{&4r+9ER`^?(LhRyx}t!Mbp zR~%<_=%sg6$&e&$?T{>i_)Tr|JV!-=)NFcbrx2lXe+?1qI}SfcPH;6S1O-KcDb*VL azl2wVP1q~9e3_7#;HMZ_(>b(|03o2ridhN( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0183.h265 b/samples/h265SampleFrames/frame-0183.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c7e1ecfb1565f5badad74a978d74cc1942130b28 GIT binary patch literal 2009 zcmV;~2PXIc000330oAep)I$OS*uh-`5(fc5FbV>Jz*r2-z&CJzF3R`^NqycBI9)Qn z#AII6JZ{=`_(&r;lKsao|MjWg**wE6|8(HUkwaqZ9AB5u!ud3?RG3RV0Mit|BbE9h zA}Grf#MY3tx*3>&e7eWqNh51Pq5Ex!NsbVW^OlUt&DHl7-$`P1xAy)avc!0E~(` z)J^MQE2|G1oLycIk%iO3;l|3|dlhgBhV-M&HPP-8F@Ij}2S_gJ*;Ohp$|3}ODVL03 z`N`DPdwx1Hq}SBs8D7`LvTjXlPC6OC=?ffo>06`-SxzhUWwkL!8KTY}%Cd)SxxgbZ z{>cZMt^fn5ddz27)rZa0=m*?0aIg#0Kc6aIB8E8QFZUn?n7;SzpF+<=I;3ZM`vF28 z&%tH?{+W^CIdAg}rQ*u=exsvP*8-3Ba*i`PQd|n-{8C9$So~|9A1UsYt!%cz@V1hU z(NZLU2vbXAr!_T}K}#U*3Ngoi$!> z;Tsi!OhnKcvXE>H9O_CH{zbRd^l;CIMpA=I+7WX-yMo8pWK_=mDmPkuuuO(b0_>kb z#U{z|B)yvlq9u#2V2FDY@qBumblirXq0<~rO-*QS#YKY<#^x%>fC)7Vx}9@{ykJ4F zy=WN%G6}OSj)>sjOBQWxHCv_i5a??zfg{|!ZP%G2FR^*nx?q4~9V8%r--Nd|+oF$d z^w4H+xva>r@pSjI6e}$V;!g*o>%0!$o7vzjWnf(ojxcbP`S*-(J0ljmYG5-~qvLo5 zCRN3|<^OuSyO_QWMse!6c@{CO)8o{ko$elfAm;I^#Bitnw*1s9f?(hhstL$;mZ`X* zy&IW$zCP6C7F|-!&{r1OEm1?wat=Av^6JC+bs{sc%{mWQF=el=0CR?2Z7k6h2WX7y z*FGu&w;E9^SvTVG?K|)@O9j;1TO{oTPyqbuP2zE%iqc|J8cum*6x-w!9jxvwRS4g7Y zP<`QD=O5B&0hF@Rf~75f2ei#vc%bW3T9P#^1pFV-)E|P5yE~ z4idB3YGM_#nZGTzu`l>vK7RKYd|s^(Yjqy4#(SUzebO|xnios^WCc$E=c>{IuCu;8 zeOtq&%3CgtK=BU|`X!HVM<+5I!qF_Oe3ty7>aQj}6$xaHC`)PIyNS&sYvoGIx+(iw zI?F%(9<-8FX`13FjZ3i0Q;Yu7^$I##q~T-Q0O(w|eCeTG5Vd4)PIK>1DUev}52(hl z=9;f{cTfK(x_-~uU_P&Pee6&d$>Bh_xnU>;Mk0*75@dTDXWL#A;EI5xFo@I|b-TE? zbY2o13fDzqig=;4nmci{?`wb+ONcxcV)}Smuy;p+tU&l!M?bdln@KRb?^MVVt>m6o zvdD6HJvMYUz@oPUoBKKxC@;s#*9-s{2O1W)it93^* zDlpFXT=)%H!!sBcw#2lyI);~nz{(@ZjaqMdIY8n#00Y_$X3etC1iHyupGLNagF#o! z?#*9WBV5Dk>ubFQw{XUbidokBpZ>pPA{8cAZ6mF&_QmB)?U^2ls4pr6w!?qBeV;uO zsRd5(irR93lTGqdkscj3#f$w0v&Q~5b2i}$gNz1 ztaKP*VGHNlpVVkuSoZAjO0Yrh20*~S;fvJ$cVMx60pRYSoJMd88rI%int(iq?=_Wf zjI!8PQieux!;Uks)xgm1dc4-IEM2?o9xdP;P!+fYSXC2DD}Jz-@!|Paf-G3y_sek1 z)r?zB;qStp$?hqfP=RlIW4fv0#uA|j1{tV-*XM!2V{ke4s*SaZ#lkDUm=@eY%Y0-5 zc`^j1$vtru|F?yl8tg#fkb=f5k(`h+n?0pVq;N0+-ou1pN{>|;xpOyq-c~W*DcyMx r;udukW>Km-i%R9|sj&}sS@NL-Ee3ACjb}%tZbdOjpyW>lP(T5{jDg;{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0184.h265 b/samples/h265SampleFrames/frame-0184.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fb48d802dea44a5b872f4a7fc0ccdeb0c9ef4b4e GIT binary patch literal 2665 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0186.h265 b/samples/h265SampleFrames/frame-0186.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4cfb0eb1a175d2ec034e6fff3efd620b8e3f8447 GIT binary patch literal 2798 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 A=l}o! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0187.h265 b/samples/h265SampleFrames/frame-0187.h265 new file mode 100644 index 0000000000000000000000000000000000000000..25318782b2fff57555cd046c52b0e977e7d6b016 GIT binary patch literal 1739 zcmV;+1~mBq000330oBp})I$OS*uho8RtEtJz*r48z&CJzF3R{DU>#AN#uYd> zo3#lEF?a$JQDVNAP!xbVyuLm^@W226;g1!9C}`6{bLJ0z(4QK$UdX1rjuj;_g(w2C z&pBJ8a>zzT!g@8bye!{t8N@>oNy|5~F4zw>I4L)Or{PJ%!R+KRXBF)vgU1Ui&Qo9Z z+b*vZbUjt*?#AAz0H>S8_~CJPn*-etp#l?9*B9KNAQN+rD#T32r;tw3@uHpny}I=N#B&qEiROw6GaWANTyj(GQ_fO8ia(#}MUI zY5HDDbw4wI1e#)ax-5)Z(!FZv@^~Q3T1Vd7p{l!7h}lb>{KIH&@_M0HYq}|U#hb_I zvF>sGC_)Bk;b(@bSI95jQG#6zHeI|jD-o28o=y}770l3YUCH-hS_2HjJ(I1nQpf-V zmt_Te=3-u~*5(>j0|2*(1FisC$U0IfKcG&R`BC8mM0|sD6egqAfBHOmuhopqnGmYX zX<^yPbgura{hnVXUJiO5v6-e9rT0T_gt=D-`YB50{(0~r*iBG{qV3QC{t*Fu2qK)~ zgvn-V{kw}qY8^-b@Y~J>PcW(UU^-~-#N7aFebY$jNlp* zbmui>&A!Zr7eFAnEK2#DSiIR5vzvH&!Rg&Yt@m`x@stEl`bDp+SqizY!0A! z?`^#R+khX@)E|PjU&-SQvL6&5Cg?U`(N&gf5w`ora`$)Ut>2egmQ#sZC| zuxafp8>a@q7C)TC^#|Nj5>)E0ZF*n7Fby(N!I zF+-=cHou`w17*gRpxRE7y}>N5qf?*PgFu_1)@-3vQERGmN%%m1h`}Ag3`}N@YQse+ z9a0+$)!fj*HV}K>U2upIe#aZr`3pjDmDyO59hqD{&H5vNT=Q=RvElNw%jkGrK0hT< zgI=QjgJtG@5r=JU5wn&u4#NKBsxK7C<1E_K^-PNojUj(xhmPJK5&+rR!|20X?a|cl z-q6BcfKPbvUC$x*$Kpoub0dXDMpBumNX|L8*qw_J?!ntX_6F{AFqUq37_b0H7X{dD z{{R794a!KIU;(o%G9(?q5Sz%C1bkuu0GNO;?EAL_3@_yiSOO|A&i7pS4Ozo87#Ft0 zw6;2imxI8{Bgu_gZ+baE;y3^U+6`vSvnXOhNK!fnv(hVu%y>RBoDsz19phWmq@NC} z;Oxj`XgJS+mF%SPJwjiaB}gU1F2x!hYWA01f(o=@Zv1Cf*u)6-i!IRE)zSZ zytb4qM;g(nqm`2Wku+iU)a}Ebyo(dS;ek!nDEmSZ%*C>C;8Ur!g%HxT_T^PKPEgqv}w+sINmRTHap>5pjR!q{YUDYLGY> zQDyd@f^;H?{PhOSPT+&OBjgeze4diLtFru)wA-VK+XZn@hAE>bs8}ynk$EKUMy#TB zszHvJDmfbK68FjC-O0W9_N>Ui(QcNE(3J%v1}LW?9&)rG8ku6wH(w~4Z$>|wJ!^(< ze<#Y6*U+VtS*a8H8%WzQd+wPnYJM#>M%7w;J(Hz&iVKpA%L@L!nrPhjH*wPnyDcd zro7&nB6{!G(TWdz>7ch6?j12@j*q_0Gyo?hr4vXpF0g8#PYR@QKY>}X6=L_DL(Boh h&#gyO`i}#btj3R0#;3`&_+)YxP!+fixzYdtr+}r^T2=r6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0188.h265 b/samples/h265SampleFrames/frame-0188.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d72892dccf2cdfa8c1eb656514a9fee7eb1f1963 GIT binary patch literal 2022 zcmVJz*r3}KsRuIF3R`^N@sv+0xh~< zxZnT$?y<}WYHj~xr@wOv{uj2~>GEN=0n%pW&N^y$ieHh;Wkf_p8MXMD(uvEe$4@ip z$W7EW(BSW3sQ-+!(_KB1&dvFGF2c5C{KJdP%;<@h`tHzAm#8zL&yDxg?C-lSsqb!E zh^6@w!9N;w0ipH;O&T-X|M2=1#bJc2Al2+1DC=^o;23b3`e)&6$syg^>i&oBLC4J2 z_a5%hggxK3c zY8M)k1|E6v=it!u)yGVHocx~;yar-NlV@h`s?j)X&KT&JE785?Sf_9Lv1iw)pCsqr z0{_tq)_{AUuAe@MuhiuG9iy202&+I$+G5~rC}ty;fKFZFAN~cphq`mRpuOxB0c#EI zcJM3gDCLdwjbPvYEu#7jWF^!n&j&O!TB|(FKU9}{ZZO;-Xl;=bZA!uP@(up(T#gTg z1dee|W`Mt>dB~0)e7n4A+F}?>C`~!@6@oUtY%0ONLw%F?mbX-peYN|l&+YoX#tn#2 z>nO(NMvQzly4*4?jdRrJy1=aw2ynvLzGx~BU2>)~gz8c^*j=FZnwW~gx^L@Y`^7Ag zj2!4PQd9B)aMS|$JPmrPzl-Q21MFm}x?Vs_?vl@kma`&)xqqzqm?OP`qJA%rQ;wUE z)6_a+iK2YuUhF{H{0XbsgPBJ*T0Y>KiIO;+6`sLkrFA>!4{wt_brQ5N3d41F9QBwFfSCczL{1|PH43Unf0@4Q_1d~$*iMGFYt=hvDwX&JS; z>hug4Y1+;`Ik9jNl-XRL4`~QPAs7@2+lPTXOIEUSNKAb{@#lQy18%E z9u3U5P~%iWsLC=e7ZYc3Z`T1TsF7WLoKMa?2Vo&fG`5uAOZ#L6PXOjzUX^xk`0@2`4worwiZuVCA>uzovF+&O=0liT zC6$ko-;_OxRB{sB4~#4>0}M289_3qdkA#rEMdSj~&;LiQB$XO`xQY!@>@v2oKve@2 zi!$Sf6aj74)A#IE_lgLMpBm#6J69BK1#6cKy{zl%XP+Lsr~i}PKWFT)A8@?B#3Uow zEiitotAlarw@Yb$cFGHXrW01v%&)wU;q2-051jNMc$d(>g}eunk1{$J0}n=kGy&)W z^a8Aiq{5JZ63dxl89|=A>C8*C#j9V{tiY9TB=WVELrpd5w4*i!6}TMxJsrT3*c%rC zFaTp9zDW*v&=3~;Tmcp*24HuGJhq2z&`=AT{Bx|!+y&LH)((?IOeji8;jL{&MUzR( zMKYSnVf{+1Y9fBh02fdINEZdzZT|oPT@A`e zoL~X7EHWe=z!00rmjrxb005YPFYNob1Pm|b3s?dwFwXZ}_zhXZGZ+`P#I&|LhL?lD z$|K2*T5ozeK;k$61KJH{&9f+BRry!jIrQp(-4p-ztocYXhW)&5SC{Q~ONe!4ZnmA~ zg?RAUz*9vH`{Y;Jzb>2IQ**+3OR656he11bSD&p)7E@UHXZJt19#O88%64%%#I{2G zTm)?4GMlUf?o2S_hzYfzZzL}QYt7x8Rlt?#cnMbKn-Bnw{G7^N#h__)bXzd70c^{R zh;V2*uloUVgro+7m|)o?QL_<3C#9l zO0EcBDSG6(AyRH1@>ZDclntHCu2EZ-#gM^k8xNMQ?mr$_*JCMH31TQve$Mv;@U5!u zXyXYZAFOc9$6(DTUdhE+ll4?CeMG~8$P0hT+Xhud94U}#1LCID~7Mb6#D8V6r(*bnyR{5FRpw3`LOeq0d;%}e@6cxA*wFm$b Ea1VRz!2kdN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0189.h265 b/samples/h265SampleFrames/frame-0189.h265 new file mode 100644 index 0000000000000000000000000000000000000000..94a26a01e1df8bdace2b7e0b45da738db8ed68e7 GIT binary patch literal 2593 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 DbRR7Z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0190.h265 b/samples/h265SampleFrames/frame-0190.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d0f4004fd94efe45914c2427ae0a9de355d1263 GIT binary patch literal 1920 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0193.h265 b/samples/h265SampleFrames/frame-0193.h265 new file mode 100644 index 0000000000000000000000000000000000000000..675ace0c1455996c6c4f31be3106acdc6e126cdc GIT binary patch literal 2084 zcmV+<2;27n000330oDQk)I$OS*uh-e7zY7BFbV>Jz+37|KsRuIF3R`^N@(abffn5_ z|L_0$qTHZ;R;0cSRpg?zG4E}zN%CQ~0lNm`u;}O?2pPxtjr%Gz{qg=iB=eon)?xwj z@85kSj@-8=u3NuUVR$29)yF5Uyd4aZVC==W_Wm)d2L1BNQSBO6Ic2#kolrop*^(V* z-6b9yBIA!`$xpCa~C z^c2pr*aNAXAxnwHb)!fRwpk8Jy)ZX~gV!^4T-Suw2mZhNv(LMLk|_cw&{%&JYLb71 zt8St0obISEdj&v?&ywqCJ0HA7{_Ra|n|4&RAhJUDUvVQW0 z>WvS#UNu?$A6XmFO!+YZn+upy*=1~LY?AHR+$EvFc$?)MNIDab8cAmCB$lyt%fTpl zN5oRd?-PxPwgpsi3jZHF>iRUr&V^+Ln4Jpddvwx2S|1s5VNWJOWgZc_GbWH2;l-ww zLvz1O8lLzXnMC|w9;Y2QA*ZNx#}lELM1Ru+n;JOL%zj^zG7IhGdEP6RLyrIwdPKW- z>Nj}rLeMFD4!Ma{QZ~kK2zKP7|6k+&W82a61@nF<^UsR%{*U25!4Jpo@Kh0*7)x&R z94v-z3WezM!!x*!b`a4w8PV?k+G+I(9x_naUQVbNK4$ADya0*9XCYuySH2b-;Hue7a$DPp}SD`%Iw;dy= zWYdvjo*x1r^GWi(XWP$#=ZZ@BvJyZAXE1XDl4%T%q9(746(B+hB8C*p!kh6E^aImB zL11SAv9b)JRK}KA~`%6E85p~zpsBXlptX! z3U3(4&3*yMUaMV`RB?%g=U8;Qhh0^}SAyRTV>a>8XtnZH>R`BVV zmdm0a@I$eFiBRB^SX4&P?9Xht4lDqGH2OBs?3-piw z1g1$SY47A;M{yIV+MLKQOj)v@MP4byzGr|(^TzcUFr{v1OhK~`r+a~xk6M7E1`NGZ=Frlc7P{Tt*SaqW z4h3Jrfygmf;<15;oL=w&neG5xysu;mGDpNcsWLV{hGql4HJUz&l4PS0BNb%^ZUBPZ zKO|h@e@uLp=L5DoMwnPy=bEs90a4|b(;?9_OlZCH9d~=#ys4HQvYx!?Dzd^vNb2)i zf+aaWz`dZCDi#TnQa&s3{=CQezth_r?tlzCC<<{mf;V|XgkJ|@`x^J=Woz?Uqj~fGJ6z8L ziJ&nEZoBhmm0bP~W42>BEsWOa=Rw*#I3?G#BPSr_hNvntFFlg(D3wi#a0Xr4{fBPa z9<^q?`lv*QU`?vwk27lFh;+bT3i{f)S_9a%(Qv+q3KskcY^~27>Ym+z5&wZB=yV7$ zL?sU*Xi@g(iW(5qaj56&*1zwRt<$?&Jw3HvA?ML&#@z^G5vaCM57B@J2qmyzU9DOn zW8?8?{Yv0pkN3_*xO=n4)!o5%Zq>h?mlqwIOQbsU7bW`{ta+aUq*vu0DS^ohip>!# zJV!kxvUmBq^!w|GACGaUJMz)-17B1I)vZmE4QP8w|LwWU;#Yi+Q}M@felvMDchlcA zhyyinE}eb*znViDXETO;D{FwO5tqAao>C?!JSjiL3%e-lq$|-UDuQH53FOqyYT=`yuYBB?vBA7 zfghH6Qw^}iLvFAqTbB@8OBJvY@2F)Px(k2FWVF)CPeBvt*rJwT_WqrN@lpPgE*^!(f>MO%FnrtBEFtWG1n4xm zl=G)R*8o_+4Q9==HFI}NV-1>Z!IXA04>u z4ronkurF0kpuIa?$qfi5ga>%>+zACh#|0hgcnk+?EYWqzGzO`&2coDIdj@~qRO1(0 O@E&j#xDK@l01|MbKm%m} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0194.h265 b/samples/h265SampleFrames/frame-0194.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c4cbf9d8e9091fb18e70f36cb22e418d6b5ff59a GIT binary patch literal 2408 zcmV-u377T&000330oDos)I$OS(7|$K_W*1e=f@n(G1QgpC}#w z>}wu(A#l`IM>pUrIR8)G@9;R|%j4_l>)bp-9FO$;e^!4FgIAB6ucL4}Lpyun&Q@ZD zP2Wgnrt2rH_Ogy_Vk17t3m_)~!7RVRk2+I$w(=N`a1^Cy;XI#HOVcz9Mh?Kzj{Lvn-oanR(9N?ibV#|A6zrGfENegU`(@~rZmnIGPE1palmZvy;Khajv~tXZMyjn+TRZgsGzCVL8d zl{+__mS73I;hdVn9=ER;AM>8uCK^Ys zrb|jWgEB_0wcu64u{o<|a@5M;pK}{%DpjryMKN)7vy3FiGnPedBNnx-<&*T4;SeKU zxZyd?*VC15 zd^N`wi2Ha{fJdNI7%pS*z?+=o9>oszVZPaQ%PZ&ZZa3Bqay2SS8L&d$Dmp*>g7G4( zTW|k0^T)z{@N&@@R|(i`FGdlvCCf%pr<5%FxVYF4{|1I(G%k$Q32w@i+5hE9KnJ~{ z?7M(6+cX<`Fb0cBR?OD{T#iMY>0dLlA1p44F!$KoI~qPCJU#MRUlv1KvKrw3IK^!N z0s#5NfQP1JH-euq#NUE93vwbk^X3oJ-~FO~M#&W8W_F_!PNLCVTY&T#!)AU?_ zEMBKTxb02w{9;Xg;HHeQCeGeMSfbS*0Ew06+{t~?3;O1y>agZ=Q=VYm`21#@d~IHj z*ze_R3}{ci0=kMPbb+P5t{MGmJ3mphco_Cg_ipj+If?@PZ*OliJrs5%6*%&X9!h5d zCwD75$J1`b5(HpS%}q@Jx2hCtC{e#LDTt{xSNIVcT?$n(J20!r8-uO$kbk0Nd@gt7(`DWiNSH4O`n)#NHh&4{z&Q%DvB(NOzG*dOdF^;Zc!8eI$mUkPy5{JYy- z!)vjJgXnw$18;D&8P1S3eQ*WTAJNnwg3_F{;67gwZ9;KId@sNM`X!OQ(od>qN`1=d zhV+K4Xe`-+GMQTO|KwkB@bU!^3<5dsQyt!{#@igqG%g0$7I0Qb=Nu^jl_W?=BW$ob zo^#ie-6w{o2owH+KnUkCKS9Lv<`Q1IPNPY|0@xA{X9^KtFV>#xXUsfUE^lAvDzAty3Qb<31cmQ?A=lUAM$81XhkmtMz z__hE7L2Qm-W~FasnGIr6zM6ZnFp>G&Jty#{2mhzuc4uE=+x(fO)m2IKW*CGY5lZWs zc1iB|i2a|o4t{m8$#<-~nH**r%S6A9 zBClvlj^s#jP%-q=OT!vUaV70gdXzNjg^ydd&n2X)M{QWz@&3~TwGK(Pjs}DPNEZdz zZT|oPT@A`eoL~X7EHWe=z!00rmjrxb005YPFYNob1Pm|b3s?dwFwXZ}_zhXZGZ+`P z#I&|LhL?lD$|K2*T5ozeK;l6(!t1ukg-hAmmreUdg6|Cj-{SYD!IQ8xvW4_8-F?Up zPye*_tmJMqX{+Qv@R`CG8_F$&a|rLg1F0GL8Hc~j{E_A^=yXwhm<2CbFIMoMiiZ%O zMr*{G=vyGc}YkaOT&irm0 zo8_!SRK9J`945pehUO+NW~bHF0?JM#S!?}wRf4lm?sM5jjO}uxt;t9v3RIqb`cKsKoYTEVybsx}7;GO>6Kwz|eM90ty_c`Btfh%;_QF?t`{*+bPWaY`w zNm?!;8*88I*pQb{=`JE#1{e6|7+7pf#aNjb3TtwNHUD9=GX~rCwBhu6ysV zA=Vx+_O>}yhf$XblvY~RR=EcPPIG0y9lr&-JJDMKNga-|@no_{kR(0&3RNXOMRO#O zt{&a-XAoPr><5cIlThOJE?|#Q+PQ;ai5sLV8&I_WG}imMz5Qw7O(>-g`8+gfn9!L1 zR^9DucJ+Z0Qw{L%^^vxtbRE9EXq{ST*_&z5N(!#gVftW47WkyR2{fag-1Np+4R0&q zx?k_m4`JXv%|Fh_Vn&)Ame@(PN+bpag-of>2G0?lmC`F|Q{& zM42tH;2>6OOR!LvyIIfcd_-5^hC9$Q#Od(z$U~3f!jgnbWzh_SI4qRB6Pf^0 aKn-Tivo&*fFR^IMkO`<2xDK@l01|L%HmSz| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0195.h265 b/samples/h265SampleFrames/frame-0195.h265 new file mode 100644 index 0000000000000000000000000000000000000000..962d78cf693d4b1c177206c85f56d0d11fce5e32 GIT binary patch literal 1621 zcmV-b2CDf0000330oD=!)I$OS(7{*oiU$EeFbV>Jz*{H=KsRuIF3R`^OJXW%0g_^u z`>CR8O%MtxKijdQL95UKl|502aEQpqc9C%ovlHL^q<40rJ_mP30yu>g<(gEA0f^Z3 zciJxzr5t0!oGspKL7IpAH;B?3NpdO&W|ZA%>O4*?DM}5N^!W{a&{WYpHMlST_1vMi zB5umfM}zR*_-OHH7MlqHxb7i~ABo*T!xrg5vWxc6-xF(T8~Ke7#lL>UNcjI(^$V&G zQida5=G5x<9Bl!rSZ&D=e0?9#LHCt_jZF=G-_U0FMK2OO_*~?ub&nETQi(ETK}LVN z07v^Ys$%r@XN2b45PR5l7q^|N3O4dPn@_g{v0R3XE2)C5)sAjS6utc!)wl}RYDH{N zb~H)O?e1CvoBYyG>Lz@1Ixs`Q%zmMRl zFYv24{(x2?y8uv_=D!>U-x^QrtJi=L&B3;^xKY~x$3QN<`Epg&k*}`JF+EOny^lZP zSgeQ+-|cGRj^3l!d7a@Lt|P08F+y0;N~TSSKX`2+3RJ+SYX!u6=hzrxyt>K^Gl0*o z_q+gE{EU4g^uQpT5CA%s-7egp@|1`k#P%f(|1+ni0ke&S`TxfCz^)3oHAs6*tE1k! z92K41lN+l~>$c&x1*@u->|!1O_Soscm}>?j9oZ=Qno>3YtgB_o2}bj2hym<9 z>h0Nj@qi3QbA?ZicJ8-6N((9U*ia3)AJNnwg3_P>KV0;|nwtH~|FTCXYqdqb+eg(k zj|>T2;1KptUKryCM;gou;p8a(i=y%;+O&<79VG|7y5Yo?0fPPJsh7=2VZWl`di7A+ z@pKMe^Vv2tM4Rs25y)iRHxz)MlK>{K9MP7bi~9`b{VMs!Y-wN*wo}o0bYYZWP`6FM zr4oEWx-E~yRBc&h>gN#i0%TfidYeC)=MIW0>c;5&F;bf=MnT>1UV4YKR^yIt;0hyK zLJC`vb3f+Oh?cdc8t^x9OH}TETU^{)!!X5eNQtsC!Ld|;gn$4@7X{dD{{R794a!KI zU;(o%G9(?q5Sz%C1bkuu0GNO;?EAL_3@_yiSOO|A&i7pS4Ozo87#Ft0w6;2imxI8{ zBgu_gZ+baE;y^O0GnPZcR5|&%5%Wg8w8?8+D)#E3r zXaq^72Q$kN&wu0o_U(x)4^sli?--^8?gFQG@Bx6yYLqA*yrR#<)j2?!vO1M2Ohyeu zyZaB8B;uiT;*KBRfb%ZHy^Y_K_p%%k7OSP&7{;L*{ogy(DOm(aB_>n3x-VzG2rHd9 zAoNn(I}%$#ve~twP?=5?Du)-yL;w0?iKV+jId;=G3{SAEY9bB&pXpu)GEoKK?gVs$ zfSAk2bivxX76-g?s{++uRgM?EWY8e}dOuN7$wG`tQOpS_%+6RTVHgdY&#Fh4&0&dq zgbct8bzj|5l-zQ18--SE8@1ufP?(>0JDE?{Mrb2f2if%rOE0Rbzz~narp?qt;`Z1c zdL~VCW#W|GJcUn>v}SZQNo8|V&O43MAfy-5MC^k_cK@#bS)fS#`r5A(*|e)`s~;{d zll=fQ%Xeq{wH3;{%$#noXPgVFPnu7|!u02aKo}CnhpicSAalU4&w(7TpcgO=X3euT Tb9XN(5#V{i6}S$y2mlgr+yoj{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0196.h265 b/samples/h265SampleFrames/frame-0196.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd8b5bd4e69ef7ba93b84d213ce71555c8bac558 GIT binary patch literal 3291 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 Z&x8Tb4yQ?e&VFcqv`ttDapJfDt$>n?XvY8m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0197.h265 b/samples/h265SampleFrames/frame-0197.h265 new file mode 100644 index 0000000000000000000000000000000000000000..64f37032ad6a31798f0dd9feddc39d355feb3641 GIT binary patch literal 1826 zcmV+-2i^Dp000330oEb^)I$OS(7{+DHU|MfFbV>J#}ixzKsRuIF3SzqtRQy4?L$Y| z3gwx*CPAQMy&aJwRkCWoL@qKDcGZQP^y27otDw$;=}9~Q7r}Y}nhCv%6{QaKm&r9f zz~Ah-!h72XD30?12v{PV>$o-|NsBYp}Pgt6}EAo!u=bk!d}>l~4bJOZ|u5;Cx74pUrL(crz~}@9NU)yY%bDun7E= zIsN}R=6WLOdc`%1LoSuK_Q!Rw43FuXj(#_(`&hS0YAeE2u>bbIm-2oR1N(l2aQX1n zr$5$$r%rH8ma9p-atLP5Llp=wYM$r&B%tbu&l6K{iV4^h6ufsDT}68MUPsi8)I2&U z-vZTP^i}A47ERgO_=mLYw{lIHQcn-|xs4@9j`U@?U zG~LWv$9g9UcIyx0l%WrGxlRu2akfG_Bo3PjX*-z;xJHJaHd}4Z`*Pw;_n!A7xTb_e zahdcj?eXYgEY$3HK2Dp;_z2N$D>@#C-H47@o!GQadsf~-sH+WLLjEPbQRjVaxAP7^ zhnw^+fxg`+KFf;((S0w9veB3|?`)&!+Vd9U|7FaPN!B;t`D&j<_rK+Z)8SmxMC#CV zFU7XOIRF0A8yi%xoNdX#3MCh~I|c^2p0bub*I=@US7`fH+|Q7PJ-bdv%&P?AIYHikY(~xt|nNF~BghOpsf>cQV?79swy? z$`gAqm67@ctm~9Wh+;c}&$JYEA~4Swlj-&VDPSMb)E|P%L5+#II2<|BlEFHYiY9@eeNLbKDGaI-9em*n^K&0zv6DOG`|u{=MXq# zfI*3*o9^vy|NH;jP*Vj;nwC)KLusWK1UXwGeVu%mNt492HanF}U`Uz<@6XrUN&F)?<&eAdK;W`qgF!%;aGP9wNAN6oFO_3h)aQ;%`v%mwmpzStLN<_*; z{5e)tYM(L%0aOmbfKH4_h_}UWdlLZwP3LmUAmm5Hgp+j*eU4Qv1qO8}Ju!ms3CuC~ZU1h?XuQXU*FXJ5WyI}|{zULF4d4hTf{^3ylScmyz;Cb;KvB+~RIs;2g|29W z0~3Iy+XVRQNxQ%3h45#+E%yNMVsx)<*`JtA6I;G6G~9%uGiSrDx0q+x$fHDUc&*4S zEndw4_s>YJ2=aFfV;q;8bOuDCf`c`;#QZVN;+CzYL|Dw>%+b*onIxY8p4k{=2t zXWbZ``EabX-L)bz6D@}#L@X+%La1V4qbs%eb z~N)YKx*M9f=Uq=${g&Yt`g#7C>jS~WlSZOH9xsCwm3tJI$mDa(65<`VRDFU${ zXAuA^yC>RwzbH2*A%Z2v*1Y)Pc!fH%{w^uU#^&$CK4&IHW)i+?zLWvQ4Q9==HFI|_ QC^~qqfEBn7wFm$bZ~)wkRsaA1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0198.h265 b/samples/h265SampleFrames/frame-0198.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bcdaf7f734cf92cf8de51424c684b0a2ce9d01f3 GIT binary patch literal 2078 zcmV+(2;uht000330oE!1)I$OS*uhJ%6do!KsRuIF3R`@%+CPQ1Y2~! zalilh-D8+p1}0HQRHnSsLaQ84%jx5Mnm8%QBpPB4JK>T3A1Ta;F~aLz15X?~&rR6P zvgbro^I)}ea^3o2)9#KS6WKGg<-!;gf-$AH_Wm)658FH~E_4-GYCYQ&7+2SJhFDOi z7`P42ALDgERq%oG69`ck(feN@u!vEsax2)yI_X@{lqsVvgMLu z;Vl05c9KeINZI?iw0ju(@8>Q&_;>kX1i6j?-tOs1M7(LGx={i|Ed4lc8zoEk^AF4( zZ(iiIy<>;%v1omrxZeuS zN&qAqgH!tCte0jp@HtIy%MIoW#wK!#SBH-C-_f6u)_nn}t%)F!lNdlCrkS1K zv{bEk>IRQXvi=EzOvRCq{$?~-3EN;A%6<@73-Y5Ko~(f*KkBIQIt1QwWaKKh9aQSd zrq)MxF8(w6??$26qG1(LTU_>sK|a*$`@q#W=$qeO=?2zo_FvNiA4MzULnUENBK)j= zeqX#wp2l=WLEflEn?r`N+rNDUd|KgK8IizR;*-L(>m&#U#d-J=-Wj%x94-AP1#X`- z)0vsY1BGqZg&)skA!C7x{4H(|jr%CG%thO`?N&(XIg77M9xC*I>-?Y0d%8Y=zHh~T zcky0l(R?5HA^7F{$^T0YY@*RK>oNV?LIScNe(1bD5_A%4TfPxglv5S9%$54rk<2{s zdJp~ioT^XluO~U#a5((VU0?72t^HrXbo6=tztj7^<9-kwb<|N(wg}^DNxfBJS7_N! zY+Wf!0>=R@es^5-ns+4TwuDH z(CUfL#yd@B+9vu$-C9C-_+2n!qR#2*?sLJrJ($#DL&nenfOEKp@;+YO^ zf>TksU@Yhf@R77}w_Ep9!V^5^Xx}h37U>VfL%YBdZ$X&}_U;Jm=0FNr^D0SI+Hm8_ zh-hQ*06j!fIm3v^1P;c?arM5tElt^(Enzo%ZiBaQ4iOx zN^Svh!*~Dh`24;OnFY-u6{|g#rXh7{oATRh690ws=kIZc#_Q1r$5HBhXSx7a-6Kn9 z59GhLKL+p)Wz8Te>pSDeHt^)KmfoTuJVV5OiDTewsmzC@5?w52x^htUSCbxwamf5r zTbyB{@3B(cW8oYRjhR5vFaLS+Ndjr@WtyXd#Ow+;vW{G8rDPsVw5D|VN2bYs-_Y^b zVaP!KZPJM7kpO6lCIV#BB6*M9KnC-*BjmNdVH@+ODhUlymd0c}{s`tywj;$K4Tmhc`aJjm!=3_RzJ01BnVDqPHD=q9;;CneA8W9towBk~Wx2bBNQNq5;{{RjOh_fqiXaEQ8J+||+DPpC2y^EYJ zrH2qxX3B5XZD|U*&&N8c}fGJn~H| zK3K0EoJzbi3FhsVKY%jV5~{qj^-%a&fu5zXo^+0O)pyM_27lNYwboZ4aE=(j&VjIx zys@S}5boVV=>`$}nvU6JcAFpv{q}D=6&cOqT=?e`U1#}>F=!yQI=8czwtp|sB!CnF zo|o;0T`)w@kV9QterLc<4EAINIInSJcLa3UB!st9%QVB8Mm!UDaHgkKoZ0k2pGwWohN?!Z1hU>> zN|Lz^!V6|FYY*&!7Z*sjRx~Ktz4iebwNkxsZJm(8hK&BZbsdre2b3gMSoHCfHB+3j z(5g~7K;l3!stljdSO`0R_vrq|u)4f{Ie&3T8`f@{zmW2LBZGOB9EN}s+d<+$Dq24= zLDrHz<$VqoID;HBFp$m z9KIh5)-T#4e?(8{`#^Pe1WTEWz2HlC@(1LBsBrF-4~;QdGGqHK1#kN&o5u2Wq%EE| zEvSvlLVH!4&tx6mgtYZYH>Bo^vj-Mx9s?ARBIr)FKmdP$4Q9==HFI|_C^~qqfEBn7 IwFm$baHUcb!vFvP literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0199.h265 b/samples/h265SampleFrames/frame-0199.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aabe4aeeb801fbac692b647a002b6cd9f3b2cd04 GIT binary patch literal 2739 zcmV;k3QY9?000330oF19)I$OS(7|a5_mmyP^e5Txg_aRM$hX%5jcJn{;2L)up2qizXuU)Y(*n2<(! z%03;^pStv1u2c%Ib1hA#nX{+c)fH+$!K8}Xj`NiOT98T^h!-X#Z0yi&_+h-MZQLnvL> zFI!wq_JQ$+B2%&b%s!q1d1g$pG-sfoL$cuz{ouNpBG?eQaguTuKqFWq5Ue^!hs`Nw zz>Wu;JNE}@sq?PFE3+bF_>)IhkcH^uYG?rWIm1P>sXA`Gm|2*ia^&IHIHiRX4P>-$ z6agPv#$1G5e>>TjRZ#d{^O0De=&<=w*cj{=RrTo*|de8D@;7< zQ+5pTJaxIY`drbDH^%r!KnA@%hZ-B3NpP)Q;CJ8;nIL8}U#5SO%yGRFWp7O890!hR zam8~jEfYCw*X{qX8r__fu%_E>_ZbYsDL`h)3*&msYqk8%!%@e2-Ozx(i9|g z?MFf2Zb}Tj@AF1SXrMrV%11e0th@tYeVkF8Az)Aie?xW{LnTu(6Q3dM=zW(FP{;gl z@79TA(l5@Peh<0D+Q0&Qpw)@Yq|1!uoy9iWRy#*yAY}2r#dp-(xOWT-u#U4Cz5WGu zDFSQEqxID@EBrtBsTU~*yC7%A877vk&JIX;jG1G{DSY>liZW~U1ES7ujnV5JeJdkG zU;vu-v2dfa2|qbm&V86m7uM#Tp~!9t36)Njp`H@f>$V?80-P;AJDh@ydAWl00Dd!> za4!Q%&ESjnE7W%SzF=^4tCX__Rm%AKo+$ONnmKRJ%FfXEy$ij5W&hYcTGf)OAFr`_ zVZbEwT0xJd{uOOy(Tu(d^{;dM{M0??VvY;*@@u2O6;^x3bJuo>=QzKLukd+w*q-+? zVeoc>VbBHe8{0B`#C?v|Oaa(G%gi6WMNAchyr%Bsccpj}K4KxDi!n}eFTOygj{ev` zld!@{z| z`4Qt+$=)X!dXr>s?uh@O{EIcQij);lZ0L2WF0ut3h!EW0j|oBbY2dYs2jz}J#LIyQ#pTs_Co*g78fKk!ms zr*THR{qQ<&gWTtU*MkW4fYQhmCCczkUK7Gg``yy?v>7>GcUb4A2xBob!l2kT`|M`% z*xxkWl^S}KQBVD7aXU4iS;&khW|k%J36rT8wl8W&dBbJSPGJB6>`H(00zSk28(yo5 zmG@~DsbL272K4`gGveFc3e0sXtChWr=FM4w_(L8=7} zLR{U+C1%5wtpGTWQKSlV%Y@-ewIz5Tv2$Cda<5FtacQ1t)RRQ586O&pEU+0 zvYV)WwVwM$v(7lT!d!gG)fJEgAkbd1cdbm4w)GmgNAUwPURqRijs}DPNEZdzZT|oP zT@A`eoL~X7EHWe=z!00rmjrxb005YPFYNob1Pm|b3s?dwFwXZ}_zhXZGZ+`P#I&|L zhL?l?d@?AJez9`mGk1$JP!l;w3L2$ zE4$LlLORLMRO{-fH<(16Z<2~G#R-!HHignf{~%KA>5s!FF)o6sF?Z_Tr7@hQfT8s`OSUlE9wpdW*9zD=e+(ImcYm| znO{hS4`GBhwgGw^Hat4yHA#*RKZkLh4&{GJA_X=82+mr15ll4F>woaiiYPfi;y^Hj zE${iou-ix-LFo8A)v3}n^Vt-?oP?EbocEz&U3#$+MG06Oj@^wqIHCr^Flx+Uo#Ogg zrT2F4FB)X+4`w-Dsk5zf+=m|YW9Q%g5mOLF+WG_9v-FKa!pIXa#v(s`!ocQ81>h8E tmb*3VpjO3N15^gCP$Yy#$@O3ZMh#}ovo&*fFDN>Au7DM|4z&mX5^&qYQr!Rm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0200.h265 b/samples/h265SampleFrames/frame-0200.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7385f94d30b98b0b884703d931a169110c9ce859 GIT binary patch literal 1888 zcmV-m2cP%=000330oFPH)I$OS(7{;RtOo%=FbV>J(})%ZKsRuIF3R`^OJXW%0g_^u zfVI%@;3k;XiRaHf`IUFrWnOsbOKRVPz$lMKKXtuy-~89fz?Fj^|6qfzS7xh+qPE)Z@O4fbmO+7B)5{buQobrR2Mk-K z2FfqnYy3^Eq;KT#D%e3ir*dk2``%ivKs>8JA*kj z+e8A$#3*9G5L{0~o|7EX*pFBefw7cs@@WA-KKZT`*QN98nL|8IH&nAm7 zg(4nSLjaU3jQQ>p%&E2OH<~gdH~3-kWYe4LzaLxWO6RagYi^6LUuZCI#g*-|KbC@K zW0bXn49kn^T0ZA@Xr~HvJ4z4fZp*5L0+T!0v~daj@FUcC(6WWSHP-aSD5>bh;q1jJ zq*o-2@foz59RX|5a;xO6o`TBJEsK|Y8z~8ivQU=xJ2B?~P&c@js=I&Yp%@^~=3w&b zj{HXxpfKYNpakn&V@yPHOHd2KwhYWUWUYr1#uf7sO-EC~-RLcoJZ97sXe(fZYh}E7JxtA;X?*&1Wtgf*Wj9Rssg65+_hbV^0*icg6n57)Aif|+*v$EGV&)iQaIjH=3qjK%Mu!SKefWdL?y37{9vJ zBz+-ja2s;AY!g#hTM#fE{g5rbjeCXBv(@0AzsD~nPZg#lhISEeUmwoouE1)X4m$hG zyB;!f>f5Is*HU+|h9BNAQrfNJE>coB#`r)D4I(_F>MQ-Nf<30dg7M97y28z(3XOhU z8E1(|zazi`PO?4gDlpFXT=)%H!!sBcw#2lyI);~n{k=7hX|cZ> za;Qka$M=T6`8q>LfpC8t4CaVtUswf17qI0}n0kz7k>?q~xK|`|EQR@7I5~f(nkdhS zxpfQm_?ZwaGRLK>!#&Z?%&roV+2Kl~y&jJF^&k$W7tl?mRGj;XSH&7m1!0ebWZ=4T z(j|#AejX24iv!+7jhKha{3ADW%z5Xzv>QvS%S-tlt_F@Ej!k^uCgqNgP3q_I+CwgZ zC5fE^{a8K+Hfg7|(|h^%!Ob3xa)?C93R9fU?_>35;MdjTLv9l_@dx}Trf=Ye%cmW3GG}6@5 zs-Yj;BJ|Ii$v(4z*rJ+md!aA*5VzYfE8>hF{%g$$A}jysSENhI^{n%x>TX^#X|p)`N8FfkMcZeTTHWpfBat}R@KCTomT zE+o%fGb9dy08W0v#6!c~vgiuo+Jo)&;-x-f?`~N-Q|@H#$YG*h;4CU9qOJ(u^wRu5 zdT=l;%y%+4f9>QSBG~ptZc=)@PKbRG7M6Haavr?t8t9k6xnQ>w*C};L6`eR$#bt+V zAM0;n5z{iwHokA5V+-r{8$}#ruZz&M>NXShCxY|EBfUFaO0}%W32Qk(;y^Hj2#9?D apmIxDK@l01|Nj?4O4K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0201.h265 b/samples/h265SampleFrames/frame-0201.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9b257a379cb1ef73b3a3d287fa295405873e6fc2 GIT binary patch literal 4220 zcmV-?5QFak000330oFnP)I$OSxWSU{fdCub0Wo7T*r?W<`X_|B+YtH=!~wK55UX2$wC8*KnLiy(05U&Eu% z;%8ZjIJk*6jwe2T8GHug8kdcTxhw*XNlRe{;}xgja;+%MWDaZ=HAq3F~#=Du4aX&vzJlg6LNo4s%?@P4Dl$3!CFXR=qg?-1C|yKdR;cl&3fygu5%krLD;(P zhX7b6BA z9G7b(=iY)HiGPm-A~Z#rVY_c{ONO_*o0bMvid4AU5%~vZ7uMSh@RCU1oiKKy;=EbXy1eKa_lL`mVpAeyU>k zKZ{BH5WXi|hYZZS80EIg#KpafBukLu78S`50`DvlIaa<^h=%7#=65EO0?l&86FW%g zj>_#BAKU&{^*;z7JLG=*$sCfSLCwvjdW5{yGZMuA zB^6iH!ef5yX(Ndi>kpAREl1K;xE#kDR%C>h?SduJ+-cbbq-Av~gyL6THnK@v3UB&l zTKwi>nrp0`!SZagr9Jln2yp&4pq(&`bxp60EHz{>ItsrUV1e22qb`}FA`L(Bjx@op z2ZE+rOaGJl%hml0q-rC2J9|sBdvme&4j!k{zyGlEq-&Qj5AE*q6oZ($#k!z#1#G=# z!V?nkaO2*}S2ZzCj>SU(F{q~c^kDW{PT9UscX)N>ukABWGg~NT%Ep4UqR!ZyR9i(V@Yd zEy@O1DHXCxw6SeA$>zOzjfbF2yC}cBv7wWZPGZ~{t!Wg;GQ;+XJO;HStvq3xFsny; z>9r4g`E>Zq|0(ic^k0*7RbtW!FYA`pliNB`p!-3c6?R2A3Q){2gJ+25HB~;t>bV-z z?zJD++9%&WS&;77i2_(T5b9S#e|;eJlyG$C_rwMM+woB*)*C#D4Tn}EE6!uhh!xW# z;AE@!wLs%3V=zSEl8#_iBf#!OuwFd|ecPkx&=C{0jB+%Ytzs?`$?xZK7CX$yfVp2V z5&0{`<;p%`Wf^O6e+Z)Ew`E_}V9ldkkE0WoisXa=$BJK^>vbK~=R}z6cBiHE;h!=V zHXbuEa&j9NUZMo$u`f|)8|gcKETHQ_b52OWUV-J6wuB6o3F<7o9tKF4E&suw!p2{$*S2GZF-H~+WM2VUzQhB}EisyKpH^{pg&R@3v9Psmb zGl?mR;nM$5c)s1q-HB@|t9dG{Z4H+kV^B^^*RW4D0C2J?cb8@Qfx7^Tl2WJEKac|SzeP#7^&E8vAdbo212x+N}yWe^FXxn`c zF%>!{m7-+Aq@)qGuPx1+@WV?9Ug@@b*gy}ry1BABP&i?8xnH^zbb{4gMEhStM6C*> zJHJedpM1TMms<$lY#D3vq<#VqPHZ4rFuIAXXoX0V)622Z$cV z%Wc6My)+++^0)aJ87aYSaiUP}%?W^*a>_{0&-I({tmVxr1{hFBe^wMLw- zyY858lH`LwcAnc4^YqH^lD-I0)#Cllff8Wh^<5w5_ZQI;nX}nuO*4n zl*?WRQnuE^^597W{F7Sg17>GBcJN)Hv|rX4h!QY|vQ;`( z*ZqPJtDk&DthG$wHYoVJX{8-#t2(7FXw)lwCTUSpH4I}J6FLRSq${J07bydjo909hJ#w_fByXc!1ljtEv88it`IU27^XfDD^EY} zahNX67}&4#Ttq%6Sy~tC*2Z!xHQcn=?zeMN^z7x>-S6vfJupeMmalDIss4QKMGCe( z-|wT2V7mVs_T~C*^YPuoh{!G)z|*+1b6}=?h4eiVJOhhzUpCazXKy^_(sral)WF!? zIu~&hV(!aB41>C2*Mrk`;ob&5ifxTyPfdJV?W(71BtKCVafu;%oOVRSaS^t z=SvMz@6`+CkH`cT6RD}w(_rs&gpPe`$Sqlhn!)bG3be)w&^VLexedX< zGTDF(&;w(0HyZ$x;AuuHACn)}#CBw`{DWS$uwsN3{Vo6h|MO2Om;jcoSC`X0&m~<^ z$=1@iP9hN^F-LW6rQAih0036hrVDL&%8o-b;~@o}dW2brx+@9oH1;t40lV*(4|`W* zfa^9DHV&?Kw)WR`R_KoTEWvmB@Dl(L;SV>|Gm|M}Z+v@N6ji(ZzS$~sNB+fFG=>WqPi z;>#(>aLm-J66A#+QOx?a<&G(0%O<}p(XRo|4E*H7^}$}6DJ2-Pm&k*E6h4 z3u^OaJIJpVwPePxAXgNB0v}`rg8BW5`Jj&(nkMZ<$%xh2yOrr zOlpXy%d;K7{Jy;qH@~gCuxSElU(to%Yv60JinZk13$rl28gg{a3BA^ zW#08ALFrQ>$`hV?T z|4&KkDP$e*$g7N&s6_r~*beFGcOKeiCwj4-AH(>1iVT2CF3Z;06@?tNA=4zMqcgP5 z(|+0^>%fV@P69;FqIcZE>8-nApKUQ2gRlQ1vb^D$^vx4OcF_WsdNZp0HQKz!hL;R_ z`KbYe(-?nu|8z1RTE~v}t~O>s5sR1d4X=`9d`n85lBY9xvA>k@T7Nv45>Sf6ik>)| zMvt2dFBand^R;ejdJrLEf5_P5VS$$+3WoF37kv23QRjr79GISpX5`*&FCK}bF&Tv0 zzBfxpC%^}Y(Y-72o^!Qh#&w=$K=bk1^!4@dFN82o!lxVzWB4d&7AT1o;&=iBhlPL~bABC&6?yJ7aE2r=o6EX{So` z+Of0SnmboP(hg7Tj;AIa?gCu3@v{W!i8tum3?>YvABTZ4CMAa*YcAVfP>VsP%zDX4 z{U=MAa(m9Cko(@hMHC6gw0-=U!vhTpdWH<*F!ilC_#Ri0Y5fSP1x@jikII8=_do67 zB#ebWfxGO&^>JlR?#(f0+7S9^wAj!M3IhN-^iGyAW|SqF4Z}WWVl+AHAd$LU&<>|b Se$IYqe!6Jr2yx=L0Ih&-^FZwY literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0202.h265 b/samples/h265SampleFrames/frame-0202.h265 new file mode 100644 index 0000000000000000000000000000000000000000..87e87f9809dc213d0fdd4173b4adfc6c10aea680 GIT binary patch literal 1728 zcmV;x20!@#000330oFiNC*@LKsRuIF3SppYbGD)OeC&@ ztGEV5*7zHqp;NfKn(A-3G97&Z$);vcBLF_MFYU;|Ur2RX(+ZZ?3ZSQ;$H`OFHh8N9 z^%B4{g5fgpOECrfqH9G|#YHn$E#r7Lr zg|pSh%~brfWo7CJ^AIDT`8gP5wA3HgE`}VeuA)>lvj^7YjV^e;Jx}#E(MVwL+Rv4_+^zu19Jp$*Tg1EfR{$ zY4m1NP8HJonKB+4v*PdEt%lGr64DQ3hig*cK`psxqTJIMDGWO1UU^R%*qHhCh5p;gyZ7KOto^ zVa9U!7p!u>RP{I2VRwQua-MS$>*}-tx{Vfu>v(s3u96p4aiNf0gUxvJA5(R^)swOQ zHin^SBII^67HoLdv3BP`LEUe54)up7jaJJw`(~Jv-CL|mBJiTbm^q5uN7?=QkDF75 z$MD10ga=rRb2cDvNYwE#$=dvDw>;khfAb%|61X>@QoLt$C&YbW^3~+f z;y40V&+klAChFHnhE-3lLWu6?dowLpgfOu0S=^V0R{Iv@BF^e}VhpoL%TX{f_y7Oq zl3cw?WYtz5cmxp!)*_V|4eEiOxz$L`W7SnCZF>xsUR<;3n=F3HW+*WNm=A#L`t&d8 z{Uxe;9P0NO&8@!X0KxAtDCZW>zi>@u3yr?JVjTL#I3C&Xg`q3@?0l0Bn{FRw{5;?r zo^RmROg>h5eGdzx$K*^wFt1S9)w!%r@oS?k7{mSfM9%XbO{F!NFWwj5)iNwTHY)zb z4yu|h}svhwmcTDQ1MKqf(GdG_TcDa%W}%r)jEY(6H^DK&_JCjdwn1=wx> z00CVM%1E4G0kbSJBptvIo5+_0d}06qn1CmIxDK@l01|M+vtGFX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0203.h265 b/samples/h265SampleFrames/frame-0203.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4f57c1ca613252d54d176860c637a201b606a0bb GIT binary patch literal 2104 zcmV-82*>vT000330oGCf)I$OS(7{}rDhB~TFbV>#sh|`FKsRuIF3SzzenEurYJ4>o z-7o*||N5fbpnYx|-v+AkQCgVyw$~*2FxvuCHDa<}=BWr7$M}u=Dwlt%{~nW<=X5hM z0Qq%~zLG}PgGNg8layh2BVpCYCN8{v464BF#kcnUG0K2be6cw6S=Tvbxht6=K%fz_ z9cBO}9wu(T;?Q*16LpjS-sRi>@&QWYJg~D|-&6eNB@GfnFK6!J%JcMV!x*^_!QbVC z66QFtwghk%Ziffkjpj_rw$r=@Z6VYq*5ap0D0G7iCN<6%m^EYaFFC`yBzo?Q@+^*) zbcn%>ym+(V(UMtrnJ;C}WGXp@`Rl6^L0h1qt!vmA;`Bv_%q}tl>wZ|8=y~Y9vP<3X zOm$xepnYFFw4izAPHuCb{=?9h%hpMfzhZ(;YLK=6TF=Qiw^u#Z@}H%4D?SNx3Elu@E9EaBF}Zf0xxu~?4#9~KMXUu6C6x8GD|-t z9eT@CG)^Vzd?Oo$SUU2`#PFxv<)rC#ZZGp0!jr**|%0^+^ZYuNu_; zkF1U8j+kqJnGHE{Mad2v8SvH)b&=P26SHH$e^G=!k0VoMqHcW$0`W5NQ~(|EcWQg6 z-IPkKZ+&qTZ`rTefAt7*gs?UYme&zIKp$g4FsG9s)BI;f{FA#SJe4IPDgo$;V(XY9 zEyVm^9;Y2QA*ZNx#}j0nY=5by%Do2@Dv6L6-F2FI25`Lk5KwPg20)C1nUh(mn2vpg z$7N4_8iNN%bj~uP|6k+&U)$021oM6;^S_Gn{*U25!2ieXH<_W5{_fhwNs&A|5k_=` ztc=TS_8Z?vl|Um>?yuk|UE$|1!Wryd4@T@^|d0t{2v4Ugi|BpOPsG!g% z>PN!LCV0(ORDu;xJqb7iYDv9SVOMC`Pi$Q&gMdn?Cn4HersB%1KW_DJV&4IpuQaa9mUVz+QEF`zB6_Sz45o`3bTmK7`)S zh=+H8B;JED+9z|0%hu#P+zG{^7RwK!ZKS%F&xAnGvktnRwFaO^dnK_~i^r8MqT!ed z4~;1SW=n+j0R62Eg^NHZpdZoHAA&rPzlDZKH{l8EG18#kp#5<&D>vGoMEGQ_bOYIoFswrGaweW zfBHyiB&gHn#3W~}V=3Dd1yC_avoA7%9+v#AMpLyvn}?0J5>+(dtbtP%5*O_dK)6jB zBTqgK9N$nsAIR&ZJcGu2V$WDlzd#{9N0Q*D`%~bv&kJ9Oo;?l4n<@z(57r3lcXwXs z>!fFuPbcii_=yHLdXHU2!vU zo0K?GcPF|3`!}IaGu9)`&8IO_MEX#aX$cr5*?%dur|w2@BKCuY!UDgR5C97nzNabx z0?+s3G0zq>07)9S{@JbPhe7Q3<}`oZ*j_`|X63HFB<^Gp@R#$wD1y#x&+E7mvL1yobovU^)sn(}e zy*b6)lK~<8fBPMDdI?QVM`iflI;0Fh8c$t;xO@MoOBE}_UZ{L1b=7pY(W^`8R1U1l+1Avw~1D-DE?DC}{mYx-zO@tQL_mpC5%P<6jm z@h{?9t*|Z|Ip6lso!_9@a_rTi%#hua7tPre%u~1+M+nY1yOUK-Q9wDDz0H%XfBT+m z1z{!tF__gh%OSN#17saNy`AkGtt58vD{|4#HU&4E!*uPg>$utryB=!Y$aeeb6{7`U zeyNeaP8CC6<|oSUJkJN(5fh8Nx^VY@X`;%6ZLD;)hbZfwYmFF+Zqx-O=iyQ*PH|hQ znLU5G8VnQ!Q!Bgx9Y->skwe%+fEta#y*3a&H;=72xH}AsYEVpkqV~T;y>1up4ZLP$ zQq43X2TJ0vnsjWxcS&gKkBwb#Yj3~m$?6HRE$cbfMqcbi^>mg=bN6i-|0m4!KVCpN iK;l3!ga|=E4LA*E&9gOgcP}V9c&>mIxDK@l01|KkQvyf; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0204.h265 b/samples/h265SampleFrames/frame-0204.h265 new file mode 100644 index 0000000000000000000000000000000000000000..911725998e8614a1aac925b54bc25f5e45cb8f03 GIT binary patch literal 2387 zcmV-Z39R-2000330oGan)I$OS*uh+tGzS4dFbV?6BX|@BKsRuIF3SnhM9Ym@BGjk< zxo=~z?uavCb^0t}&THs^5thOvFj3nbt;g(#@18g0+N!H@MqvOxWoF#YI?Kki&y%{)e9sr;7@w4Ow*%|baym;II4V3Y2fwYyk@=7Mm~NoVwkD;H#}(@H%GC<6u|~Yhc&&{-%cH(x~1v z;Q)&d%pKXvlpw>y^$SoIi&rb?1xOhc(%`9Pk3Cq!slUY{%|B-n^7?T*)>yS@3EC|w z<;~Xw+l)~`;sI|L5=|ND{a=7TN*{16nWonCwLREBPyP&3Xo~e|T!hdc zu8;mcZ3hFfxcw&W?)7(E@vFG;vK<;H`!qYS;P!xf@GOj#0R>*A?-f`|5C-Dw#|R&x zq|9SFwoJM8=MsPw!|zm-Z(^lyVkYVsVKIanKS-yU1%0aoZo7GOuVYc$MrTO1U=*C) z2xrz+VPI&bs*Ls8sCPK{plo(~{^MCRN*lW=UudiQYhQeyzR!moX*@?FxUddUbZoSp z?M3zY;sQgEgAquC^x#K%+Jg~yDf*n6&0_|oNQu(fOTqb|>4L8?dy!NP z-ZZ%-L8DTGSlc%h4Tx(}4Bd8WbOG2+WSk=FRz#$Jhmfkx>4#uWYGOQBtu!4{) zES&!btJ99)jf!RPymvEAJNnwg4N)wfejaiNL?&7B&YxT|NovWva?x*A3(x)li>dh z!v1|+YF~b5=TDz6GsWtBe&1{3e;5EPAjN%NE;e2a{5=z{1i_FM|UG2T`UnU!DszH$T_z2qsPBq$9lJtNad_yp*ysQ?aw zjaO=&`ZdA~i}&0eH3_A#Z9?#+QTv$9jW{cO4_E%Bpp;(Vd*Q zPvi&OA*PszFm!^EU40To&@RO@Vlf5<eN~pPAV(Ly+WwO3V16j z&;)m~+^`QuM&~6ma00FBf(0^>md)93oA}=u#VK7M~8vxhRc{g}&6MeYu&-ubZ zu=oY9vb=Dejf#ZcyH?$MFzWVE9K~+x%>#^R)Pd5InKw8wrQYDNWY8~S6X|Be0Dm0u z&0&<7G-m#L=6yQtidd9JJ~>bLOWZ;8Q=YT!HD<@M1tF0g=IiCXRNEZdzZT|oPT@A`eoL~X7EHWe=z!00rmjrxb005YPFYNob1Pm|b3s?dw zFwXZ}_;e+N#Vt?!_b=nXpsb~qRRFe}dTx$9UrWgXQtUGaD!?dtr4-N16EW=s1&9CWX-Df$Zv zYX?*lc{b`A4^9GlU~E-Ev&|B*Q;#xd*_{RycWse61M5lSJ3&F&4l6$^AEo*#2G-1R~Tz zzvoC&a4LUN(&x`BP&KNprFrqF(-#PZ^bjCWI}x15+mkRm3l*_5z{17S#PVl3MPzmNwK6C z;>t5j$0-X)M`;!s0HRRt9eSHnMvGWDd>xqVYb5E0`v)tHqTq*7TmG-ma*3Rb*3BRI z1rcHU12YhvB~sPPvxu>UlqDIa-NuW$lQ3c~ufeKdF+pApJ$9Q8E<6t^SSyUoi=Fx3 zf)JV^CWqjs7T`1AI$<^il(72=c8wATsIvc(Ilf0t8#8wl-mq@_6P$N>ecP)ZY}(D< zU5YzFFdY}J?9Z8BAmCLi-QHaY|uP=ZK(Tq*Ke!0F~(b6oAUXhvF zlxm~0RgrD6cvpEi3J+tFRdr)F^~z312diUt3d+u8Pso@n%Zkm@23h%;M63{!9lfB^7>9LZcgB2kqcn13=7knr_^|U6moLPk6GQ zkTI_%=s&ON`HTPptH=*1rnpc5b-+15;y^Hj2thy!Xbon~vo&*fFDN>Au7DM|4z&mX F5^#$ke(V4M literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0205.h265 b/samples/h265SampleFrames/frame-0205.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b5cf88d3f1cf83c572507cc3ad3983a8532794c3 GIT binary patch literal 1839 zcmV+~2hjKc000330oGyv)I$OS*uhwGmtmbySt-_96}HM_B;Kz@cz}K_hP2WJ$HJ1Jb)&lkdo}wCm4B#+b?Z_pB=RY z9B$H*hlxK69y%%!tSv!(EiJ}7@HyD2PFmR_{CoQcn9OXl{4k#e1` z8hJZ4ey2<9W(}+``~SO0V0{bDw0%U=+n*~Az9LibE0W?LBLpGw^nXLeSsjO0c2T6r z`yr!c&aD3RLhf*um!}71vYUd=28y*-NunnkjZOb$`sWExS2Q21_o%xego-R2c6{~3 zi>jg>fUsH@wkUD+N3(X9wbw6qeC;cox)l#>Bv}LTrNjl>2jA`~iA8Hn(^hcBawfoh zIrsId`g#TN7s%3_;$kUTU;n{-Ls7C#KJmqLdC)-9y90$C>$`t1C9iZ+Tv)5yTDq0R zM!Bx$H#?A1^p#Y>^O&fnXN`C^zxh;mi9O&TfnJ9CNvLSiefqN|bXFEKn!9;K@xZ=+ zBwKE~c;^+2CWre{!e(mc>lj+oWQH}da==!al?v+1 zlv3S#om)oXi#>j5MaxFnUcEM)b*_0gT|4!rg_pEJ1}^n?lI^LnBTJsup+1}6jk)gC zN!Ry5TH{zEUcZRA&~4W6MF5GB$79nhDc!%=Fbc9Wb*kP&-C--CW)M0UY*N=cOo7O` zJgyuz)cXLZ$eAozcSYWjw*B-0?L!E$47C1HS>OP@ouVW2R;4iWX@FjC1N&!imz&)A zwOYO$iZMnvjjQwQ=ta$OTV($n}jPT*0`rPGcP9*b_T5Q}|%KbPA^Do{@rT5Hou%5v#+a;lO=2mNrSVHLdxzs?Tb z9P2riQxE_n-~dP$1=wx>00CVM%1E4G0kbSJBptvIo5+_0d}06qn1CuiNQ*$wKs-H?mi=^Jt|{&+R$Sdp{QBDepTJe}vRSEhuJ zQbMRDtbxl=`8OVIFBK2$hI)Y8#7eVNFN8O?xP<}|sYaZJd~{7tJMLjt$rA_*3!A^e z-<{(F4LE#8>_1Ndmi)Kk*L+2gO=^^F$#nw#ltvt)>kNj|zZp@HpYedEZ>`rvE1*CM zX{0N04onOPNK*&S`oLkcOHtk2+*e-B4>FBeL>{ zz37xD1}3&@U<1Ab+0d;1DaUn*2;5ueu`kHw!2yOgLC>1us{gq^uRd70nmxJHU&XHQuIv_bf;y^Hj d2thy%I1Ogavo&*fFDN>Au7DM|4z&mX5^$?Hk(dAg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0206.h265 b/samples/h265SampleFrames/frame-0206.h265 new file mode 100644 index 0000000000000000000000000000000000000000..066128ce591e9173ef6dc3cb2e10a2d1dde8a601 GIT binary patch literal 2965 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0208.h265 b/samples/h265SampleFrames/frame-0208.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4139c4bcd69c38ae352d55c3929433806c33270b GIT binary patch literal 2009 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 PI(V*t6}S$y2mlgrfsuXd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0210.h265 b/samples/h265SampleFrames/frame-0210.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5d1580a7453adbcbf144e52bc01f67fcf3bbd68a GIT binary patch literal 1927 zcmV;22YC1Z000330oIBC)I$OS(7{-Gq6Yy$Fbh=yKu8n@KsRuIF3R`^OJd$>0g_^u z`>CR8O*#~caLK@}K-PL(oANEhqSCGB=mQVk?$k%X?#SRr5Nn-Z zW53%!5A9lCb}DR_*Keo8$N;b`J=_pc#?D0ZP>Pg|lhh;Sfq_8ekw(p!*{!c^dQm&Z z)dc_f;7i@m@tZK^fJC*fr^ImPdh75Kta9$<1s-o`Sr;kV;ir?cSL$@WS$r7}D*xl2 z^>@QO3GSmoMH8jI<|3`_wIQ;Fb3Pd0iM^99Rgu_rcW9bSkFpvzT6XR zhqc#98nE+{&$-2iwh}CW?9j>r?Z}2chfEYux?cBUh<|AzzD)=n$ zCj!5Nu5rg{ox?Wv?!z2x^rG0u)RSucxT0mX=bot-M0G*C5r-)G=i=RPM*&uC5r)VZ z_Qj(3CovC!L&T7;jvVfcnhd%n-4~zFgO?&mu-{AT<;W7<{2JF2K%M(>$ho_<^hzp1 zFv82i{tMD`vlz~oY;e`N;}3oEqjUSR;I%Be3HTC>6(em};Q6_KSHr{APQUUdiu}ln zW>y{E>w*Dnih<5aI|xagup>f2U+0KaDNQq|=aJy+e>~WX2t-6@--s(!Rp$S#{iaMD zW?0!C%=n{>K)Ky4r-j(}v#)l#;4AvWzvql15;Kdy8$thBRap9%xp^!1=i|^6ir~i->YfF+{=lq-_FC_17iVU;O zLRUU6wf?T4u2Ve-AncOLCUa^UpHH?tast<{wO5)SU6=hTr;OasN#v|D6yM5rF_M|Z zX66~vU)Z@hB9pR3suIM9M*e6-yL(1H^>fw<1BQJ~ji8e)qa`0xEE3oF_or^|>dGEC zumzX-(I1cTNG_jPmEh;Ikb(824v^=zpZd@xl+0PKplj*_Edc;Rz#q}nAA;5a(G=#g zt&EFyKLjcPA7A`&`~XvaM@jc*waN1x!w&08#0Yj@ei-8iI2C3Ft>ei4o1*Y1+O&y6G0BLOX=eJe6_jFvw*nEw|{0rBIE9~bo}Mji%HE&#%C3+i?Vt{(scXNbSQ z(%uT?rA=-D#*})THhc|1Sz*Dt_n9x>ALnw9U_%urRen{pZcFcg2ZrriF%DrpHI$v3pf#NvXMQ|M>unD6pVSMWI4tPIlW>6n7&33a@^Pe zc>%~zR=O2*?6v$ut>vMu>_CmQmf(I^epvM}Hdr||J;(S))D0kN>*NFH2BbnD}NOrFzrVkx~&CU|e()MSHeYB8IS9+K0F z52fh;3K$e%n&l|)Azsm9jU{Quo=^!Q*~!t9taQ(& z`SW}};J!Z1L?mEpw6cuQXq-! zCMdXI4C@wJYOHGgzK+NS)e&wRr!={=VM=SCvHh%MF+|qSH*YT4^0TaiVw+RqMq{8# z3-=et1v)*CNGH+2s($ZN7Sv+^@Z)(lQ=&X?-PI`&g8%)dG#G@{+2p?qx(Bj&H-KjN z391((>W#eLv~aS%x6w>yD5cd29fV&fJTn$}@)Vo>ukcV@&$pM6dwgZIzGvdJSK*sE zfc0cC42~slmrbbS%-*p9G?%9T;zVk4X=c=h9?o=k-xan=YE%771Y#9^ON&fLygh$P zE23y4XVd4O>J#lVPn|fS#25ypJMPJN((QL^P#!W*-X_-B@`jxTZ*ff*y{21g{ywkN zS3cXFwL0Z$8J@DgUSB{n z@XrphM{)tVPcY8+T=)+|&H5LcI);~n-_6c$FXA~s;y^Hj2thy%I1Ogavo&*fFDN>A Nu7DM|4z&mX5^zH`!f5~i literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0211.h265 b/samples/h265SampleFrames/frame-0211.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a7fa01857d56605a04096cdee1d1fd4a0806e46f GIT binary patch literal 2918 zcmV-s3z_r)000330oIZK)I$OS*ui(PF96^a0f&jP0bnEr0LV9Re=f@S9TjM&vSk15 zXZ)Nj*fyFJ+bm(;-Xt4+fY;as^eVBTz*{RE$~-K?vk0B(dp^6?4&dGaG6ud^k79;S z(giEG$4kBMh})#-j|RBk$3`$eoO(S~-uvdz%koTi_% z2L;HTR@D4RZ?sFe`;3Y>T@CaBsxoRZnmV(?4uCf&v`2RzqHF)ZA5=x}SkmdFKxNYB z`?;h=PVTuGfW7$=hu?gxK#$!-)5yn=FxoWP5ZVf|`5!^xw>&=yM`N~P$-eiF=gKd* z5u&wcGs$@=tSn6|X2%>QsC^p@yd5C3peDPeOklT_%FuwQ`DYvpF{3tJsLJJwOdq z6u!t{DW3LgX*oH30KF(VF$>fo;CL(6lA} z)f|J9A(VqHs9iWQ5t@Bxa#P9w3SO7_QQkwH!~GGvzJqn=B-J|!J}2HhWnG=ARNrbA zIa@FqC1DiwJZ7N}QQ$w^B7b2_30Tw2^-cgBp{|MClNHEyKs;R8V7auesaK383bMcz zV2E{S;0aSSJrOUQ^@=!vwN3iV=JgJ`GY4f*jc!t4603ubpQL)|q^7s%2l=)wTY z>7P^KN5bcA-N$(jO-4QmiwpO~5sq;78tr`Vm_wpfi30QfAq^8_)dmg1Jo&O}X0m?~ zK&I51UhNr;9&DL5a12n;g z6HF7TJqoqe5{swxG!4Sn_qi0%;U+DN4)L- zZqb?+3OW?cG5zSm(aW!!kiFIJn+AO04e7lC(|t*AZFS`Fj@E+|9KmVP`)V(Zh!DCN zxgm?!Rzh7Ji6Bb)fJEJl(u;AEtV>GRyfVQ|Ux?M1Jm(Q7W{Lent{AXogLop~$Be>M zx3O4oh0T>8*(xrY*R}JAvNY2A?$H+*omZxHU`Emn3T3_;j3-YohXHRW4zJxq0*ZtG z<$apE46}}~mWwx9k`s3OC#D6d=Z^Y2w=>7F1LJWuJ^7wRg^#(xvGNl3WLp;%N0|Ft z6;ZSa>c`fBe38ZT#9KW9lR*bP4c4{Qh-c>_J5C8_G>U6W(rxA>%zoFGNCs>l(bOM; z)!?`hS`rV|$>8n)bdp4phQjh*0W;d35xI(qSZ}8eVMzLo6~h@x>V1%d#OAVyXm|cK%}q1dQl!*A5z&OOg=Z zlj`*4EEfCV<1(~lND09y$G@l)qsd3vZqVGkU<=b|#GPng>7ph#E5h9Pe4n-tfOI5> z8+al(b^guy@5nkUUQ3|ENHO;$0jRPz0CWUGU)U8r1mn~IxMrqRkalimb7X{dD{{R794a!KIU;(o%G9(?q z5Sz%C1bkuu0GNO;?EAPi>zXMI6V#b6^Usw3cEhrlCEvt#*uh`{ zmU<(aIs|PnU+^xlWlpqUBi;f@&q0N2wb-rkbJOYafB?sl2?X65@FmPS6Sx7N@jAKX zLUTe0ITWHjcBuJ{#Xu$7;*-`t$0f#A(&h{z{GPCvwG~AU~g6u~eSXv^WiF&psYqyEEPC(u|bI92}h< zP*fTesQp|){)m0XsWkY7O_@=&&O!(kJu^Zl*|?*{AkU>Um*ebUn}$BS{zrQ=V8qx! zV;?l}LxAt5a#V!?*S_tNgdvvVJveB-$J2?1jL@&BHoamdaaOawyhe6Zuo)1mK{K}*1A{!4NT z%g($|ZeRghdu`Enzi3d-0pKeV#tqqVU%XNbBe$&vZ9v2w_^knniO_=I89Q7dbg)11 zx6hXl<4)0yEdtgs&i7pS4@1`XwXeWBhL?li&CYHw;yFO#Krn;|K|l>S4Q9==HFI|_ QC^~qqfEBn7wFm$baQi-yw*UYD literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0212.h265 b/samples/h265SampleFrames/frame-0212.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f167d7d837fa407c144dbba897db1678af010cd6 GIT binary patch literal 1631 zcmV-l2B7%>000330oIxS)I$OS*uhmIPzM1(GJI|UU`P}OKsRuIF3R`^N{cIw3#JkG zUSAbg`;K4#)q1%06)tQ{eV(Wi09A=Qwa;9wicfC2>C;>a#^wU+@~J_%nKfAp=X@3|tj+hA=*Q*%H7S0OV5clERE#-tPodkp z#qtQ46Xo{5+*!<-NN3Rzv?Evl@x@t;HMdP&i>Akpdpm~}imu7fkm~-A>-a7cNJ5e0 zy_)%}#rha&Spq8Hx6%w{(pFhZ2+(fbfy!pdZYyh%hu^^xIwXf{QkNj`;$z49R?N%m zQ~ur>&6x^zRGjuK#h^NH(k41S^3#IlY|EF@Ef82|Foa0xj>5wwuu@^SA(&kv1_`jP zqBR!Hn6{0l18HQe2sGC+o{6_y&OpaY7a5f#;gBf`c zMw@a+yyHz)G>#u}(Y~(H4(UuBw7uV?zOd!y4#ah-{BX@Hm*L3He^!3aFOt6xJr7sX z2R~WdOpw*H4}N)WrDK0Q{Jk;_RSXv%zn2z_c7kCN;=`@!y<0Ht5`_$C+BH+nWiezi z^TidUl6xgqTWVd%dt-R5rPeQ*EKQTxNw<9>v+N`V@2c5!!<@S*K-KoX2jgVj5dQAs zDxQ=x?X|2#0}IfFwd+0roj0BxWj3?GKo11GB$ya|{Et&Eh~=GvT#xl5 zh)%j=WaO!74nZ-4f2rXG_2ra&X(A23Bu!Gcag6fIfUO$7kx!T{&RR_n2;%3pZaAG9 zjfJUIUl$J@+-ED6`eu@xX~@hwqY}eF0rL7KooSJx#`to6G)1nX_C~dEW0uq@#(C>R zZe{n`lOajv)|vxxDs9Tv-Lo=q<8Bc`3kQc`P=1PA+WZ+P2&f;?)E|P@0YcI>lXB^e~DQBG*nwf?6&H zU1Hr8Bur+il18L#x_|!v_S6*xBVq362K1IaDN!9?%lf(W8X%_2`SKsuWMBlt(C0=} zMn_LB;&P`ccP2Y9o{-qzv;D>=^zWCL$ql0Ug)h8Nt~FCb1lZy47Z2qwJ3Ih8iX$>T zxLb&%iD@ieg@`=K03J0;UFu_GE|lQ5^t&RV6sid{B7S>I6+6!%q<4=MBZfd7RmB&|8M9-E!dy4nkWdTD^R4W^3Zbi(hu0TH$Zl{# z+F9NHvl%-ZLgsRLiXT7!{Aw6t-T|!uNEZdzZT|oPT@A`eoL~X7EHWe=z!00rmjrxb z005YPFYNobzF$LAjwyFdIy3W!S~w^LPLyFa|3x(it!_(ciP29zYj*bJ!vWv5;;OJ1 zWccgIpLljL^CfF*U;`aA4!U|A=NablU9=MShTlz>=BH9}NuZ_Sj!2_Bxy-_Rf@6Yv zOVp(_UYhz_Wmi!uC+q?Uei~Cgqg#i5dS&uGKqsc0rq6g_X1$-YfzRyczW~=RG9@V) zt_!Kno3d}!=^O6l?a0g@iF{`ShZz#)n1yvhr3{pD=SC}>^-@5T9b2*&ITx#a$z(#R zOqKWJO12R7O4bs=u?5K{OQ}FwwP$$LiE0l2_3yWBGf7E&uw7g7iRNmpBHpxOVY6K zS0;?%LLjL{y_j<^i%2j0Kw?cO>4X877yHZd5Qw+P%;-g-TmUj%Wa)pFkRp!Mz#)0II57QVB$N zO=e1epJ=NgIf`}1iASEfLJnk&8wu|}@VfO9e#6>$7m^2YlH2fmY;E8jHn!pg&|m;p zY)KM0ciiq9`cG#T9S091%RcDmHPJWQsLYua&Xm<Au7DM|4z&mX5^$yH5-I=y literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0213.h265 b/samples/h265SampleFrames/frame-0213.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d51bcca67c3cedac2600b39fdc56c6e3372c4321 GIT binary patch literal 2085 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0215.h265 b/samples/h265SampleFrames/frame-0215.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68cf804e20e4af57edb907be07a969c7e50242c8 GIT binary patch literal 1943 zcmV;I2Wa>J000330oJkq)I$OS*uhx(eg^?Zla>U5U`P}OKsRuIF3R`^OJXW%0g_^u z`|l!ZO*#b6M7%wWi3O`uMvi3Z$?Ka~JYFE7c{W}P{G@lDDkI=`bZ{hyXaHc9B7kBx zJze&T!NUO9@aGGRdv|(&&{`^_x7A72D<{P&p(~vw}5?Yuh@MQ&p8X%g=Mc zaYzlK_G7iu&ocNX^4Q???lC z&9RLcc3U%XHMZ?98+B6w)*s%p}*%!?aM z!BSR4v-7avH^bB1WdR%vWSFDdL33iMBXbVQqAui_EYtzJ_ByDqLrl7`36+{iXPP^cl>yoYAEb>M%XnVL8NVju6D zT2o8BD@@}U=}9fKdSfdYn}1aHPz0?4V*7OdxKs;}%Re$RZA8#z3fzljDOaXOAd@}Uh07IgH0AEag z67@JO*Y!vT_yshJ6D{ClpxXDJgNIS>ZR{P>^8_@oz4tV=L+w%NlifedO= z@14X0wja^dAA;5a!PI~;ihuY2{7F(SX|VuG9J+qk*-t1po+}vo{%;Ey6h9EcqyeHo zrtRcUwP_nDI!X_Fb;F4&Uj_TkQ!kp2Pk%+dZ{D0Rk3#AwxRZ-ajQ&VWTlSZ*!AU{) z`edlLAy%g>{1U={zsD~r&laX6hIbFg-yhECF2Hy!4m$j+x}G$u2ZrriL9gdpz7Y6# zVXIv)-aM#y`mcf*T)13u{G04u;(*}`ZX?N*lL-^(X1Phq;HxYokn|%r9poBj^neVD z9K04^22uXYU&657S`LoGJR_L_D`YQV(I@lBD)zFn9|+1urdzvN!cq1+fksro>$IFq zd4UDWz)ebv=qZn2ic}R00CVM%1E4G0kbSJBptvIo5+_0d}07Y$*F&4{r~^Y z{(Jv(+K4ei8F&H^+QpD+*F08_u$z|yXF&i-mAz?VS$Soy_uv2u-*7rs;I^A^^hE>V zt4!VrhX8ApC|OxWN65js>X|n*?SakoCY7jaG+v?1!F^~y?1zw1@GFK_uP&w-`gc;I zm{e*?LOc9#hv-62Cta)Ec*NdcR85H}(53oZ2D1({u$Mwh+Kb20XqO{(l47YjZa@Z< zr4ko>S{Vg(4UHOzanhnAtqyh!Szs^h`?tKWpH6r+sgglF=my*#>?QN$j~P5%?VQ!) zI8cm}MxF4dImcJHR1lvcvsN|7q|8;9ZCBdGANWyum`Aad)^yhNI%>+;8Ak?cd!H3` zdPMeA_o+Z#dpnywH4ov3RtPhmXdJMvu{&?PnAWKzluMCLSPo6=At1~Ta5A+ zm`^nVPFAf~F_IsVR#AJMJQC35Ms7)U7~NAnk`Yk;EQ_)-vi6Gu5X+QWkV2!MYT51F z?UYFyo)2a5o zY;K(u_;KUxxpf>1>c0$gonzIb32@;Lz0~w76=z;?NfmnL(8BjkwQORm zgQVnCJ$x59RHPiIz+T5$SRO>8oz&W9X)$c!a#)g5@B#G;rd}O1%jZ)A@bin|+7{Sd z8jOX|978!z2ocR_zK1@BX?EhW>Q#7fODAo7Z9#B}w!_O8`5hiq;UlG8_oY@Kk>pKN zD8?EpE^4|`kg6NTQ|I{@u%U%g!u8gMpL(Ad0Vu*oV?yo2y#?{eua7djRYDOSc;QBq zj1z|w=){uZT0y11-JdVz3s~tH(uPM+FwXZ}_zy$Y_qDIUI);~n-_6c$FXA~s;y^Hj d2thy%I1Ogavo&*fFDN>Au7DM|4z&mX5^$X~srLW? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0216.h265 b/samples/h265SampleFrames/frame-0216.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7443852a9448b6d15d92365fccdaf4b00d5bf9a9 GIT binary patch literal 3034 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0217.h265 b/samples/h265SampleFrames/frame-0217.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b8b1b91e441212e3de39aec7515ec21308684c4a GIT binary patch literal 1721 zcmV;q21fY+000330oK9))I$OS*uhoWW(NUKP>KYBU`P}OKsRuIF3R`^OLf|MR7mTo zDl&xGvCw+U0p2uUseLGCH`t$oW zc6cHI@OQ%*wzRL4i=y7ZTt7etedmrpH7ng#ws0y!Tg!t1VhuLGe2>2$|K;ii96TP* zLnd>5-bg;7%7HTj98>r|Uz2b$=-F9jgaDeG%=njXN0oF|!29{Vy-a`efeu^m995ER z;1O{{*foneO=_G7D4GX=y(^^=s4wEx6A=7&vtKoMzd<|BZpw7u-CheSx1Ak&3oW~K zD&NI!PyoVaZ=KZIkt91>l(`3o6COX(wq|cyk+6j4Sesw-(UcW15s*f1!TCwA-FUY$ z)Vf%dWGzCg|HPqlJw=4qY%sH#PhdtGr=uXhb{4*B?4@~pF>?@{sI$|oba(DT+7X$C zIc5s_TtO^q+F0Z$Np9gNSy5292eA-tBS=_Hl$S9?Bh$HEQv={b(fSC3(M_A1Ia zTaPk>S-EJS7XSVdTZo zm8v?@^qmwg0e=~v7ZOs(jg@(jq8Cx5##r^UEV>$iG7pTG<%etMav2L&^znV~o01S! z(yMW@xzvoWcb+ho`4(JGUq_F*i4sC|YCU%klw`jYEnnvyxD3Rf4Sx+~`%%S!)R1#p z837#SB|8MH?szO$l1VOrQCpAupqwH#SG0{7(Dwz{kH1 zDwK9e{OnR1+HA(3dx$$vt$*C{P?e{!8D~tI&LLw}v;vQkO9wEZp8%KIRL=AN|Ns59 z1u%7Fn6+<~T@S{=3HERDJ7&=EjPFj$*5zh&Lq^E56||z&iYSBFMLYD{2nSQl-9i{c zHa3y4UkOZ%^O!_3QI(wxc?a;uVr;O<2&JmE{+fNqtM)gw`h79wMWvwglpZVz^#N6w z!Hk}aN$Wc2$v=V3EUn(O0iMk@WY)b|63wragw2Of`Jp})v1rPwscpKJjNm|OjJfO9 z2Z3M&EuLMVcr04&0``HL)ad})jFkcToo1zX3>W;NwP+z@CtLlO{@YOhs5stZ|Ni=> z%?1Dg{QyW81=wx>00CVM%1E4G0kbSJBptvIo5+_0d}07X2$^M=R#fmpC)s!?R>{9j z#N>0QXmM-%7}A`!FWMR$)j-{rv9IWs2}c??D;q&HbxKtvqNxr*WF28>j0V zPz7rW|C)K+k7PprVSa)z;&<*)6YR*_MnUZ#{Rk3FS|EJd7JIhH^%l%%u=7ljNUOgL zoZXB8hED_gh~KG#KDUz)3$eXn1pCGqO+EGpSHNMgW8I6#j_$TgVZ6>I7UchZELCab z-!7^(p+8DF*FhBQjV}@_H4Fw#eD=x@$fPV*B4BC&uDp-&F^POZq+_1fkE#L01gOhH z(Q+-;Z4mK#<%V^Hq9d(jHHP#tD-<)_X>xKJ-Ci^yrsj2Zun3pnP11NbFByOfT3L20p0Hx5az~7Id1=hI7E@FKz9&&)t)zI$n!a1~{sy{yoS6Ow`OG zkbvUR9QGJxwTqw1(&{zCp*9r#gZc;zd3fF++gkYQ;ACoi5}aBw+1ZKmJ#CW@z9> zhggX8HEbw5`(W|N{LEnf_`SEh$m^hnvA90)tbRx6DR?jJ`?t5xFQNr6XXST;w);OB zI^O;#t6U$HiDFDS>1@Xlf^Bh=eF%UukcvLWxhQS$n)moiWIbm`e*+{!{}&Wjt9Uym zFXanZ=^4_7M^G@%_gwf7L)Q1TufRHnmxJHU&TcQ_IY8n-FoXy}Kn*wzX3euTb9XN& PI(V*t6}S$y2mlgrGUH2m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0218.h265 b/samples/h265SampleFrames/frame-0218.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0e6614aeb651bed5647091be77aca7d3c746c505 GIT binary patch literal 2046 zcmVk8j0xh~< z|KI=hMY&d$bl+ADSeg8_G4E}zN%CQ~1iohCvR>w?2pPxtjr%Gz|FI_?lb7doGcf@9 zb&tN1M%IHm<-7Gp7lJk&Tyl5o$I#&{4$NDBXX6^8Z{Iv)9?_|DmRpj!mIMn7+al6n z0#V_zSB^cGCrr6tsi!JZ!#n@`n71WDyOm9cilbY??7`YF@-{pi7 z<~Xpmn`a{)=e!*bH<=j5+fMKqw1-aPTZ)||q0$O#M!UFL@YPtl{N~k(+u`&GPb@5b zn->7+@za8#pgf4Yi?{@j=rZYRlfIJo0>u2ViV(Ckp*P~)x`fO4(;qoHnv=G-ed2p* zoP#UbJki!ku%opegB-|_QWZz-X7`L#t!?~ z6NP>yvl9&iopCtdouU(j$stJVrCDk_Z#sAq92Ajg!nj7}MUxXzV+J03%; zdmPhKi+65){#{@owa+wz*Rax3IPVB^xk$p<^}Sts-*GW*1J}L~XuV#{){V!5pjOkU>AhmoQBIe_(#fVqM zlV;PfgWvGSTE6@fj8Xru@_#Yy==uVAzZLo4#d)7a@PFWk{ZzA4|}R#b8(faWJ9Fa@(^LDW^b$$_yyJe|N7t7{0~n@ zq3eA=z3w;RLDP1v9unmvj#_#i1-Le96~r_HN`|y&xFVsp@!Mvxe%-{Sus z<0X#O1oi6sbsB++N5C2|AJNnwg4O{-@-xtZ>p%bB@%elmG7FpEGx@14OhUEjljXM7 zCI1WO&)(w?i`AwLj-%E1&vXEE)J$FQ|e~ed@FKna@XvRsDdLaOyh`I5uF*Q&zM$lG-aL9_!lzTk*_1!=Gp6UBP zWq|vI<@O;VAES}nu^^(>fKQGg@1uL7>2ohH=96SZOWH49Y1Z!Uyj9mo&nli*iYdy* z<_rux=WPHArNhY7v6HHrDCig7o4_jyBvUk6G1mrjQ=;UOMS=(opjOaG1t|Ngq{ z{hR;)eqd#sO#pSk07w@F*lqs+0bLEsNSt5+vn(KUFSplDTaS_fc|#yWaltV8mn1` z=(mq|Bi4%(f!y)JP=!$PpZ<7^s`R;e+UL&NHN&J0_K)9u%4ql-IYPnk{&^EsT*(5z z-2RAKm!ctPpL=YNyGiV!9P|FFlx$WQ3pta(7=!=XjFj$yQF-sc1;yemf|kj%WJZcb z=ot4Q)RuX}t;^l@Cx=Pd##ICi+TG+cI6j~h@}QN?9pp?ooHq6=Z+4UvtD5nBkmF<6 zb@-wetU|?{rU$rV*F8p-*r@ncYFLw3&B5=adLZb~fO&=AqMI_1wPyn}#kS6WxfaV! z>gf$D4+TjvZN7pfpeJ^kCW06sALbzr1*e?fmuk>+BwrRmGZ>7iX_hGnR%#W3!69=# zI&L81_+Hxncv*>B?)WH#QI$q#99x9D^fhUi&>>`OL*-b}_3Qav zf0uV}+iQ5-8RJ(;*}=>iiigqW{^w>O;H6iVHc18xY{z$tb1DL)YE@_h0TgsUWRM73 z9uZf}dIvfBU92zGbw$X%8)T>`C(R~?ip3|%!&bS4Q9==HFI|_C^~qqfEBn7wFm$baPUI}RsaA1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0219.h265 b/samples/h265SampleFrames/frame-0219.h265 new file mode 100644 index 0000000000000000000000000000000000000000..702035d5e5552c2e5716d18785cd42aee0fc715d GIT binary patch literal 2538 zcmVPga`pFH&8gI)Q>o|i z<4t~Wu1J@vC>6-&9h0lher)@cr1y85>zuY5Hb2D{;9VwNRdX|13&tk=3HMp} zGRVu52mne5k&x_i@!iH?%yx6=CP(i?T}j+$t=%N8>fqF>`lBRnIyVyFiA*H2f&^XF z%ORH@#X}X85ZZI;@y(qEMOo%ixlE3?Ak2e6h`+VD?;Z8$*m%fN$rT9etbfDS`z&R7 zR=HOIbG*xl{!r*0Uv-=Ze|ehoEhpR0!5Wk(f;tY1zVXbB$(%YMPvFOJ4lEH!Nm$OG z0U|RHVR3fuATk9;szvT{4J55+f(1n-VL@LoGTVl@XjPB*Ct9@#fCNN~-Yg9CF+(5`GZ)S^MW5L^tzJK3_5 zPM0tK;SScY0P`G*)nYf#=0y;!ju7Iz4ax$3sL!Ov|NoC51Qs?>`BX@McL#NZp^yOa zp>tP~&4NSSu+|#iEskroP0M>(mR_QHl8Y4v zV0Djj)Y~-P%0SYO4`g}5U#rxxlGll=(FWs^-x zmwJ*dw-7%dGZ~8x>Mi%&p^>P5?0?b8&hR-+e@3q5Hf#qBcJC`NzgO0Y-`c;Xi~%uS zE@~aosd+adO{YRQ_y0BoZJkaM6rRm|)Z1wyy^gfL%pc6bM@{w+@41WZcLfnIx-a98 zz~TVd5`oc4E{+f~_rTuLZ~>1Q1P*(8pFsRaa;CQZ^f|;z8Bn-TF zjoWxHjs+J2pkZR5u~&q{-HIqA^^7{WaKXsOB*(&=b=wOY^MEu#B=<>dAH4evZc5*< z3ITZb2m1+VK!}9(rzDO3G4ga@P?wWq%b`T~wk9zU+uSV%bEFMlTmf|-(bOM;)!?gv z4&XU-@V@{5=$1zJNj|BaDfcU;8`2uFptEKO%4KWE|B-#i!^jjsFbLk0)8-d`*Q6QVSh6x@?_0QXS^G&OvVu`1#% zSvLJ2lbMjdD}mq)wQMiUj=1m_5Ri_TJ!u*+PE6yBk9a^^Yq=x4Upe|>a~Vy00tFVf@2q2HLp zGfWb$)eGF7oq&pS++KmRFV&LBT_|}XqzO&(o`zIMKLXtJVIlp)3s}kGu%ttMSGkLOz;McplVa+}d z$d15f(7U=5Y}*3s`Pekp{vw!eNn0;ymY4jK(`)G=;8HtPf^m|J$NhewFI7b|S^xQq zPl*Sq^ZS26Lpq)LJ66ztew}uZtV$y4oT${b>b|+D&vY-kS`ht(Jk9X)J-~#>tNEZdzZT|oPT@A`eoL~X7EHWe=z!~feU65cq)Fxs#?{7at zQ6%M0G1eMwk)XiNiT~xFZKTt__?^sPtRhRsKjqy5pd1x3(C7H2JpDQ2(eQaq)0rVI zfX50SIm?qfImt;{b88V~e@k)_B;Q209(HOV z1bkuuLI{~(6(0I?vk|2~|G!4r)C?@-DO(-@f`^>^Xm~NfK$SJU!$TApruyuZqUS-t zRZHgyvvFGRPH6Qgf(nwu`oMlF-DsP$w;EkPEw}vq&nTT64Juic|HXcDgK#d=^Gy^K z)o^n}9TCtqF%X5Smy`P7@afS9 zhKLW&oehO(M_k@0N{0q&RU&HbJ7(s&RJsh`)cd;*X+|}2XH%ZNk0NRw)TLa?i%DCk zqsm6}W2>GFwhlpgA@n^jrHo$a2EHmAUywG2n&S(|8oD=KEk4C~m z8Sanu&lJdn?%84rE$g@1C4aaWVGS4*)sq+Z!>ima4>xJiR(}U>iPlQ=2+NhzPo2{qG@3<0`>dmXF(|*sS@x&Y_BouQuSHJWxccqD%+W3zC?enh0 zXbx&1*#Qp}^^En{!;jJz3Z>ZIiHbjro+d(^!V5cVfVaj4v;rew-}JjV$AVj!^PQ6% zwnIkk`aC=2mg*>}trCrPbEg0I&uW+e0hw2%FYNobx5_Aazc1wrSm_zkhDT5^&i7pS z4@1`XwXeWBhL?li&CYHw;yFO#Krn;|K|l>S4Q9==HFI|_C^~qqfEBn7wFm$ba30+5 Ay8r+H literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0220.h265 b/samples/h265SampleFrames/frame-0220.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8e7168fa64de3c5a3212f619bb99b5cd213640ac GIT binary patch literal 1902 zcmV-!2a)&y000330oK|7)I$OS(7{JSP%q(U`P}OKsRuIF3R`^OJd$>0g_NJ z{nXJlCdNYyNoqS|rGx>Ex>2qybmaBUAd)W-P`sgp-~LiN-!(Jw!Vp&zNdO5QT-lN{ zI1NL|+*In@I>Yr5Q_`^HUFr!6*#jdE=25YENZCD>cb>~dH0Jx})4f2#!0}2^JTj3+$B%-pXq3Etfp^X1>q1*wo z3V0rR1yho%@Z0>(vF1=siBa<;z7Du|8%V>TE~MiNU`rdt)*FmN1_l7f7>K`)Ih{o@ zAZvRb-1v(G%7R|H1xU4*>W_66m6bPL?dn!1!X=3Mv3W-#bYJ1Ea7Mghe51K>(MbiZ zsPgy3%BBh5`R%0b|8tk-NdyH!<1 zNzI6Vxo@FC48=&9`dCS_R6ZgGUeVmP_gPQym8|x!C~5PCrK}1c~ zvgRGqnNiDLu8wsWcc++C?T3K;XmT!QPa^Dtv5Ls4ZM`t5m)#pX5{Be?z$+#^KC@@B3~#;5AW4bpNz7d*H$h^?dc#v(H!=tEh#zyJUL^%vaF&4^c! zD&eOczgVv|X+SdIAJNnwg4O{e;=K*h{vAL2|NVtKA1qM7-$dJ8z$|Ou0;rG>`Iq76 zrg4G5txz&!AxHM-1~ez&wPke&NkQ*%nc-{4y?r8=kBs5~sr?rVzm9?^U`wy)&G}O+ z{4TG=U&{D$6a2R7AMePGaNKPMwb;BK!`k88Nwv<0!X(LO(&&})G3SUFZPS9LsS ztPp9FFf!Ioz?FR2ExgE?jyq-+W+t+&q!4O3F5NJt$V({F(%i4zd#oH#uwV7`R`R5i$5bN1-Z zf*K3;#u-x12RZWCKB1D7KlPoGun2j~+6-nK`$quylrY_Pc5_*PxE&%|)c=4hgzi z#@Fo(ECE=#lCb0&U0eKl_?w9Ej9N&5-${|G?SAeZg8KK~D22{2RlB2e!y33kz=)7y zYDy0F^?4OhD?sg@+_8&f6q$0r@?3Mc#w4RZJ5S<`Px87BKN`(nY++0~BODchGF{&^ z(?c;?Z{hl0_oeU1gB5#twQ}QM8VDLi$Qv!G>Koh232U$VF3(~B5eduKb5x5rxyrSg zz;u=?%WCvVt;CQdXHkN)B8@z#NmH1?|3Z+d?fMUdC?tQ0R~GGkP%k}&6ctfARvDOS zH%Di?GR0$)H5ow|gmW~I3sf)7tRTVe0qtur2Rfb90?dNh5PFVDDXX6r zf99%1KE&zJeutC>d(F^HK%v5W3F%G19B7+}wY;?|r+u#&BKho)Xt~j?>}=gEZXdz2=Tlr0xy-$mWN`r+2c#P?6>Q$2r_;1-rE%Tmvk?CnoU4%I z#U+@vffIc0^G49x=72<(Qs|rwW|g~Z`t;B>oHmkuYFT}+M9JLmsmmPVBtZ(nLQF2B>3rFG}FbWOp-)~I>QS4Q9==HFI|_C^~qqfEBn7wFm$ba4NyBUH||9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0221.h265 b/samples/h265SampleFrames/frame-0221.h265 new file mode 100644 index 0000000000000000000000000000000000000000..43f1f4e0bd24d410d4bdb913bed2070cb4fbe148 GIT binary patch literal 3220 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 G01|L8sY);a literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0222.h265 b/samples/h265SampleFrames/frame-0222.h265 new file mode 100644 index 0000000000000000000000000000000000000000..df3627c37c37e18758a21e762db11d31a15f5e46 GIT binary patch literal 1794 zcmV+d2mSZ}000330oLjN)I$OS*uht_Ob1LrP!I%xU`P}OKsRuIF3R`^N{!RRmm}a< ztulWCsYe!KUU-Pm=u>;*Q;U3uhzMkKi{77;BvEY28ozn@x zCftr#k~SC&DxCJdUHa%9;2axcMZXW$G|Js?RX1?ZE;|ys-~YdlWT|W#jA$jzf2;-R z5{$Yu)R@iLeLgQ|oNT?9i6jsnBG*4i<@B8$v6m7uWK&xO=SGf@%3eqz8jh>2Ebd6{!VpG)wti8Ec5q!56t-b!$&xB1}Y zrshRcav}BrRGM`2_;-SAFP^L0Fk>$~5Yui*@rbO)0`vAYhc`C1mI!`A;uy12uzPagy!UD#d6zL4n3{om-_)zoHAM^Q^@GW; z?rWcjA|-m~kzWT2Mg+MY?+G;#Xd&pwkAIwep)hYKl24Alx!X&-BxZpRZy)7P_Y9+m zUfjc5g2sS^=8Q@=5B+H{FrpxX|NE%y!WFHQ@PB=-p2_e8i#J&VpX{Cg>M!_B^4-4| z{H<^ST}}>BnX6h0K6mb_pp9Blkr&3*hr#chCFR#%;PnNc!#c?qxgr7}EotFjA)54i zDEISEKf8ayW$->9`8A(IH~28Z$WP!iRfAj23ojdia#&Z6?L2{nC(?H|ayZ6)7V7#X zreFt5E1yFgsBO8|Z#tBGZqi(!gNIJot!*hNWv6o-cw%HJJi60BZY52*THCf}cACAu z$I~U)Z$BFKkiZTw$uJ67AJNnwg4O{;0vK-JNobSF%K2`N<2Zlvg49S$=;qBGk?21Y zzWlH;@573v9g;sg6o$5&F{j?*4%6#j_dKj9gWn9ZrcGxMv8vhuN696Fm{3oEOYJIW zZ2$lN_S6)@KdG3tcyumLT%if}wET|OsT?Cb;j+e^mBJzSR9JPiqQlAIe`rNJ@}nty z^EXh25YMkHY!||GB}`%w43vgxQyxM5F_@beJp$qUrN?K02XR3gwfcQAPPT8t(j#3{Lp}C{%WtgF1R3o44_H$@-je%i(ts0lmGAuw5Ki&;>Tjix|5aZa?cdS`yO2b!$@ zL1O2?Dbb2OJeR*K7*v; z+Q^V$^VjmzN&Jheh#00_N-XZ{3Zn+V0AO@s{IfXe*h@__PF;xaM3{e{$aw6^67zRm zVC6eym#D1DIR~ncvH`>AMHhguJ~S^vYua4J7>ibtId}c^_11iu65%S9SqhCG3JM}& z={V7u9Ye4UHMruBRB5#=q@QZ0@JAu8v4g4}$BP6f>I z-)gix5Pra`_?CvQbJm;Gkzb`m3?ES)dqE!`WSBqS)!qLwmKz^2%RDP#Tq-+D1tYZ& zMygmmWF3oh*?2w1a@UBFhcAT4#}M>ZS%rmsg|j;Yu}KTl?(uocSQbo9nUxnq$G;1m zdMstA6^Bx+!y@mW_y`sjf;0KtN*DHdeke0{`T^e}iXIGuW zi_Di65p_iAQQ{~G?|G~-2RDo_vzJ_}ov;)iD_q6cx#%$(!qdXi*tmgbY=>7A{Nnb9 zmxw#^4PSyJplI(yQuf5|!Q-&THLb7rltNBT3SdyJ@{p-6-+S4Q9==HFI|_C^~qqfEBn7wFm$baMh7^R{#J2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0223.h265 b/samples/h265SampleFrames/frame-0223.h265 new file mode 100644 index 0000000000000000000000000000000000000000..23bcf144d34d3b2a62d3c47ebc97609edc66f85a GIT binary patch literal 2001 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 J4z&mX5^$PJZ=?VK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0225.h265 b/samples/h265SampleFrames/frame-0225.h265 new file mode 100644 index 0000000000000000000000000000000000000000..42917b7d13851bf5c0da230e1181b926eafd9046 GIT binary patch literal 1957 zcmV;W2U_?5000330oMWl)I$OS@WELM@TVz2NDu^pU`P}Nz(I>I0t;QKz)utH(&9by z7_Z$;KUj?_X|X&qdl@Vs3~rkkB!jN=K(BNI#a^*a*6zQR=ukWu7{{{yx<)v* z2xWI^4E2>(ricI6a)#geiVc&^T`Gq6&zQz0(shGEz3=5M0wQBk6dty};okC9f%?Iw ze*i%h*XRD^i61TdgS4ddNqoLvV0vp>XUp#hIN@5G5e3K5{VfBN{E%&wn7N{VeJb}* z8c-wSN{p8XlG@gLMXp0sh#aHC`3UMVP-HB7S|8J_=Yb!_CBuf$F+}(^xJtE!a}b>6 zWN}Ww7iza@XP>}6Y#ax!bL%Z9R2p5chB`>gA0P5RmM=nU{FQqG!g1{$x`od{ zbvC5^QkLVW;?WURk5Yl|LH5`g)M6%=?m0Chp|1HD&#AyB;(Q+q9}&n_d13>8blz(q z*v*m}S{+@<9NR~;N%6-j`|Y`J#n;F;|ExW>f+N21_NPe^40O|wa9y)aSnAsvCN zC3iM+7(zE6<=tXPqkw}9^+`2f7gS~^WP0A5Bozz;FtJ4~+B zA*#PaU+lm3Y`)G4Zt`fsvGc>V29W}QK>O0^|KE2H4>M^d5XuH*&X$jo$hc!K=c_@2 zxYeM~NAMg>Vcw~ZHTc)Z+*R#Kv$E9Y!0BFj453HoKD3_tNVV`73nTUZ)F;11atdhq zSac8L3sz$WtQXNdcIYl%%dkiTD;NLYcb*_pn`<;BfHueIt9)L}c^2?3gHQ5NVWBq#=LXW%K0F{)LqX3evnl>3+A5<_Vn~ ze?LA0@q$>85WfJtz19|epyTfE35;w(81++wB|f!#Wbsx14azu&0sgKucL&2_ae zp&bAJ;H1XwZ=8y^%uRNsuYfRM06`>#(Lt(!0SPvROZ}4H5W~H8VkKE42!HijgUUR{ zd*ag_B1s|jSrW06tqq}1STJ&BB&Y)iS*88R<+FX~gSsHP0~UK;pc?uy*iI>$R~QsR zVUKf)QAgv`3_-zXeSC}w%_W5lCNCXr7hLq2Ru~15`z8Y`iZVpv1vP)PNoxq%-A7DX zyTiFrP`(`q-#F+9$>N$Bm=`3%^u#bYNWu!uo-BcnvA57XwFs;Q`}Cl*ruLOr*W3&N z64xj+u|DO7;d<-!ugcrEsI`G0fYM@My+@I0_!OjAJ;=)H=ISGY(0j!0QVK)M*u zS0^G+Fz{hw;e)^Q6>ioe7bRAMvx1*y3w+2xNakp7bafipQ{Af{|405;B!ISPIW?9s@N@*v32 zH6U7!LJEY!pO^|`IvT~b7X0thH^wrY(z()KvR~$xm2R@21M}JkHv3?#l`oa=Z$q2A zuY~8iFc4hD%j5V`I?@^9=TbE^Hn@}Fn)H{<`!wM>#{e_NJQT1s7>GGY57XaD_M|{H r$6A154bX2*3OhjF^F0~D{(2Bl4Jb$UIA2pXS_|=A7YGiu2mlgrXimzF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0226.h265 b/samples/h265SampleFrames/frame-0226.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2dd1b8c55563127e896d62c44db909bc70bdaf87 GIT binary patch literal 3924 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0227.h265 b/samples/h265SampleFrames/frame-0227.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8323ae648e736b5dabf6d371e2a7dc29b9aa930c GIT binary patch literal 1853 zcmV-D2g3LO000330oM`#)I$OS*uhw8SwR87KoA6hU`P}OKsRuIF3SzqtRarZvH|P& z?J7kPWoxXQ`iSZ6SI?ysgSd6)_&%!f?9mADU6;>rg^}3mRS(Z`bZ=RI= zGYHGu=6~+GY#0A7P3f^`4DFMWG9JwEJC49&Fem@nKmYv15w$f!5u*>CZ80^(*jD5I zEC1?*p#`*tdmh}tAG-?s*j&{K7T9UMw{bN}|G<+)+js8o$TdUx+PQ?t-_LJUO*vEU zD$~$9h5p}e|NdR-44I|PueJdzsV(svS#-GBd7YsA46{qsM*Ei}zx;5^!KV7$(ET5k z_`+jkABN@KopfKP(HwDBV+~`oS7PXG#a@B;L6?#h3|S=ebdtGcIp>6l{DIpY%B zX@;89tu?sEMmERXd&~VR>03*yZ!X3hpj9bg&2|!ZOt;!0*Ul&N89yQh39zkq)fUL2 zH^KA+rBS=@_qOU_7Gpr+r^^m~yhO^(3%w@anxY`N6oK5NQemm;y;=ZUAEh@cCbd%^ zJM4g%djH*rdk*W&b~I)avxpBdwLpc=V8c0;8~GoaUHBupsMYb6FQR;EOA_}CjMEF% zJE6Biq=(Ds`A+KVQxk@@sxdQ+5aaZFBVW}SRVY*^BMq9VU;Mk!Uc7VSeow?-N^p}w zGV>S3&rkpx-+mS3d{1?L31{0k$Rq1UGW>N!zC=&fC2l|R-+R#s$j|pv;tw&65`xX{ z5=_o%w8Z9iqO{rk3DDST+>iW92#+=Gs%Afu+m>4euPMAjND z^cmEoEPtwA?}!bMH&b?l*8Dl|@fKZt`iPb~xC^6LV{nYbLT6gty`jrpWYXk(uDWIQ zM(PB$Eo~{t$}I%)b!yIC#%MahN_9`f057KgH(FME_7dFMupbYUsYFZbqD`K??m|zz zQs;zV*yu#WXwa4q{T7DlYQou6%GT+}l;E8JoB#x$(BGiNfC2p<(bOM-zD0HNr(eGD z6%+7Wa=4wr_}Cvi@2745=>r?ok31b3s|wz}eWWm<*&Wm+MZn9fTbA;u#BSq$*=i=4@Bjb*{j~)bU)0Q6xDtz>(1_m0=kTlZ z;6cw6eOp)P^v(bqjs3(E1{%p6rBmTN1ktGZ%Xx2G%=5o@Y`q!1Yuv@yo&cTt z5+(paP-wKz`xN2)rN?K02XQr1Bin_zib$4{#pqar$PfV+q%6dF!}lwW5tdcjN8N|7 z3iS<*Tb0D`7UD9|j5PDjYvnTG@UWr)r;AQV%~FbyqR`wRK8Q;h`Y zQ1XEHilOo(U6VN5BEhy)GG8%CmY8a&!rQe+(+~$p!zG8U=}c?}HbUB_Ua{mEL#+eX zK@kQ$WUymvI8R)k{&G5-u?Z(fK10xoJfhwJB?e3)gspUru+ zWuZ2JtN&THQ;?%j3ze(2d4B$pev0~J3XpWJvDqqgKNiPf zK3sffLWn|t#RDOZUjNmBXB*&z0FC8(^ukOq0T9V)V=aLORkL$7q?QDb4;R zKXI?i%6?|z@Ml{cokVv;`$@F&Q4=X{7^zlm6dX28XiCW{rERo@RzFe0s|+Pg_x86I zMPfD%J)eNKg5%zW*))kNO4{PqJ)1k44qq_qPt&q&H3B=S-vB|i-3_T?q6GYT5 z#^W!Lj;?pw5Tt$cm$)?L01diV2rtT|O!%*@Re6Fmj#)k%frcF-BYzkLul^#O7e5Z^ zEtv^`>d#lePr06g;RInXk~}$p;b!+vg&f&?EDXpy^eJ06SeUCxu^32HYXd`}n5LQX z1sMcow-&1Q(aNE52d|loHiYMRqyl}7YE4`s@!qZN2EK`AlXh#Gz-Fv ze||%FuM-7aB0VnsLKD%`lUD%g@fW>U>pe%O--uM!y}Tk;T`YHqor|RY;MmXsvn(v%my=VgNl%+VBN0?EAO3$|!liFXanZ=^4_7M^G@%_gwf7L)Q1TufRHn rmxJHU&TcQ_IY8n-FoXy}Kn*wzX3euTb9XN&I(V*t6}S$y2mlgrQE{Lg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0228.h265 b/samples/h265SampleFrames/frame-0228.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5dc78a73e97010cb4594546a33eb6e416e122f72 GIT binary patch literal 2130 zcmV-Y2(9-3000330oNJ-)I$OS(7|1UEk*%=KoA6hU`P}OKsRuIF3Somr5=Dgzo2GL z$b+SdrwW>;a%>=f|NsBocnW6zN#b$eKHQn9ciru^$@!`kh=ZPX|~tX%5E}c$P;nxY_F5y7eZ7 zOtF>Rtvh?J8src_pfl6{U5>Vxq7)rf{ny8# z+%tzoT1;Dah!oP{^-qmzDYg+N3y{SQSm73X5I1*o{TBpfqj9Y~^O4H!H=&PF z#nQsF2zN0|2Oe5<$fx=$b}X3OA2{K!5J}tQ-&s9NF$u*Y?Ro~R`)7Cxy4UPik=1}3 zTOmZ4JcXucJ0MHIFUjc};RV(6>XT>gZ;l3T&jG_gR283u-PR>M3N~%}52sc9sHMx$ zlKbfVk2UK3wu0-k$|d2wyr1Pl1upH-V zq|%I<70c%Hm94U%!LFtez(iNO?Gy8!ebQTUDeAPAOCv=2%j=dn=Kyv{F4{Bj!Oe#C zmPZ{qV)@`4&)uL#r1b9LWxQ?>YYA%i-=`=FFx99D$oE*^U>~^AjK1-_cK(R1y#4!t z^32QMfQd#>OHWL;mtfJB<_=v^a-ew#Nw7JYSdJ#zq@*z?N{67ULmlr|^h)^^xbBN3 zYhm!I9Z0~uMmqe}{}2A}_dgZj_j^AB_Wu*`&-noOb*zO`UeBuwv@+Mt7*xV>X;nYk zbnRdG%wQwH^*gSq#=WYfpi_6r+g!kEKVSYX30g-bHI z=~ZUKRT}F)A0iF7f;E;f6dT(v2ef9l)so@}9J`pavIYG9i}_Um5Dn;8u@~ylC*`x3 z?c;{t7dqV}E%*|fA|b0jf$iRLadmDKQ{_S?=PzNR3Ri$(ZkhzwZNNa<_Rr)j4Mo!y zIO(v}u?{G4Oeg}+!5gVT9KuR>KE}9HtKAV$M`O5k4d;Hvp`i_A0(u|O)E|P@ z0W;}WI?n8v8qfR@7U2dz|NsA^%i!sdT;DDq)7ffb6|$Ntf%{mO{4bY3dyGCWR+u%q zk5}V8&;Z1`MwZf>>3$x7sW}|XD(*`enqREZp%S-w31Y5^5POR*0MtS#Q{?iQZB!a z98Zd?VkPXNHNF_lSJwp#!{rh1)C8G*o$!(6|{jaMM5_VO>$U z00CVM%1Lfz zgU+FTYXf+>3NYJilpHySASPzi3Hhl(?o&o-&L98xm**F^PJH`uMFm*92nkb* zGc360K=r;?yuD?OE1Cn5YXxPj;Tjyor?5l5r1EeRS-4#i1dLhGzZx?6B$j9Jf7t@>*F<@i&?A7E%dHFYX>CDVr($>T#nMqdX1OMX59xFfZ z!*6Qaqc2;Ie=Ffst_TFX&^#c`!EbFBH*DF7YM7-PQ{%t9?bj@~uJBDSYbch;0-Bw6 z(#9%z^v2=-T?l|fdpTR~eV=7` zU!YiI%dwz_gk~POAl=xz?Xs6Gqg@_8QQ_V>{UmEq&u>*S|50h+$k?qw;keB~F1!yM z>ZxB)#WgDb9f=B$d4n$+EF)cJ^priF9i=!Y0dArv#HnP?D*?uSZzMO%ewjz$*mI2< zA)9wVuaRjcwnHR^_8rZ-uqn{hP$Xi9(i}m|ss29fb`$MONb>OaJ2V)1ICNP?t`_*H zq#@U1ra8g4-I_s(Gy&roYTgMd`qN5(nB$+JKTvE{N|%<7_mjmCSWF7}wDz{?M@CO= zH96tWAS4Q9==HFI|_C^~qqfEBn7 IwFm$baA2M$e*gdg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0229.h265 b/samples/h265SampleFrames/frame-0229.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eab44ea4ba2e54191b147038a5079cff6868229d GIT binary patch literal 2361 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 TIA2pXS_|=A7YGiu2mlgr176rj literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0231.h265 b/samples/h265SampleFrames/frame-0231.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a015bd18ac53dc7dc57cf31be1de2141a9faa652 GIT binary patch literal 2848 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0232.h265 b/samples/h265SampleFrames/frame-0232.h265 new file mode 100644 index 0000000000000000000000000000000000000000..271af81ab82b62b15f9df10b120c119337d58a85 GIT binary patch literal 1710 zcmV;f22uF{000330oOVI)I$OS*uhoa!U+L@KoA6hU`P}OKsRuIF3R`@%KBFv7fd7W zyuK>0_Z+|fs`YW|ZGPrKdoOS7fJnF{sDH84yBHBaujuQ9SJ#TXL1=$PemmK|A%X$Ax zQapFInrg2Y5O$NE_pb37?pH*J%`^c5X{@4id`TisDPX#e{Ly$foFr~lpN=s#6Uvsv zev&bDtxy1XYe9Y_WwcHWrWw35Q?n(os(a(4wrqCrbs}DytaZEM4C1B+ljs_8+J_Ak zxezgf?&a$x##lYp?Tbp=9?7;^MoUa5r=_Q4Dne-U!Qixs#lD%%C}9`;;};ywGWJb!>LkAc@=T0 zPP7CeIxa3J$$P9(d%aRU)4+{)0h>(7@8c6)7VK% zq$GQM5{}(h|NsB}wFRE**qzhHK4Ot6?zfNc{&`2XYsKl`Dek3l`Mq8X78YJ-qgjlA zKQ#FkPC2Cy!WAbtT}9Y+)I^WLu8(h^7hl-3i>0i#HkeX~3x7!wBGoiXJixYKy4@Ra z@}bjt3}H}s^10BS0lV!FCkbX7%P`S>Y`Gw2ZY zX}x~b1X^l0ij+q}^^9~0A#`EOU<=ttm=~)OkCt{V^R#&XrU7}~fu6P<YtrI0{ z0u&Vo-8?~d#8{FzixF5^J5fkn#yRBCIQ9`jZ$8+T`NaQbvy`w&ms{*JsK_if z(56G}>tkJ- zIGI>b$G;95hn8?>a_)m(omBb83)i6-fn^9Yvt6XIPu$(N@yp~-r{-jamP4WohEAHe zq7refRR>H2EZIHW-Jv{L&Q<%QZKN*JmXSyQrD+nb!DUG9 z)j<*?c$=;37>K}oQdEof-Nwt6FeyD&-$dR&r^dLr+P&?>sERqMI`FCG83e)al`vbc znSoc83hyc46HVU--ttUTp5n?gMB^!&#OaIn+3nEFR0d&Zl2cB^WZhx4Y)Q74hiCNUga8ZaDks?t$K=lp=eChK&!+B&WDX|xjnNEZdzZT|oP zT@A`dZKkZzuA~98EHWe=z!00!xlQZ@d}07SOxo}TFYNobx5_Aazc1wrSm_zkhDT5^ z&i7pS4@1`XwXeWBhL?li&CYHw;yFO#Krn;|K|l>S4Q9==HFI|_C^~qqfEBn7wFm$b EaPS{YH2?qr literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0233.h265 b/samples/h265SampleFrames/frame-0233.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2f26e470a9d1679b5f73830136dc1d0f2e468494 GIT binary patch literal 2014 zcmV<42O;I0t;P>F<%gaxbON?ShT!B%HQy#Iz{XV`}=<~^zfiT-30@4=5^qXdlfzL-OSiJOfL){^` z0-c%hoTmMJ-H-Y)%)g!{XeS&NW`GrX2>_*2$5@ndE4GNm^S_ww!-Sumi)|^ACd03J zmCC^&B^^@S>L_`Saarzelj(+y8vp!0q6#SPCE0iqf^Fgnu6I@JKo^_+i;l#f-`@ub zkMzKNydOk5i`rTogn$Av*RaQtV(wkCRKJcj{Y~pvi3x12TS4D;O0Cqw=BtA|B*y#7 zVNoLf(fnm6mq3IZuDL{qmMU#XL<;k!p0aN=p=F&)W~p|b=7~{mBQI*FbeVhd#h1)H zEed#O5nli{YJX*a-RdUn)rC1)?>w@Q6_BcF;;{cZ@L+I9;#1;7@krSylzE`y>+QFA zflV$SRQT4Sn{yE2w-k;zs$LUIDZA0%wvDGtPqg*jz~jiEP=a7EnVy_IXl|6jGn`A2_p5liHWfVw6lDy zty^jIRvpA}q0~|NgWY*dqu{8e1RU|RBmm!~PWp9{eAEF#@`4#>vHsiJb)=TU@tgCr zW&!oUy*q4cJA80!9@@A?QhAc}#ptNaWS(*9$m3@D`_{(RJzMk7ct_qDigJM27@aAH z+wH%c+C4!c2gs@_)4v0_J-R%&M;$VV3T;#?h~aA0p7r$qTn z?AcK<>jy6Wm9wxXTi9q$38zx`2gN_+M#Yc`hb+i#ZSjB-Qc!z_u8QUo=LMg%nn#W7 zGE9NYDtg!e)&k0!A3=P{n#KnYZv6^B^_Wtb!y>QRu+%{_wiWdSE|eFs=7fqZ06aSps(6GF|0e;xSd`FLQxTMV za{vkTEag~oc7BLkDHNe&tsazQ>onMhSXY_uYb4kZ2fOGRcX&X(i2&^1GzNf*D5gFq zQ`Qk!#WaEIN2YovJLw#k)^RGbA6ed7{{Jrlx(Oec!k8lGkUa9w)B|#A?KS>->%;`a zeS+%T@%fix``RFo@35da44^!M(*h`Dgn|5=L|!ad5ptqeNS1lYTrdXk{~=(qh=~=g z#HHh;(BHiXylgL{uR^(ssc!fjw@H>UIF(<7ic0IdqiJ)~ciSv%p`e3fD#)-1qB1E* z`0RNLzxo~{ZE*RC;VTa#G0Xxf7o*i`@7;?uNf>X0wds}S`?!idY}96Amca@;+XVHj zhWwVQn;w6z8##J7LnT&!he%r-@B)B5aXu1I>w57h8e+HuU+QIW`kG3q$6ldXR`83d zI~lgMrH7hAA}}6kS?y5!Jo%pc_{jAs^zqhN5n(?VsZmr#;EIgP0mt_$$4^hQa^+oo zHRX**8i3a83t68KdA&h#j~KDJsl)@CKh9&~t{Wa^DTNbBi{Bmw(75DtFS z#25`V4R1HK5I{t#yO{)n)n(=o`D1oQTHV*~;pl8rWdG(20AA z3^k^Fr6`hIVkYhj%$v>kOo1FL|2u)s^;sjlBoakQqWy(|VgNxTgwa8&fB^|Mg-MJa z?;ruhJd@rL=mcgA4w@1Ly1IZaIC|<6fHt_3;hOZ9%=f!v1;?Pz@+Y_BdZtHd+huT^9%rwFm$baA#Tj2mk;8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0234.h265 b/samples/h265SampleFrames/frame-0234.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f1f2611ea3e53eaccd1b9125b3dfc22ef3ffabfd GIT binary patch literal 2821 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 XX3euTb9XN&I(V*t6}S$y2mlgrnSpc~ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0235.h265 b/samples/h265SampleFrames/frame-0235.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ecb59e19d7a5e5d6c41d1815f5b5293349ae1258 GIT binary patch literal 1868 zcmV-S2ebG9000330oPIg)I$OS*uh;cE(igDKoA6hU`P}OKsRuIF3R`^N{b*eN(KMA znkJ;!z~b@4D6+OWkOy`2W{KW5 zreFWpa)#geiVc&^T`FGqXz^-yp$q`A)niD1LU&Mb+76_*`Sww6euqF7Uq4j~cVr6K zi61TdgS4ddNqoLvV0vp>XUp#hG`2fJg_ zMIafpRa>wC4vxm;T?n*VHkf|D{5H03mUjZ=6~ZJmHMvAvm>3qCA>p>d!yx4oc)qz_ zyHeNUPC<*4k~oc6xAJapPL`>DU{Ao&4F=P#(2ZDK)nuG(L2(2py_*S3BgknOn@DmX zqWYguhx?e)ss+JE2QUjpHcNZR7<+jj4{vpp{}Q^!3i7PyIj4^h?fz3gc@tkEOgWzRCitKP+r6_n zq3b;;zi+zEqyQk}FyAoN6^0usTQ~VuAU%h)NFMI-p*w!;%+ikjQmB1VXm}C5R2l*X7ULWj7Gh7w&*Y>Kvq3Z1S#>fKUe`#pGCbDH7*g^mXtZ{m?hz zgPjLhfdcqS%_j!Sc3V*Pnm$y1oGAzt+_}e@r35FUd`2M>x0#V-4I zV@O5KhitRGiIf$^bK9z0#yJsNt{VWcq>bun2PA9j+VwxLZpWiZZj?d20b}&cCDdiu zG0k~vsI!{1b=XW}q09cniG$uq@;N#H0i(27h9~at+H04kV%x&KU;qFA^*z@jIt<9a8G)HW?S}!|8Q3g19qH19ntC@8(b(Fsd0F`DJm9T)t z@voSRyiAtVweh}U+i#H1Q?^Gg%oY|8fZBilm62u70Ca#K(bOM;)&bE1-C0_dpo-{C znxfn3P@hBqi|_yc|3B>cWnp!N__87IA`%&p^N0}kUx%K0MhOzVK*&MrkL}K5LVg=o zcrO4)(gg2w#Af0MnW0eSb}Ayj_VUj*&14~qQ4ujdTQD);7cSwUtLBhjl=BE*PlyBR z3%}AycjHE%SF_;c*>BY1CEG3#wT{YXDe<)ZcY!vM=htom+#}+ZrsC+7Pp@9@n>vd* zTjE1epp85B37+#*tSy~VV>8o4rv?FL*0)9(f-^5R_gGp8Ami@up(-2o$Up+myWeUX zilXug01$7Ys6`dZLoYnW5*Pg8k?;s{Mfl@MtG%ciBH}+5Th-pL(Kt&R$@)9UNYT{D z7V%FdkrJT<0(D%LKt(r%9QkE{vi6(rOpsJQxbv%cBoZw8hX;#tFyJKplC@s*U;suG zi-m=reg4d_Rd40CaOs{oqoS)2cmNfl8j56mu1d)3J1_n>SJdP`pvqZR=@Xr}KNzIN z51HppI5F)^cXeP8*3iG_=N-}=;JzTuZKf(HybzK_z1(VjmM4j^y4qn3YdljkFo|Px zaR>+U?GFFBeOM7#^EeE;P7GdkFBAHp0zD5s5u9>MKAz9dveD<_e`l+TfC0CStInX4MnYbIyc4V*8x>$W8=4BxYpS$MHWwbBKD`|YpO8_VNh zsM4?6Uc2_h;!!l8*MY94s00UWm;0vy1C@FaW;Plc1KLY#)?$$6CE~@Q}83m zwieXZc4h(HLr!j?vQN225Ay&2B%%K!@`bk0z~l70FSLZpr?28p&&j~OWuqGH*C&QE zw$NE+!~;}fizma+pw;fUXj$1{NlX(Z$qxTX+nhSqv_uZa7!{zazyJ#mIxDK@l G01|LO{(-9i literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0236.h265 b/samples/h265SampleFrames/frame-0236.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bf24587b9fe4054972a22ac9d2142d9eac8cff9c GIT binary patch literal 2823 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0237.h265 b/samples/h265SampleFrames/frame-0237.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8afb6bf4cead302237a595e83f399c8bf7818c75 GIT binary patch literal 1850 zcmV-A2gUdR000330oP&w)I$OS*uiiyPJsXz0sue>0bnEr0LV9Re=f@S2F%hbXM`6U_OSjv#}K*9IfH;<3n8_MY{)L zkj%H0T1&vz%(#nY=U@u3Ng&_1R8nasq5L@-Je5?kF$X;%_7Smji^2#)Oo38V z`6nU`Vb_0s5u@Kqw5?_sIU;Ld43O#76oQi>mB zre%A!KBq=Miv=^kP~0g&JS$Ul3DtGeS<5gDNgVs)^%7nXld4FkwYd$?{ldT~(!3<8 zgeHNAZm)oX&b|9KCy>5tkwy=98g0{wT&A*VSl`1D9PB3XE&kBTJ*q;HLxS|%9BC{C zlfpG%i&JZ>$dtedW)O{ZNpPW$yud;Q?IEOUipi4#hpe4@*Vl;`c z0agzqumovT(_^T!gP<1CcOWscS|38?XKHkuu&vqlIcH$xHZ))!D`o~#>A(p|PA5ZE zk78mq!}DeewN}zLGq+BLT}b)B>3AFn&ui495}=IT#sy&qoWWx0;ake%t3AL0k(f}v zPOZaW(Tbz$jwvjbTl3e%6E zg+a0@XCX4fAS!y`H8T)EfA?{~F`-Gwh_Knnt4QXFzeC6c!8U~wciJx2DsI%#D?-<( zlr+4mR?;U$ZIsb`xPDrW{AXY98!@HpMmqohbV**ShAq^Dy64qNbR+~YUJfUJcCGFu zsv0@<6in<}?)NE1kL-He6R+{HrAW*&0h>M{-`Zg)(Y2sJpA5a`KG7n@D9+%H~FP83`nJ~=iP;%*!-LI+t1b5@8e@YRqss!{@YGRH9n%YJB;N7$XN7f>LymwX9EiXl(bOM;)&WBD*{gA%-by9I z&s2Xj%XHC1$<=T!2AyxRC06iJGsssUyJ{VOdSbJ$G`#5B+nsN^9u-HN2c^m(QA{F~ z6B=kPg(}hf7~1=~?Yvqt!nk=q|KIVo1-hL*C%SmZ4$;X zY5E0C_b_)+JfzYmx?b1q_RpnS*vb{8V~+xuOg+5_prosd&$9{|H$Lmf4_k{QSm?jy=PIB0*;zCK43aW4DqqY z#RQlrg{>(AAdjy!yXXHVmhmqk7T!R~h(iiJ+oucw|CdT+aY#Q~wAT+Vfe!U-GsxJi z5A2UgwF6(^;;~=Hx_x&)z zU$m1$p=&9mmP;oHJ}5}7CWllNabrfU*4>9O3a@&glG6C!JGW}9%E_tB8d$!%1$1y! zT&s4No$qDFThs&=xK6CD43}&jH4CiMLeL(IG)zJJpYn!()U%cZn?kM!JBtNLwg)#n?CmdKs)#!|__It_SUY}CqD`>mtXUG96G z*7+}u1(zYcx0@8SB)5}apAO}@@K$O-AaAT%fB;Ar1=wx>00CVM%13soWgr2wEHWe= zz!00!xlu?2d}07SOxo}TFYNobx5_Aazc1wrSm_zkhDT5^&i7pS4@1`XwXeWBhL?li o&CYHw;yFO#Krn;|K|l>S4Q9==HFI|_C^~qqfEBn7wFm$ba0T3q?EnA( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0238.h265 b/samples/h265SampleFrames/frame-0238.h265 new file mode 100644 index 0000000000000000000000000000000000000000..63649171dc64a73a79355a0bc76f54ebbce124c0 GIT binary patch literal 2083 zcmV+;2;BDo000330oQ5&)I$OS(7|*iM1cSp0sue>0bnEr0LV9Re=f@S2TD`WX#y>9 zzua>F{_9uT*Kp+EYTGN}G65v4aX(M5mO4E0WuQzp$Q89Oo?ks@f<$8R@B|3;?3Cd`iZp!Bl*Sj6Ta<73P&IlTR$_q=u7 zL0E!0YU+epBl9zCjC_1w)gUqC*C-*#Y_b^g&^^6;Qjr4^EYxiQxlT&y?iTM5DW${e zpBmItXhW~Z5`-xT6`_K^3Y}eDlNa91YP;~VFBXPTXNLQbLx*|9e_qt=i}aFdJ>mdb zf)&yvD=V~3w>qf32zCI9;F8CIS>D5~qD?;M7ypy{{p(W8KXPLzlHWh5Z@9k;+wC@9 z?CBk>w80jAl0#gepeE=TdU|hw7B=b08#P&x_GL&1N{q~#R@Dev;@6c?SLg_i|D{Wq z%WrAKH4}OmJLPKxH@?#H;qbS5bt*l>4{AnAZzdnkDXy*X`x~-1RcrN zB1=_!bBe4!sgbF;+Zdmm^X`({kxx~mvRNLAZ|wU^PL6ym_sft@X}w6P-s0nRuiDy; zD8J`X4n^Crsjz4j#eRkC@7=`?6HXp=AN#*I^nVY(><#Pux9Yzw>V22Ue~Lev)6`9e z($(vD(`u$XiEb<6(tK|$le!US%Lr!miwKdl(Z1F~GO!I>6GLJ*JaA>1Q;2Imr?tGm z$eO?5kN1DM_^$`I*Z42D_@9M;$AiGTUV1O5vElThHaj{yyyW*iS_i)s%(UlL_m53& z@kZjVyvM(6VDvPP228V$FAS}T=JOZA52g%xS4h(H0aJioEMD0x$*bed3NnCmuDfkg z@(EH7EDHKc=xYlP#SCk^X(NE^IT2dl(n}<@01z!l>g^HwHY#8lgO|(RP2kcZ*R>}| z6u^S{M5`OoLpZXYkQv^6JIGy=6UmI(L=W?lXT4h5W}`>D$P?5AwSYz&QTw05mD#M2 zwm8BA$iN$mKDx!(**lfkL{Woet!fd zQm{W5NR9kD33wuQ(V_01fBX)jNbg5~Ub|q2bX{uyvb-=J5D?O!-@V{TxpDWU0uFm` zcp2Bd22$?XzKd&|jnRtJtnm6+Q6~Q(`!Sqw7ot914=qY{pySt4dL8C?9dXa-DQOrn zsnYsSOX*ESx45vS4Zx%ED0MzFPhPwoCx`Ty5>)+7I7DXMUR}(jzY2-XVwnbAm6ivk z0YA#p_?Z1xiu**QA?a7sY-(3gEoGf*T>F_pbNgir8*a;p<#3M75zk?eVW#ojXpS`d!R5A^4kFGFFRmQC^L=AJNnwg4O{-@`s!wimw0t{~wpZ(>Kr> zSdc^mb|ei}$;5oN+Qh%({d@dJP<-zTbX+i3@BG)qfED*h(=~0I5?%cBa7=#+8PcxJ z-#sI5sult7Uus!X8DYLbYMdIo++ghIZ)#O+WpqJQ9e73p*=erd8?N{3kDgI_sM^MQr(6sE`UCn1iu}bVAl}NLs?H z&>;$@>A_@&_lKcCT(0FBT02tHxV?-T@1y@p<_4S687!&8^cmiSWKJ0)S4JVO`X{FW z>D5JuQS+lu^L}rJM&+_42TCdNh$YyIs5V@QcmoBj=eB4yTjpf~kVvOoc{4W?{V5G% zXoLFpwLHieBO66j+e!=GPSjCywmbrPXqnmV06z{PJj|^# zGe+xDGKN#!3yF;iU=!peazhsL`QtS;RR&239AHcZG6Q-0g>Qit@cC35T`=3iN8>KD z;0W?QCUOJ+@jWIFc)H}g3YhhBVRPC4aLYJu4yUxh$IvwL1F|@jrl0t5O zl*%VP_gvJH>Z@MZcR@_?c)2#bVk8dfd`G83P%0cD>db}owgS%@(vpvm{?A?3@(?~R z`+K1V-Q!APxbak41I0}a`SHo+nSngXp6eStHs@_T$pQh|xN9ObaV9ZG(G)GDdrclp z)(`+l7X{dD{{R794a!G$sbwGmvn(A Nu7DM|4z&mX5^(*|1nd9+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0239.h265 b/samples/h265SampleFrames/frame-0239.h265 new file mode 100644 index 0000000000000000000000000000000000000000..baf11091ef4594369979cd7c3de693fd7993072c GIT binary patch literal 2925 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 XX3euTb9XN&I(V*t6}S$y2mlgrrog?m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0240.h265 b/samples/h265SampleFrames/frame-0240.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1a9b16781b4c2e51b37d97c3a25f5d788400420f GIT binary patch literal 1838 zcmV+}2hsQd000330oQr|)I$OS*uiwTw}Ai{0sue>0bnEr0LV9Re=f@S2TF?|GD-#i zx|;qqH0cViIAs=A$27hy@F7u^7>5X!$zFWL#5&ARTje9X^K(BOAq0RDNGP`$B}lHv z?bXSgCN68>id;wwgp`|fl4?AoF%Oyvl8Nep*`+uV_P~}=WUbB(ZjxK6D-W|o`DMTV z%u~i3%A)`E+@ZJrVuNJ!S4x+@8a!H^=tBT3by(6L(4EvAHiM}x{(Y2NpP|qNm(SHg z-Pr=RB1g-9;O!|r5??Qu*dChJnezL>4o3)I6>L?rZ(t<-!ac-I?4JCzdV_Uo_OO(5a)F!; z^ZpUZ_C2~kPPbO-x$IzrmLM7cT}p8mb`Y|vyFh}kC7Ch5pE&z+U>*c81+3r5RQ>ba zsiL39_3PiYR=pC~sPmSPO$l*osLG~pw)7)8`s(V&4cWns?}?;mYeQ31%xsdAahhc> z#TXmrMfk@E#ae3?^(++fO)`C|({^3JqAQ>#!Gv(AQl?OSeH>KnJi(DT0lxvvt}AF- ze~Z!M{P#E068-Y)bQd&MKr{J;H<$>L5S+HtTs}36Zz#$0N)eEG3lw24*sL2PmZMmp zy$OM_Ad9FOh~HMu(!n&NAXeS9Z3IQyb{|*D6o-ma-dKv8=y2L zTt)S(sPP^8IVg?1pt!OfTrcewvusBG93PJsIOQ3^nTJQ@kDa~-z1G;Ir+ASu0t`aU za)+a#3LltAvXmrmF=K6rMZ(jZU>Zn$)1-*@kf(o za_B!q`DHA@>EV^uE8a@XaI91C-0t1dnL^86kdAcRcbJ((_U$+kv)Ev)V3D@4k2tak zGw+xb$`0Z+fGl;xz0oW2-B*R~kjFLUuAc=mEMv0=JyDr6e?!(Pk<>JHDkzW+Qmt9 zkGCdq&I&jHwTuGWAhjJ z?TejRC%gp=5vU$j+fJY1tP0kcS=OKZ;Aw0R%_F1p^jP%^Lp+47GmaMh9O$|A&I>)n zL;h+X*`0LK3zDnowzYIGCZ=tMo%vEUON`>xjLqS~9bawl`lw*iu(TDzTECct^aUN!n-gI0R5hG;?@C{PfqB} z<^Od;ZQr2-vWtrN(w1mdSVh&PuY?2asMk~4OXzYB{A&tE21s~DWAA;5a(F3Lb3w1fLeCs`((p1xZ|NsC0_>!bygRL#?>mSRv zX>fmddk`V>FT>A0BLslnfGfftNA~9iG$-M`rGoze$|ybVGdwU@_phW<@$sA}=T9Gu z727o<7NR0zd{w+avaQr4pr`FT9|PVvzV-<-J;Xo3RcpyNLrPy3t(P9B6yP$nA9(Mf zV%)*^$Mp*DGfBKfs=8?LDxNd61l{~l{$L|&R7%|@e4>T!Ne<}Z9N-7#l6fnzZm~r= z(ms4@!q{sU#LOH|M%(p z5BOCNMEw8%;0NdcHrQcGbO1;f1=wx>00CVM%13soP(T5*EHWe=z!00!xlu?2d}07S zOxo}TFYNobx5_Aazc1wrSm_zkhDT5^&i7pS4@1`XwXeWBhL?li&CYHw;yFO#Krn;| cK|l>S4Q9==HFI|_C^~qqfEBn7wFm$ba0Nq^pa1{> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0241.h265 b/samples/h265SampleFrames/frame-0241.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7b3b22ca5050b24d3d0f5e65a429ab050bf99a64 GIT binary patch literal 3128 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0242.h265 b/samples/h265SampleFrames/frame-0242.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e236ea8e0c44cef067542a58c591d8ff4f8a0026 GIT binary patch literal 1689 zcmV;K24?vH000330oRHD)I$OS_`!2HodEzC0zg0s0bnEr0JuSmF9Hi)slZPZr*h?% zRZi@p|A95F4B|TYDhypY%W1KJODjh{I{W|s|NPDIYf4(0Zw6`p7q@0T-?|0Ed93JQ zil@X1MMk9+ug?#aWg+7L=7j(7Gbx~M&&B^@jqdrPbO3=^MJEgY_v>ePtdPNLfNnM5 zz4zQ$?HQ8HYW=^Z8c%n>DdKtZbBuS5f0l;O7kUIcBUcJGm)GaAzoaWajw;Myt-5OL zT{b*(+34?wR@4{+oKj{?`j}EZ`mpr z-k~6UC@trA+IALTp`y)A9&yjUsxJ)DUOPM4L=ItyoqBrXgk=Krf;i;I3^|r+4!tGy z`JC@oiG<(G|9s6i_YqbGQLK}bZ^SZH1IX+F8dWsd=`{%)<__6(ckL5?fiCiN$d||V zLUp)To!1&&0W{kFU8Cpq4}ZfU`0ZXl$^Sez>?!{i+y@pRuFau#UT*cj{Va!6>M=$I08cc7W+GAv3p9 zUnSxnzR#D%vv;m;WQRd?sACLucP@}OJ_|4Wvktul;$rgED?4){F7+8r?{NDmb=x#H zED*6`jdSdSi-Umhw1ebdK`L}xvP2tSSfYBYnnlU|RHzc9nu-@E%;s>-s+L|O80SAw z_j={cq#dfE&g+}|G_LHvl`PnE%M%#S6NFC?iD9X1VUX};dy~f#0jsuK45g@) z9^gq0Fc4wClGT>0I}ghdfdi<4ROln{x%G0HdGx)(QE%EEHrZ0PAX`#H9aQz zBm&w5&F?S%6y@G%4{VQOuC;1_MB>p3tB0+;@+>m|VWPbYPss_d^3Cq=p)hw*j4M~qQ?*sTe$ejSLh0rO;7xGZM6KEVtRe8 zJACUL%nalaq@(tX;1i6JX}eaio3QiNVzsDkS*PK2!YM&0W`cR*%^%u*BYa=*tEi#= z&5Zy3{~J(SsngPXr;LE@9K@n@ur1j%tS1^c6#<4mkQ%CS5zo@Mwd1<3;*#GRf4kf3 zgsv0P9Lq+mkaN<*6a_k3M(De?=DD=j39HNSXvF^qbv$Oc;78KgbzzExl@yy(#4i9> zqx12(HYON-b7^2L788l~^}2JyDGw>eV>j1EYVj@}{>Yz?EFy1+s+1(&%K4al#J7AA zv9WW*>NfU-DPc#lDeTJ@;XC*ROqZx!>bw-e3Ve06`>#(Lt(!0SPvRNp`6^fC0ojlim^N1ZE5l zni2)Nx_~Y?dg>E^Hn@}Fn)H{<`!wM>#{e_NJQT1s7>GGY57XaD_M|{H$6A154bX2* j3OhjF^F0~D{(2Bl4Jb$UIA2pXS_|=A7YGiu2mlgrN`pe2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0243.h265 b/samples/h265SampleFrames/frame-0243.h265 new file mode 100644 index 0000000000000000000000000000000000000000..53e1d5873d8f7192507cb68c2ad60ddc05e2e4b5 GIT binary patch literal 2032 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 IwFm$baJ<>oasU7T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0245.h265 b/samples/h265SampleFrames/frame-0245.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68ef6e2aaf6474ca5ed53745dd3c79a4624f31aa GIT binary patch literal 1838 zcmV+}2hsQd000330oS4b)I$OS_`!8NrvU&M0zg0s0bnEr0JuSmF9Hi)i!pnEgSozA z75k~D>k*|*HYbKpVezRE#g>dCU(3%CYRgJW-AmN$g5!0gZvg{&W?`TPN-9Zf4*cw-L9 z5K=0AJgs-;fh%7i(35t~=ujM7XRB5<091$Dk8S7gtj|9G;t6M!KJfHczN z#wwZSWt;&%`$*$r2BVf?goQ$-3$UNUK)5m4*D55MM4E#fG$uGTvG58&Eg~xpR57op zooBt>{7MA3q%~_ag>NsBlvG=JMo*ehjDyHnqX~A!VA&kC8pQ?ZmHDc+>@nu73W)vz z(K$Tiaw0IMjzz$rIcjOEw8{LQYC1qff7VWi2un4YIJVvdv5y>1pKi@{dkqeQtK3iv z^*lX@7N1A@Iox-R0M9~DQSx}mR)iH_NeW@LNmz zjhL#Sc$5fAU{ke?5-woDCpqqG0zbD$6Gn7EC1RmMHG;1YiwU*?~;n461uyj0b>bFWOG@${xV3_u&JFxkJc z^-(4_7HVS}{Ac6tD)yw=*;;d9c_pDmOrRK`OmB7d>**~`$N5g_+AK^pxpo^o(~Lv+ zEA^N3_!&9Wz>j4+m(m0>rGI<*)?+&D%S8z>00h>v;5i$=<1^dVf;+A8cCR#z?N~TB z3h)b4(1)+ZSP_0U%m3zT%=Lfhj}L&amx-ju)Sjrk(!;Dsi7qbX-h}4Oyv7b?EG#uP z2DOBheTmzOAM+uyr;R9*QXMSgCZI9yHo%rL_9tTj)^&@p3hYXkrY@^llY{jBuev>FsQaDeajgk``X7%qX?+} zr(A?22e;lJt*CqQGP8nq}+ z`M78`*)&CSD^u<^9JFTXi7-K03;H5nR}>YFc{up^hK^n~G|I^UlMl;e{3L>z0eBd( zbDb{g@gx$__!Bnnj*&P|pZ8OI;Umu;IswDD;m=#o)5y71p+||=M^DOJ{oF`#A;A{1 zW3m`Mneduf$MXK!bLm^>b?asL8YA-ZYs9mdw-@BM z(B9`oJ}W?oNqIHu>HfL6t#-Ip;ZZT5OL83iI_5whQ5{3|_CO=j2G~{W z?YzeAgp_FTKmGsz6GhBqeFnDn-+u1kK$;sfpdt4m@bk|&K_FM46~b}zcX%V73dcj5 z6{s3P121Uv2T$MQs1PM(8Pj_!41n--^g%tDU+$!?qK)R3#^%r(pM_^);~oF~z8K~s z7pqoKqXg@H{(BgwU14nr5it+P-yhT~yvt_s7OJtM#Hx7TKpq>pmBv!HTs_BM=pe;! ztM}8?OzZB)Brw4`PpusM#-Cm)E{F=VCNFh`pn?uR5B^cm->o_T7YI!FwyYACknjN5 z?FaA}sc>HZ)ALWsIA>c<^!Z5+G@85Gfub%W@oi-8sF>nys!ECl^pk!)J5YeiH?Bky zQf;%t)=gnTYnCAF+!8;#C6Dl&t{f#J1<*f c!v1;?Pz@+Y_BdZtHd+huT^9%rwFm$baIQ>)D*ylh literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0246.h265 b/samples/h265SampleFrames/frame-0246.h265 new file mode 100644 index 0000000000000000000000000000000000000000..36419644a3881c0281bdd6f97643603ca68c2bf0 GIT binary patch literal 3379 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 J4z&mX5^&b7m{R}% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0247.h265 b/samples/h265SampleFrames/frame-0247.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bf1cb42837bb090e44740b1b0d6bb4a78221a43c GIT binary patch literal 1871 zcmV-V2e9}6000330oSqr)I$OS@WFNXpaB3F0zg0s0bnEr0JuSmF9Hj4WDV~DbyT7U z^~Y)A5$mrd!BjEb!RX_8VGYr_;m`s!JOL=qg&q1Tf~}~Q?G{U;-6?}Ggqp8^|NsB~ z9jU*f?mH?fV>VtRwf@11|M@Ln+whNUeqT>-%>E=e|5)%oQUcRMdhSJIIAgQSA|oM| zcH`rfv?Z!X^YG@5KS6mvDZqHEMfvQJh5!5Yv%FSFV)?)~5#V0@e^9l|xjo>4bkSi@ z9m!ol0#v@?_Q#3y;T>9%kyzo*gukm9#A1aa;1B7}3F$XIRcGk4wJV~FS`)`Lh);wO zZh&mAnYW4hm5D~jDizp`;dPicReAyer>0eQ_oI1iicM(K;rkC%OyqAtyL3? z6LhZGtplc|L0djrgR_f#Y&Po0|jO2ctTW4ik|Bc z%5UIUaT;3y6*0JTa`;^!nH1}-@7@d^>dbpUWV%OxymvgDOorbkP1w}|#J#-KhzzaW zxK;;Xm>qP8_p~Mt(C{S$37-T?$6+HFsU^MGmZ6=83-DWCnTg}pozEs&DDN=u!mxwe zttk8+o2#cq$O%vWoD>#g3SNJ2dR0m(PvaDCm~BlE6Rzr2go3!ufBS23B21fuHda;h zVP5SLF>G_qmNg{6q|(EG(Anh1HbY>w!HDcfMqe#~9mBa~yKLXq2hSY=wMr;aAK6Li zOQ!%OB{-c95j}~B*ALB@D%Ds*Z*8Q`M4>Vc5oRL!1_%hPfeciS?h;MiMIt_k;b2l; zw;=%N!{>R!S{m(tESmwZZPs!g6et*cpOVDZ7X}~r$?6y!vQnp zAiOf?Kl=bzpk;-5sA;4m#jczi4{rOlRwQ(Ld6Qg3&YmcMMs%;bQwd{4H`bV@e5U+8 z&JXs}vbGF3S~(Nz0lm-n&<>(#hD4B!#N*riBZH4QBi;V)hr;O;CImqoyb{%AM(<7*^}6psuZ6O8XkW9zv_xOcK4*BO;u=^WV_cVf9&&d&-@sRI)aLGSOR!N zlVk&$nam6A2O9y;7M(#z8i{~)i!cv3DRAn`LCZ3c8)?Gs7?L168sqxqYiZPHHcF~1 z1iwmZ@LwX?GAH{ST@v~9xt$XvEci`k50`Q~F`=vp|2 zYDfYFEBfKU487|($Y?caJ$4lxI{+-c0d>p5M*bzJz;g|q$9?lqG&Ln@U>)CA0(t;J zB!tmHs(=9rHib!csXBlG#5|MU5$FVF3=WzS1-iO`E;xGX6M#0jli`~5m(2S#;W@_u zGsZj=ur(NnIYdFvX6qjktk11!Sjd`bd>s> z%a35=Vu`I8N_3h(>y<}5OwTL3kj(BdR$6Z*un&BgQehNs|39M-Nu@;N1D@~DFWQse zf`us2(lzHhvC234i`}rUjoz4O(Xao*>L8+y;$4@4C??(@n&)+1(Qqz304>FITe`X% zNZsio`6H)*NDX;qQM@N3*y-am2$y?udRFv9_qf&GpolC1;GATn|Fed@vuo&nJ=Er` zdE0ksqLqZwzz;6?YL-|30ylWJD-Vg;{v;AmuAooQi*56}cG4W|0_#{}(581%@W~jd zL;^RnOU8+c-@#^=MnXE6Qt|yKNr$%=gwhM+dxL<(te z`o?2gifui{Gukf`>X^szYTK?a5C3WV^Vo=|XL+^OlJ2-gHqp1LaP^|r8>cT-CeH9e z9e=TLRDSIe6w`^I{3Q|s0#qq5nZrBa;U|3_JU$ppGV$lC2m1Hme%I|sRfEWUCO|R- zyaN1Z zR!N-Q%ilYp-rW5HcVYYtF3kREl)Kk9myrG~VY=G~E`K-vlUdgUYu~YH03TcerEhm% zFm1z>Lv=8Y0wTTQ2bnKSUW$yyN#`D%jxyUuXc~h+TV7dSna3^|;ZU#GIOC@*Upxbu z`?LtuMZezN<9NSL_PY9?2=`B$8ZHo|fA9R?(fmIDurIIj->Uq#srFwX{wV%yV{^5S z&b^%iVGP(9?gU+xZh9`?3bwXEbm>uyuc7PEOCy;7P;@EgEDq-SIM2*^t?=+eb!QA( z5M5vJ|L*^D@m>#iv+zG}@jndzkPnA;y-{h%H&4#5u9H?Iu?yDrL)uimDyUpkx2|#^ ztL3ZGhBV;ZZi|hB#wc-WFF{!a+1wb%67}&v332%C1npx3un0gcmMBqC?#&I4jPL0@ z?&yUw9~FS^nAHYB{lQvuj#2`9)9$cIR29AO0*>n;gb8DZq@}($dM*0pxm7xc?{n!T zllE*cgR*B9Y0bxQHF2E&nXDW;Kx{NGV5PuPctG=?>b)QkA7;UG2f1sxHn+Oost@~?k=BZ;4lJhNdwG+rcNA440y)*XS(I;O4>g;yH-QGNs@9La z)@6{orex>q-YxsUic1ePi?$25_b`bZ9PZ6KLz-l6o0nqqND z7a^6Lhbtf_b<$8vVH?BE{YaF5-se5J1l#|tHP(1-8iwb@;!xSbf396RUl1dnssH|v zptzT0u}vtYb`gEfVHR98`=TO)!kwSuu$6pAgIvz#jpV@P4Q8lT+ny3^vj|StiwAY3 z`5ru)6B0y8m|$*|Lxv$6(vly9M4UOX{i%)=Ize!gFwxIu}_1Ifutl z+w}ka{dLxT|06@!Nw?L60yy{_TBn8_Df^L=?8AB-`xLSM3@-5mV+kDJPxTS zIK(AVDNI8llvpi)!*oX$jf5JOV7hC7wg%Q~acP3glOHiaxON_x_m|l7LC95=)>Yd# zmL?N~6E-QJxY#+L)js6YI-Ev8C3o@m#%VMN(+3m42sv1=_lE~i!~+spYmoOochbc+ zy&??blG@0R|Dnqb1d>IA7fnktI2XJ@*!-bh0hY^-S;Sr=(gxU7>+Qn(??*@~|C?n0 z{{R2$gB{ndQ`TBD@pbP>AM-9$Qy$hO{~zh!;yQ!p_*nk zA`cjcnqwTOs2omW%|xh`<*`Md{`EMms7<0JGUx%>SYGN(%#!Dz>Z+o}i>Q*Wc~h!s z4G$f5MJ3k@7!7Ge(L4XkDiwJDR6x%jC6mcLi@(uR)%)8#YTkkZKFmz}3++Yw7I@wTMeQ2r z17=R43Pl3*SXfA1ua`#@>;?J1i@0OJsE{Nh6r`Cb*7E4KU}57L1$8k?gJ{$M7|B>I zIQXg{mq~(;lEs=C@p{IP~!i9mxP?4_*40Yw)Vfrz; zTT@#+PqyJG;IYV-L8(3$vv!WpPl{`zJGa|s^p9iyNgxgYg@6D-B!tmHs(=9rHib!c zsXBlG#5|MU5$FVF3=WzS1-iO`E;xGX6M#0jli`~5m(2S#;W@_uGsZj=ur(NnIY>C!Blu-JSI58g5xC)ydx=? zKexiNlr39ebOkJ_1TTbzu2J#C9hYp#sm5{V%9-e4?>*=CGluPYY(Gw$Ieat7kuDJa)gYY)dZvkn;q0aitW-Tdmic#H66S_pGi|dcLR?J#=-Eg<dPE4&6$hrdW#mByC8hFGuhYB4EJBPV8|6~B1 zpDlwI=dwdmvgHC?+H$qQIu|FIje3t+Raz^XNzlww9yDJZ+kWpeR_G{m1Pl1DCb?Cw z4>iwC9Ij8AJfE`9(1IuT13_4ttMSR!D#$vAHoX56f*VL7kthY>52x;T$S({pENg=L zxdh117ab#I?K-TqD=m|8?$XN-8%z+Zls?5#weR&awb`p=Z$@r(Jv-$N5Bd+4mwm}l z_U@*~W&{US;lf4|FGcQeU^H&q_y`NVWItQcAsv~2KtfR067Xf(V2Sm8@y=Th*{3lv zD@@0|0EmMObs~*V8^@Togi*69eSwdB5(hcNbv%ZHCksrk)I_mttfiFg3SHbF34WuR zz(-N5b}Kb@1U3QOK+&nlI%+}-$}~X={;Rq_mELA=?l3SW@aTWhAiOJT-pCGvwcqev zhmK43Z7fyvZYh8hCST1aJigWj&3LY|C{&isc#M2d6FE^GGJ@VG40eiShwO47jz(-Q z8r})gY%BU5kl?6JkRD8vEy|R`kO{gSRuWt!{i$)%ZWP1JiIl7jW|A1g(YOGZ;v1-k z+cz|G%g)5}FD2kXTX(RQmqEY%Ri zf5??c_iNs`TlCZI#CrDj8h(n|Y(kHWbdOOIVpyqnzl`RcW`)b5c}}t4lhGnv1Z3*^ zu;+VH0^a(%;javIMwBxe4I#I6Dmw!Y@5}Zk7f9aJ2?aQBhX7AF{m>5x^kX*^LD%;{vLdt5s{LzPT%1co?zlswKuPvin} z>y|Zri{}$Q#X6mgoz|kPT=7~vlPh$^oGCD5B+3l>^Q1oOPw=t&H%tXj*f4Q@4OO&J zUunCtqj2**|3a*Ml_tj{%wg}A+@b8d-ReV;&jQ+&Z93=c>d_1R@x8|oVM?UPI+6#V zK2d!ASnL=Suom~lhEH%6S`=j6J|xsWixT>{bUK5@HPBPvJ7=!P5mbO|jgf$n+`1Sq z`?0>N7ja{vaCZX_#Ihw>OU z+qmH41-5c7zuPiQO0^_PoN6}ZycAxHN`fnlbnm`cAqiK23yFTFo*rjmI2qqd_@YZp zpwnE^xnnEEG_kH(-7*cQg2uA7g%l3(;#nXvkQD!cbdWH4OE&*N=@?m5_aO za-I0`{d|*vW1!;7DNR(GNsLs}COlDXqAQ{A>@e&?G0Tjj7yfjcm*3@TthY_H)9@A` ztoDyRTf8WH_M!M6Jb85vkJqLHz`paosRvY@^n1A1@Tgv)spPY3xnNOmAP`zM`MMXL zRC%3+7kL)=V1>X-q@~PC7Io1#tTG;H0f$?F{ODZE;K`ZnEseqwN(b)*;kNW4ul z=azEFMSt*o%18c`kjzlO-B-*@$U&J2B(Vo;Nzvi|QN2NAxEGQZ)hfhfH!w;o(MMd)8}^^`FcyfqIytEi*=dFjgou?~g(uUqnf!0e%|oyQKX)X6?_~=rp|*u?I9?8hb=Wy#JQe#>pwZs;c89{gb6g zP0v;F#5z`55i@!B`^;m1mVvd~ST02+ZdC5LuQlFnBIKjRx5eMxts|tu{RRcI@FUU& z*j4N1Y~WAXupcH2FObmn|NsBTQe@eyeJJW1lRd_TPuQ%cffD?@e1jgck~HLJ2Th*% z0P-rk{?GFN5>52^F;xB^10=;LN5;#6X1$1=ye${?TG?;$a!y%szPz2WZb{=~s%vI~ zV8)d=h%ID5Vih#Ga->M|5^iJ$f|AAHQ8eRAB|6<}YvQB}9#9h@BAcLny3(mw>D2t! z*|6VrSFegUH8nN|zz03i)8S5I^P?kcIzJ~}rS1nHo)U#!5aP~^X7U&h)%xoSBA#NC zqQut(oX+nS=c&!73EWcFS1v690k}WjeS-S#y&$>na#z+9B!ih-jrm^}qmqj~z8p(Z zO`C{HZ{+N>z)}7p^x7zM>;-#Ek`4qPl8gR5g|Kz&O6p-2+(yJ&;}!!v=0lMrwWPEj zJSWJb;(i74Y+LC8$nD_f_XdgU9Zch}p*hTZBi_ljNjPKt9_EMj>q+52j$x zyBp|_?=uD2wyfi>%{wLmPad^inv{>@#v9pi{>}y7UG6Aq`eg7; zmvgOsNYg|aZb=J@bf+M(@w5_&E;8rdh&v1)l;r)rb;}lVG?75m{BGt ztdeCSkr7o`Osfjm?!$vX#(Lt(!0SPvRNp`6^fC0ojlim^N1ZE5lni2)Nx_~Y?dg>E^Hn@}F zn)H{<`!wM>#{e_NJQT1s7>GGY57XaD_M|{H$6A154bX2*3OhjF^F0~D{(2Bl4Jb$U TIA2pXS_|=A7YGiu2mlgr(s)Q) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0250.h265 b/samples/h265SampleFrames/frame-0250.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f23cb6c820ec793576c809acc2a494102265b6d3 GIT binary patch literal 1877 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 PS_|=A7YGiu2mlgrud|gG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0251.h265 b/samples/h265SampleFrames/frame-0251.h265 new file mode 100644 index 0000000000000000000000000000000000000000..47cf25b546b97552256e012e47abd2853ba3f521 GIT binary patch literal 8834 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0252.h265 b/samples/h265SampleFrames/frame-0252.h265 new file mode 100644 index 0000000000000000000000000000000000000000..44b8d9e5af12b9c16a017ef204ed701868cf6f3b GIT binary patch literal 1490 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0254.h265 b/samples/h265SampleFrames/frame-0254.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b7cd584813be9a53ee8ec7cda2676eb4368f6da GIT binary patch literal 1968 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 N00BJ!0{Q>|6>$2+z~%q| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0256.h265 b/samples/h265SampleFrames/frame-0256.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c182a48b958fcfddaf8adf94c348f240a60c8b84 GIT binary patch literal 2535 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 xC*bKwDgX$mqrdk00BJ!0{Q>|6>!|J<7of@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0257.h265 b/samples/h265SampleFrames/frame-0257.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c9d2099394dfacc089ce2ce56c7244b11d69a319 GIT binary patch literal 1301 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0260.h265 b/samples/h265SampleFrames/frame-0260.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6ec89d8daf01920638ff369af1ea450dfbb37102 GIT binary patch literal 1458 zcmV;j1x@+@000330ni!$)I$OSc)?r?$^w9ZCF1eKr`P|%YXog0}T48tC#mr z@{rj{Zhwq`7uEKoFy5Vv727o5%@mY>|EV3drQoQffF!}zzr4l(nWkHDXRmknaAi@a zaV4KHoUoyWs8qBK2b&u86KTlKA%{3A35#jtz=nu`kN>B@3DLt~@?6`_| zS#THtsC*4!%*SIi=dk~Q^XfTOV|w0Dv&}r=uM$(Z13_O$W*?QvPH;Wi{WZy$6wbb{ z#Bd|`=9{ysFH-nR<<&6^FGReva>^Mfj9}|?Fsa@g%eF#l)dg}cWtHvHDa187!g6B% z@FMh;f^>s^lBl*a7gRRgxfc#D1=Q#iY_hpEkeF9Tfks6~DNVBl#21r<7kx@WE+ z_d&5b5|K~gD-4AB5uF&i$U4NgO5?Xft*M}kqXHAK>?|y-xQnii)^%XwdlWu^Pie9{ z0gO=mxeYcBF7b0a73TH=yP>vl>3Ic8J|<*3i-fD$pExF~@u?AUj~ZiE9Cb9+VQm@O zN+%N{=JXsc&0IRa0ys+deQ1u&o@(9|{-<=g+v8`(x>HQ)@JEw4|4fsmmsgVm1U7-v z0P4*%SQ`T~Ly~(3#FV#s6e1@&YeiO=GCqTaxT~qj0o!XPOUx2aQ>*TctDIUlUpk*P zi}Lf^O7N^gg>|J6l;V%I0_^*sgI!|_5vk=zp#V6pF1L|DJjdZt4KA(VaAv?L0d{V; zKmevAE$lG-55@MWt*G@-jnM$8P^X<*=fl8BZ0fg^yx+FtJ+l1nG#UbLqpfs*G>Q?o zM3>Kk;Xje+mXgo@m&mEyW#s79@9Hg^j*P&*qYf>DT+J#vkVF@t!Jc#%Jlfel3sw}V z!`{lIaRsIA3+LWCTHubji2CjYlE_jiHcWndTFFEzdi4MR50a6Pmg{A#f9T}ZJ8xZh z6+z-2aLI%_W@W6GQ&zsQpNJ{MC|Keujph6mf2jVPZ z&>kEdP)Hxi9;M{bfe;T}9^ljC_)Bw)Zx9BVMEYoxrKs1Qv*g++o#}9vTw;j>N<4tD zC-A!Irc*kET20T=-T%q&;N5>8ld7~sAqTx8z`7+P)W{W9Y(buG3Yn&g;9bL%_b=l( zm%6K-9g@N54}e1QQfLy-<)NYUv!Q$8z;r$UbCAywumx2=|Gq`Yn7F!|U`$zX=he3* z1yV!-oeGKYdX*aajn8`UJL*ZQ5gDV^h&43>hy?yu!FSP6H&99Hj7Tz(U-`Q5Af7V*v1{!YHc5fh{T6?2aQ=*J?iXw1 zyb&NU^-WkcS?G2jX<2t;iyyJ|@f#z7IMmYCUWfRJjgXDS^!{nHapZVH)_@yCSBdJI zh>*?RoZAeHA5FsK%vZ~Y_Cd7|f&;!GsW)ANl?o zL^3bFx%0zBrtR+L(Q$sZLvv5T>1%KBN`r_JW!tb$Pr)bf|LOBw4IPx}mBp13f48M7 zI}-k0RaH~}A%Ol{0t4sWVEv=0+Dhqo%TN^daVQ?I5QaP+n(3p=wu3#g5Rv~O&l=^^ z48svtaGoYJR-K014XR{iVChII01G6ezyJlj00093K)?V10|9dY00tBQ02~ki0Byhk M0X+Z$`TzhGaBnTl(*OVf literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0261.h265 b/samples/h265SampleFrames/frame-0261.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d229e650d8bb4c88c4111d8593dc1822a22bc6f2 GIT binary patch literal 2498 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 M0X+Z$`TzhGaG&$owg3PC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0262.h265 b/samples/h265SampleFrames/frame-0262.h265 new file mode 100644 index 0000000000000000000000000000000000000000..93b13a2d3183b9858b09d4dc8b7bec2f0e6715d2 GIT binary patch literal 1290 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 Y00tBQ02~ki0Byhk0X+Z$`TzhGaIWaDg8%>k literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0265.h265 b/samples/h265SampleFrames/frame-0265.h265 new file mode 100644 index 0000000000000000000000000000000000000000..304a384dcddbd0dfbe9025c06749e738efb5619d GIT binary patch literal 1512 zcmVF1eKr`P|%YXog7hVolZm$>$ zt+Awh+wqOmt4%A+$POCdqW^ZktNK)H1V+PA1CT4%&87CPer5zfC!#m>uL|NT6Ly)n=+ z{6jGW=z8bfhS?gW%BzT1YEk*Wm*&0s4?#T7KS#}I1^>N8ViqZoQ-2I^q2m-ozyR|R zq^e(F_l1;8zLl{DKaewBJOAcuG>@HR-=3A%_$VST1pPQT@s~DpOHqzR7zyME(8dz% zczvZ*1Xaq`OpI|&6>s#g)%bwgInlFJZ`@-F15LCD%ThEd<$Ij$NJ;v8xxe?-G0x!9 z*9e|-f4J^BaNiF(Ww)K4Ajjxd@s@wN?8;*0)-)d~Z28Ol&)Sx`@x>zyp5yOu!_O7! zT$UvPC{ZI4773UiZqJw=se|UgOscRX)UuUWHtAHXU$G7c?oXt?Qgb?af;B&Ev)mFy&hvT>7iO*F--To6A{8zdhze?s;LB zed4r-ASsyE#$*v9ObJ%=8=bxCZd60YrYnbfWzRU*q8)DAXZi6Oa=EP3;sAn6iCt#+ z{g>W~p%zP)QYoKvpA%C>m*uG{e6h+Bv~WT0ST}vglcMp8Hd1|p@B#3x^04nAd$GS) zT{;kF_bOl#U@XSI*DJ80A_QoUmvtRWo32!UKz(Fa#LiJw4kZ8JegB~V z03L&4uqW_(A$BqD=Nfei+zzd-!;kVNdo98$;nRYUYn~8BN1q@-%VG@g&^oxfqxHG3 zxIv;pGJ=AyJuZXEd^1>*`vFtug<(*zf$@zoXqCE{|LgH+e<2c=&Mbaad@h4gjoRK} zmBXK(jzuIwfB~G8%l3S-=i#kJDb3QvgKlz?QQ?pK)k0LI(>rQaqC{n#Y*Xdm=1X?M zP@EPq;WYv+sZQ@lTkHTjfitl=D=EH@>~Zh-q;3Rt0g75k;osBOFXtbj_Cl4NHh?Zj z>;hJ8yxi^_yKPtSfc`PI8mXYd$K=iuv~vCyQ0;+Ad$xceo-+F9*Xb8Jgx{bi=+Y%@ zq%AtTN$0UZ_7u8q9ScN zKTJnP>d!un8{vr0^=3gAGV&36TQRL=w8T>a-K?|-DPXLHLn27qM|3ZgHg!3rkJ`;u ziRS4b0wSe<|2o6!ANY4Qht!&>CrX(aWnlwxjUbivm}2{CqNQXnv!&{%(N41SJK-?; zH{K+&58>XrC5t`(Ya+yB>w_n#Vf+edDI7=wU(*@#+_BTeTKuEU-|&C`RTPpX!+*K* z5%AMrMr0qWIYUJ?K>VR-*c_}s&bbZJUZq=SFE)+@G>Eh$ht73jJ$=Mc# zC~fJU5`o3-E!WN{_B;En#m(EN$wDkE|6uqA4!eE;@)+%C6lF2`&% zyWCoO0MskJ_Qw>eJ=I~~a}eBXu|Dt#LBMnZk7I;WnT`tYfy?SMdJUO9mm3J1lB}Jh z@@s8zon4>$H|PnD&H>q~8Z#vwZZ_B^q@Q3!a*_j7Ak7T)#VTA@II;_Md;li>qYX-A zgmu15xIUf~dZ9n>eIV!liMa^rNGbph!=u0e1-t+N0{}q400094a{vGa6aWAm5C8ye OzyJX~00Q~|02OeQEaSQW literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0266.h265 b/samples/h265SampleFrames/frame-0266.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4b177f9261fcab07c158ea9f46c8fca2860b6c87 GIT binary patch literal 2722 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0267.h265 b/samples/h265SampleFrames/frame-0267.h265 new file mode 100644 index 0000000000000000000000000000000000000000..afd083ae2bdaac7f591ee278bb5c860a8a06f0a4 GIT binary patch literal 1403 zcmV->1%&zl000330nkzZ)I$OSc)?R6sD1!|CF1eKr`P|%YXogKh1wZKZFua zq=`9w$1ktwpT9o=M#)wpk*NTvb-|9%<|B!7fqJTXO111g-AM3|+Grkbvlz9=vIu7u zD|x7`ZvfPX`FpD{>s^}yC>QJtirKTUw3AZ=I6C6jQ2HqV!(D`4*em^)=P!2g_EkaV z-^Ba1)mVnW`-r=eh96_bFCm3@mC=9R(E;EQe^7Um;p#NU9A?X_fLZ~o;V23!9U%9Z zd-^4PflKSlnj+Q<3}EHLlAIgFBIWuVzthF9B!4nSA4 zOo4uLLQD^X(=fv(4Jlb<$fI=BYGkYLrHx+3L14KJTwa zNgN#>+J+Si5N6#R)%zlckg+~MNKR7Fj${T!x(4}a%=&UZjW9ct_Sr+>_1%Ne1SEnM zu`sKz3FVzud}UDM92h^P_}L>%$VXyaa)PkYvmMfkfuk$c!2A=QVzLXf&sJ$P{3k{w zH~-PxDNYHzN~}a4xYW56Bbp_v`xke@0GnU6idCRUk8e~4faI_2KH-Wouy8FD1Mw9P z<*w5W4k7b=hCeBPN1Md$N?)Y3#6SQDq8hL#@Ve=yQB@xNYiPLx=7MU4!;Qb^`F6*Y zfB3U8yUXi7pv3Y0!~PLc>wstsSwS4#zD;enT(Vm7-Iy4cZ!q*~c~PHPW@RBB?U!Q?AMgOgBwLSgyi$5MVula>G~ zvp3{>oj|gB57f?ectP9b`%j$SJs^#{SIK}>xOZwqCYkE+0OZU*3U$#jQMxWl2$lvb3KU2mXiKW9G1*`0m@B{&~#9-%4QOBaSSVYp>xt>kX;4ND` zPyLXYuoeMb(P%$=KHB z1(9q3lo(@29!h*R1UT(dDwQ6e&c!9?1XSsyUzsIc6`hZ`P~5oC3i9?Fgo%@t(J@vK zcA8UjC)cqRH_Wa}^7Nq)S>gS=0gxe|7*9E%4DPz*9drOl%YWG+6TlSD`iE^6T8IX( z)0is@#7I!|>q4N*pk{#Pgk1P@#lhD-V7F8O=%^qyG#YtC52e^qpZW7vqV#KQh_4vc zFr6uzwq@t(XNSSRxDphdPomiI-@E@DSiK6@X#=6rnel|~ZwD^P`I}E;H`Mp_NUC$7 zf*NGgyprQXrJ&=280E0j9Fbyuqrdk00BJ! J0{Q>|6>taSsgwW! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0268.h265 b/samples/h265SampleFrames/frame-0268.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3937ef8f541920b092a4e3845f1256893fd4a113 GIT binary patch literal 1739 zcmV;+1~mBq000330nl0h)I$OSc)?j~!n*)~CF1eKr`P|%YXog0}T8%u3vG> z|Nc1X;G9--Z-If-fRa}uP;J%zFa4I+UUEc~-fVvPRFPPHLcw42a|Mjzlyfsgk67vhs5)=UFNp1XpN?=coD(kIT>b8-Nw>|Ku5QXFp-{gZvV(;@j z3+1y5H-(Sy|L-yr2`m~FG}ly&-4wY73~_L3C&Y0#MTC%D3P#;xJ}%I&?qJya2)h^U zJv5zWdc0oI`irRBllMl$l;4h^$j9514=X_u^c4tkT~>Tp0_ZiUEa(2u#wnc$JIz!R z5ylOmk({gFK6Se#CXsORE8A>21=Gf7cKG`4%V}MR)xZdGNT|qli)yEp09WuikjP!n0N_e*5-%}6#pqA?gFovJS_%G zt42F*2Pb^*BaDYQ{s86nX}gq4x4DvdWRKhrG-YRzRH(Kktn|(xfVKMNl6TQ@6Fns0 z$)5o8jMHZKz?+Hc1O^}7b0aXzJJ+kOTD(e+?3oE=5k&Bll76fe(K7)gFv)f zPY=YXFMTGzQeJnlRS2*q~Bl z2v2gSX@-a$JgVGml_Yv)BRZxSf|SPqzONkrRheW^0`9$vAN-&eerV?xe!ZI$%Yg(T zQ*koa31oeL?&uzr`894o(#Z@Fg^K4H3|%-3sM*d8M-fq`Cp{LWROfrl{-*F3V8wBd z8M&cFZxMsYx}C-A%Jyrgb2|NZ{!;|U(1$dmtB{EV8N>X&L`?V%>> zG|1AT-!AtCqmb(A8aF|3hgqhh4B+tv?nM+4dZYn<{)nE(SzT&9DOSdpa_1)s&xgE6 z|1UindEp;GK$)XR9Oe7Q8ZGQ&9BJYb)Z|heeiQyrjaS4Ib=GPa;&MKI{|EH^KC2pL z#jC;*(Tw!%E;n+aB^Q@u^ASpi_ZYD^qDGj5(oqqRl^b+r_{*QzJQZ`kabWPDCi~mL z>rnrY2%_JA?3E(o?z^jv=|xfhelgGc?T<_%v(#^}VWDs&w^$0Bb0qX?`W&AI0!p32#;;>%Y71yG+>+zaHz5qd2QhgG) z{XIirRI)MJii@=ilyG(hpWMVyE}|=rYdRooO4+^}3p!^(;{-RHPlm;(cMN)|wF^oi!=9qF!si2eTN-@K5hQI;;t|n_bF-#*? z>Jmrnu)gx52I;zZ9ahf^#yr<~OXp%oY_jX8XlICsn!Yq9VFSb;ogZo>tWyTdgYtYEp%#0oSC*K2Y-sq@%E&mwx205_Y@JOMu5njW_W@PO-SnlcFU_5JRx7(E z1d4+VrrswT|V-^!T$q^qrdk00BJ!0{Q>|6>#HWS33Xz literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0269.h265 b/samples/h265SampleFrames/frame-0269.h265 new file mode 100644 index 0000000000000000000000000000000000000000..34bacb64f1e169889e3cb3c610cf5f820f1fc8b4 GIT binary patch literal 1992 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 LJpcmw000$m5J=fy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0271.h265 b/samples/h265SampleFrames/frame-0271.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c5299fe5c66dee290df780776426bc70a01cf164 GIT binary patch literal 2924 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 WhyVa4-~a%LfB*qa00e9R03DE)PN#|h literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0272.h265 b/samples/h265SampleFrames/frame-0272.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d119cbf721138e25158cb248f7059276c5100e9c GIT binary patch literal 1565 zcmV+&2IBbu000330nmB>)I$OSaKTj~6qp}?CF1eKr`P|%YXszq-$&YUnW;B zKT4nX*VGIeK$xm2M+6w%fWzE#CE%og9|ROidta`PKjz%e%!F8Sohnnj9I)Z^S+Rfr z|NsB`EuHom>O8~)YA|gm>=AGO&WQFsP7GK+xY5D4BN03S(Z{>VFWC_BSa1J_OZH0s zf9iGi=f2U&4yzwVy_}CZ@J+G(cbyRbFLGM{GvkdsYg73Y_%vBq&BTq%-fTp?N0?*x zhtmdn;Q#VJZ=cLrd>)pwov~SG!i7Hr?jr6=7=4W>yoQn1mqq)!LKk3;KS(9{+?%#3 zhb}j5)W8VF?wEp;jCw`Hu#A`9%E=fm4W|a-X-CH21r%tEUw{ta8q&nH)Mdv14+q)O$Z~Eurk1eW9YNjsV*~DTg zofOuok7v*t*oFVzw7EKj(xk;?dGkQ&lN*?Njc4%EHmpSoXHDL9q`d}V6T@nh@^(wLLC`9SM_wv0; zoG{eBugl?W$VLUEiF1NY@e`{iCfd_9Vn6Fx9jUyr3xh#rN-|raaiA*H&q(5r^ixR(q;C;R_*FbR?WKA)V3*14XD>!)LX{@sHR*v^kX zj(K$BAk8Z9v{=O8<=`YP670`80%#{L1q>@&&91u zh7vY|*9mV9i^LZiGdKr%Oex&=D>FWAB(LRHlgFvLCV1CMKrWB=&~7YOV#kDJ!ty&? zbVM?54EdIZ#FS4zmU7HAIET&h82qLE9&ZyRFMQsAqJRJeZAY*t@VUW4Q`c!DHDmBf zYjIi}V_!Q>{fKw|kzCy<+5d|-8@#^t<_rRl)fseu(wfljwQU1FK&3~cIQaEgrMCGF3G z7oWY?sI*PsDF}uG);CF5muQ{AqAtYegHP5K|bp6+`2LF6(a=~IkGH*4?Q@aG7s zJF2n)S%4}jJ3H$-%*HyC@>HA`FL;+Y*~LbpBJvF?!s1K!x1Y1?jrGEZI63G>o_$Id zdGUTWm>2<`CoDisDW?mx@ZaB91p`t_eP6mi>*7O3Sg~p;io0}P=m<$osOd;506k5=nov(z3cney<$PtBiC&%$o^s%y71hu zrI{&V^Akwu8ZKUbOwcN-7}~|IAxi_e+CfVaMa_BD|=g*z53HRC6`s+frB!9V}Co=5olfT_@qJm{}UbiOqux?<)Z}d{`-AjhdRnN&^|MT`lsCuM|fL)h8rwYAmd>W~M z@La3J{)L5(1&d<1E?HQkNRv*N7eFOmL`1XfP^q=e^Jo(`{aTV-#nJNl9d-=qG=$z@ zdmSqcw~3p<1m4#ckF(k0@N9Q*u+)q8{J=oiwARMaMIpb)v#IM#7ZElh;<11Stif*y z)DrctY!J!OZS51)%n0r*0*eWyPjeuu;>WiHrS>2g68meODm5?w00RKPr~m*10doKV1{44Q91s8i PZNLBlJpcmw000$m9aRjp literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0273.h265 b/samples/h265SampleFrames/frame-0273.h265 new file mode 100644 index 0000000000000000000000000000000000000000..046431f9836a48f65abcd5f8baea9cc6a3b1f01e GIT binary patch literal 1686 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0275.h265 b/samples/h265SampleFrames/frame-0275.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8d20a9d5633f6bdb7e4cfff9e4c77e1d612ca779 GIT binary patch literal 1608 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 Z000IQ000~i003>k00BJ!0{Q>|6>y7M2J-*_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0277.h265 b/samples/h265SampleFrames/frame-0277.h265 new file mode 100644 index 0000000000000000000000000000000000000000..89da40a1b341601cea822e0d7836f1dde94e83fb GIT binary patch literal 1523 zcmVF1eKr`P|%Yf36n%MqhD=Xz za~6}uDk?Kp`Hi26xjvJncEsiB7Aum`x-YNLpbgB3 z#~1b}V}RzW*0< z-gOT(ZBi0dF?63!BN3ZmRcs^Dn(fA4(^K9Hqi5sPNPnBHw>T2|jiAK*2L(s`?e6

OwF{i^b;iBDtvDbIOzzlMG;JqX`t{+J#g zI0|(J%zmC6KK3=4tfoCRPlj|NsiRZrR;rl%5H8pR&(384(=gn7H--$pVYB%~q`GiI z4dOjALoba<+kIJT+va|#{8a27Tn?lmfapD@?A^*(_8y;$iExe}KYzu9g~xM&^g`S7 z0>!WN_`i$)_UsVou5GUB8wgH`{$Z4x={whwOw918+uz zUIu7i$V--5;;&;DtAY3@+{I+KkDd(DWcWmdbM9~dngn?>Pnz+3rT*sszp)V$VFArB zJb{!v21Jr+7H(^~73HK39ARh!hG;Ma;G7HE!0foa-s~40yy=@b4K?rj=nZ>7000SD zovRM)J7WWrO zKHEL=?C*AqTLR6~emp8sXy#I`EcCedWSZ^i&B?$KrkC)vZXq1E9WS=Yh%JeEFM=E& zQ2Xl;W0-1)n&RChwJx5ji0|myUPw+--~*1CA^1!I!5C+KXIYrP(tb*lqbnwztg#$U z&ypKS%}rDkafw2D#inb-3IsUi?f1xK$YzUbxZJ@2GsNYH38ggQcAgvhQUL*U+RM0C zB!>pA8TRenGI!sf`2mI@QRzr304YIA6hNcE06t|1D+(0^O8@?1|H5^CTCrinWJaj% zBwMB6d2*G7lt!wREW-{7wt1&8&Tj%6zW=DjxWAGVFRB`XjpmQU1=NhUTWpXH+~1(5 z9c&5fSb=!$|IOn?xQBLYT>B*dDN`GwRpEQ2-3ioO6QFH{9{hher(yG{OL1U+f;%tK z>BO9-bPkxa0#~+3MN=w?4`{(dWd+&O^};O6(kulBx`jCMtm%OLR3B}z zz5Dc598hU&qVQPjg$LG9$wu2a&OBMQ7ITcf&p2OPT#)DQ{ttN8JT|ltah081!=4RT&gKz5 zv6QyUD}@2AB#}ZAkRxs3qNM(M@`7YeBF;8%XMq;_wCy8DELSC$!-IV%i78h}7u_5n zu(K^P4IGS`ZgBv5XHb9aF@W}QmAguPkF&LP!8706NM=)W?DyFC`Q`mRJS#o`00t?* Z000IQ000~i003>k00BJ!0{Q>|6>!-_>81bx literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0278.h265 b/samples/h265SampleFrames/frame-0278.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e2ef3da7d2277c5f6b00c8865c0de37bee6f6085 GIT binary patch literal 1910 zcmV-+2Z{Iq000330nn-c)I$OSaKTx!*aQu67zhD?U>F1eKr`P|%Yd^z*v)6*ABMHd z?m2(|#~nNqiOy~CFiMa_isWsSHGhgOeZ(+gxZ9lA{ye&Dygs8~ulc!x#V`ssTSSi! zzS?__`#ucSJLiK&2XHr_3O;evHzr3}p0u~k8O^pFw_LoT7t8n9U$6NeqJO_Bu5hcc zE_8Qs8)T~MLKNpj#;WLF|NkkFm`PyJsiwN5X6TJevNxyhakEHw(i|aUDuf_u^PAm3^0hWpqEai z?uYw9x~Q<&LjpVr0m~lh7M^EYqEt@%;0yWB-{9189&@<3*ZE(GCScfwS0d&SrI(UA~Hr{6khJ(MC}0OmNHUqf{FkS zd8~LV2ZpY}1!Rt2!ldt<)@c<7uq|}HvkoEp{4$o$NE9hK>orguw5>4NptkB_>Z!hy zC!ko0q8#g+gWlo*N&Wo_e)|@|;P)k?@QeT-@_@VVx*TDzz@q}tMVp69 z?>xj5X&u$aUS10v#rtTergB@Bzhy1C%htYk+>!h=JC(WXqcNTA6vw$en~St`IL#e* z=P)DB&c_`kyWIy3Zk{0E2NC&muAl0Y_{ zqw&FH3riC;$(y8f`xN=hSlEMneLiExA?+uc*A4*q)P69g)QO!w8Rq)TY);C&x^yzQ ze#@UY{9P)qc0kApP0L#LZ*y~*ZNXa9>F_l)j^&Zd_;B!IN+0@4?f^IV+9I{+myqhh zVk16yt>TXjzp+LJy0-Z~PXIaS6DT>LfvIGM2*SmOINWHQB$Di!P&jtZ1Nu7BHV_iZ zAU{vfpW>+33all^A&u*7v_c*&$zwnO1X%8XuqW_(Exf+d@s!nRKTWzGW^)KjGEXZhZpb4zo>08NsX%Jc;rtwMYW}{Se;w#W{E$ zl&)h-xpR|$tHa(SZ)=}V!TSUwfB^qFrifU>L*JRke5>LT)Z|hD%ZL7vXgPt?YFrri zAU?YN{txQ-eO5Hhk5_~L2l9E2S{`F>u98%IoC9#4?F8j#h~-DRf>^ypXoMAJ`l z3u}1Van6JwV9drR+M+fe|Nq=S&UDgEV!{uVROv`604YIA6hNcE04(QhX)683*TOy4 z0N-1tT#fL*jn`ciJcj^RMkaAstst)T^qo`^TY9-!n>Z_e_X}9M>ZR5Kd>E8h{Edv9 zX|@2ZF>Zm&nqrwcRq3@SO@IPTHb1f3oEPaA{fx|J0|FP9u}p3y zuJC{GMWspA)ahX4&mP_geHa}ax9qFu(BlJrKCtvdm8JNnjl~-ktvw0`_ntD0Fq#iMszRp4V(p0aU2pimWdk*yXH3b z_~rzEn|o^&+R%nH&9Y(D0^A=a|Nq?0oEF-#$>)aj&qo|WaExUrfD>UMNdDxGRPS;L z>|VM*#y@{|YLyj~J_^LwO`;Y;FIiO9zOT10zd?)f>Ju(Z(d0iHlef}I)FewT(L8vN zv$8K-YV^7@V+eY@=PA|J0CMEujNf!9+c-R%>NGd%rH;LO3;>5sFTd^3x| z=27z44Hu6h|Cd0H>XX4S5i8=kFMm>&@-dR&H;`V^@%>O$AJ+QwR%G}BCoe%;C-yKz zmBh!~My4OVy#TliD8qyn$XXYwe#=yjyoq&n-#<8?c6=*o8I zucT|;6lo>JqdCS9#(3I%5Gt#VDeFSwu@s`2&#(tzIPmc?T5un3IM&Xv!ESX^1Wzw; waR4cgZ9vW>j|tLqqFYkIGAsZ91}VS*00tBQ02~ki0Byhk0X+Z$`TzhGaALKjqyPW_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0279.h265 b/samples/h265SampleFrames/frame-0279.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9dd9e50cc2d60526f3d022088a3b1978ed514ff6 GIT binary patch literal 2018 zcmV<82OanT000330noAk)I$OSc)?l3mIMKCa0mf_U>F1eKr`P|%Yf36-u`VV_gnwm zllLb`^t-_TOS-RLY7p`>XkZ+f(2D^9Q5(Ch<|9!>s%yY=~%iDYZW_q6R;> z&Nk_BY{S&`q{eNR-UOdQ2zCqDCIowC7p(Z%?0Hwd#&`{AjM*#u|1BxBXRiQ4>hz<+ z5NvssCXY4C%}<{05FXR&1b03fWNnuK2i)b*aMwb=%osBJA$9^*YLL^(gST!1Y7I)a z&kbbtr(Bc`&=3w_>37rw%-_p4!H!c@fnbDH&4&AgKJnfq_6Ta^F`04g-Z$RcxpvQL zG&AVWE8ZHaYQ>yqQp|o;G14I^Lb8~Hyncp5&8c)>hGOoFb-G#)Lq_?QT^FLv`Ava* zo909AYx{$>*IF%klsupXpl%V%U#ZZ5URl}Kyce?}2+Olw*;`%UJ#Gbdeh0n$07+Kh z(0NfC#iqVHs^HrTeI+b>)H^USU$G|_Fpi8}QVX0m@jgtbr5!k|?!=>X@zE^8&N&Kx z4V2{KUhslR!=CDiWcLoFbbcTdyVvXp%79B#4F1hL4Kv4)0;@#w3EQ5R+26V?uu*=6 z+d01qLK~?_ zCEEfn%)?btB$*MD|9^?%aobK}Cm@N|D(%{l{?NH<9VzLNwu4-5&A24Q4Fowd-bp34 ziTxDoji3kJwhW>l^IhOQOd9~sI0`X}dLoh(=G<#T_cP10@ZSUwPMfo9fKcO|)~jeN zI1RN&5wo7wMzZ4aeS+!@_!o+h@)>{gJou9w_*UI=4R|-?TQ3#W%XhV{SQssar7wV6 zba3c@{5H9x@a{k89kRihN|*qL(s6ZAeT(^t+H<+uY#4By{$E%>CrcVXTQ8*?v;|j z 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0282.h265 b/samples/h265SampleFrames/frame-0282.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2bda041dcb90d29c66413931cb2bf8893a347dbf GIT binary patch literal 1354 zcmV-Q1-1GB000330no|+)I$OSaKTiP1Ox#Cq3{8KU>F1eKr`P|%YXogDCYFxQrSw# z>Tx$Wf;@MJ_mwt+k%S$T2B?*E1QZQ|oVq^Z6S>@Vt-oLg>&Xy>d~%rc96HOlwRxCz zBs?GRzyDv+Ki@os9Fnw!V}9Nq)KwM|x+;r^wvWMwb3pxkRPT9z((e~jKf?p?1JiCb ziK>w87=SOQKQ)m5zttAM)%oj$jOO1J-1S=6#y*z?fjgS51cIuy85skoQLpNIE}@LQ zz>H9XG!($l^c8(jeZ<+#pCKbzMVR#)*WkT3rSgeE>QXt}qVXZOIO8(iTmZE*o0FW2 zmV@^;)+IoU5SD2a;-B|ou z_>K6lZR=M6Vjfq}m4~|@nIoR%Qj0gZZHYQDGUk$m4n@I8P52^5OGsp=TTRrNzY9!> z;24hJAJ$RlutQ*$xV8L$cK#FvLPwQAf{WY$Nll&86SMgh3jFbuRy_z!pz}5bedGnY zEn%R*1;wKp97?6md{>QFJ!(Ff4d7ucG5nj=_T-!Wnk#pjL-UUCFo}bsqufUgOaTOFRS3nY1ou_?{!~ zD_55(pd-jZiDD8%7;$m~<*t;bV?kRFkCJoO68?W6RqH4SyeO)`m&dV_Z&c21==uGc zQI~TO+_t#!A_H4H!8dEv7@GmIKmqbMgyjvHoNwPso`t$a!E^WN$|5-llF000dx42&sGs8;rSuYDt=@*mWys;KxY-EO;u7#x3rzAAkS<|LG;6(o`6A zONj#s_L^a^h;4!8tG0L?-8v@qULvQI_C4Jd0QbJfr#E!hreB}){r6LD zK;G(hg4^}k?p=Si%R{cL%Fq`#wfF9Lfx=3#byh$`U<1#LdiE6jmAj*Ujx3#C+-qS< zKMTgnlWOm-K4Qbm-tI@Bk#sCj- z(nW-m`@X8#RhX+~#E-Xv!4fs0Q18y&G1Ii)i>lj2X9CBthgMu!weP3UioxUOb04KVblZq=sWDYgG}B^b*$NfF*C1S{%lVWnD$A zU|hQK;pZAOfKRfA+6&;^Dmn2in=siRqO-N7QCWMGUy3fbWk1a@9}2D#{XEZhUMpZ# z&l9VP&*BVDM8tmrIE*43h9hyeC)7XqL!`-1xXysT{qRSD4&2ZH037}R02~ki0Byhk M0X+Z$`TzhGaL?M7r~m)} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0283.h265 b/samples/h265SampleFrames/frame-0283.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9c65dea8e3112bf5da4f3bbd0314d1967cc34563 GIT binary patch literal 1759 zcmV<51|azW000330npL^)I$OSaKTy9$OHiZOWXl~U>F1eKr`P|%YXog0~fKeVvwSk z(pt?P-t}JHNcy$^|LEihXlAph`R0J9O$x3?p%zJ}NgZ7s^i{!P+!lSJGc})gNTX7m zsl@?iR}h)I;m#;Ei?p~=X;phuuRNh<2b5AFU@t{Rva z)Y`|m`BT=-GMPOP>!UwPbI#4|B6d^;vytU`z!ZpyfQtX}z++_CQ=Wz~V*j!-Rw>y6 znV+Bp2eH`DK{G!Bg!w@P;hu857)zow`{N53==t~z%!5AKW^HIu?eMH69Rg6%sy`A( z{E+ykEj9x@pQ>2MZ@+?%K<*CouXmjOp|R_`A0&{Qbw&USYbD>Pa-QbXjq%b^CBPrf41znt{jg_3R4I!#!9$wBors+zJFCHgIEapGu`{Zfr6DSH%)2sZy@t=qCbZ6-8_zw%gPmT>w zmLgH@AC3t?w6QZxnV$z=u}97wB70{&Mg%-!9@2TO-v9&SQTW1}QCCW)`# z5aK@{{UFu=So~Q2+7zs8kZy-A^6O%rwPHX30pNQ;uqW{prR7&B56D4fpr8N0-F#sq z)EN?hvnQ(wlE9_fnEPl+x{acg;x%$IH-A&_N>i~!V00tjk zX|rQNiJIvotOY&|XIBq`L2`c30V`jQ_Ay2Z49YwHS7O!yH8`~!P5MY`>F%=Ah3zJ` zYdZbD=o@>f_?}XlyT+Lk!G~&Nk_F3$c|Vm>dpikWy}lcZS=ZL@2U^-@+RrjkmKnP9RDv zTDy!8t`uqNcwh4C#)fOg6A6tK98&y!fwxjzyA>acQ~-L zR{F|d0LuJENQlX{X#_<&o8${9b?{mk=N`nshr&o|+eSMZ8!X~eib}_pK&aB!KC*f} z-5c^W@SrPPu^wTPKZ;;6kW)XhLCd8oYGyG@EjooYznI20!9%)VTW0>`vM+y(ri$$i z9K+RvyC*#~#ctPc5+WM0Bw*F~Gc&>79h+^i002Il000~i003>k00BJ!0{Q>|6>vq< BS3Lj# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0284.h265 b/samples/h265SampleFrames/frame-0284.h265 new file mode 100644 index 0000000000000000000000000000000000000000..47af60ae17c138747810d55f65b8fda549dd70b8 GIT binary patch literal 2424 zcmV-;35WIo000330npk1)I$OSc)@c`On`t80u8_f0ALIO04OuxRLg(?^eVQjW&ivC zgPt6zisA~s;$0;k$dDQ3;If-xN>Pl|8t`iQhWu;rQeY1Liv+R993 z49DHBfA?e^2OI}FeN_S`GC8?ZU;N!9jIfwNYSF_=#CK_MMdVPHT1Vl@bks~V-} zn?RJ-+;G-g>UB=rASWo|R76gs<%gQG62MFSLnny2nivJt%QiqW+~*F)|&cHE9*aX&{&DLr%}J=^JyqIf^> zgE$AKyx=pF(eE071LWEWY!5+?JI+CxK=aAPbol%Zot6fn_R@2Qm6yi4Oqvloyo)Jl zfB#b|?6P+X^sy5U|FTA{SHKr8nGMj1!{Ftab`^WROb8wX)wPSJevk%GckHgLst)5N zu}1>y;vn+uuVa$_N;x#bM4rlb`B{3y3~x&D^Kfwit?Fb?QLnP{pEazyV_^JUtbuop z$GMWLeP4>n*|@1+k(TfyBqo#OmWyiJU%2p&0=ixHauCYOx&f%$5qwG>@j__ef?~Y&V^`whD^tpIgmfwGa>{iNxqQCG!Q$KQhPFWiu@i#?_-KcR%lrfuzMP) zL31p^&PKZhe~qi$xa+q(MZ1dGTE-Qp`JCflz`NPsU@^u3dr>=~AM1Z*$D!$XzDje+ z&=x=S(yqWzOszSdQ~h$nze@lLpjCFn(JcWgYwvq8muOZzbr_kD$GZ|lgJ@@`>Z@rZ z*@Wf};-Hs0S%b9kZFu=qhTrSSRBxpMHP{t}yZ$P#AJDqjUf8E2!VS^Vvf>h%-TJ-Q zQ_T?6V@J6_G8SO=D}|&L-vnwCyUwS)Hvhi}d-1UvpDW{?&7k?**~dzC4`Us+{XH3d ziDJ6?ceMsRn{8A+Ag>`|OLsO(`PC_2Qq#ys)js_vla+B)_r4l~f7rgGcAL~dCy!Gq zq@IL_Q?9Y~>ul-m?!Ai{$nVMJvf%g6Qm@y?!DnAu#-W_xEgR7I9WLI3a3U^Z75B|Q za%Sf$@&QEmWB-#t6`}z%9f|chQq|yHlyT=n5bJ$+1YXAQr(X!ieYZw_cZ4a3zJmx+ z$*m@H3AP^ng!774`OQ3lO|{;(4qKvv9mi<_p%N_;fq|+5Pf z8gF-qIHsq{ENVFBcPgNPPGp46=r0%7o+ z#eAeW@7Wti=-%1SslVC;+JSrj&UqI)13vICrQ7lDEXF-kz*pC{AhJ||GSZyGeRW1m zu5AJeRsIE7mixPDw&4?PyRkBs88diF5@_>xr50TXwN=K8oU&$dqDcIStn-KVaOM4> zf&))l$AvVl>9U?WIK0esqfposL7kxlo`dBS?Z1)>i3~;t_K1b~G&CW<$_dB5wM4S^ zW!7jiwfp7utlm+=6Y+xsR{F`b7YE`QoG;|ohL5JvFe~03R$~dN1O;+BXL(@@cb(0J zV=706k{^OfNdse$(=47WT-%^+vKB;e`9;a(p$HF`;2Mgkb>ebSfoln@u|{u8f^h74 z;d+L0%4xz-lJ&I=C&=Vl&K$v{6l(25``3p%ivPjC;2+iezr-EY^godEhq^@8@&xB;HxIq+DP$bR`;0Z1p` zvNdb0yNf!M8Y^842eW-h=}0O7DM3mUK%>9_D_xjOBH#c30|L7g(l=zpPt;H7VVVA4kr5tshHmZdb>hW= z1OTJAbyo#?Oxot=(gYUF&hF9CQ3@r<6^yixHd6;=^X_)yJYf=2gDR}nLLYtD6erks zdLb*)IRb|K$mfP|v`W=U;CyEyC^I2h q6=q0dq5^{?vM>xuEc5!P002HzfB*m-5C8yezyJX~00Q~|02OfCpt&^w literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0285.h265 b/samples/h265SampleFrames/frame-0285.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1535be21253ad9d1eeaa7acf367904e133ba753e GIT binary patch literal 1501 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0288.h265 b/samples/h265SampleFrames/frame-0288.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3550a88c7ef95ef914f5cc3299b32ec7764130b6 GIT binary patch literal 1717 zcmV;m21@w=000330nqvX)I$OSaKTwB!~_8VKn(1FU>F1eKr`P|%YXog0}T8%u3vG> z|Nc1X;G9l%Z-If-hJ9Bf;M^blQF}EX5$B;(G~*j(!C)O66?z(RKsrhTtF)V2ziHtY zg%*}|tzGlL7N2o9s0ROQznA9u6KhsPP!p5+gk3u3?rKqm;@~@rP`#5NzVpz#;%ZNQ z7ytN_uK5QTU6%=JE`9Me1il=Y_dF(8e|=9sTH>~N105n2-+U{&>~?8m>iil;@tY8x z+ei`WA0%Q`Cxv0PVu>I9{~tql=f7`FJ=-hm;Wfe8Dr6Qt48wP_5QM{ACwYJ^K4aLW z7>EVU6B2Wu+~kU9;3Sb$7})jl1$3yT;IWexE<|};(zxD(`%Onx?En<2nuo*#B)l}W z9+=*}Hoy4bxSpg^P{4zV5nadDb?4MM9ZD!z%%wWOVV~tlcao*Lr39n9j>O^qVGM`w zYX!1PXt&Q3qBK0+rcp>U&LuqG`Lee;T6veOO2_ee^t@>OqZyQ(GJS)>&|E?Uk8Q#o z@8MuE53UIEFG>S)cg<-MgV7em!;cZz6&i}5lotQ07RVWLX&}=p$_4SIVO6%wpXHO_ zQ`>EA8k+n^oTGOfAik68ezU*u^4UQ?(%)h%HqhQYCvQ$pYp7aMnq5J}^Su(=157e3 zYfSY4_1<7Q)^M=ceoAWg5veFi4V(tQM)HL_*Sw92Svzm&*OMockHK}+f8qLm=Yv1C zE`KlYJic#p$Np{lRec~BhOe(gwuyt#{G<4*vqN|h{M{7+6dYyoWFQS^NVdOmSIJIng% zNs$1$Fct$(u0Nm3NUymmvFz zVJO$?H?zSJbDO2$iK78H#a^lk684e#TmWX|vc$D_XIjxsLYrCq-7qltwy6zQqVRdy zI4FfA?Jh=qO)w;M;nQ=GZo7@n4bZkbS0S%4ZXuw#jsvUrCenI+eH5!1cY^r|!td1} z=9C@1vk?FQ8kxATC-D@e^Fcvnpr8N0-F#sq)EN?hvnQ(z(@0Y7OntN@-6_)=acX7W z;M4vcT}I~UE)eT9)M1<+AoIwgf}2!;FW=E~*z4=9N2M#6((YX3v2XDAh}+ud)9`-5 z)U=@nEhQGB7BJBF=5wDK_(Zih^nh~V|Di>Bf%P2820JVduD^eS`o14ktutcP;f(0U zdUlr^pm36mJysyZR4@I;jz8%0f>fXZn z0$a>VbZT?F@%w$z9`3$PvXNE*lpv5fKy(R?Z!MHXr>U~`so0k=fkSfy2yI>VJ1Srv zIEL5mUW=y`9O9l)P#jr8mwRMeHBU|e0esEuoDRD%+jz8oTa;`S#;rSN;|OZnJQFKj z0fd)|(kTr75BMQOOpKWht*$3}jw{W`(o27h&Su+hkTqr{&AKs@Ck(LMv(Wa`uDBBy zP$20@DgY@#N)$k&zyK>Y=OpU6k^``hidj^LGfYFDiEWS>R; zG8bKYv`w{9=9BO`WvMti#0zO4b3Em7 z+dnBvd$$>U{+BNOE=`i&d5(BHEASvZe%tH)-l~Kl=WHQsjDqg+{rA83j!=35Amy^c zUOVC_T{~KOOx^&aa^75QA2tU8r3k>DuZnPz`F#SMThc>7c~HI>8Im9~?aW#iu@3&r z`9v^`vIkPw${Ip^4o6~-hYlZCGIDF3a@rx`r8`*xQory|qkhs{n-~qF9TOzpr?(s5 zC!Z;Qq1X6wUBi3t#9}TrA@8P(T!w>oxUsVT=2sl4_>7zvsPt9+c%T3QW{dy;ZNLBl LJpcmw000$mD;`8j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0289.h265 b/samples/h265SampleFrames/frame-0289.h265 new file mode 100644 index 0000000000000000000000000000000000000000..64497fa3882d6a3d715d4e2214ac5fe095efab55 GIT binary patch literal 2311 zcmV+i3HbH^000330nq{f)I$OSc)@XDSO97>Ey#P%A z&qr*oX1%#*Kdw!Qg^;9E|Nd*#?M~z~j0&~Fok!WWo~~V&KECF=LVrWNP?T2pJ_2WF zxwl%BwT=JsT|nd>R>7;H`WnnORYcBf5Zpd^@i3f7zSfEa5F(bW2j>sQ6&-m)r0Y|) z8g0+YEPyA~s9scdM$VE0#L+!3TTSNEUAdyJPXnodOj<2g22o)dkn57nGaW@T0@ev?Y zky!VczziV+mv-`WHE5MLt`O=~rE10OQbNzbzP!#xjsAmCc7MLLrK#3@M0}mVGZm1U zheERrSmU~1;1y&#Hs8Lt=JI;o)@f{nf&dUr#%1boN23rYxO}oAd?;zaj`^_i$ zu*u+>z-Oy)inD?eV}7#3kY%aS`;a>J3BbM+PQ2Q!RRc#cf7Y^d!dFun+?N6~G2r50g#PV3$vEbqj`-_g2-!8(H1s=kZO-IH_KJ&nAfQ=FCYQd&hqyejq zA;7S1#}Q>)-<~}aaH`LO?c&YhclQQPCHs2(eDl-KPH&w*-oNkcK+_@r-@+?&Bcd15e zZWZLZzWNt5-n!&CPQ8!4p^Ush=;c;EcoO$b%JzTa_l9n6*sm=FcV+8WnzOIBE)>iZ zYoK8s-7;g5TgSeMTJOz@5O6zm9pJ!cQoENID+s4}Q%T%Q>ipbj)0X0kh}Z>X?*X!ppQbO+A%TPYNmxk78;%##X>#u?%-AtOn?-ZI!(@v zgh@<2@gQmQ$G=!MBaPA%2IBSvGL;Zh;U<^%R*W7@jjO^Sh2R3I*l;vSgNo_!qg9~n zBQo{oW!<9!e4OZv{aD2>K#qFd{iuDRkUL5Qv{X~T9f6JF%fQDW*lkBb z{n_sfu0q{1Mra>U!iFOFLzo%CnV22Vwmu^*KNwd~T8ymMWGghpm*E)hD3WSl6wW?0 z>LVmc4Xv-`bQyDl3_pyI*tF9_D_xjOBH#c30|L7g(47>`#w z=ve`x0+!&|*P~xKK8r+cM>@to95`k&C}1%oy&xYD>=h`GIv6hM2S#7LoJ?{aD+QW_ z%YhZJ!$HkFR6lIg%mTqP^nt{mODA<|1?od5ugGZ-;5R~s`^v{cBS6n$E53A*A>=Nz z?|0dSE*{3KkeNy(i%in{hLZkP?RHO`(b#!1Vpdkzn|ot)89fq=eSP#VAh7sD!S42% zF_Sk6^=}nOfQr__%EbeYj@HGJP^12~nLXA=s*Je^{3rkdN;ch0tN6bk$jZMFRT@L_ zMvlPhEy_BG8Je0&cJ900Kbln*lV~a_aR){Drm8>NHWEe`hk)UC)fFR#NOLAbCxSyd zR1ZY|?OuXh2X{z=9}HsR_);$p4=B$z{l4BZfB`+O;9%9dB2((=L5~cq_*;9Aa}=A# ze;(4}j^7MHePa0&!q8NvX>`hq&Kl?N1{vG3|Kz9a8E#RjhyL*RA3U|6>!u9g6seQ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0290.h265 b/samples/h265SampleFrames/frame-0290.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2282ce0164d6ed33a0d645dd464236746ac05054 GIT binary patch literal 1605 zcmV-L2DrT3nh+pnhnm|7)AkHmtn3;t0f(7cVq*|J$;l^JRi8*{%WX9KM- zMl^`(M>f+hmz~t`msf}n%oUxdZ)bH6A5ENi%bPi+sK=B27bCb!$G9hIyMd5psX!QC zP$)L=j@57XTUhXtd~XY;^jd}W;5IjVB%DhO*7CwaPt)ty8{bsA4)dd)Rkkgk!aW_I zVG+pV^?2CdUYu6rvVkK`FN}yOUpkr0Vz?e*$PB1yjJzr>dk%3|RcRLG97{@fuPp7B zn3b=G8s1o`r*Edysb20Z3SP*Go|;ex4)al1R6c#N+E+bRI&I;pFH6BJYk^L_ks|HA z70-Yk%J8R3HEI((&FDB?nz(g-1aOt^`q3SyzA%WjO-Ot5-egwimKkT>D~YT#)Ui)Z zTn`S?Zh5@_OR8J3FZ!VgqO$`*-*?(}m{${rpYa;CfXz-I1_Yv2)^Cs5edvyw&pqtZ zH;X&=XYF_PQJW6mO6tjEjuv&$_Q*H-AkLOVm`vyS1Ph*3ri1>fxV;swXY(JBxAF$E z0ELrhH6yh{pa2(e{ZB~qy$BWAf^qo){19(a#%F@E!FIK`f7z~G(0#jHmY4U09NU^g zl2k6iPiCn%e}q|Uo@7!LKG%M!eIS~)NoY>y&c(^?^Sj7+NQp5WR4*T?mUCPV!yS;T zbY9ELXUOa%HqBa(J@#f-HM~jLYl!A_11fw0)=hXfi4&0E!sG#Mv;Y7ahjg$f@f4-= zKmLm^KkQ%rXtQvar7Le>8R}LvR1uNs?+`NBgFEG+6g9Ch^-}&s@J9(|kPaEcU1dKk z3^45fx8%!2L7?Fr+8N{z{?O+f@f!d?-9!BQv-I;|wC+-yqqu*)tp%)czB?4B;T07JUFzu~;=( z;$6mdW!;W49>>xScz|n6G3iJu04YIA6hNcE04rUXOd{X_00RQM6w@c+000)*0a~yC z0L&@Qg6vv)#r_wS;>>N*@Bi<`YAsAf35?-~8fj-RRF7qqYJte1J5q(m8Ji{0&B5LU z#=K#BJ0K@VjKr*E*=@FC#x5%Xkvio`b%rA*1q{!CF?>rlVV=6K$SYKVh_MAjEfj^y zBtAP~DyvYx#oiroY?!_*=>|9OL?Q@rKp%@_-xkYF6myK4V8eJkSrJEPtj+TF8lQbb z%3Rg7cuDnli8GyU&_9|@HrK$X&Tq;IA0DRdvScpncm+}$z?wLAOYIB!T}Iw@$_J2}*v}!O`2nwa9M`M!!(4QXYT~d?dprT$npjK7 zH5`q;iX);!h-Iocv33otb&yY8JpuXx@9!Qv^|L^qo#jeV@vK7`pRh{Fn4=Pkan^cGqL<)X zo`#3ur%lf-BTDFdVQhuyLDv(*QUA2c;g2rTdy3O|Radw>UP=H5O>h7KJpcmw000$m DjVb{X literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0291.h265 b/samples/h265SampleFrames/frame-0291.h265 new file mode 100644 index 0000000000000000000000000000000000000000..84965ab834da7f3cd91ccd8e15ad7314a78b34f1 GIT binary patch literal 2683 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0292.h265 b/samples/h265SampleFrames/frame-0292.h265 new file mode 100644 index 0000000000000000000000000000000000000000..72730d2eed479397df623cce59b0cf1f01cb54f4 GIT binary patch literal 1585 zcmV-12G02a000330nr)%)I$OSaKThs8Uz6VKnw)Oz!(GpKr`P|%YXog7g;9=`Cf61 z^1khxA*GjBv#W|j2T$vk;Zq$9G(u-c9|H}7hIO##zqXPZ54h#}@e}*wg7_p@0>VfE zYt$>O;SnnDqBleWys0ms=wV&IRXnS#VPJu(w}CvVxm%_$7PujZf8XrU^XaVRGp*j2 zpEHuxD$+>cB{TRmhB?k>{v@NglrTH|#^4EarwSJ*k{RWZY*Bcx$~>1BdCjui&XwAu zoi z-^iOL;RZ{kp|olbOAR)aL_;N8Aal;xeJBf3-_YX8%B;t}fj6I^cxi6{hOecaRqW;E z5X2$Tsh*L=W1rm{ML#!2B}@00>Wqe=l{KFJ$@jq5T4M_{`B`udD1U1a=$g})!C)K8 zo3?lymAaMfPRu3#ZB*`~8S{$CBGhikj{m9EJxkX?!!)H@U#KZ(SG{Fv#J>F=r+UKi zc?MTy>DTSlBM@n6M}G02=HvCM+vNVpk8%Ibqbc%yVZ+ZTfH)piVj%NHjE`YjZ``RC z9tZ#=dR`mLd7k_3apNH_S$7yf5TG=4dZu~%q#S;hxia%o{ExCKqmx?}?NEO-9T}3X z&zPP5?+l)A1ON>ggRm#@6s7dFdUj`4-%v-uZWj5Oub%$IJO4M%_( z*jDz`IcoAw2PBS(&>VxSntmp|oJQh41KP=;qySa_C@!wBOFMv8_3ya2JlMoKf&g0k z@0HsgVkp(oUy%MyL=#}T$!I=Q46Ue8JfyYucR(pDB{)l)X}s_lU~i}x-X@*zeSIez zTVyO@JOetDpsVnGeFl4LtqX253f=dR+jSby@(2N*CoDisDW?mx@Za#52R*OA?feY} z|6@eD@#E4nnJ54M{*2LF|J0}jMV7efNGbp+K}r-rqrdumAw&->k)rfI<)e1OMG0N>iS#>AGkC@BjaLu@nZ8z+vp|i~Lb~NwArK4*c4h z+s+CGLt=h1B(hu5L8kBB4NNfPZ(^g^AUonuqb@pr<34hD1&yJk6QP4m$4cdb-AKGJ znp3y|*-~J9fd*ik7*XsM&(i_>E=n%s&eHSh(;RdZRcXrms z9GOgMSfX3pojH=gZE_-7GMux94;Yg6&U~32tB8qTk0GcFoJI2Xjf-l~9 z=kQEi^_K&>x?&k_*8qj>1Z)>GBPfmW_5~k}cnCD#)|eahPz6l7OSPEI0VpKd{qmDw z9`(Ne!tMx6JF?~&+X(HTw5W+g?{mjD+enF(TLd@mQ+HATQ>A6$ny7 zJojEl69CjBL)I^G(P2fz+gHup^b0UV}0+c#5 z1)O2&IBx)tKoQ}t;54oA<3_A)y?0szD$D^IlO|hA$Up!qbO3`$4(PeFOJK@y&9?4$ zXNa)UkxJdL2AKY2Ian@|;?RXvR`pLuo2ckFFRB7N!InzE_h7KJpcmw000$m@a+VR literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0293.h265 b/samples/h265SampleFrames/frame-0293.h265 new file mode 100644 index 0000000000000000000000000000000000000000..991edb2cb28b6e90a866c89f16f596b34fef8028 GIT binary patch literal 1756 zcmV<21|#_Z000330ns7<)I$OSaKTwR(gXnjKnw#rK;Q-eKr`P|%YXog69))`;jMD} zj$i-r$4>;}v#Wdz5~M!rxggEDzr`0nQaVd32JMgI%BIT9bsGhL&CDwlz$Rv~ieA5c zdd_E=ewwFVcr;*mK_CjUqk10eC~yAdp{fGP`z^R-%VNzZJ3r>ak8d+)dIs} zbVfJ;8K}t-F=wHT6kuzXMpKpTqvSDF?6r!|sq&isu)dHZSjo5Aqw`<$zD?t`*Q#to z9<6=3F*Tf9qD~XO_^pRoX+s7xQ|uKwUU`7kJRGRKhy8KGd*|RV^B2t}Co)ayhFQ`n zSTBp6LUc-aLPRMBime1mZ|;lI{Lo7Zvoyi4Ll2@UyO^Z~yU!z8&w-{!VDPjT{_K&< z_(Q$(yp19C!5pvN38N{u=Ue8)b#H@k@f^DwjgMQHNl~u#Z9BooEv*v4S~MtiOQshm znT#v?kDdake6NDF*+V)tPWCQdEBr$iAG#fq>Lzw1&bV)iK!0y9zoqL;IE@z5!}Mij zB`Uo{ku>^m9Ipm93$(JNZEh34&{I|Nf_Riz->RI~D3q*h7`hMqp z{@A&^zr6DK{m&cuyXjT*fL&yh9Bwk1sW^hu(vq-%f@5P+bjR5OUl5vp^Z|$<;*T+r z5Pss}>*CZ^^j+p#GJWd*FZ^fW{GA#4dwv7M@Dt;MOmDo@0exsR()DbwMD-3-^6z7n z29--bVBuuNC|+dW@nR8Z{r0bgG&o(r?JJ_*fmD$Gyu-nfO|s!>Nyl_uCP58UT4;be zzu+c;JG#``DPeN!RAhetcF0+N344kSjbnfgX$cTY5Zb1H7W5Fm=UUHt`D`n2uo-!x z$d&zLemooaw41=ECJ!%QEHm6LCX9_Nh%mjB%!WqRRFzV$;@sE9hbxGEcor1Ex}m6Q zr)pfLY-2s}001Ly$gn5z6s7Y)L1mzy|G(XQVI$NT5`eReYYC=d^6gB0v?Sd|nHq6h z=2GNV{vBOIN6;=1>onA1oEpHr$fAOqRDdtv(G%KhE3HSRE11&mT;$F+V_&=-R^xD%hEj}2| zjEA^|bafet$>KS5%_c>umAwym_rDt z00aN#C$x#V=m-9tPQU#Ducf*RSliw99{5=JJ=-O-<e4~oO8vK8GR2jfVKcch^$HlljmcUgnXwOBmRM&`HqVx?9M!HgEUEH1ee~ zLHmjg9sjYn7Ha8v#b8e&=~4+8G`@SM^UxqTvWf9YJ2Er{5k^5)wl^#HQC{RgJNXG; z%!d)ubWVakCsyTGDlhCVEK)1qR~dOmB2cU8*9)gfN5J(6y2ff$)zkXJg<8W(-{~E4 zgi`+K`#d)2){azMMC#vZJk=r&8H5p5vf!!@m+nxfub4KnIzue8z(>=(iVhwv&WSwF)4kO}y2tvM<{Viods^A_NDO)+Byr^^Cl=bWtob1BiQ ygQeC9yCbdu3s0K7!#@Mv2@l{FB8@t4hoqD_e^{AG2U;yt008QM00Q~|02OebeOJ2x literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0294.h265 b/samples/h265SampleFrames/frame-0294.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5ae542faf090aeb01fefcddf3e2fb0b41b795f7c GIT binary patch literal 2112 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0296.h265 b/samples/h265SampleFrames/frame-0296.h265 new file mode 100644 index 0000000000000000000000000000000000000000..013de4561e1636cc170b1c8c99ec6bf28c5bfeeb GIT binary patch literal 2969 zcmV;K3ug2H000330ns`C)I$OSaKU-GO#pxp0st@u0SL$efG9KHRLg+Uk>B}nOR`Z( z{Z;p~Q}fIIGuWk_O~81wL`3`VDgzX8b@g0}CknbM=^;~^`7;TQXF6VLKn1D}M= zB8tM(zMVMDj}zs+a@27D_Rl5%XsQ(5B@;@6FY=^dt6TW6$dBr;-=!ihR@LLx`O7=@ z0VfAAdr&n$@`c$VC!EucEfdJ+sZr?T!1IC%!lut9Y=9Jc)fVT^XPdYl#N`#_6+Wg# z9VDJ%9AI()<9%l#HeL94?NT9cqd(c^j~Dvmz2N!n@UyQ`D@V@5bZfQD!$i z#2b3=Cf|>DjrS1OB)Nuc5 zCFX`XKNU+}3k1bZn8C>{G!~%Japi1&yx!mgW!cRE>x*i2R$Ri)2(W63xgcEEjP4&Y zjogfUF&8yBF3bxi6O7F^jJ|WdMKx?Xr>Fm|i zg7%f@STBQ&S|K3^=w_yAdi@*T_oawH33CRX7PfH5ElhH~oB0 zvsoN-DKo1c$i)t+V;=K)cnV#5V#D49XUQ6-mBY!ir`uuMcvFxw#hriM--yNTKSp~K zHvJmHRrt4)yB%>S+*km;iCZ){Mhz=w;B>ebwW zS(myMoXwz^lGS0gN(*BP(h)+V0H>9fP;H)TNe3Mieo=-Ndx_pS#SnBM@|2)qy;ayc z0kxI0fE{-GQjb|62^--Z*?pBKJcHu6QslR%y9!w1&@&H^`lKa9FD(}A^(zCpx6@&< z2^fH-x0uc+Rg|8%Tyu$&t1eoE7SsAX#svFC zJiY-U%%XKfhu9DPtWse?`QdA}^tZO3>b`RiZjLiP*-WS`+!&RAmh1RO70a*B(aZlAdF^JM1 z15tEiWrXr#LMM}z3*2*`IF3N)_x=p93!^Ep`M)ZOyUNtN2<86x5!KSwMJVB?jKpYy z?FZTXFH1?s@AZjiQtaJQvl<2c;T-PT5c7p=@r0k8McJu~2*fwI08}n?ysA5c^jaO= zBq2KKMLi$3qW{*83CalcAl#+8*dy932cS?5M#32CDNPe5jE2CO4%3w6(+fR5K`CmP z+=d9r{!>NCze8>5o}f1QR_AKU!sf?iU+->tk6&I#HwF_(70cU1eV}c##a^ud&#z1m<8`22XGjf{l_3y*CXONPb_TwTC>c252*K zFqA%2T_Sq{OhGHxw_SpJ$pb$?0g&6WV#^|vq30M9eSQ0wXOV$(ZS>v-msf*W7tHa= z4@8V*a;vP>kT8NyVi$K;N%%R0$t>I%SU>Yd?ba7}V$6+Y0eGh~4Rx&;j~0H>831N` za=xyfD(>@n!UBiPIem_z_CVu+e^uke^hW+-uBBAkd6bS5B1TaE@9xT<+_~no6*aB7 z0)!V0(UeXaSn(GCaQN4U&gyas#Tu2@+IzneME5uHXM;R30FMMCqa+dyXWlhlzCaqz zSbU0Gbd)lczf38r8}sTw00350P_QTPu|&N(V5X)0|Nra*6q%vXB1=#Qg9Z32#6oa+ zDiu&#_i2BTMShTsp7FI*;F&uhm3rcFzG3EK4|l6qBVnqazHdFd-D?Yc60f!|X#f8I zj2BUT_8eFf~$X^0`F zqFh`x1=MkmB7kH9f2%?M8omexAjb^+*W~k{6T2>ECxiOGUgT}&$;VI+l@t*A9?)+4 z=Adg3!TY@oxV*O>o6i8e3mT%L8+2?4YH;>aDUVzLKFYQ7?2>Pc^RtLmM0XXvu%$ks zp0}z-a)4UP8Zk=$z_Yb6wV)>YSy}3}J$&imnsMy*<(qdjg3}@BeM9Ifj)Ou2P4R~# zBv&mpYyq!Z$nTba9wv+lqjXr8;gZ$iE`1l}{*v`*- z|Nee?zhqYTdtnB(3Fgoso&JOYQL`VRF)q@b-yM4{o`wPBe0?8ZRa2_;8Emu7Yf@p^-5BahSUiEo$&RK)n@k*Lmszuz7 z(42;%J=}(+pC(ZBIOHeku7uyVnu^-ZHdG;^m^Dtafm7CMFK6kqlP(mKyT=_4&+UeS zCzanUJ2?c;+cs6102kX{sW;&pf1$fUdaG}INrAq_KzRS6Wz1wKmM9_D_xjOBH#c30|L7g({hupH9Q$!<@46$#`UB5m4S;OoDba41iUT@2- zNqGJ7C^{U4{~1QVSjAn?oHT-&Zh!NTyTyNXH0wvd=Sqd0@|rQboJIzH8^_4f5SIR! zhR9aZ2xD|%S>k+E;uv4*4-j?|%SF>Es%ger0rs#DPs=>lDWZ@h8axmugMs0{&eu5! z{#78GfN#glqa^kkAQ$7kB@X=hHx5V>3lrSa*51&NCmW)h=mS5zuuw%u!o1hRurY!< zy{FtiP&CIQ$AAPiv(AbEeC>b^k#&@n6^@G8n6(v`&635Lttp6XZ3a%MO^t4c+T|Ki zAC$A)$y;WdaFmWSP^B1BiwZ4a?ljHsV581AvM5BMUk{#v0wX+=yd|0oB@DRV5|t4oBTi5pNB~IP#Mq(8PyHM zOMJ*dtkEY>u+%~eFz}8zjLp`@%V)jkw#BTY6hwRG5}h+lu&OLYX@TFssWjtXv!@9Wnn4z9{kxA&`&%&;S3T*}lVE!Ycu&3_*2!bBkXolnLolpZ0~!x_cO#uB|Gm1SE)Yul}UmHyO!!)6MM&9_La?q zRT)`J(@zHYV(Z8f?;}o0(@hae&%BD+9A0UTnNLJLNx|`B#34Bmz83)JoYL^Xui44P zO}5qz@2Hn#2VOBc`#5jazWRUJX`|&0A@}h<4Q%NY< z23?jU03#>qN1^PIrnKS#!i)f20&Tak@~ZhZ!_T*j6$t(T^S;d~!+Y}`UtMqEe;*!% zZm0iD49}bec0*=A6HooZlJPM>)#K9?9dYmfyJA><0yTJBbv>yS0=D{PA1W&LSh(Al zgJD&rmm#225dbO#b-Rtp74^Yb@oLj}qU5OPpzK^wJ?c?7LRUXw^>1>>&+`Yr;>oJp zzF`3!=E!cyjF5YO{@sETX6n8b{N6KtLo%QML+m!Fp?)83=MWVWa*8S4Oe}S}lWJ<< zq%d7&2@`~0EMv$E4hgY~)xi7{?qafA$Ik|7GJGOQ@W=fzi&nbT)k>@qs(PUtzFjd< z7W2eXKm*ha??EriqD`ub7i?xfTOtyggmulBcMUrZD0K!jG^I_^f{iW9Y?6(;5A>Ea zEMNcw^rwKZC-D@eCNdtrn-cJq5B ze5N%^hjuc;X`Zt{4ot)2A6`!t8@X6PivY4cH3Kl&-ZmIhL}a!Tg=F_k@Hfkifaypo z04YIA6hNcE04rUXOd{X_00RQM6w@c+000)*0a~yC0N|KI2&e!BM5^iLPp|+Xp8C_S z(|Oav_)-7N7oPSW!oENLSNxFsjKOmWUyyE0Lsb^32ACk_m=P8h>qgt$DG~P!Tki?I zeiP$=?o98}>)*T^pEi+n3=4T1B~S}scVyg-CE%11@N@mKR?up3eZ0?2+lDB_H?DfI z3%TDv-PCE4La|bX(_Yn0bR16@ z{w2c#W;EIkLOEa7USb%TdMM zmD}Z%q;_CEyqsM=fTXfTV5*)>~HPILrja@g!3QNB{!Ls>^&}gi|8K zRhtLBsPvAY{Ui@Tm2N@3ENwjmS#E!?5wEzHU+#Ld#mI^_4Lbk^f;iuVW3|rB=U?^z z!$17O4xGQV7Nn{yg?F+Ptx*s!&Xszn1_^C`!#m+MWDqzIsEo}9H;K_05QP@1=gxo} z3HU>i{(ye;`Q9}Lm7{`Eizw)ije1B}+g_uU%fU-n?A&gvBEN*6XS$#4UiXE-@@`=q zGkhAIdXfWGn?xucN@U7X2fwN;$4%e^Jr4m%!dhirY6P^Nm(msJYt%5$0Rh6fEbkZc nZ&Y?Hqatri7YQGu(Y14waV1bk_pYZsKmaLVkN^Vu000$msom$r literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0298.h265 b/samples/h265SampleFrames/frame-0298.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14f2319f9cbe8dc0a724a1edadaf3492dd96d66d GIT binary patch literal 1872 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0300.h265 b/samples/h265SampleFrames/frame-0300.h265 new file mode 100644 index 0000000000000000000000000000000000000000..25f86fa65ad5e38ccb1c3ffa844f1adf9836ec13 GIT binary patch literal 1698 zcmV;T23`38000330nu6i)I$OSaKTpUegpvkKnw!_=Q4@`z%$=e%YXog0}T48cFX&x z`ABW>H$T}!mr!=X0#VT`9@lS0znUp1SpQNxavJkhQ&1yt>w7;&0H=pJl!_`9i`kJ% zH3%vlPb&yIw-fD1^M5?nVIZun`d`IZ_%iQW^c7VF&!0YCaP&;1XBA3VV!FK>=ECo{ z>^7VK{eZuVyJQ6hCW;D{y#m>bXO5}@o7^#o6|xodA!x`gVaw1<{pxUQ2Xlhb>sih> zyH-^LjFTXacPk0phPjH%?TC-*I8{2&XfiN7(NqvS?~4ZwqF5MKg4MJgcFnMFSfA6= zgOjko6ZhpB!L}G?!it~*3+Jk3i#d|JC#XWpChFyY&P97ya~lY)_< z`+hxVaS+|mO890Um2bZtPZ+K7?D+!(a|5c&s`7be*FA7fJ6_CXa+-G>EoZFBoOn5- z6Xx(hJ{FQMl8;}OHUFLw_#mUE;~)1&Wm4rqklU%-qcB7`_T0GNtWL09C#!XhPoky}t-Y+cSGQh$)~Egd|@)pNDMad1(b<>b=hV z2$Vy(xOc!&Y6%OX=Jps0lcwS7doN@u1ZrQi=m;y#mTyd_%Aj2uCMMvJq0gRuh{iqy=0kz+h@Ea# zB?mc)-YJ1&XXXIwQ$B4)b`DMKSAcs5=49`co{GrKzB}i-TA3B!H>wB|j0V|_fZ=x4 zU-I+9yJ!C_&-sv!C)uhMg+ShU$aAsBLBx0isPFdA8S4kMo77juBjJ1OaRx``=jQm( z&RrumAwym_rDt00l&<>E=(c03n{T zC9&NUq%-+1F=R3FZpu!f4zf12=Y{eU^zno)u42BIjg7Fu&s@Ux=MCBUBXoHFfqM%S zCta;-S|cX&$2OTpWmZ>g3jjNj+L>9d?j&XXZ&_zD_YK>Dh>OYt+9-Kj41zfYDbX8^)Sez5;S z5r&^7^(aA0`>Su>inG)`c(T-p0%t)`hPh3?z|BSErq?7f`VtIwz6I;51a5m)UOi{U zl~}%BV9RKZnb!v-SA+{R6k~t@KGE}g$j0yf!$R{la(baWa&uvN3EeRE3xJL0a4*D9 z{up>7&}fk~BVspxd;lb=eCiz>mH{Az@w9@|+6%aAo>LxqI2UG_ya3AnNnC+6eji=* zN~u;HyjmLx$uHx`)o)Eg6KV2oZaC zUWn0VlTUT?(=O1Z=YQsddc;T}@=|F}Gpl#QMn*CS0d$D+rj-Tfke|^r$!R%80@^i<6Zd|CSl>5~9muI&fgl5C_ s(mPw3+aHOIK)@l>33=1O9%)7~JXkt+sHi|$PaI)OumDF1fB*m$aAWvKApigX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0301.h265 b/samples/h265SampleFrames/frame-0301.h265 new file mode 100644 index 0000000000000000000000000000000000000000..019972b0355b50df7c6c0f9e86ad9c6d7466535d GIT binary patch literal 3450 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 UmSm<^1?mDX-2izaAOHXraIXW~WdHyG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0303.h265 b/samples/h265SampleFrames/frame-0303.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d64dc3e7f57e5a2e93b78fb36a4e4a6af91bd9f8 GIT binary patch literal 1705 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 Yxinw^@+WPQw&~OVywca_zyJUha5UCTZ~y=R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0306.h265 b/samples/h265SampleFrames/frame-0306.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1786209c349f49fb3aaee796c524615488dd50d1 GIT binary patch literal 2485 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 b5s4t6gmW!HMtb%b>k@ZD%Inr3000$m{wdd5W zoAtb444B@<-EiU3g84b^KM+c|w`{k>x8ic|V!&+Zcz2^aCw6;G$35_hX*~i6_uIlt z7YpX~$bc+#^IPDqnpJAn&{#q15t`hlXnp4fl(J0VB^7eMr3_UU%WfneYbHNo=8ed+ z?UQ0j5aZBK6tUviUhfhpWWymG6~eIh9;04FRlEkSOYxk!Ch0mZ(nT!f3*PxrUOR;0(>j3q+3&O_NhQyB5!DF^SFIt;RYH@L=J< zY|&}xUF|i~N*YZa3BL!%oRJg@eo=UUVI@?5J_x#5VDLB0o|G|2@C&6QE(IE zyBGbmtD@YIV!WDKuWpFKWp3jSgZ_b_AK>(tFHsbmnt>{64my^=ud)lDacu*rUtXM~ zW$U6bf+|uG{%?ODbAs0}VHz_-Sv2nb8}Nv1!X;e+HfaCR*4aF4zxdz|*of zn?B=e$8zbaF!;6iONxR^hsm4*w6hE!h;wySVCv-rg`3$RL1RZNaueVYSt@sP6Gu0r z{ZHw*j6EKmzuwf`umAAOf0>uLE@%nHes9mKYsQLmxVD6H>Sj8<%0P2ToeyfDRfhd0 z69Mj1apN$_)}H?*;16#YX|tIVL@2?}I8z|F+>T*>lZ0&cVuPL@$-dWb`O7n}73{C~ z985!Pd>8LjXifqlZ`_)W@oS~Jk{-Or*Uqx=0MKAXSN|n+2saD-^rt@rU;O;HM00o^ zsDu!hQ`o6i-iPC*=nSZb?K_z_#1-T%OrTHoUpj$56Zo)>zMOH>^QFI$vLhr|doc65 z)olge47RA^JP48qAY0y;(ogI%bDY*n|sP89{Joa zTs^8;fmB0AWiV3c5@Wx@`_DS+2UaL9$O400ZMHcI;&r&ZTK=QU-Em$CX?%1B3$bubCY9rz6eN)8MyJMfywDY{Pm)CtS~z4Jkhn4*w~(RY zd|gsFepyf+$ITV&{--S1*IivTK^R%iPyR+2I2(CR>N2kQC>yD0(gKj1J$l z2c@0950N4&2b<#xepu>Y16xlwfyanh*_`kKjAr5m){a>TEd$B!Np@Q5Vcml@!5*%g z|4K5U+CO-|ryy7vb;LpwRZB}_+u}~ZX`b_NJkd%T$~k1#;V)RU702ZrmNS(w{Ka1Z z%syf%JWVvYCLrA1VDAY+(mFARj@fr{oSFA0790{R{7w>v+_{abzZe!^KDfSjtPP9b zit3re1}SEKqbKQ2oAb)4U_q{)cg7);cahv&L1jPKB?+*uoTWxoKK!k>8n6Bu0|MHO zqRY(*$%v_lWnOiuJaX%SajY>F)|CgO45-RxwcRV#<`62t+7E_M;3K|LmWQGWIH1NH z&K>e{c)|3%L7Iw7bZAE~h52eSOy<(TEdB)8X@^GA)HdbN7R?h{B*$7mwF&khuOjta z2i3p%6?u&Rf}t<1k47HlW>&v_{-Ke`_%41e;A-DhZ7yRtfIkbm(AC;-TkgGJbweCg z9iRbowx~0j{pk?M>tv{Fujq{iXH!sgEDqr`6p0{;s3QnPhRPsijT*5D3elQKB6*0W)`}COZ^20uP5v z+qwlMPKaoRFpXyXaYK1H2?A*iT3VGnFxGSa1Mw&*M`3d0T z@zSXu(UqPd4g638SEb2X*Mrae@kUl!t@nBP)UpzdQp`+$2Z)^4;O^93gB|}TnxR}s z>2qo6ocz2eS1s~aZL_cba;UHoB7jLk~UUPa${)#FHIWL6F+BP`acd$ uAC0Kjn=G_`_yI`BsNfFCXapVCleV?@0Eqxi>QL+IeM65GiK8|E02OfQXrmDT literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0310.h265 b/samples/h265SampleFrames/frame-0310.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ca90510d59eb99d87436b90e3bf98a5ed3cebd63 GIT binary patch literal 1614 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 Q66q=c+o~=!qyP@Xe>rL6&;S4c literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0312.h265 b/samples/h265SampleFrames/frame-0312.h265 new file mode 100644 index 0000000000000000000000000000000000000000..33c8e73d3204ede2fa89ec160fc7bcf0fed018a7 GIT binary patch literal 1579 zcmV+`2Gscg000330nxet)I$OSc)?T(8Uz6VKnw!_;2;SeKr`P|%YXog7fpcRpkd{k< zcTZ*Q2@VScCfr`dHBud>5TyhZe+S#?ES^Vz=XbhH7yN)OGLI$^;U9NsKKJXc+CY*7_36X5pTj;@KV2IE zMKQs~Y?_z=&@-F0t%NRdqg5|39%~;`g>}?StGMmb#&3lkj#%RoejhUu1kbs<`qKtS zzR0xIF;DXzpzCX1oiX)`69Dq;h+Ss?jMf4N1>nNmO*#THp}@IzBxHZ;%(@4oRtI-# z>A&}3uNDSW?NjtR2&pcQE@mxzvJ>0a{JUIufbe*Odvwfk_BV;6td(OSKK~0o{ zx>#Oew&3`$@XK*A$lPODywm%#A63SJD60z+b+s>>o z1=0k*XEiXZhH{m-E-k-of;B&~!1X~{Wc=(@tQR;niW)W>f7Jh$xVilcHln{ep^yLs zET4d|C-D@e+BV$ zoWNkE02L3l_wIOs!c4GsRzNeD1to;133F{Xo&yXG^<^&}cCy5AJ;q3FCp9%EFmRVw z-q>Ld-MrnPX8BU&@(x%G#q`8j0%O$i=ip4>bHxRuX` z|Ns5A_Py??Ux5>glIch)04YIA6hNcE04rUXOd{X_00RQM6w@c+000)*0a~yC0N|KI z2&e!BM5^iLPp|+ho53Ui^avz?188xveGD_y;O%AoLjUM}W9GZrLd_VRczD}SEzl_~ zgff%725l#uiujbwIx=o0#1C9z=FO(1o8B{StFVX#Bw7jH9FfA@YquvD>LkIXohHMx z%gr(GPi@k!jIX%BuFu7ftP=1(Mf7|vPV~s%wNUsEyZf7s7$8Jh8Hi0U-t0Ogdq{-%rBR9)f~j07*!)u-Y$-lWK%Y{koZ#Lu0b_H5?BFAA}EDa=3cQ7LehiJfijuFaR5OJ!l?t z=dh6gGRpI|lMDS`pa1V;I?Y%p0$xO-K>;KQn^@pakXcb`F^CCs9v_Nn(8~Q}c#p8-QuOb8B2PZsVa=Vc8{+6T=mxC{2Hl z_A25>hHrjMltWl+rY`Mwv9N=cL;>H*gr<|c>6;u1btUmm7g~qJ@}q=_FYQUDWh8Gs_h1gHQ2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0313.h265 b/samples/h265SampleFrames/frame-0313.h265 new file mode 100644 index 0000000000000000000000000000000000000000..01cb3f2cef6cf97bc7223af2ad9c1e1b88f6865f GIT binary patch literal 2438 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 f006_I)B#AR@!0AYeh& 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 F1%zOl literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0319.h265 b/samples/h265SampleFrames/frame-0319.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1e47805a5b8f1ed09b8bbb4769f28477a7a403fe GIT binary patch literal 2527 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0321.h265 b/samples/h265SampleFrames/frame-0321.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b9b858c3c65ee289582407409d88d838a0d7cbe9 GIT binary patch literal 3370 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 AGXMYp literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0322.h265 b/samples/h265SampleFrames/frame-0322.h265 new file mode 100644 index 0000000000000000000000000000000000000000..001e2106e9cd48b9e4a799c036d098f772c91417 GIT binary patch literal 1966 zcmV;f2T}L{000330n!Qo)I$OT7{OU0Km-9GNDc#m05A&jKtqdpFqtIEd%2zhEhsNU z#j2GCRn!RoMIH9XC8-^NPNC=;%|)&LLiz+xY+TEbgiBEfyLRDz;ewD$nTAODl#Kz# z_89Y@mR4$vddPqO|NsBPwK+{XG(@nd9~pln@N6Vj-11t#!ue0br_=C!Z>jvOlYaH( zeIle80GrRc)YF$PuqC4*mUvd?%RN<_K5{SAVhB9Ng+-x^+_nrC^E8h+j6K+AKmWg5 zJH=@s7Xc0brB=x83p>ty%*5Sw()@~v;lDn==-|$}z?D#U{F(O_@zCrQoS6`Xc+^qj zO5R0}xgdv~{#*V*xzL`|$hSv3yPN)BtB(RD?tVXC3oM5GiW4EtEm85r4n7=0uO5qQ zZ!pWMeiQZo$Su=im6hfi=8;ENmZ7=pKg%D>b9T?0W?3%H;cc!89ZH3H*xw^F_0} zm`opf3DiVfD4PfK#~z0ePXYsIL%?)IM1(~V1PoCH95K886wHcl)f>nuJTg!e)>6P=)EM6XOs2 z!e$~N;{`we^k=W!z90-xD!q8#t%{Y<1Fu4TR^RXcsvLc>?@NtO8wMLT^3|cib0-2M zoMlVpo|e}iXtM4bGD06w`qppHmGlIvQ5?VW(F{h=X$yPt*D^kv*y_>)nJIvhp6pAo zgTk7W!-4@uO&-zaQ+C4I4#9Ge7sy-~G#*I|;Nk{D& zz$Y0b({`<4H(}?M!n0AABr}xO(8|w2Wln|9~)y3B_Z2-8tbD zhm_+no9m>P&fMs>Rr@_$4${~Vc35j7-zYf=SlGsc4E+O(8P4%6UJJGtZq(K%!2oNf zq%jo8@T`90JtoeUtY90KTXEIW88~W)svOzQVgVsC?kN3{a18iBwA;V{?ws=!6Vb2$ z+j$;;pTHNjumk2!KxTfx9SdL=7eU#49Zmsoj9hARB*2Ahc*^FW+$rUUYeUvRE8_Df zD|j!g*s#_I$=!8o?mVlJBE5ZLLk4YU8L-2Q;tnozKmv|`AIGV?F5pzDXsCqDe>>{I z+rBSM%4OVZZoz0~?R|Cq7}}w|3laR-T`0vFhCNU8yArX<-lOYfd7d9hNXnB~C>txb zo~D&JS=K284!D(BE7Y9J067^p#xLytNfj6d1Fv(L5ga;v_sr9QsDyY&F4BKVH*LWL z8RpR-R`hSw*MjQTq(IO`=6|2rPT7RpFdI@H180Mj*e$54dayzjyF~p8UA)UGc4Bn5 z{oa7z(k$?HXyUvf41G^6mgL<#lub5j>w6($7s*J`hkookSlLZaipw%*@qGp}dqSvl z_9Q#VWB>JcW#GiH(jFZC6Wtpy;rrd7!kAbpF(Zv!O)c=6`veq;o{vdlIm!`#IFc4z zMpPq@^?(WwvNTl*{EC7aKl(LATv`)KUA{{az`D&zdYqw8d3r}(ku^AXP^3_Ed+L_4 z+lGnf_4A}78bOK71g-Lh?o+yQb!eeFXB`~<`B{6TjeZLFP@#hI4=_lFx!m;HXOdy| za+alx3D}xsS_l9-KGQ~da4#AXxb_}=+bnc74YMV>{|Ns9rzN@xP*mvZH=~r)ZeYi&J^ssKT zwt%dfTA)m%k_R)5iptWs1KCC8JeJsmc0kbRH8PzDQ9oD|;DKzO=CWd2NrwRqO9dVS zh+4T=XRV8zDgz~0TL){3PZgRhx*5EIA|ppHgfzEY(|xi*yqFG9ON9NPs?xa#>{-WR zZ^I_Q0o8EA#}DAY5DfvNi8FB4F7#3>a3F?XD2xwrhM4kSs57$6iwL28pE|y8Uj_*M zZt}wt`=9?_Sn6pW51-5Wkbo*$A1_!(EtALY%wTj1c!>*tBP?`5A4x0wx$2nwJrsp= zS-tG~c>ve`}rMnnraQ0M$WZRj} A&j0`b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0323.h265 b/samples/h265SampleFrames/frame-0323.h265 new file mode 100644 index 0000000000000000000000000000000000000000..02f11440dc50ae2d1810278b82e91711ccbe65fc GIT binary patch literal 2170 zcmV-=2!;0m000330n!ow)I$OT5W!wcG6Vr2NDc#m05A&aKtqdpFqtI6ps$EJF(W7s z|L_0$y|RU0R5FD)IaQ}2B{Az9Pv7u*>AD*s%Fr|v$_u51WBoq&!vh#LFVZT+2|7xC zFugFWy3$2RH&AHm;-ww<_PDpjUwm9C(&vh!%96?76MrN@&@t{+$XF~}9Vb=TAv?#cA zn3F$X)M_+e73+`+hF&|8<~r!2a)x%~`1M$9qb(UKU(Y*Fv%hOJ7Dk)jTiM=6g1ESo zLc^__?B|tMp*x$L+x7f#3jBe6kyl9RC~31bRGJts0CFL@-SPd7t7s;^{IZ@kYzy(3 zlmo#`@{W+YZh}I?8$Qi}enL?r?$iBypv>U=*RUD23a!!$zh}g`NRf#&i5FAs*AzQ$ zF!)NQ2e#fZ6Hb0lNli-6(e5Izo%$%Qh!3{9ld0&3m2MD>HkXa1o>m%>v>J@lqLmQG zt3g^=<74xqMocNZuQ2CeQHh)8Vhn7s$P}r@&!15bYjHZmw*!eQQ*7*3M*>G+B)rg- zi}+hpf>fc%TS{E+8@j|=K?W^(sH{<;%F;y^Y&tusYyLK3l-SZ;nW010d`Nnw*p>Fz z>jnAO#cWFf8m6?dq%0dEr$}>Qi>QBPomv|6n4Jp$M;yKo*6nitU5Bq_*OhstRhdfK z^Xxy^_5gN1mMt1nS1$+QRcAJAeolfdeMm>u|DU0c<2=eWdU%zhXVnD#vRb>YG5GI5 zEgf33>=WE?p;GqG*=jP0sgrQRExB`k%R#;ibOeMs1;lbh`CAvhE4rGpH7wEp!~I{` ze6J($GkhP@e(m(%0r)r1|CGO}RG))nC6tnnV?U>PI(Pjb3ql59`o|gSsHL$HtbWQD zblzV_vV9U@SIRX9wy8qv+7f0quf~kCIG0~4z8kClOa2-BC*^#vAK|_`@V}S&NWOqR zUCr515D$d#ZokkNzd-tvU@p7wbmhr|!11UVm!IX%GqIB@1FW+bo{LA)rR8bn=sbn+ zB+jF{j>MfSUwQg=*-%s32xy%;GqR=)&+k-LH_S!wW(qeh<{fsF1ghZd6tB zgwns6+z<(0A;mr_uF+X>dmCz1Lx~1JyF5dXFyIlZthb|& zQp%)wxUw#*?PX>jlrR7Q8fSbCgk{%G#1@E?yI=p`|NVZ^%FsycfY1BosSp~OkYS2r z+Qh%({d@dJP<;OnbX+i3@BG)qfECbJK0ZnKW9$%2)-O$QgnV$L$9NnRo1=Dgf)}G$ zL^=+|K@~`^%XD(<+tQ5ttlp@}#hpnIORlRJ1Nf#-G{!kkR?D2D`iW61%VFaG`R~zY z3%?_;-!xulh7q2-qL1M};0~u9I4lkcb=eb3oudSL(sK6Z)`3))6t&)f8@-~h+RcKy zx>UTA*t{5|y}*CQ)?L345g~1{vq|Q#vj!Z z`CNEP3^0{ivY!g`Y^!GgMjb@|y9+#T0;2YfbAhubP=z9ad8{lXF4xPWigp70-^JW9 z;8aKw5$(EjxUdVc%JaO$5LlnbD4*a1eVE`UUF!2v+cEldk17M~c

gbqxz5A9*X| zPW3SBT|D(-4-$%aack<}l>$IUn>X^6rb*?b*N z0dS05YH}pNg==`q=Ahgu<%erS)<7%b^Cv5KFRgK1Hg&ztP|3XGIWBxwJ%uL$ZAofD zZL@F*lPOqNd}n1!7~xmI!TqkzycZ{EAOZ9t*8(RA0!8=yC;$-`Sg}1YdJ~3XRN`- zHa6O@#;{I$-dBSwO|UoS2bXfT@=9R!C1$H*Dl@Iz6sLek&ZLb^F8hdf?TG`QyHhrn zM|mwik_ZYmt#$5>ftU5%JPrd@z~nq;bE!CNE>#$A)|{bx=$${DI%JW9GQ9$9<1XWX zNFwTU&C$xc0DZYkaBxzBbU}V@FAUwe3RTb1PHbejc*w9SoyHbW74iSN#+Mu9SgSC0 z**X*{U2*7U5^YW4Trc*$qDTP^A!xomiifbJ$cOp)KcONN<_}EdIMR}r5R|c8EJ6K# znJ_ecr>4&DNJ#U2ZkWKTMD1@zsac&XehRn?YPNl`Cle`kCU(AMYVyNZ%Ih#E0Zb17 zK`3WvZb}^w`79rw`_woA;uw1`WtwIDXYyS+p)`}MR_KeQMUqG2AS40CpJpAYe#qJC zG-_#x7CxAxl}!kc-C;}|d>CQd*qgw=H}s)ZlQ?xb)={`hV(Ds@weFDS0lIJjHOyCq zU-O$X#8QDLe|pTO|KQDr$Su@y@_GaDWQ$7d-aT$Mm9_>o^r`Q!PQqry4>7)8pCr}( wUnTD_)+kre8Wo_egmXc{L0kf)kb#YLd*s_GSYTmEk^e|bmFw38%s@azKybe{00000 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0324.h265 b/samples/h265SampleFrames/frame-0324.h265 new file mode 100644 index 0000000000000000000000000000000000000000..65815783601d7f64fa6414ed642fae47b1e63978 GIT binary patch literal 2770 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 YA*mLda_|SWjt$a+M5zTv)G+`T(D!OfTmS$7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0325.h265 b/samples/h265SampleFrames/frame-0325.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e8dc29c2c4595e10a30ae06eeb4cf569057b4dc1 GIT binary patch literal 2055 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0328.h265 b/samples/h265SampleFrames/frame-0328.h265 new file mode 100644 index 0000000000000000000000000000000000000000..74a5bf844c193a0f203dac7021d1c465c7629f6d GIT binary patch literal 2325 zcmV+w3F`I$000330n$1D)I$OT7{OmtIs^eANDc#m05A)ZKtqdpFqtIiCFGOO`lAGO zBlA}9WWY*Raf|yQSih0~`~UwhworU5ZTbzQbu3DoQy#Iz{l5pUd!e!%tph{0#L|O=D<)Xi_HIo*m-U54-;R4eb1n@bRLjZZ zW_woZctZLb*f%G;8{Ac!cZzzlim_FQ#!8o=s>{lE;!i?|dJwv%KXOBG|1WLHG0e-P z9|$*plmGbyzyEENE|kpmu+vLV!=KcVv!x=#IA360C?I7=y{^+y-vr`0bL2%d^QM#G z%{iRu*@BlV=kd=<-oil+2)rrvfYcH* z2kCin9*tqI6_+1jf4bvJZA-=RNZnCj<<~3FWq%iNLt|DJ=pDQWbW%8h!0xR{m$f5TDFkR2&Jrr4g}Qin&EaWKAf20D84ao=L(aKE)t zBwm*_>ho(uPJD=%`%wDFb#1p6;g_t-B-Re$?T8EDtAb%6W$_Kcdv2;+m6hWi{)B}U znEV=B&hFL;<)o0JgiF!1H(_^%>>7q11$LO**_uYzV0CtYS5{xRDSJSPnxVSJ;#Zqk z1xVipGuHH~t|5w#>(2ygug;q(NhZ*pWwJsxIMMHZR|hU|!mGsZ$}1@yeqGQ3f!mQY zBp>-4;OR*1KvtwLc%EmZ@fvxT>_pg~$K8lcvD%0fN;e=T*AQyyB;g|S$0ge_W;-cb z3`N;e(lu78E?*)?VWym?63j~59fyd#K?sipIMaM0jffixF~N!E`hyu}!2)0a0l;TK z4uoaW=vMXYTl#NOWq<#F|MmMvD?uZ&13&MUq(EwBL53-hYZCvD_3!Z=LG%1Q(Qv_E zzw=)b09Qd=`1vQ{kFY^ASiLpI5%I#09pG?MZjIT}2wsh05a>G<1XUtzg3y6&$4X`J zs!0)e3mzJ}L=`f%Ug-^mISx&HF7$RoPYN=)Tv*j87t|V2O0dJq|C`K zdvvO*EJ9j|D(AuPc978V*JKe{V3G#fgiRB~3~`-TuXRQe{nS-P@q#AiXM=4ug~n4` zAV?u>?e~KhP8P?6M@o4j>Enm>X8+vf!2r1hg#ID*uErnL68Tmp-#YGoA`Q$JP3ILQoXu@Fi9xGY*QGf z?0y8mi}1A?fCK&x2LPsBS?%G7QVD~6B&*uH*4Q7A17$2XT+KVw!>x0h?R_yGHBzSC zOhy_2SKVCDqLl>5!ojqDtm%^AO6#&^1V=oK+DmJ>#tp2)qb4(MhhtOdx&U544Q@cR z+rR+sobwbD(Xas9c^-eCz!$Z!1LjUZW`4jO3t$%)LD_sAP62R?TxxP8z=dmg%I2Wl zDdmT2L)Jhm;`1jfcq;?0I{0FL?N|Kp)fd6zy4B+jvEyD%u{qRdb;JM(aq${S1jm6w zSZ<^qq1aN_oenU9b=pBN8F|p70)-EZxZ8w~g#YANO$`#C5I@lnOm8dMw~DYaQ&F*ZF&&N4x8k)J80? z?$Ct^#s!!G2iIoo4)(30lts)>=RyL+Cq{@CMRVl>;h`R(hG;G3M@>zd<5_hxOk+wz{7NC+yKbinrf*Xz$U zR%2UNc^iKBkZ1drPs)yxV4?_ohn>2m2`aD9na=mNi@)9muqo>P45bp;(Tu{?<}WTu v#5hes&9x=0(T?M4aCRhzn%Ya}BFm6QI_(kJE#*x;H#r0#YrqSc1;7^YXWNRp literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0329.h265 b/samples/h265SampleFrames/frame-0329.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d4f63165455f637f30d34eda386795421f8b1f63 GIT binary patch literal 2409 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 AP5=M^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0334.h265 b/samples/h265SampleFrames/frame-0334.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a46c9749ec0a0c7575893fa4b14563477b3d98c3 GIT binary patch literal 2875 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0336.h265 b/samples/h265SampleFrames/frame-0336.h265 new file mode 100644 index 0000000000000000000000000000000000000000..43c8bbc62b3529550a19959017be12aa30e76a8c GIT binary patch literal 2917 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0338.h265 b/samples/h265SampleFrames/frame-0338.h265 new file mode 100644 index 0000000000000000000000000000000000000000..88fc6579b7391a9a666129077fbdebadaf1357e8 GIT binary patch literal 1945 zcmV;K2WI#H000330n&;8)I$OT7{OjEP6PoUNDc#m1QLz|KtqdpFqtI6pZeB9Tsi;! z|NmFEP<$+H`VFLYEJ~zP9))S8bqot%AkiA&@D)D0M-Sy=KXnAe?W&3c~*ze&9NCp;m zQ#_-jE}Ni`LB`LsU|*2S$lvorUg$G3P0`6$T9APwl-LwAV>x6xDjs`!M8E)(VM)x)f73RJn+DLchvnT^w}eq{m@U9$@8W-aT3h z(#IPgof`?N$w}>AVbB>yS%r*|+RF@qNuL?drbvWUj+KviZo&<9DcUzW*;U_l$IRjaKKQgCCJ23w5RKe7`gjH>hy@+FL7=96KLwy zpJ1NjeF~She#{<}O-!4H5pBzx_F4{IyPY%hys0gHA|-07Lr)E1f`WFB{vYc8%jJ0= zft%p|oA+;~_z%IpfBdEWN}`i+V$xH;cDIh|yG!7tSzvGU&g;a6o|mD*!5@3w8IC-t z6Tl)2T`I2s^-)CqK)aXJaN*2U%t>Jr<9pN?6m)%Cdd;X`M%P zO$jFluWBD}aYH zxF8a~B8qesW1PWm3t)9k%>z?eBoM3v2hr!ZV$QA}FTg5BF0YZ$(-1fAM%K)M+Ox2l zgu%v>`H8u%cc1_P3`;-`gk{%G!XL3WsWQL+zvXkKV9(s3ylYs+gO+U zf45(V>JOjc?u&*B{r{WzfC9P-=f}xMhCaZ6&0_S|AsJP8eEl7P!Wh3V!Hvr&HAz1# zb>1haSn~B-anhN5Dw0HB^2dezsN`@11j7{AQ;_7>CEfVTQ>3kxp_5q;!hijJOtlo< zB*xNfuNp0b019wg)nUHQpqP!qV~Yl@Ly|g*=!LBf5VeI?JVF&hvx3PF?S^Al z9c!3P9QB|Nt4^oV5~R^Jg3^Ko2ls#ABq~cCHu#j`wbo~xyB;^e6~p5eXJWo*v1UzE zwHSF@dh7rHLU{lG@Y%WSTgwNm4S_{KwA;V{?ws=!6Vb2$+j$;;pTHNjumk2!KxTfx z9SdL=7eU#49Zmsoj9hARB*2Ahc*^FW++B=9fVhaVSTt6x8>IwktD^h|B|T(0%iKuz zk0%S?_^K9O3eDllEt~we*gd#T^t}Z&1}IbJsp7o?}QWnGH`z z6`^Dk|LZ(15&Z@`<$AeX9Pk1KU5ep6+&aXnmj1cpI0{4Ox%q7yYjqs3H&SvrV2dSja29RmT$7LnO{)1*Z zSgpte5&!zD=x~1xVtWFXZSHvc1fAAq`S)@>YsvQ%*+nR%km&$96!WG;4T;RW#!A!HP8GJ7&IWnTR%q!jDoO$Q`I^mfboC~_iO@&dNtP! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0339.h265 b/samples/h265SampleFrames/frame-0339.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a9de754ba313871f94bcaa7a15c5f7a1d1d95e95 GIT binary patch literal 3079 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�swh!uFq-UzmA;L#>ChGGdqepxpdC5JW(vVQp@C zrp4Qc$+MdLb&rmMSq8{1c7|$41d~g#d(BqlP-?tEL|pJPvS>%{pDxU$O`B(wG%b); z+oB&Jb6bv`AX}LJ^ArCH!f$%P^XJ=A=VR0n$%61nIvj__HWx(PzTyKopo3L$J~Z<* z;6jjRO*hG4NXPVE1KfbD^t_DWm#D}`XZ47#!vhWDOEa2V#x-N@u%_JWS_l2BW+CCi zUgyf5pK_%dgi!_KeWJ{MJWKQ0CPQJP;zaXm-qJpmg8BrEX!at!@dXw@{O`GS#+wch VLKt}2AP9&{Cq#e&6A6b10fz>~4@dw2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0340.h265 b/samples/h265SampleFrames/frame-0340.h265 new file mode 100644 index 0000000000000000000000000000000000000000..af04b1a426e1449f691cc2980dc9e4020fc0ee9b GIT binary patch literal 1936 zcmV;B2XFWQ000330n(ZO)I$OT5W!lCt^@%fNDc#m4I#b*KtqdpFqtIEbrZz-ytIv# zHPy5IE!eQM5KmL01^v?t?%MoGC39}=V=0OVvRoB|hGD3>ZotkDbKFq`O5{(!^3RLn zM?*@KlY?4Q()Q3|PqAIS`wZaQSOG+aEUXIcL|8*#xR*M7mmy(dpD}doFXejdpCK4l zM#v>mpgSFfc=x#?1+{J3e{+3fS9(Y#Q|F6P^;4Z@_(=lL4{95Nl z5FoeY5cM_(nx7#gf#9A8Odr4ir_i z5giY5$4DS`k}#s8<>Fk*<^7`C`HhLtsHnkpAJL7K5Krc*MlB&N?LDVkiCF?2qekJF zrla}$cxchZ9Kpa$n-#39DOAktwXZrT5kOI-?S~Mnqb8BLZt=zkSuPCRWf#|CZfM=-`vHr7Mo{K;-W_6LpU02)V45jychHM z@`7-GUGw!9!bX?yPoIR#Z9`hON>#C>`;9uLWQP3X#74&}s{`YSKzxrQ&nZz)tN_vo zN72@Zy*Um_#xySso;Js3w2(~PNqg9h)h!z@-s?)-HV+(%Ok;5gL z;e9v-xr6-vjvFFvSW<4g(ej$!Nko~)>?1yXEueTF#8ZICIAn^OU`B;qaaxC~Bg5gx zl0X(3W2ZtxD_`pz_B*2EkU!$jDdP`;q%G3f0@AVXs9U|&$SuuGtWhyTV72xgr*8YQ z82q@4Wu`*~FQBavdYVj34WTzz`TC`m{sJb3H`8yx483@F*t}9TdIuk>9R&_Pc*Fnz z3<|amgk{%xxX>&6mhRXu-*2)Cyqny(|G)p}5O^@W!bCS?QmaEnPw+780v|GbJoL^m zNENCE$Ydz~+rf>3@pF{&zzTmhf$4T@_MFd*HYDQj{BY?m%C(Y|zhi^CZ`=tfh}zap zB0Nh?HYW9nAhEoNMnKi4=~%>5TBrzU!|59j@I2_Xdr`+!~TqP zH|vmq1_-UX{LIDlRzb{8paY%XsqY%2eB1v|%|9feoozfRBMoeJL-2wq#)1l$*e_fB z`Dy+HmWjF(n3^*SR08WC%yZxe_r3UZQEA6~_i4|8b!f()`K=)#8kicR8S|gf#3Fb2 z-0M=gm^u3}%NR{fzvNJeN0EeK^sJwaJ)42d--a~W09ZgkwA;V{?ws=!6Vb2$+j$;; zpTHNjumk2!KxTfx9SdL=7eU#49Zmsoj9hARB*2Ahc*^FW+?XTqsC8~0-KGEY^*>Gg znfgD(J&L{ZbDFK6q=>O0Cme`4PI<&?6*iz_D*5K#H*`8DZ#UyeBf@Hxe;uMz8;3-# z^9zE~)~$SgZ(b^#KZ9X3t(b)`z~eZr;1TYmTf(~)bZvp2H54ktbuuZ`Sf{^twnHMJ zY9JKtaV|c{_!2D3C$vnq<4GW}jz^6P%WKCqJTfIA9CE;we7efVrx+rCML7=1ce-yf z;oOi`+;WHfslI+-!;!7bzYEa5LAzUxpNWc55zUBw*buJt*ZDw zr0+9y3csNCK~-HmnUGc##D*o5Q5wI{v#47EXQMu`d1oQLRr+G5{P3cHjT^%Y4myM# zkdO6SGMXo2?mEw-TC$VS$4_B;_n{G6)kqF zy1oN|4Q^;JBS}GyM=qOq*HWLl9o>tYlztX!9BS5BKM*BD3J-$M``gvf&n~SlR|}`r z1m{;5Ln5t?8qyUut_-f7VpV@OYJybec*Zo{AZVCVR~!yVKI2pQZX%#4Ga+am4qrb? z%XFj%=2rdLv2nHyd+rg_Y}^{GVBX?SG&k8j|DGWo<+3bE><$%=hMs>E=;higol?c{ WkvoX6RzONE-Y;k=;0w5nU_`)}j=HY^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0341.h265 b/samples/h265SampleFrames/frame-0341.h265 new file mode 100644 index 0000000000000000000000000000000000000000..17b4d285e0d709861298630277bfd00e5bde7e22 GIT binary patch literal 3186 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 YZ6}V3YybidOkaqg^Z~mCIKhAuu!|NUq5uE@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0342.h265 b/samples/h265SampleFrames/frame-0342.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bd1ac5a14e51600cbe6d0c948dfe377dd342cd3b GIT binary patch literal 1686 zcmV;H25I>K000330n(}e)I$OT7{OM`WCQ^qNDc#m5eNzcKtqdpFqtI6)XtL5mzhw$ z5?aCnUz>Z5U;ow>`dPBf(ONBI}|7-Qt>1s@R#!6&B zN6iCWskdqdw|#`}sKP`7fc@29|MK3a-FnM_(pD-;v{^xFY}URneVF!t#=zZep)q=9 znC&(+5zWE>@qgL-KQ|)2SK;WN;V8k!#rT*=WP%=d`EU6DoeIr7i*$OpImYBVxbNz7 zSW)$On758A#7P6$u7RIGpO;PLjImDEiRo;p+24j%^vW_^*H zAutRi7)2-s_1gXM!qfj+p-=4e0xS3WM_&t7I!k?;{`yp?kv5OemhP&c14)j4BhMT^ zv-kq$G8=aX4i&p>rwQS!1$~d|>FP+T_XNUQZ8a{;Ss1&}oJwagO~U1?NIfVVIbcF| zE86on+wfx(3yAQ|Yw(R;ftoTzteROaC6*Y_RA$`;kjQv$fjb{M)*6Q5vHnp>HjgV; zD9RkvYa=MfinoQ15vATP#$$4hrGCJNPaEQkZ7(5$MVN2G#Fm3kZ@z~y;tT1fNPiSR zPS5}7U5mJ%4i4j51}*l4M!99<^_ItdNU4|u;3fbqyP)O&chonv*LF6l;-Vk6m;%CE zc>OOaT(P);YutDa;`au;3vujj{i&=G!6*p6u|kB1K;glorbto|cQ(!|@nPr37C}CH ze`9A1V8J(u)+BY6CJQEBcw(ccmM6rExgT3STS^7u1@Yho`gtwT1V)(pcs8)^Yut49^8BGC{5}w`%38N3N^JG zJn2amY5$vKx#(^pHmHaH@BHpL=wlp3v6)CTLZ6moSQhM?AKmjD3V_2OPIXl>5w~Qn z^t^Xf+;ZLHZ}&TWaFxP(Lyn;<(hho9T^vyhM}!x4+|kmS;X()zU4Je$3s58>d)z>D zMppIXqeP~sYxetR(yd%23Q{nO1NDHyEGHF>>vZRYQXW%`#&52S)#9!m{>Yz?EFzYo z(G(>ACG#-(iEj8KV`Arr=5ZTf_-hf(jK#Sx@+;5=UiF-0G#a!Xy9$n-fFr&EJ|D|? zRg!M-3dF~xRcDp;_QNgoH*^2)3jhE4xIc?_e^V%k497sU+rR+sobwbD(Xas9c^-eC zz!$Z!1LjUZW`4jO3t$%)LD_sAP62R?TxxP8z=dmg%I2Wlm?a%b4z1Tet^fBY`H#tc zDYRsC8VRKSb5R zTXsLyMEYdZOx-+Slf}D;v{HDFMpt%J4G!R|+cPMFaOSl<1#?nX{SJr5Ka*TW-nL^G zJfIp*UqScFOyzIKBWp)k3aq`0K+b?A^mOZr68)f8NHGWM24pK9VYQtuhtnwNjQP3! zZAE89>=uQ(Ohc&^7ZO8v-itm?{_2$DG4*l7Va)BMss5({&CU&s%a%gEK93*t)GzxYdI{BT60MvN6O9KUuXMa9u!2{DMT_qWtm^KwK~llm=yP&#-v4?Jf!>deRRJiX`k9 zt`9z6q7i#V+#ytNJ>iRu;BlqWh8B)6q?wxqz#%OfwE_ gah}Xw3_9(SD)>1p4cr5|QP0GHkP{FGAqfDLfF`9q$p8QV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0343.h265 b/samples/h265SampleFrames/frame-0343.h265 new file mode 100644 index 0000000000000000000000000000000000000000..19ef28b1504dd302e929fce9c0c32419549ccc28 GIT binary patch literal 2079 zcmV+)2;lbs000330n)Mm)I$OT7{OjMRs;bcNDc#y&hQEYKtqdpFqtI6pZeB9Tsi;! z|NmFEP^;>N@i$27SZ4^PJ!6Uc{tsO@LuEN!27;MEblngqvEk{{2TIwl>l4&;L+9$X zWy!@?RwjcJMg3AR-h}`fYW3{gntLK;eFA~YU_J!arrGft+C<%w%R*D z!?wJopSrtZ*a=6t?y^P4uGw`f?9Vc4#{Avs5C7R{u0^7qR}pXD(=Sa0f)dZxDT>Atq6fSyEaVwvBm&yh^gsY*Tf;g7ll46`aqaPV2YHO zr7_>*#PXyo(9Y3#3INNGqoHTl#q79y@ab(y;trm0VQ|K-jMXn8FUTq}Z|HvjRjt#G zo6|$TkAWHVouS1R7OUDtGT_Bb@TxH3P+BV>$zCw%zS*|51;urUDsW|Gjk*&ErsacZ ziSxRB!2=8pR^BlaPJT~GO-j$wCxb+!@z9C$&wgrvK1;8r=JtoQ^zEo9iw<8KkvSO7 zUXaJDL0qBZV$-TDWj4%|bwy{Lk_IqMSVGhPRTB2H%)S|XHEQa_F#u|LCJAp3-|~yj z3YvJ8MT7Z4Ns~+-NheRyP`tr5-$7)Ae#bfGz(ypczJ>oxUs02N3>|~q^t^8;J=VQ1 zKgbP|gt*w^&}ET{MLYeRBv8iEtS{)ft2UsvMy|v7?O+))B<}?jM1VRPRd(pT5b`(7 zKgOlp7Xh&!1}|5FpWEyJ^t<2V+98@1+`HH=SM>Wl$~Ag;m7-_W1pTsFxrcoN1RZbR zTn2g``ivo758#V!^GlTi)vde^5UWS9kB$5!!;s;91ZbAuhAWJkH>@1sWPkAgSN2~k z$ovf72lU^&eK){<4fFryFX~i!YhQ?gT#`0Ahq$mD?}-t8*I99RfZi&i0&&kl2jhLb zd2YNqx}(s%eeaVwtPDz-&ixc~?|FA(B#!B^t=~@HI*xEPI;SM_wMbdb)xAZHWEoZ% z(kS3z_MjNZ_wYltR!zQKI3~^+>#!~t51aEZ8xe*c$* z7>=J49p+be=JsP}QgL+N zupNyMv&$clYOJ6D0&Y=24uoabPQ(sLy-Ah-{r~^h?HsKHj>ruEzFLt1shI{Crai1n z{y*2h#B~SH@b^W-1%Cg{d`JOZ1#{!%pN2lc1kGaf*BD2~3Osj#!AZI|XGkG>HH1T; z>{Jm{iLwhq1-Kd|2hl>lC@)lG;?AUqCD&Doft~BenqwTOs2omW%|xh`<*@O8``@C> z6MjcuzG%GP5Fl-GQJ4OhLr(+RxU#!5B7nZxw5Vx@mn_3!I zboIJ&KkVY?boMI)T@Ml*;_Xcs+JSFfxIH>I7uT zklf(s$HXx70PfL-*rqH`p0E;I17hGN015-lXjviZD_MWqCtYA&hk*rgn=vdf9@u(f z`twfpFzZ~?yTS$RL5-V|w$Kou6e7Bsc|>#mxKC-|2kb@rF%jGwAyO|!Pa6jCs@?5z z2r>@UuNjMIfhOz!_0G@#|8@WE?=+k%aRLcIK(yPy0PdXg6cf>~0NZ&Uf1kh?wXg%` zPC#aUz#R)<7Z*Xu{!aEx4Pa+i*H`UUY6>0mH-5cTkM>`|EYBJPM>;)ZEUn94z- zZjhy9zA9;lxGJZ%=Jve{e`0!1>net>9T$OSiGZqBD7*%Y2onBM&2wk_(QP5+VO_TR zCiIj+m!sG_EE%0<;&v>G^DiPU2SOdxFHZQ_mZkRp#iZpsZ^!XI$aLn1|0c4pLgrPC zgPbT2o)nT%L^gE%AC5%-YV$D1g*2w=KVqcDhbc4P+wiu3Tt_P&D|2z~p!L#EXEJ;U zX5LxtGvc$H;VSXk0VJD{{`sg=~pr+(1PR^DcOr z+$bc19v90G2bF>BS6%%Lz~E2;fI)*~eZ z@hlcQz9hU-F+b&&1cW`ZKqZ%M9?@{W`_*G2+-naMP!dTB+5W;*xfh3ADMzQ z{bHMc;3tta=3W8AwBwpSs6pEQYm9Iyg*V^^w!!k=k#n9jOoJ;dS*SoL;7#N!;eZ!# J2@GZc(tyMO1?d0) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0344.h265 b/samples/h265SampleFrames/frame-0344.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8975c23413972a9babf7a6802d13f0b519965f1a GIT binary patch literal 2650 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 ITMz(!z-E3L&j0`b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0345.h265 b/samples/h265SampleFrames/frame-0345.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14cbda77fb1c94c572e11bb6ec6c8c813abc6bc1 GIT binary patch literal 1914 zcmV-=2Zi_m000330n)+$)I$OT5W!i(xC8+pNDc$Lg+K}eKtqdpFqtI6Ma%euqYd=9 z-`!0=NZhj8G;@s;SjlAo8!nw_wxDK;_))|&>c<}`gnD=(zsw+1+4TBM#5*3~2(VBZ zMhd6m>@@3O8Iz5R;Td+NdUw$Jw2yuAX)~_IVGMBsnentcUp-2Mnxj%XZq^MyW?SY* zgXkjMGynSRRWELIOyS;mBL+_Q>NYj1%c^(^4cDgSXba1La9g_iAJRmEG?6xi)UG`Z z)~|LHMNJsdmmLuBaKAq`NpE9qyA4=JIKb}Zhi1E*$FeU4VRNjTMei=9ah9ocZ@j}( ziablD0W$VNJcanao6eEuBDnHd1I?WrL2GLGJ72iBi&nZdk+|~d8UaK@HYsuW96f3a zVo4+~rN9wk@_)`;Q|6Y`d;7d&d!Zr^O!6k0 z*3XI>7(JsDJTtt|$OFW9+XaLSV}{*$LyXy=c3(od*<8PZ+oy+xk_kq;9uUS-r*;wd zU%XUDuRD*V;n>(vu#pCEio0E`noMJ=@44V^6W0|SPte~tXLkM&d zrM={FLnmMtUmJsgLfex{5?dfsnry<|>0$=^Osn5txqLjIWXj7#B$u&Ajb|PrZv=P% z>1ZhIoL_<;~<)vgx6v7^mUOc_s(- zyu#b}Nv+CYsEos-|rM;?u^OcC(!2&TFyMT(B`~0%@o%Mxu zBt*ny>H6;iZA?$8%mudt#mx{=R{(f!-UnJ%W`(5;J5(B>3O@VkiJg7eW~La)^yB%v z@PYWjBuNlpz*g16-nK3mzHUBK3OTZDkAjYX2A@_1i}jGYD4eR+8-u+d+$O2DY=gibS_oIqDZW!0HwQ{v&{Zw(n0*WI zv|Sq=$0ahj{EvjV88jrF{6LRLHJYAvDx^j&SIg-}){mTAp+wGV=;{(yFWUL60F zjb_n~E625NnO(=1cuk3POD!q)OR(Fs2oLe2L@#6&x)^lnNWMxG(5vK!QJ~`{%jaMo zxp`ri@!i(H@w=jd{28C972~Fgu}OKj%BN02rb=I~cIQ%~a_{^opKPLJtvOOT>fP%84_<*7_G3UR@D~BdnWh0wIr_WZ)XVm{Efj?ZH z27}O5+xsjp2ah0c?w5=qcC9PK?F=XjM%=;N>*ztx95xTZ!ra4&b&!CY-WT1N z)FKL=5JBqYk*zE$UE$_+xm z$RsOA@L_R6g8dzu93cw&ecSEEHH7uIwpie(cs06y%-xRWnbC-^g<3gMx@IY(u+=v4 zgI5OgO^6=vNcP}WP~2?YQFVC6=~CPijZ$E<6bl(kFVC(gP9LEFtXKpuQ%EiNa^*L6-WapAaSu&N)@kcHF<2&osnnmI;#^+}<{m|U1cE!+e zLN-dVID$`HLwKM2Y6Pt*K$fOmru6^KY*|3*1@?XE+{j}@5+ZzW2!9lLlYIP!t$?n4kMMZoJ-g(C`68mu=*xyA1w0fholIsibxQ;0+iKp(INhoyjEKz^I6 ADgXcg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0346.h265 b/samples/h265SampleFrames/frame-0346.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ce45ce243c4d732e331d9560b6c0c4d3208ed9f4 GIT binary patch literal 3521 zcmV;y4LTx4MEawuDp;&fWv^qAZx_#~dsvtlSwGVM{w?~ds=VdKHNh*vc)j>4s8b<|eVc(D zFF_HNWFH44`v|D0h70lWji?78-`ote>8%r5;yBz&LoQWbCBlg5aLw&D?iH2<_O}Y3 zMU){_FpH(!8GN3%^Kxvy=Z?YXFg6mB30R6Yj0MtGU&p=0%NxV?6MrWy5t*}sF^$;+3fHgw)W-Mj1U-(2f z8O@{J0m75WHkZ+1)@-`l@p;$_&G%5IP^kpG%>N`YdFVLu*S==KmcA;i9P+7j8R((c zMswg8Vg@d=uARY=60#dJ?1g5!6QL@%W3FdO&dKtZ5?*c0I&fwhd^-;FB7|M$8mbLe zSEdCh5saeQwz3WIXvfXsBvFuanm*ZEKZqVhvNr)=%@@g<0BN-=5WOcN(X&M?fAvnG zGI`zrBJRbY$a$DC+u^srZM9uB`8RbE?_!V zvu|^I$`{z^=y;mHl>XhddF%3t=0b6pNm6H~16rEUQb{SgRm(r0ae>#>W$HMLm6#T; zXJs$8Ts9j|kPtQC1Aa~uO@ko|M372qM=FXOEwE7gRP$ls`L-@wEkG)1m&S?RT+y?a z33xQg<~5&}iYKz9G8f&-&1KV4psv*9)fuPRm#t~Vebzq;D$6w?)T|6+VW#dIXFfa4 z8^Mege5u0`$qd*=AA9>>crYN=N$Jv`QX*S32D#K7jwRtji-DM0&{^y}1I)T_LQo`n zw#W6P?9Q-*-Wm7G!nT103dgv9rPi)cTxm+X+vmzYbWK)ltGf#8sBCb#10k=_rhn7$ z*0!YZ)Llm~zrbG`vaOcZ3h%sa?=r@aq^XMbD{oo<>Z>FcHH#e)a$a{`n9kVK`zVaG zh@Z5P(Dz4E(yn_TH#WYUf3gZ;yq0QyE0!fTe)w@3dFMn3(=}I|&M&46A)-Pj@fe-- z*`qhpC6seb_Jp`;2mxi<6|A~J{||m2@j?MPD>FdN0$&P0<$Gsz`{Pir`SmE>yK$jr z)~SJzWJH*6aY<+p7K`41n8?rf4#|HeJ(Ml1hW>ZYJtXEDqGVG7q%>b?4?Z)oLfui{ zAU*AmohR4SRB+EjorS!jv7y$GbPijzAA08zeFkVo(8<$O&Y}ZOs6Y zUVApIiyM+h3wvR|;B^5V9DjM84{n}5y)eWCUoQ)Dr1pyYx`XZ#zoq9#CuB^cyybss zo90XB7jhPqE+1r^i@sWT*JLEXPQk@fz{2&H;r#yWh#AooZ%9HF@4?U=x6c_mIFN<`^QRA2i9aI_#g%$8~#o~jU0CK&|YEk0afX~bMhNadDg); z!aeXLW~l5)T}#lqqP2a(ChDIP&2ruli%LPcf@?gGqfUWk57wk76BOi$>wE!b9Vt%~ zyj0$ygG17jP{f8(L-yq^^1z;J(~nLxLNx!UjWX>fZB+w_)F{#=5-gNoZWDDY?1Mp_ip4rpk-IX zR?#|R^wgo%Tb!_CkJ=>9Fl4@y>OCMtetjV2oE}BB-@Zd6c?;Zg{7PLct)A0mmpG^@ zOHK+~lTjaHhF6ELQMBnN_pFnq38~w&mi7l)E3eFu{l=zgQRe>SVJ zYx-r|@OKPcrc@avY^yInw~vN~qCvOGZO6X(OEef^Mvz~>(c4Q7EuY%3gK~F`-C#?e zV#z5~o*9L@_*7@#vtSVYL*Lq&J1dV&rE_L9YDFEydq{t*lLv^}G!wn#ej1w8KO4-X z0H&4|5@29U=+==f4eR3Q3aiZGP;IWN7z{+tobi#;^2{~*BM^JC&h+rFsE^ZJ$b@N> znX}w1!|f3O$-;5jfTEq-fpQwmS!0enNcg2SJ6)PEkN?o(`mv46f%WK2X$+pZCV4g{ ztWc1mS7sKTImzrkT3+uy+lt)muNrBHiUuy&DIm)A>o!m74c76e!qg$SVG{H|JgzZj z_M9s4F+9d=Hyp(-4R8M&3xiItQ2Es`{6n49@M0|_{MT>G8d+Zs@Wd>^wOUS-&YxrT zEf^sIyA8hE^Pv|AseV5irSJdo$`k+q0|7#$BVvmuWHITdx#HCa&ze?~J`v_`iCGLO;%jh8Zy#NJ2zaB@mMa_5q4>Pgm`HL22 z?{ldxIk;pNBZFpeO+e@%q(%X@w#L)5g25Ti;2yjZtD7m2tliv_Tb51Zg$zL9o%>qn zuN3c@a)|G*@<+mqJez^{82+-KE^-kMZqGoJN>Wx-HJ>nm5{eDPqR|&s?RYI<}KE5H#(G{ zH*@A;z!>0u%ccPRfsh2dV;_AB$%T|3|FsEy^NYjnD;fcn`2Y>*K(yPy0Z`b9lodeW z0b?BT%+mtiUrX9?AepFDinY#Tmkg zWUdE7+N1tMjX2;GFVS1*BO`zx%0A{3O}szPk4crNhy3~1DiS^a`I7JWbG0DXB$C~^ zcjN+0HW`gK^I0ru@Ufo5nN=1eTbK^*N@?l7Yka?B>ZDT+VcUn*PgB848ow;{>P1ieoQ22 zVR>N{4$vjsqFh|(FE3Ty404=nmmK94@r3$(rPTii4q|u2Y?~5aKnFs~_sz?OzSDtETmmb*Z zeYi{ISK?@KSJepnL^2O6hz_Ze`V)pL`IBPv5P=o&2x_DBKtxqTROsS@S!Z*jL& zUOqf3QzbJvpk`)AHzDC9*ILsO&$}4UhVN|}IllR(fv~3#ZOitt|0->>F4^CHrR_p~ vw<3Rb(XyAex`q<<(qRx#BFG0eRy%3L0RDgj`b+`KUgi9&fQNt!xkv&2QXk@T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0347.h265 b/samples/h265SampleFrames/frame-0347.h265 new file mode 100644 index 0000000000000000000000000000000000000000..699f172e3b9350c43ff50724748af2e0414f665d GIT binary patch literal 1688 zcmV;J250#I000330n*X`)I$OT5W!grWCQ^qNDc$M05Avwz(b39FqtIEd%2zhEhsNU z#j2GCRn!RoMIH9XC8-^NPNC=;%|)&LLiz+xY+TEbgiBEfyLRDz;ewD$nTAODl#K!D zqU{tQjC!~K|NsC0;o6+0nra;QR1b{5l6w1+1Pb{rU*UYG;nV5(J}=b%R5`zS@_vm} z&LmCe-D+vemxK%*7U2DN_jq3y9%6mDO!d-!=T8#RZlUJlOWUc3BCKfaGB5w%t)1eu zkc)ta02&Eobzc?dK4xNWy6JvJMDX3s=kkzeU0_P6JN`*Ki*aan3eHS`!n|rI@uhDe z*W8dp&i^g{AM?Fgr;%=tS3fuWzgPYM%)I=5z7|;u_>?9?np&gdh#Y)EAz?;GT1_CT zad3U6?ONA5=rpD*jsbg#P7W_(V9+#^2>?-)y7Ego69JC6M$HJC71Y!AaSaT~$T&mn z6+(78GDJ({EezXX%r2WnDASXEZ17CIEv}g8fLL+G+k1Id3XJrRhO8C#Ln6tkBCGee zMfJ1-@qC(DK7JqK{sY?a{Hd`0H>8T1AhIzB2taTs|uOx`Qwj6h$n#nup!_&DnddafPw}nVh>p(^h5K8P2W(YNDi|Ph`S_jIJ9g! zyME;i9~kC>s%qaH5ch8TP>q;({Yt;@vCHvI4J**if;F5`c-dfkD90+~CQ$<2p@03x zTafz^emiy$8Qz=|Dp&{Y*{RAWG{Ws-uKx=5t2|C!K$iXTKd)cUrS;5pj3l1jUb?Rja! z&u`&!1G7yo(t71!XCQI=F18&o#iq7$;%{x}(ZU?I*0%Jm8CRVfABVUl*-!tzLnI`SH49K8p_rCAoKsz&L^s*!_HWgMF&wFS<{5tI@G}51X#h<6|CaYI zsRHvlvxH#tYR=r~wpIH*Tn^IM5O!H-@Qr*5$qIkXVO%`@D;r;b4+`ZtXJWO^MnvEN z=fimLf^2x(yN15}+$X7kZdq-|S4d>xsv@X!XE}%jgv-0e$<+V*g1`U%ZV%$!pB3MZ z0j)r^+rR+sobwbD(Xas9c^-eCz!$Z!1LjUZW`4jO3t$%)LD_sAP62R?TxxQcoS_Fv zQa^`gj-5=`|BLw?DXuegKxZ8afcqPYHp#P(Bp|^!k{Ok;g>Rs^f<*QTbJGujqiM*@ zODw9@Tj(#miU|B)ni0Bq#=PMybleTJ9*nFdFvYQ3l_9rv%dqo!BZivBXz=8= zS>J6&XL11Bk-R(8O1XJn|L=GNepyvkdLkjucB~GtJ}^g~rYdxy2&f&VC=lrC02N)r zT-bkAND%-*?8A@TCf^S;6F4ki0X5DKfcf?luFjbh-P+~`!M@iI`bLNsqJ9tP%FQ5K zbbCq)O7`xA&lrH>IMTS@RkGxj=cnCXD;*Y%RJ9WAN>C*gv*oEIO>lw5_pB+Lne0pB z9;dS#7HRbH&aQ33K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0348.h265 b/samples/h265SampleFrames/frame-0348.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eab634800fb98f4bf86a288846d20e69746543da GIT binary patch literal 2223 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0350.h265 b/samples/h265SampleFrames/frame-0350.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f4de1724bcd978b2459f1e77e4f9c3c7fcb7855b GIT binary patch literal 1955 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 F0T;%x9p3-| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0352.h265 b/samples/h265SampleFrames/frame-0352.h265 new file mode 100644 index 0000000000000000000000000000000000000000..701f810674d722a91893f525b788202a8c5bf685 GIT binary patch literal 1698 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0354.h265 b/samples/h265SampleFrames/frame-0354.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b4db1d307f0df2d68805bd5f016cc66d1cbc6eea GIT binary patch literal 2494 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 R1w1W~f*=qO2}a}qdcX_!IvxN3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0358.h265 b/samples/h265SampleFrames/frame-0358.h265 new file mode 100644 index 0000000000000000000000000000000000000000..32f74f8815cc05365f2bea54fd859ce9c72fcca4 GIT binary patch literal 1847 zcmV-72gvvU000330n;h})I$OT5W!wUG6VrAVBP}&z%U2`z(b39FqtI6)BS59E*$^< z|NpDoC_WZ8{RYxHmL*atk67Y<--FjZ(Af@FfuN>P0@4=5_B=g0e2H5%-D1y2L_Pgh zthqR<>cr4uX~yP39EPKAx%OPD0A1ea1P%j0A!_|5LB#C;;udgU0)Tg<4Cc4?=(JI< z^L37sA5QWDQR>-rkG@y_IL$okL%_Q8hyVC}Oh8{Y<$U$N^hdJ~Nv#~OYq(Gu4bmYz z>)lxV3dLGQd=&V8gFqCF={Y#Rn#K(tjh17&M$(>@y?jC(5qMMLzoZG2)&z-3%yb?7 zx&JmhEKsMflpMJ-K zh6@S`XOwh~huFrz8$iu!_iX%G+$fvAI8fEdrw0)IL8vq&Va4R2)yP2egD7o46YvGYwVy z=c68^1#)AJi*)G1Yb@>uD?SSTc`Hhb&gk9R#QWd9X|%uKY|};T612^jnLrsX<8jnC zFD$jcdocb8rw?h&9!V!p&othGMBhPVg$2eL=aWEt&A&&!^XwCD#6c6u&t)E8XMl)< zXpDC7Jy1k}M0wh?_C}3JPc+)iV07)s{4o`Uc0aB+zVf3>o$km;so%?6A82i%+!5Z~ zr+P2;aAUqCl?_~_Il@{N_BX%z<@nQhccGXw4l98h80VQruTK)RO!}aowo6wx)e!43 zyex~VVL{e!uBqZSl_~WdO|J3c5b0uB*t7x;c)0AWkAA#&IUmfKjD z{BN&+i0T)e;cknD3jP0@_>cm+3g^eoKOB953EIW#vM`U16nO6gf|GSgZjAE*s|bfd z*%BhD8Uz-E%WyPD19xfx@K1W8rbSLndbT0Lf)4l`YRb-kmOQ_TF1%|{0dF00{pi6Sw6{IEwKi2H#VvVA2JdLA>2qMN z>HJ^OuXtam;?nEe4C+&dGbSMR3A{>+aOd>Pa_rH#woZ_6yN)1Pf=Y8bH2*i~IAm^H zB2aXqpCW>0#R@cw$N-sFrv&8EjgR4!V1S6h`fG2}(YmAnQc%ZMjl}P4P*UkZdmd;H zX3zt~F^uxe#dx1AN}LAO!k)^6)+WFKx8VsS2p-|6>yBA9dGW6zzxof|s6&qY%!iXr zJJiFib8Wje?x}xt>ry+Y{~7HPOJC2&hRA2TQRkAYG>Ej0OY1n5SrEwYEr?&2fZZq$ z&Y4URd)KzXIFKT|K(yPy0PdXg6cf>~0NZ&Uf1kjV@-mn?lo9`z7r-tC`J0YAYg7nJ zd8%^f=WZT>Ay?~o00{3v&uuxOU09Q!&BTr0+?>JSq)on`B;h<3+$jX3$*v6mN*|}k zhDK$h5Kb0O%_nc}(3H1SCH|iMs^X1{6MmD^pxdtv7B6HB>#f`)9Pkh!oj!qRU8{(H zPfL907lmHh$YmZ0mxW0gZ|yQuJNqG1?byJ7?#m6Y%#Y&3spWUtH^07;#Il#XzHsREWd!h@B6 z$wnS+Shy{Jg~{2fD6!pWr)O5VaCA4O@*@B>-$4Wo>R}QzmqSM3gT8=cf4Ca$~J lFalCaG`@xazJOYbg$DqDfIVnt0X-|fwZI0%2s8SCBj6z^htdE5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0359.h265 b/samples/h265SampleFrames/frame-0359.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d1121cb31e2363bd9db5cace4cea87a80dacb486 GIT binary patch literal 3031 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 Z(1-wZz&(0A0n;i^lzdcZ3B=VJf> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0360.h265 b/samples/h265SampleFrames/frame-0360.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e27a569954ae7bfd3719ad8e8b0c0cef98e4b114 GIT binary patch literal 1987 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%0AZ@mIwn4Ep5mjzU5B&6yl$YN*lh zyD~1HRU!KVja9H@69#DykJAS|t?0BhL%JpWIf^l*kF-S+oGSL%bRY>JX%#qv z@ASt^set|v(YX8VJH?$w)db(_&E;Lr@JI#*KqbYi)?CU{h-`c=nyAX^s*NK@czC83 zZsr}XN?Cf2flQ|eSi%_z-Ur@!+-z)M8H>FhLA9f2}oJbNDB}Wa8?O^nt_pITgU_e XO+Z9$ynuMXHU__d30McS`hX+g*zXrs literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0363.h265 b/samples/h265SampleFrames/frame-0363.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6aa3990bb89f438814210f291de3c841a353b278 GIT binary patch literal 2034 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 ZVJ-k$Ktq(i0@^V7nE(r@2dQ-cBjDH~Lhb+n literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0367.h265 b/samples/h265SampleFrames/frame-0367.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d16498e9e133f1989d8e2717bf3222ab8b05491f GIT binary patch literal 1644 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 Bb{+r# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0371.h265 b/samples/h265SampleFrames/frame-0371.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c48d601da03cb38910142aa32a0463b5f8a5ef9 GIT binary patch literal 3518 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0372.h265 b/samples/h265SampleFrames/frame-0372.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6001699f2f17ea6c81881110accf182afc263590 GIT binary patch literal 1770 zcmVf*86f0<0UF|Ny6JvJMDX9A zU-WQiU0^vBJN``ji+JdE3eHT3LcD4y@uhDf$SjaU&i^g{Al&FrY2;g@o!!m&wknZSSHgiTpZf&ml!uSJWL zz(pW`yoq#te173%FzSCtkpogW9;HLH_?hbUvN2*}dyNw;x2_d4^G`fg7GBN;1Vgqx zC6I#@g^M7enk5dHi`m-3oSiuOwwzOO2U%~yY!SwIYkx2cINBgUmfnu44jA-R5+0~8EDMv$g} z3H~|p*s7-+`~U7?z2e)zx`ttJ*P=e~zPJ<*DEdUA1a|URrh%W1aoS3S;g?u^%{j;K z6s*?vkt7n!zajwsqS;p(=b5C`+2i*MIcfAx2GW20<^`T9q8+xfYW_qJ zr`OL*E~GfAaxxsddtWIBzl0_@g$5dp-Z5oyq>c_eR<{HO_m6M}XBM-pd6{vLhA$B5t=ftjQ=B0#sUVF@*?TkyNd*rnwUiygGw7GLOvxRm%4z5XX z&H~)VtjFSDkU*G`LR>@IkB@2Uf|$gc312YU)m4EetPa%i(2_sY0>A`}d3bEpoJBR| zD{=U{2TCH^0~^DT z$xMM5TnP~Pz68}A`hIs z;ez^1G2 zG1cR8LiELob6!M`tA-0Qhc4_v>$iW7P=B14!7TM-NY^c#7jf#K)1zfQ{hnZnGbGRB zuioM^o@4uE@)SblexZF^C<1fZc~S;b&AHVNVDYMYa~ap?fk7V_By4|F_^OWvSlAE; zfCxxF|HNSPfEAD^EK|MUEubryT}uHoEb{860QP`g%?Q8^xNJq5902)%N$$P^+C6(w MfDMQVfZ+fm;4K1S?*IS* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0373.h265 b/samples/h265SampleFrames/frame-0373.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3afc7edfca53c8a9d851a426bbec95c9e5c92452 GIT binary patch literal 2187 zcmV;62z2)V000330n?%X)I$OT7{Ol0lt+NzFbV?zpeP6ez(b39FqtI6)K|nE7?G3* z?l=GcLRVwQk z@)3R2IS7MFxifowb>Z=d0gMfIfHuNa1G?0s;_ui$|0tAf;1xCc3h5oRtB4Hs+RFBe zfp$5_&}R(!x}O1Xx9Ra)i^op@mk1~%F)Q|#$DFa8;gzm@i8X47rya*gO4)5%g*LW^ zQUzh_Xf0z_dQ@@z>$vD*H#z@`LIZv&VHFPb)wbD|=4?w>u=o-SRvxSZtxS>=9@cd5 zba{$%NNJhg(G;+$2Mp?*k^whOYZSg!;__eOq}`^|g-`1FC~a>layB}hbgr~V4PRih zuMIj=sQ(j|qqFL$k?&!-P-7tr^hyOhEu}7Z4c%fbAcGiqxSb}jKx~08in|GlO34(tme&+$Yt_wfQNnEsAKC(uRSPzGHw_~nhtN-Oz(o+@X-!H?2-B2}w2Wm9p?hWDfHeiSEI*2+S{%Ze{|Av1F z`Clu?_-~H;=SI9du5u)QoPjI=Js9mOBYqGqrb)>MIZs8OU6ley zM4wHWlloo{H?mI$utRqxrvRE3qX6an>PTel+;^-pa?GiA>O&7Q>wp8lbysPN1|=I; zmjpZ;U+ZDuj=01d?@;w z2RMknfE8J&5^e;5ETGIsScMDy!m>WQj$U(9fB*slPrwd@V{$ru6`Mvc|9}7e8=qEg zo}W$`PX~Cv61t~O1BE6TJM}1Jtpgr>eB&5_+9OaP%o5i?mV6_cZmG}I=QDYw`{R4a z-Sf}@e20Xwl_plRDAV#r zX$^_!XTE?xkIVs;QTp7r;v+s%2Iq$uU#G2g#H&&OyUr$RaG1K1*?<5w!sy5N4Wpp- zK4<)QqR9kHGrXW+)1~D_2S0nV{2J!LQh(91*{E&)DVwa&`J{f$1 zX%#Fz`_>XB(F~?ip&S_&1&A)ygL=1uVzqa(+JuriQqnK$cwqrDB1x?dAs(NeqYOhr zd3E)Qt4fj=h_8K8+GJ9OD~fC9_%Ca`>`Y+`kEq-sJ=ep0DLR?VGS$=R>+`4!DUaIS zKRn(M7~;-eaB4Y30$IRYOm|DSlG_)!GB8l8!bd}R5ONOV#YNdK0XZ3M!xwdJ!Onen zC<;?IGr9fk7AKC4t(&fe0#7eB&2so={ZT~PoG$m9rZ)Xbw=QSx z?;qKoYpUdPY93nqc*u#B>lplv-`FO63S`)bEsw!4SE;;f?p4%R_5(LQ3yY{3?6O;Q zx5Fh10~E$7&_@!x8{vXvn^rL~D ztDLZhH6d+jK~Z(MRWBgDz3)bX;j`H{>Pw%@V#|YWJx=CZi+N~rez2c%VZw|OXXHM- z=U=xYO4cs8yMNMFC|^_Hd!$VM3hn&VvB&~-co&Ijq98S{5B-0$=dZ_#2WQ)%-8(wQ z(IqyXi2xPfRKW6%Ff0~lU>x{lvHEss<&W+ytqn>P>O0MVtE=8KqdYws{J+EBM%a-l zW!z>6wZupcNL4WDeE2DrA$L#jiT6lly9wraZn z{Zog3|M$)<0x;}KP@n_xfIjg+;WEQEprvNRFaKXJ|Nr1>2AeYhbcO`~di^8t=m&zq zh9pJ+J=;okjXBL|1-=rgr50^{*_+D&FrgM+(uxc}gGzEM8SeJ7b NQGgAI2>{^$BjB`7C+7eF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0374.h265 b/samples/h265SampleFrames/frame-0374.h265 new file mode 100644 index 0000000000000000000000000000000000000000..84924103b340984b9e90638029a36e8206c81b5f GIT binary patch literal 2853 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0376.h265 b/samples/h265SampleFrames/frame-0376.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c593e0b3c1874e845c0e67dd1da27b94f59a1b1 GIT binary patch literal 4161 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 L4TuQ<;Q%Axn)(YH literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0377.h265 b/samples/h265SampleFrames/frame-0377.h265 new file mode 100644 index 0000000000000000000000000000000000000000..51be483fd157c29eb7da1309e2cfa6a4fb728051 GIT binary patch literal 2333 zcmV+&3F7tu000330n@?%)I$OS_`z`YJ^+vo0e~n50H72C09ZkbF9Hj3lzoEfA!R8| zB)R?n|J15BppwvAhv|R2Bpu5Da@)#t?fU{<(|w`SKmgv!Bb4;hwXefWHlt#D1CKRW z#}bPf#x_yyPUMr9Wne5rY@gGUToTR&IM6dF(SQvT&2hD{5Rs9D5om1l5sbIT-V#5A zFSY-Mc!SIL%Ckyge-`#ehNcX#_M158w1s^vXth(BfBGHPf6*Fi`*!*d!*lb~vI*Z3 z!aJUbizDMB+QI67I{xQ0BK#Ul{vnI%6C9Z_Gs;N;;A6IWJnO+B^bnXso`vD-%U5!O8~xq&jHK+E&n<{Ca-$i}>lat3%=K`WMY%`uZ)!A6~%bX5u` z$gVim&z*nGkhJ+BaXovJUx@v7(cVX9jr0ft zR9%Acy#PXdLd_aU3KCkIHNN-ck#_j)hEQ$}pygb_6lh`*}EI-VMfVi^f72jT&1# z#ugaLD!3&9j}GRRejC5UiA~~%EEqE|;k(b`%J>c;M&#X$R%^L>{ZS}>5m~n+-B1J+ zCwxSDTYPttN5etvPPu4PTPr3w8Imra8^meB&2h}@`M*Z{Y!p~UY#nWSs{oKD(wILH z{JDBj->v-Ff4OGo0@pYKizbb9nVh7w!}@CV0lTalKzPH+RVt%}C~Jt9FG^#yDLdQ; zM#|4}X(qI3OPuyKiyS>O z#lhv{R=J|Ct~czt7xXfOi4F)e2>#=(2=IQ2kN@>U*Y0UQ2Y4cSEPOGo0|^uk1t&qa z=l{CdJb=;;Lf`w3i;{QL-tRui>_)BA%u6llgf#LbO@Ko zm<!i@0bxl8>ibrIE|S7&rP@orRQxvMjM|aJNAMMeNW2 z@VGP%@grVzli)FT&WQOzRDqCmF-uI;d}erx&k){92t?=XQjqes6A1m=5le_f4tP84 zfgT=nj^o0Eac_p!p>79l`vx)Lc#ef2rLm|W^-wyzQf<>P&?d_2>A!|A1e*^y`9zSt_j z&~Fwu@=dJZ^1Gza3e{Mhuc)10w9+gR8>&Wx=`y&x0*9GYPyfzLKYx!7p*xu(lv;EQ zg5MPPe-1H04-0EBteHVTC!)Ivp4Oz>)m1DEPIG~At~@w!>aeTM-^)aPYsgvl{0kNh zeNznY$R(|kYsNxp+>{2L>|&j-qNAI@ed)9q{g@pqUW~TxEJVON#%3Q>CO zES7Z<9rPn)J0JfQHIktx|30LWO1(92@h0~I2IJoLc@@@yB)&nMUtA+pTTUH0+M?HB zN?S17PFMXE$b5kMW$>W&f!(T763&eR)t3L@ z|Bn0r8SUxY?tC5Fz3(4ygZ2TGPTfH1opQex%li*U4CKeE!N7O4R)O(!DTqvQTI)<^ zTGHu))JlvDd(9tJedG4KTi|Z3y(Cx1TK`|qN`C?OO+M*x+lkIth=(i|$Pw=eXKv#d z>+PW-nIQbNTxQz@)yy~&Nr#W>svQ2|G3K;)5?`!ep5@0j1~<5DO4@!_)RQ}OMB|*` zC|!VOs8%3y%!^`ZvYh!y@FS$|?YGv4kaaG@ayTm>uk~paPO^1>{lGoNWrFXB+OL-227t-b*GmxJXq-BjN_OAsR8idKeW&vHBqR*6vnEXHw~ z6ZrKQE4JQU%BT&ByuP*jEieLnsz=A4g+0FQt_7<_?C z08BtA9*L|#D&Q-YZ}kBeEe)rH0N8+Ctq8ykxNJ;UOaZM*Ay5J9Jo{0A4TuQ<;Q%Ax Dt?rKb literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0378.h265 b/samples/h265SampleFrames/frame-0378.h265 new file mode 100644 index 0000000000000000000000000000000000000000..70506f9b0cbd8baa2d44c943233d1a7f87bf27a2 GIT binary patch literal 2855 zcmV+?3)u7k000330n^F<)I$OS@WFUiR{)R>0e~n50H72C09ZkbF9Hj7*Dzm1pgVBy z%!I2a|NH;{b?K$^XIB)K@TXbbftJCvQy$z!|3~zET3_TTUVp-(-yFI;paQx)&*RRF zbMHZ19iu(V2>CQ;4vg)?B1jpYL36#FwxX7$kJOYEFq#;xu_>iF*Lpl;JigL1dYLmH zm-yeXDcz0HF(YcuT`5*$$qns8k4X<5T+DRINCRO~z-49C3Igy9xwm~$_L1GComL|) z@FtNQyK8LklIMQ1_E(ceS8}Y_OBJiirlL%Pv#ihK$3zwTx%eoIWT-&0!XP&u3#s1z zmr%{9+jWzdU9IqT<{(nJvMK>1rp^i1%f1qbl%0yp@c%ONgs<`r&f+>fpR(S>+)=N} zAX6}w)lAa2JVpmffDs57XCHf$r;d!f1?->tHLM#Lu*LIBa1>RHON3KMUFeZ|-KMJv zopu{-0@O0Xh-GBZFgCtma7cF}=CfzKm_AHI8TK{tAA(idN5Btc8mWw3Y`uAf{=;CW zuQ|4JQOT|z1iRel)p9T4VaZZ^I&n0U7GH~+YQ+B*X*{G*)mY!)SWv> z9VT8*IsPy9e-rL_d>uZgm5;#pIecFWg^akjdDp}KjGste^dq&Z*3qHC|5GiA!->@M zsQ)Cd)q`R+N0lJqe~&x&-PBO4V>{kZY#vb?<^)^+2dHLbWAkn^aT1;+j3a%WY@93h zMP>O2%0WR14?CdR4H}~Re)_k*8Onq@c3xz)XBNieFj1=-cEVwkLmr6b8+n{zHj01{ z;RJUe9=oF?3QpU2oQr4yKlP0}ZCrV#lokpi=P2DQemqo<;~Gwt*#ow?@zD{1=!w-bP2iOHes@3zH0cgxc3hx~4Gn_2U^{8;f_kS8 zvP-=t`_o4^>pXP!lSAInu{$2X&sc(ZdMrruXAEGKos<-H9$#e}=zbK45jn_kF3lY# z@O#2u;XyXYT7`TcG?LIe4_s4O?g1k##+4rBp_9tuVO`g!y~hD^g_=h_FCSvaNnKBM zWkAk$2HZ>Jo=(ycA^PI>4(S*4WU_Jpo-E1q@;X(%rlM%?5hAqtuKNuQWMSr{bhL@t zs9;-q-w$*zJhI+`;d_x+V45`tuqRWuPm=q8^clXrg;*xjf7zmZcRK`G5a}S7H?txE zxP~9sBou~PgYsr!sY)l;s#J1IoeHB_DjyErnF1KA!d?=6L4 z+^3U1m5s5jKQYYKL585v-YNJO+$4H*07gQBrm5*j()W;DSwRo=;ndeL4e`kj(=2*M-dS!rV4{Wb*~}yY>dT(MZtM4o8PxWr>)4K0*4bkwF=KI7M~cLkG_%P zdkm9(^9r7~b}z1qriaj9G6^?kqT&N%U&qYwsBF+iLN>Z7wG&A@r`M2jzyDp#T5_0FtMm59Y|`{_@a!6`%h9|K-h@ zzu0u@@C>rh2yUTUkhTq3V^4OQRo>c7AMFdj4e*pQ@v+X^BKJXrBj?XUY1nQwPZB6u zhYcg)eB7BoxWek+{*KCWH`(nnZC|-0EU}2>zE++_z1m#q0hJu+nO>r;=RozS48ycw z{qB$#4hUG+w67KScju>PA?9hnwCR|lNdXQRq+gg(-#-e#1pJz?{z9>+Puzf2uY*C~ z;+d}?XwEMiOL4GM5r*N3RlUw)rRHOY z%K#s5)tB#uZPyrCO0v0|vj48UhGfi@7*bA9$u!5}4Mx9A3jyXG8@i^o2y`+tizlcx zR(4(wL#7i_3e@WzOawOedXbO9Q4i)OT#oMBD$fO&mj2Obc&Q>yRYDBUf~=AF#&&iz zdVz6e4%a7*Sy_FBl|x3IXk&}|m4gwWIH6m-UK4cvpo4EVhZ0i0D>N4@fi34xOkO4* zmAC;VNVDA$a_O&6NLg?qK!m0s5S@i7cFG0R3BSAyH^5j|MYzdF0TLT@Hq={N{DRKKMj!sEuBmb7b$?43?uF+z&n#sal6-6sxWQ`KD~0D79;3@^ z10+?sRAbEoxb`SEp_sdQK%QarmbGhKHu;po5RLbC^Zt$6T1AU9KxJN>jx$CnLw11) zr_65Y$g~BGOM1IH4=k$gH!qoKO5!-+B8}yFswA2K0NCfM?8HlR*`}iQ8Q}!|R9a8? zld};{&$Z~>Y$%FHD(X%6`eNMyu9V_dzx;*dYLgm~oIoFo035UZpv5 z(gxO&khC6sGN#$9?>fA9a#3NEn;YajY(syQQ_3)j=k;1I{Mf`heNG8uMlx^SIgXV@ z$zwZ7BEM@9p^bovL2-0Q56huT5!N2sTtu)C@}3n5osUE3TX8sQBKY1~ddr=h1flJ7 zqJa-u95TI7(T8+JPe*YG0AqeUz1k~!m)X{(aEgnb`|8ei`o1e*!@p(dRreCQmua&| zwLaB`EZM5%@Yz(qa;sG5L6wC!2ewJX3LpH$UnfU4sB~yGv|}&8pPGvST3kL+D=S)Q z#l>Y=iC7Dwdqv~TV_yM?n$#6su*3Lej9?xK0V>AD>PJuZ>PWme+s31>qF1)(#c0*j z6WZKFn0(y!AcDr+X`PFetW9wU+-!|~Jx@n%c6(E4@Hz0@UDO+r;hdT#YJ;uaA(So4-{y^m(tx(>w$w2d}e+XfCh`P zc-DK&+C`g=?qt)~OtI^^I*{rB5<0`JcWTpLdS5rwT0oP_n6c`xBz2Qe+O@f>K=+s; zlg0Pjj%L?K+}yX1SHhJMviuvNoDazf9Exbphmt7}000930C+$?{w?O5kB9(|fIk>~ zflB~PKqwxGtUxN@E0%Bd0T(R|r-T65fL*N!zzw);Ojk?+tx6$K0qZ>bQGgAI2>{^$ FBjDRxbBq80 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0379.h265 b/samples/h265SampleFrames/frame-0379.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c908942934e7bf489c391af48a221f8c5e1e4e7 GIT binary patch literal 2875 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 ZOjk?+tx6$K0qZ>bQGgAI2>{^$BjCP^rRe|w literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0380.h265 b/samples/h265SampleFrames/frame-0380.h265 new file mode 100644 index 0000000000000000000000000000000000000000..55a96a4b43fba060e30a861b73d420b0c5f55d7b GIT binary patch literal 2512 zcmV;>2`}~l000330n^$4)I$OS@WFXei~x`h0e~n50H72C09ZkbF9Hj9@A$SDm4m{p z$x#3O$^W}p09mY`6}+_=oDagoToNR^hg`_ct2XsUAoiHDhLEJV{dP8mOonRx(G_Xy%IY40f3aH z%Toy>bH6N9{ddILMJ7-7t|~$i!eQg8!9imV7l+Bja%Lvt%twPPTR>@6OzBj>)KkK? zHkwCeL(?KNlr^0}#OhvQcZ|s1=0Ud`Ex5%I(51H|M}1R)=Nb!yc4{RK>+@8~7fm*V zYqbm)OfAnm!lytZWAxF2?)eH>zT^s2Y_B0cW=e?;*;i6^Y2Q&qP^qkk2*Yr?`35!7 zt2vkbWVfK0@`D3L@O@<-`7knJWhVwa8D#U8d)9msr(Bk?L!$ffbD*$b4re?Lw)$pr5a8NjBSs@Gly8I{W`j zzQ<*naJ}DN7Hp^x5>yu>vA4M%NeF|XsOIBHv0|uWk1$c)lN6IdQZE)DU%JuSZj116 z7BF_@P%Fz~7D~Y;+?%Z6@u!>uaC&$~<<-R!3v_bFewYyF%uT$aR0Bdxms+zq?d$!~ zvQ9?f?i-A}&z?VkqDvlP$+1%}SEiC05*Q6_&iuBHdsC{dZ$GQvNTViSQn@^Z=8*U< zFDH3>x-*S33-f`hL%kg6t2w_sW+Sh4DOQs%-&TGP8c`Jh6h5UOykKwXy$+u7onJumP zc*qee3Kflu)kfOze1TDV{Z|+bH*FHQO=J2q)_lHVq1x4kXKiq#i(O9- z5xX2*{kt|)x}|PCiQRdFzvrmBDViub^PdtOFzq$F;fK$`R2A;+A!$|d?52h-;dFfsKtJWaYZ&2CYAOddSw{Y$FVl^%4$WRp z7u4m8u84feUZ$2g@=$a&B~&zfIu@63?`wBQ{r~X-%TTgZ?K$7p20uPv`4Xl9 z=LD%45%!~xpbK?JQ7iI`b_nt)K%9#b0Ysvu&x^l6I$fiWt8D@!BM$%o8sW(g=E&y% zelPng!`Hx<=A$$GpN7mIB?9>U(Mdg}9`#oVH4@ZpqvsjT8@K=O|GcZUQl-}$#A>lk zdi~zDG47_{;Qb#ri*RuD#h38QVf$nLcmebIH2iw{J}@~vPY@ct4{zdpuUsRd`$p9X zY+#?F9re-6)i&)4RY)NSlX`Ynv1@5@W}tkeeiukF_Jw|?HRB>*>VooXESFif&hRlU z5{ez)da-~58;cU?BmnZwi0%2qLfizv1)&C?-S5~0s3TK<1#rY#ZxrvXn!VYZ`qcCZyY)R&Uc*xfoM81CYjA&-upz)e}PXR z0)^kaQSmFAUj*EBk#yB+Nr&Y*=SlJv&!hZ2VtEbwMo>qIY>btAtW%5sijq3~gF7}M zgbRuRP*{Ma{)CR^A#7E>|C`dUhse1Wah3?&_DdZrcJTKa)J;v=*n!V)7~D!D=qF&- z37H?S=wrxjEf1C{TajTJDt$6I`uFsBxLXVZiIT)obc%n5P}f&srFAF*8WOyY!+k7O zGuLEIjel~j*^{a(SXb$X=#PN`8KGKu6+m=)iiUjX8GwGrE(&xy;a~E9e*-}qL=(3tdm8JV^bB{ z5vZ-3Okgh{KK?D{oR5eAkAOcIe1S^;47AI^#Ka`%!=mhzS7U03+ZY3Cvjl literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0381.h265 b/samples/h265SampleFrames/frame-0381.h265 new file mode 100644 index 0000000000000000000000000000000000000000..72bcb7df818151bbea6cd524ede0851001ad6806 GIT binary patch literal 2896 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 u;47AI^#Ka`%!=mhzS7U03+Zl1E?MV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0382.h265 b/samples/h265SampleFrames/frame-0382.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b7004bd7580bea1e0449d480505098149f97c5db GIT binary patch literal 2394 zcmV-g38nS`000330n_RK)I$OS_`!W#&w!8)0e~n50H72C09ZkbF9Hi)ie!R2yBOCc zFPD|9;@x+{%23zR9N!N+(3EEmMx?N_Gkt)WGf!HxIf#$+-*Pa0?hBqb z;)I%6;Q0*dZ1AryQNrqB+5o$mY@CLrwcg+Q5vI!vs{RqS8%H=?pOoI?i?w6VdB7eC z%e!V;!}6U!Ac9X?#{Ei^^Hts%^n_m#?B!ttby)VA!Kv*=IJHTT7GYGG4ULQLl0J8O zVjsPr%=A5cxTX~YI^BSI7uzyR)HbX{QpxIN>)C4=l`5LYAZ_eOIuy*L3^`ORhbAOC zHik@)Y_m%15p=ahk=PXZ=Y+usd2+~l!J=KkHz3fsslo|A4TcNVBzj%Ofy=!(%#MF9O|r4uECOVFy#)@D z!Gg`AbN~E9eN%bh$~ffw@GVbW4Nni{5L?)&1Wo}8xoF6l8ImJ8Vq}$4V1akHXeojQ z$R_+ol?mCO!)0WMwIdArf_gS#U!|z$cX{E9}ltAMn2~^<9?U;pZBl9 ze?m0Etjl0g*$9kl!>}KpbtP!H?ZAy&f3Sh|`;H%n^ z$`yg}UeFC4;@Bl%LjEyQ&J~&F{TtWSyQp;6YE$eD2=3w%2Y}oo@P#&bjmHw(!o;go zId7=?R~#-OUYlDJ-Ep>eFQR-H=KtoklC}b;1qCa$`G$?a;lkvyn8%vq0)1|!502RF!J}$K5a}qnF_flz1!G+ zU?}nnFt|$|VdJ;%gKrktHH3%*YW6gVv{d}BB7 zlj{WJNVdE)N1F-0mc|}VQ*|zqv-hcZA-U@md?k4OQW2X^E7|3woxSQhp4rB3!C4!0 z+p6e6Tf%?;fqd|A#r~K5Ge)X+mua4Ll+DGd~5>=%Ay+pFZnh~#kml`b*3C2O++o9keK&m~;rVK~cf5_0I zY`yO9Sen$RnK%dCX6v<}N)>9uv@v|WfT1Fe%~%DLe4fV9xP7xD&J(&L1AGtqEc%7h zNN^jWC48t}v8#88$8FtK;uT$vJ0kp)+_k5e2mO7E<;Jn-3RD>Dysf>c7UGx+pVwcG zEWQd3*y1GxnKZj=yFQB{#B5=DMm}%O*b;9BNr;r*8;oPdPRZeXAe$`ZzN!?zw98F` zUe2~3`$#CPWoCW|E7c$qXaWf#R^lRuqG9_Vpa`@}m*by^p0^KY{0e*w4`jrB;R85{ z@1E*CO<2%GV$luE|CwDn@?D~X{_znVKF;dR3PNDiO7dEEh&l?hbSj_@q&*lm!r@*( zmaf0i!lYMuKsl4e3++EaN5(VZ18Riz;?Z2;W{C@f-)*rjAIt9qcEl73aY^CsJioNs z3%ns*CYOes8RE0I^6W#O!YpyQQez!XR5r?&zh|O>AiYn!$Gs+nz#o0{HUh4WCa6s~ zz8M^C5$7mgdBWeMV20YYJ9ENU>MygGA%FsM#B8wKDihOG|94!7y`g2+zin4J5`=cw zM0H)5E&{%@a3c3P+;EpDm;VGi;d480jfwY>@UT|ey}st*`!b5%Pyhg6NjMMY$mako z*S++bffcHci^C$t^S=QuzyS2LRaPJZ`0u%8OQP2DLyNHT68-W2{sQ|W*I6ZQym&h9 zv+@e=wpgDdX0Q3)65xQV)u38T?~9;1p?Ud;$=`k{$v4Xg7_X#3B)R&qr8Z5Vd;Y?$ zp%juGS9{7Iz2@uIThFk>b)it*h@mfY{pOG7Ws*~KU2FV{Z`s-47s|mx(0(V>41vly zC+i<<6JR}rVp>p{brj)|U@FP7b3Is=?z!_vdNEai6o=Gfc~{e~3=I?R?F*3CcwcN+ z_n~U6+xc4y`3hcK`PxPK-kuylXgK9 zV+f*+rKLdAK|0vGgB4=0>wlORVWpc5W MfDMQV0O0^5;4!zS@c;k- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0383.h265 b/samples/h265SampleFrames/frame-0383.h265 new file mode 100644 index 0000000000000000000000000000000000000000..89e2d4b455af8dec5f9be60130d3fe88f8269221 GIT binary patch literal 2588 zcmV+%3gh(v000330n_pS)I$OT5W$clG{6!7;0yqu3;>`C0Ducai+M1aB*I0+|8mY2 zEF*Ar`K7d&^0=!1SzlKT|Jn2l`J@w}Yc2`++9l+BVt$o2y`e9q8v0RtOF=>GPF?cl z@b`)TciQ(W;D3Z#9#IiA{roDbXh04esAy>{rp(lqsdp`CRH)FJcJr|c#3dj_5p|3+ zVOg~xzm{UxfJ-+EP}hhs{iB!o4i4pJKy~kbCI7YYIXFY0O4>TLK{{VSCP7G=EeWE} zA#EE#eV>VOQoZGV*m!t990HF%;f0`Ebuki*Wi;2*221~B?cwr6Gyh=D;|=e>Scy*X zv!q+o(Ao0=sue`ps`axJObY&hp3<3iu4fq_<)WbsWXyMhdly+pwv&T*7n+=rr-uN^ z=_HLYx!0Q?-|L8J)#%{b?*~Xd_?mJ?6FRcpF};dNZ;df(D8r#-tmvU6>&eUVa<;bm zc+6JAOKmVNAY((>;^!9UcBnno0F3=VyYzg!SsjS+H~KBf55*h&QDg!eX@8m*olEm! z=ZAki);nxsjG{|90c4aTubA@>`~3`B{mhdnMA(vte_!oBzzs7SiroWDsy)D$odD

ZHcx6pfG zjUf^Kt3Ikkw?}sEor#FJsrFn2*qkDU-+d(B$r@ooNHYPYUD=TIW;l8kd3Ss$y=RQq zv0?@d7ZtA8$KgpN;ryqpo&zvhM%8>pAphgJd&nkd;=TK|$E=>_?w(;K;MVeVyA;vo zA=}r8Bg7OB4W{6?bV5LSEUxaPV~HT9Z8h3iv;Kbh<#t~69gJ;b4O+RfQ-i#iU0qsf(Zh zYq)iDGC1y$L)jC6Q>X5Nz^jahyXfr*vLSgZKxlyOL~oBcq5nM+E^%(M_4V^T7rA-I zb8Ap(;z3RfCG0-d#=$~WN?|;t{p63kEv1|sPM3A0Us0^q!m6E=p{p6C9CrPo1TH}I zB~7~rv#@LDl~zw~DCy>@5B7sR+{=Mnq0OlALdV$cFFOy#B(wt7wQqjw(5@GgrCMS1 z)7}7>An(|+_0)WP7DsAD7K};pcsLDzOtB$z*z+K|IVY@^oO3ZBx0|L_Y1)XtBSBoS zGLTj&D^`}{#quHs}m`)WITbXImevnwK*= z%mSvBay9d=D)y9_;6J*}K_}Hz$UevlZ?{ai=0~g)cac7phcJg8eA*rVhQu_pr=kWH z{goR;2b>|Hb9%IX)iU*$ih62*0(o`n_je=(VHL2B>`gY#QTc{E{MJ1s0v&pu{FATJ zG6Uz5N`Z5>49)t|pY7#7|Cxu>GGJ#p)17yy#|I4%%c0WX5U@>7%gKH(#`t9U_Us z(Xj$q9jx*&0MNK6O+dQJFwz@>=e$s^U1lwwA&`8gNnMz_$bcUZAPtpP30;jWy|GSa zW?@cKLu&fhMc+Q22~draeU@b6$lI3voM#i{b@$z-Fj!ujSSs+Q-cmRQKs0g{lg$Haj9?Cc&+i7&x zQy110E@80%TYtJaI!eT&cmDO4s{Zaz^iPeWK#h4RbBG!+xN^DI4i3*Eg%H{p-iE}j+!W6b2oM(xFQY7OPi*0?*Z_ns>=KXdw*OdX- zaCM^34|@fN;ORC(32kVs0u&_Tsg*S|Ax#sUSO=MglJv_d97t#UGGgO5+WkuB7~zKk zybcl93ztV=maZ(Wu)*MF+hNEK60;WgFjWCnnJ? zG*Bu{g$?C(P$%lg!J@^E)uHLO5C05|FKyek?`S3TjJR=YPjyZV2J89flA(u`FdaFt z9hgPhRfng^HSsDV)CR#f*=c|DI|~3W(dZA6wYKA!#6%|fNZq*&?|-%C?7b-iVAY7frZ^$1|QZB6B2&G7dTu!^^GwhYYX07&Rybhw$Xprs{|DwjGYMDit z>pPS9ht|6oe$Y$hdNHT)&_PFUoT6{(01sG`U2K2*%M*R?>pVleU;RU>usPRGw)9+atO#d8K2r96$hIj9PMiz&aSZ!N#E4r3-}H zYLHXg$h4)EtZ9sOl|COdf~JJU!T2x9oi(q^>_-p2_ut(xd$2$Mw()~6)D*TS<^Vv) zP1@!`&p55!)|NY{qOx_vaPU$mX~URba~E~(x0nLLKJh{3oR5eAkAOcIe1S^;47AI^#Ka`%!=mhzS7U03+bW`U}ed literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0384.h265 b/samples/h265SampleFrames/frame-0384.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2c53d11eac3436c9166451de6208ca469ca8fc95 GIT binary patch literal 3450 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0385.h265 b/samples/h265SampleFrames/frame-0385.h265 new file mode 100644 index 0000000000000000000000000000000000000000..76154eeae051a117c17bd54a72962b1758a43682 GIT binary patch literal 2428 zcmV-?34`_k000330n`Ei)I$OS@WFoMuYiya0e~n50H72C09ZkbF9Hi)i!oo5R$(jq zdFsXf>SoLFdy%MvhE-!JiU_h_Bm8D2IKk{xH54$@+RLRry&L{gJKtED`QsR@MG{~K zpwRF5*Yp1uoqr`p40U{bUlZNofSpM9-zJk<>}U^`AX7dzhjQntF4I(M4`$lIq-@K4 z$jgh6!{eOoA$J!q?M&t$+^F^eK|3h4gP;GOQ=VhdFvH6(T8GhKLW`7z7>R9)D2Av?aewNPTlAsm0aH&-Wx+FhWnpGk}lH^^4TBaA=&9Y zvS$9H)T7b+k#W5W0NoO`5aY2XXhk{qu$Z+S|#~Yr6J}x%|IatNg}8uC!CU8?<4&E7sMns9xeo801F;A13|+qx8QL9 zZLS->VFwBODwXRfDsTDm!Lz~R|{Sc^F#65IO$VEZwG$w3w2>QRqetzK3-*dxD} zuUWdq#xNUg{7zLiQC!I$GvN(J*`TOmu5Frj$MYx6srJNN4b)cHPe!O@+m}Ofp3`y0efq7C&#+uHlnj6epvY!bL8#WY)sBN01}CSk zd)kzW2CmQ9xY$_Ie+sw`7ly%SpU8L-h{5q2k5z3s#|kX>JMp+3Ivsa zU43m;wd($wYBy~&$qU2_!%frKOnr7#AfB@F^0;VtnQd%#-^r-_@}TcO7K2oZvJ`_{ z|BZoTWIb@n$Ffdpf}4}G>vGu^!}3VY30$BqJR*8Q>>3&2iZQM*hihD0-6ypdRXAUn4!W%Y}(>Ss8xcxsdAK@bYC{ zUr+9~6uPmcw$JF0G7+quAd&(DI)IGxNLERme3U7onbN{*ujXo{Y^Jzi{4R~ zkGu6YI);@%)z`6YlE`sn{)04Hy$){;K4ZY0*0&E@iDy)?H1MQiD)$b~N`kWB@ZTOb zBpp7L#5Nze4L>1y);uFFA+*s1^~p{Ch^y*n8vu4f?0OeO27}YieTKs3)ELp;VYq*K zLuZ2U){&AD%NvFG7Q}lcH$ElBOEI4K5(^YkO!UV)Y<;YwVg9sNKV zwT$LYvpWf-R&aSg-shh;TRK-2+i|K%JtUwG#%%g6;^WI|qAFs_{SbF2$rY3A#|9hrGLDeZE(%F@4oKrSxS~*#7-8 zX02gT&Y@xUE6Pz;7xlo7%?D-lpS3N2=fyKyUVJv1ycv4e+c2-L1-%lq{-XIWFoODa zwH?^&MD}%F)H=wVA>yWQ@DDBNQ*aB^m@cBxDW$&fa@=<+r5X0VeLYn{IkCV?bW1jx zd|+l}3ng|xGxn`17=)Ul-ez*vU8uAG01D^}@yECC*4@esQ@gf<02tI_bqpX7ZM007 zNq_#?w8ni9gdqk{zyOTkddBgHy57sWQcX`bY=+JM{p#s)At;OXV*Fo&ZU=R#;=%ww zL}Qp#5PDNqqBu%WL7F0wmc(~5k-2Sm1QUH69TQX)*jP;T09pbyWIRgfa-H~J(f`G?pq2&+ft$X$U@C<}BZZ(t+P9v0!UqDiKtEf-LiK62 z5hmBf#z5f0C`y)5J~fKbI<9zZjK5}E1sZ?B%dOh;gbtO#-G6u|#553Fn0BsS@Lm{7 zOtUio{@(G-hAl^=qeTSfj$Wz+23$udo!%?bGw+Y}3kR~5YEuZgWpA*(kPd4@b7CC3+tpcH1jzA)!K(nEj&p4|%X2y>f-`%&^61rd z+Ch1+(yi7&17oxw?IZxPd;d?(KP2IuZ9CJ~t|m`IkOEbn`6zrNUy>(Vi%C{WN_?Fl zhOmxa1lbod^p?->d+_L@;F5_tY&&s2KVm}5Ax^|2Qv+0EK6Cmwgiiy6@xw2eq00#> ztz74Ic%`livKlwUvxp=wrj!LCfe)_uPXIh1KK?D{oR5eAkAOcIe1S^ u;47AI^#Ka`%!=mhzS7U03+Z4$er^5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0386.h265 b/samples/h265SampleFrames/frame-0386.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a96ba3969034993f035577c3a92b6e98aa1e9bac GIT binary patch literal 3195 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0387.h265 b/samples/h265SampleFrames/frame-0387.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cbb0ffcb8653fb2308266afeac3544200813f610 GIT binary patch literal 1862 zcmV-M2f6qF000330n`!y)I$OT7{PXUq5zN%0e~n50H72C09Zqdc`%tI$=|`%JN|nc zqm~=t<$yDu8#eO#E}3@ZXW@9zfS5b?AOHWXEAY$nV?JJI%1xG_ulv7rB#EcnL+}{@ zj#dNw2fwh?G;^p zjH4Hp8WM#p$lqo?pYgCaTWCyPnWj5UjRbUXfBawee$UOwua)?EC-_P*aq)g84%r}w zo&H4QnvwB#7M#M5Rdd_XR|pkDiOj#k{6?1|%XBcCG~8 zyQTG=EJRC=kn`q{xQcQ|6+&$h5GN)OqmYrk&{gI7-8B z=xaUMfpg3QwkJw(I2s*9e>6m)JfAvz`yozZo4Un2Be)Nw;p&gHScm|Gfd_6D0*_E* ztDBs;B%n`XrjijrXH`}ZWIT!vq@VK#%@@qQsm(vP`X7FURbawlP{fdRG&aL^1yG(9 z;5kb)MUi)7)*p*+fP-)t4$r0I1E)uKw9l~?(fj|}qOAk!KTcf2*d>%cvV`z8ty2gV zOU33)DU+cSYBF6T|3-tBDxg_;dm@A8INpW*s^;=A z>P)naSynA#UxPVNUr!v#?@9_^KfI54xn!9qoX&y4cYt8m9(A-DYCMT(zHPFbJ#Yt( zmd5*p@0-|}#4t;O8~oz@OCwuHcn#frx&uK~maPguvQP$i;f9^rkugdn(+MGJWbrA9>vpQJ!ozban3A)x?pKGx%tVSxS_B1{DW* z!~OTSz$T}&7Bue>YnFpO176St4bbRlg|Ku<5!ex&g^v1{Cy&OT5zY6jE4VRFs_Pxg zcF*Jgs;P8kR!d#e|)k>oVnA(gLN{Zp4o_oNxRrb=rK(4yR?6zGmcS3${| zgawDlWE*I2Ei-&8%<~zhxm+62tX2F69%v#8Pc}5a5VzcNeT~H+eV^gHVOKCYBou8; zo-8hB&?N&F8ebJSw~uNv{5ib2B%qy!A#K0ebOeB2$*n6uJ~^OTWqJN?eI<~Z*%`#Q zLSvP_tDg`a3Q14>GZ=<>-2ea?a1MlMAY|q4TmkUjZNzJqpOObj6}wSA9TA=Ib&mhH zlHer&_h@DOcVmh8N~X%rg+ZsG5*|X4`YtF2A6WeTQVGYm9{Y+Ag>(u@KN-S}ZAEK3 zQbn3%Gss<3tJ(qZJ^%mz{O&own;HZ9Av4fTmWQ6lIu*0#pLZdMFaUStXjcIoCM;Qb zn6+hh1L)J_Su+ll8e;7Km(Cu`=YE%RWqob7a#L=%ca+XWI_O{Bd{6Lz<13j!0RY4X z>6N{Bs?jGa#4i9lLlEvQHVL>ymhgZZzR>b;mp7@hk88^CJr1Y9Ue+SP?JOp^~``C*Q_ypc5WfDMQV0O0^5;5e9r AV*mgE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0388.h265 b/samples/h265SampleFrames/frame-0388.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8f7b3dfa10622eddbc122381c3c7c9158fd1074a GIT binary patch literal 2162 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0389.h265 b/samples/h265SampleFrames/frame-0389.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8db021f1b56b308f1e22d6d2279e3b367539aaa5 GIT binary patch literal 2677 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0390.h265 b/samples/h265SampleFrames/frame-0390.h265 new file mode 100644 index 0000000000000000000000000000000000000000..614c3f871edf5edebbb50b7fce7719ab6a007daf GIT binary patch literal 1954 zcmV;T2VM98000330n{n~)I$OT7{PaZuYiya0e~n50H72C09Zqdc`%tTR8mSDBS4Kh`+4>NC$1T$;>yahh#Sd@H$}r00lhL9RsG0Z#R;PD|fu( zlO#y`7vmlkO54=fT_DSStiXuqdzLy5MD{I)_RmpWMQ9KBj_t2J4 z3)#c~256g;Ys)d4C^H^HzEoZ-J$C4+tV;%vaD^$Q<~Ed$C$Pi(G}@{a4w!vV1TdqW zZm}dmPWS=?BD1?_+$5{22 zTB~OTdtS8aG|lG05ge&~lgFukC@IxUX9`-?3=6Tql2q>ySd9GTb{?=GZ%J@434P^& zkArQA<>Wi%!MljU19nOepkGVidCUw3)m-$#m!p*%)h~1Bs+(Q&WBv<%y*9yc=>%*? z-m#-rcuIn1(E`2lBtR1uUcg%Yu)((rTJ%tvcOduXm@z$2sX>0E3mc-5aoKQnew|lC#+pF%0vJu`7*Z%oMe8KUqNoE6<{0AYsVsa}&z5 zvfUkmbVmb)xgo>6n5lv$331PG_p|R#N9g1dYi(Sa8{3VG$zy1PLdw7Woy|ZM40g^6gJ=Q$WnT=3!C58@nV>g2;2{Ae)^TKMP|7SB^hIHUC*~4!z`u2S5EC zM8k^>zT<`FuozIBQpnWN0Qb+up2`ClCTVu)hf+u#fSEoh*+wzgKkDP0ZP(s>KcZrL zds$FH0=AxTZ{H!UJ%izq^3|2$k>TwMDM}1IM1G%@v($P4j=KpIeHUmU1`kcZsQxM+ zwPp(ZPC2ZJi#RLy+?qHz=;7s0lC7*#L~;##kv)%ff`V0G!l1$6TKP}w*)OE7zwB%%r?>~>7=>rJZhn;+5Sv>zaeG{_B1PX}WhvaS zC7`CcZvAun!PDkW(-lp%5;AehA0f~%JjtDXl?v09WXwihl2VB49y0$%MUja1HISL=u{ewlZ-!1M)pdB}y z5g)eI7ZIfHVSiqB))|u=lnul=PTmW@YQ+EF|M5YN zNgy|@ik#&B)m?=K%0vi!%kcBlNWmgks1@fep?asa5ci7rIC5^sC`y)5NcD^%BDF3ppJ8GIU930=Uis@b!E}7DdEELd|yRm9KSIDCI!mhxtN5d z-}-)O`6UeNY2i!u!X0w^0P9I*P(0ege2*4<#MfRb8r!aWlJ59{K%WV6%ZpPqog$c_ zaMOn@dTVe5Yy=KjNbRIIxca`i9tYj7=2L&2`gEAb1+4NqQV9NTr9q?KJ!D6s&fJ{@ zU*#Tt@Y?_QzZd`fLU+-VYXydYD&RixLFSx~hyag(KNx(0O8`tjC?1KdKq}xXmT&a| o7cC8^gaFupU9AYf4Y+JfS4;t|N+D1I>pc5WfDMQV0O0^5;JT)`jsO4v literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0391.h265 b/samples/h265SampleFrames/frame-0391.h265 new file mode 100644 index 0000000000000000000000000000000000000000..27e8e0978ee35f59931cf8c77f26a4efe7624506 GIT binary patch literal 3190 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0392.h265 b/samples/h265SampleFrames/frame-0392.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c3358c7c23571a2c82a7133334e244ba3a11a1a GIT binary patch literal 1716 zcmV;l221$>000330n|DF)I$OT7{PR?lK_wo0e~n50H72C09Zqdc`%tI!qmpZ9WOGW zd@kWH0*TnyKOPkGAX^fAwkET87QY0OucKL$^=tqC!|gQ6{~0kdY>SwOku)k;K7KzT z>bn*vs>nSc;LLcNe49*(%R+d6dHT-^)&L zQ0Ko-y8JMY3!U)k-aLY+fQ$NJbizjVal`x2nu(APdW!9%njlIM&z~LTnA?$|l{22G zf(~QtJ1eM~9XxcWsvJHJ3ck&en;|d^Bp5{~2KCzg@xs>PdKj3*yB6w0dMut_la6(- zP#uzu``1SEbb6mXW=~xGtL5Zox66AAI-cJGyvA(o3%NcTuvggruAZcduW(Eyw$nRg zW;#XJ)6OXvm4d4j?%5f5@#n@(P$+fP4CFgdKB~@S@^ki&5C6!5^F_3_VFi8YCs7e_ zw@LniJ0CjGdVx*x{!vLbk1JOrDjd{nAXutkpdy=+@umXq$T4ezed3w3EM~3dohu=N zMVN2G#Fm3kZ@zarr%h1)R%(no#e|HQ0-4z<<$;`O8VL^MHBFW5kZ*-g(w8Z1ZB6#k z`&CKEsq1isd1wk=y|lm<5&g&MdAa3{#0y^Iz*|?UgblBcjazTnu8x`)3GmU0TbSPC zp&nZfk9fh_E@JH>WqjPXe3(eD_%iSlFnL(qk*)a|2orWifD&z ztqo}CKjF3Q#I0HF7>zZwzNZ#xWqks_*2k|y#=g(E?c`C2*!G^^vNs>%OKA7QSYuZ^ zV*k2NgDC5(jvmPqv1UGmAKU($8XRZ)6{8&tc6Z%B(g_(N-{vSNW=5KTs8qJ4>i{Dv zMM)4z8~>n-3PR6QXHXB*Y(4UlZ&)5Huw-&sn7JjMTXpistux_YCLw&nj6eTFV=Af4 zPRidvz|2T-{w_gS6-NEgQoOSTv^nU9Yn&X?Vqz!IAA*Zc5U;2aM5crI_|Wn<#I&21 ztfCg5(UQtGDiduKT80_ovCFeOq0>u6VxylHSC+_+vB>Ms3O;6;ZyZ;L5DN_RG3~fO zH?!H&R;gvM?l@&q5vlY~X|1AU&=h5bj6I_nz(iHA;hjs7xwfKgh)zt< z%uq~0wyVFefc;ToollS+#0dj1(Yl?KSU~lId>=l!XvyMC;0O!sj||^4j0l<=J8Hz( z_Ze0qlG+e73&(niw1t5UEm#3a%`3nCH#}Z8NivTyt}o0<0BsVoS6YUS^^JV9RTv(J zNA;RzxyqoL*I0MI$`hA}R+^TXmN=Knjk-(P$5}Vb>!sD-5RD}ocs8DhI&|OX3g}pu zO2Z*lrHB6Rj!$Y|_V{g6-)As+y!sml4G67L5MhHqoOrj`SGV>fmwpTrR5){q0(iV= zbW0>aae&O_cvmMC8<9y>{!j1dmmSiw@C1SZGqFswu|<~~R|(1DAl;vff0av3bgwg& zd|@EIqpBJU7shMQn7y3X_Myv-Cx*07(I4asl>Dl27jkRoVwwIK9>3%ED?L#GX*~*< zMsAg0+y&qMy9sXXH5`)!B_)k+J2$M(sj8Bsfzou|;(38@0NuCZR+s!D2tw|K>{OkS z^Mp!pp6~zyY7T^GAY|q6F0=$(Ft*~~_VQc=pZ@I(zmDv2KM7RXSCrq?BRGL*R6k{uebC|sPXL+`E&`D<`fyf% zWJ;_lp}10?p+GprmIEHFS0tGAj z;47AI^#Ka`%!=m KhzS7U03+aD?n_Jn literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0393.h265 b/samples/h265SampleFrames/frame-0393.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b3ee27d68e996d3b901ef1d9ff906a2cd02e125e GIT binary patch literal 2127 zcmV-V2(b46000330n|bN)I$OT5W#sg&j64P0e~n50H72C09Zqdc`%tI!ewfsSqX6G z|M&m>UfDtLvA5_pk<_s&kxY8W6ZZTbx$cI@aC@y&*{a}Ib#aC7)gA+-v%Og&=TKg_l04g{FAaEK13htq@#OU}=yMX#`wRQLaVQpZmTj8Qy zv7F{XAzKycDEA%KN_h12F060~vT0mH$}U1R+p+)MC(673Nh!?H@kkrwzI zu(GC&8ruPn^DRT4zP)soP;pn1BeLl~N5GI;u=?ULS+?gC;yO%=PMVoq_>IK005YPn zS#c@)?yyeZV7l0vp@V4$Kn+=j>GG{7L$;~DJeQX?dOLceoTo+SCrkV8v7g=mh?KrC z6|=Y=FHnjwI-~tAr3Z z=QzKo)sxF3DL+tnR8VD!umdZTNsN1O*Pa5ign2i<@}o56mqU>NFO*3xpkF) zyD{mTzrztE5i!`u!`I_4t@IqeR@*@V!=OCJ9s8uy8Mr>j%ImB!qDY^mX>^MKRPGz8 zYzjW@H8w2^QtrDSXt3I0AmOc?H2)3Sp>B|3+EQ$mG;=MhyzNADL6810P)4eB-8TA?09UP+;F zwP9mklr$+0mWEPOVlJz}M;L!v4ukN9D-B;BCRFFtvrV=l!s4bztdD|Q){u>kG<)Bt zvCEu8Ds{K=irhC~D8>Lr-!G9m;Y|@U!lS~?Bx^im#$A-x(#~Nd|#?LK)e&wa^v2qKkI!JWzb)J#ita zYB*X^3`^lRG@%T;)i2M1-X!%A5qh+2b4GE$u&Hhc~PLe zv8!8*{v);oE>U;$)dX83qP$)M2-_eolXb`VDx9S1Y5TOCIXzx4M}hCfOj4R|nLj4d z^xO5d!f7K#Lx|Fi!R!}|fj+W;pNt$^ zR+!QjE+V$BkDeFUzkHj%^2NI>hRZ1Rd8X;Sx61d=A7jq;(f|Si4uohRWaaQGut5`g zlPmxG|NpPrIa&!FkQx7cwITykG7K?HdsvtJf3JUt>JOjc?u&*B{r{TykOI02=f}xE z41IzLn#Jj^FprKDc<%#(lXPy*kV5op2!}z~s3NHoWEP6QyjKE6L!$d*z*z9r(jcjo zs`pJ^51kYv6XPF#7ETLh8#2NQ;lKY|-w#XDez?e}DNeFLk+lv%ZUCQQEhmM7<5HUJ zZaJ!T(F<9@A!^<)I`YPECj~hgWL{W)uDhtJjpGDMsg;J>YYTmLz26aXQNmzX>Si4k zd9R$>d`(&dCG;*Es&M9Oe-}*-WLyt#fD$SIz+x0Z>Qx3Jvc&_)i^TVS{{IwKciMS`2=b5RW z?5I9JRCkB9(|fIk>~ zflB~PKqwxGtUxN@E0%Bd0T(R|r-T65fL*N!zzw);Ojk?+tx6$K0qZ>bQGgAI2>{^$ FBjCM-1{VMT literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0394.h265 b/samples/h265SampleFrames/frame-0394.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9f3a0b2cddeaf1d04e7c1170e1480a38c6ed5627 GIT binary patch literal 2561 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 XOaZM*Ay5J9Jo{0A4TuQ<;Q%Ax6VLes literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0395.h265 b/samples/h265SampleFrames/frame-0395.h265 new file mode 100644 index 0000000000000000000000000000000000000000..53c4db77a1913de6550c6b47c9b86fbf66199456 GIT binary patch literal 1721 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0397.h265 b/samples/h265SampleFrames/frame-0397.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6470a3d6031f899f79ce56662412ebf54c541c09 GIT binary patch literal 1821 zcmV+&2jchu000330n}mt)I$OT7{PWFngEav0e~n50H72C09Zqdc`%tI!bQNX&r8HN ze!yh6G>Nw%xV&SoRH6%^x61v=LR?DWgyQ*3jREWRS^7paUmG02iogHtfB%PSa++zV zbKy`vGX6>H?ZyUQtNyHrPSXs5Fu;AR?t5(q1&w*OF15l5y!)+9Idb3)kRgn``Ss7n z>DCe!D~+?)-mtplvkO6D023MWjUHn5CLNdm^5feQE4aE}P=&^((+na&Kmd(#H(hkU zBBFS1=JWYTGp?{4iXHzXoyEAcI|XMZKw(}r6nN6Nkn9#nA?JUV|Bw0JtkcN1N2{Nk z{$H#A0A^tR1>MRO6hNKNLMsN|p0;S9i6%~*$2zgQ$~0c_?D^iz?)o>Ib@>JZa+Mq%h07m*gH7Cx#Bp^nJ}D@|ooQiEivU{HaP#7V zvFir~RV19nDl|W+9J;};_kP^=Y)zVxPVI1Y=u$P%=%Sk? z^bP(pMe5sIyyH_D$eH%HZm_ivq(5@~8^Itf45T+m|1V%S&?{7{R~W~tP_K@W*U5e6 z*;VZww7?b-{x<1(x#f+-3uV*5cNe&%0!xgcUB|>KGJF5ij?($;ic$Z& zo*Q_5GLoW-E+FCu8=o! z9R$glO_Io+i6bO8Zv?{A>le#!mj$G&rhg!n;H3TyvlUu`dEwBiM~jzZutfpm=<6Kn zKLE4W528-zxxSZG%tD1MbS?qFwEqgEWQ%{8prM!~d18_9=(58=73tsF*z-B{y}W{t zOYn+cei~Vujj?r+M(o-F!VWN2kTq(b-ETLCfSNk;4O1vc7X6{g8KVJ0Z3W&)4sWVG zIRhL`TS-%&@K**5^|7m~ATYMxq3A>t3MAOJ?3bR&cDrzy7u(OK<;Y4Po_q^w9nb5-jQ60lqTT1{%Ek~ zI6O22>ter_?tKA8cc)cSCC}EKC<#DdfS0roV&CwtfDb|rhqL{;$Q)l4uohR zWaaQGuoBsu6*saU^`-|I-rn-Owmgi#NpU<5Lea8x1|fQse$ku)Tnz0js@3R9^Lbn| z)3DOMgq*&{y5d2d`i0;_JcZRtx1m;Uct8Jt`?%)5rfEIJV_3sE^3a3vmj)VB7$;K5lx6Q$kLFe>mtV@rlu$)3fITy;_a-(mz; zU(1a`)Cj0v=MFg2jxMx>!~6o;{l3}st5*p^l#C+4|9~)y3B_Z2-8tbDhm_+no9m-$ z&fMs>Rr@_$4${~Vc369yhi8m=A4g+ z0FQt_7<_?C08BtA9*L|#D&Q-YZ}kBeEe)rH0N8+Ctq8ykxNJ;UOaZM*Ay5J9Jo{0A L4TuQ<;Q%Axo-LE~ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0398.h265 b/samples/h265SampleFrames/frame-0398.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b59f004e09a1c2ef4216a15fc6f3479b3cf35cc1 GIT binary patch literal 2192 zcmV;B2ygcQ000330n};#)I$OT7{Ph`)_{->0e~n50H72C09Zqdc`%tI!qiv99T<_6 z2mkl~{a)EZuc{eBoE)mtkdm17jwkQQ_k}iSjL3AJd@CxvWWGVgK{kWiatzT$knG%!TqC;DQviGJX2IsWNFS z@Nq|KqCkxLPSIF=#Z-&ZB0J7BCc+HN#)|HV8cf0RHSyLL`0hI*(9yuZH!x=av?*Y~ z(J@PsC$)8$xuESK0l)4pDxx2|y4x%f9Y^1VqTdx;>!iH~!GC>=PhQ(N4nh%e+$OJ? zjE;Tt(T`SwxiP{=`BY&wLkz-i@S{%Yzsdrie{fzQE+E(GpA&8py*v30?EeF!Obd*= zjf|nWKSIs>*@$GtID1ZD@=>aOiiPMUw}A^JBla-9TC`0BxIHR;+xmC@^|wfrip~q& z#JwXe&r3!M3acLi-KBe0&%FaC=0HbH<$!7>GeYQ`+ijIa{bl+paF>JMlFzH(w(!_@j z*dzak`oFUIUPs_&_&=uo+v&ao@Nb|0DSuM1FgfVGiUqN_V4ijM7skEZLmRu*+tJ!- zKJTkN#1=VT+Z$!<3{x07gzj`{4@Ap%XwZu!+dw) ze=+iK{P4WX(g=Ckz!<*Xmb==#G!Y?ZfoPSwf{4HMU~pbvdGqlbc46qM=@|1SZ%?fE za{U`x)FZUz*XTCw%X*pgmof*6xzhr5U(A=&V2&{7#aImxFC|f!KQDJ7!q?yWMT$l} za~G!U-u4jh9`QEDR=Ch~;5zw?0EgCafd((rwoSb`y@@c2N6hbJb(zuFhvu4SRpBfG zd=cyl=xC!v>Dyt`;$?bcZ6ql+?!6a8W4sik;cH$B_R!gk-6CCF)P@?|_}7mv4UNU729b14ZP&);O+AN1sh!6w(XZ@FOR$0Rj2$ z^A02pcQjJ&8vZrNj&v&P_7-YMEnMIXS0j*Ak z6g^E^a#~^2>M<6glT!IFcRh+tO#AG?IDxC7*aA#VX34{rN1hG+XY@3An>%>fcppa2 ztNL#)#T$K*_YQTk$ay_eJ)+AZJFA$5@3TGpM6|=Fq2W=1FYVbvtC^hSoNi|<#tIF0zD9|1O6-*s>rE8 z!iBDREIxb-vQE*USBa5=a5J6JN(~DZW_g(TN;tgU@}>v?3|J0?XdqaH-4jud$BI2e<4Np6rs0jmgyLD>=_sS{)tiod^hko(e%`>fum$;F*X5KFGB z4r-)g9%+nno~@TCcl8pX(H6tS|MTCf&=-dzuirdgZ-^0|yP}WbKj03hBh;-21iI{r zrOwfUJ!x)xbA;@zoL*Y;kV4+kSM6wNUDMX-$p5pS1QXb-4Rja=Es#HQ)t{(=7l5SB zgQzLL_n<`*n65u4LXm;#u7_K^NskR#3bf+>Dg<-1YT+o*eH;I93bh4(5jL(E&79d! zvplOi9V8otIqLwwGK;@=vYmjxH}Q82coh-^gnM#<#?szj*hdiFX|N6FM3h?q01Ip# zxC}+t;VwAiD!e|5N5KrJgO-FNR3JmsFFvTNWGJV9iTS|9 z>#y=2#I9u0rPpN22#$Ffw3gR%j2l^pMoebi4#uS%k*J^l(4Ig4{5ESl7WIzw-+)lS zKJh{3oR5eAkAOcIe1S^;47AI^#Ka`%!=mhzS7U03+bRiacuo literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0399.h265 b/samples/h265SampleFrames/frame-0399.h265 new file mode 100644 index 0000000000000000000000000000000000000000..50d8764557c5ef230f45baa63c0e2b840823f0a0 GIT binary patch literal 2850 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 AKL7v# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0400.h265 b/samples/h265SampleFrames/frame-0400.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2513d997b47a481922ee8d2a77e09317caf686f1 GIT binary patch literal 1882 zcmV-g2c`G`000330n~Z_)I$OT7{POi3ILD}0e~n50H72C09Zqdc`%tI!l9hxofvPW z#{TMQ`p0*j%;4dbSju98ESF7S;m~6$4s^X*3uuquSEqtE{IlZt*Yna8=?YeiG>x4R6_tTL?1Sh}yDwE44FU+IL#n8U5xOkEfdF3ByfFdBMS z7OAbi;r$6inb(iu`K3zkrmBtIhkcgSljockK!56;fH14q$#e1rI4-Z7pg{u~TI|JS z-R~MMdi7RSX!Fe=v1ho{>!?m$(UPDegLT_Lrb0n=YOS0Z>~&@jqHQh+h~-OemWkWL zj$#{F*Q!&~^(dMcj={@x?8uDv;bhBq#lqTbjIS@=Rih7O4pf!ccwe{$A&n7-2CSdc zaM@p|;*;$1Aid%wpt2JI>g~WE!!F)pAKT5EiiKY}d?_zT!*m^LuQn-WhX?Y6RuSNP&%w2$IvPT}wXr`(9k4{> z(5HO*IQS9c5(7+`^ek=#`+xR|J1N&H>UaYNA|R*fNAk`NI^YVp;2fNbzF4TVYg)J+ z{`u#=WIk=qZ`3tkT|BU~jYI+=Bi$>1fLnBHVN*yibzhdrd7e2~;-$qP&D`o0apjdn zTU5EUaKSy@IMJ4-CnNP7*4J7J{y2?n&=fy*BRl~D2ceL zM_G~#?!aaUvqa%O2qpZvAemhO+Od|x0vjzm8RksW(Uk4W4s;t^gR9}WvISp{Sw&XmaaHC; znxa$zrE=%+nvs07GfaKh4av&mW#37hi=G)k%OVM9w>+I2bA^Ni7NKBjjSPKcBVDM< z>?-*R@MrCj0$Q2>RTK{fI7?RPwMbik)(5{@UMK(*Fb;%hAY|q6DzP=v z;~Y3(XkF4@s(%0fm;d5}9Fjn9a%j$ScRUJE_%vPHL&owSi@wzJ>^?cpj3g~jN z(B+RZ2Vp`~vWiEnR*Ed3Rt7LO#4ZvcJo%>Vix6GqkGkhpO-e4(8XNOd>e4J))33)% ze$fBkAXV@=j3_f^G=I;(&tmD7PQrFPrTws= z%pDw(t4H|rx*y+tIgNeT~17Gz!m*9BLh1nHf`!Ca(6NXpazpPfh&IzrS5WR6oQ6 zD;c+`K>}-w)%BSjxiFacXBQ%@<=@Jp#dxAOtL?>b;VBp{f>3;vE))Mo=USGe!Oz)- zSi*5D0x4^PuMUunY~Phj=>q{sUD6-H|M8wL|M;BT{^hqla(ns>-k?XRMASK(739sQ zn1sDkS;Se~w)#8}uDpB;>xBA`*;yJvc!-jq%VA)}M_uCLreeU_NlP8mLoRzq|3|}L zsw^y6>As#n{Zi;U$x8n5mB>HE z7b|hVX>rV>co9ylSi9D78*q)s1B?;{h+0h(xV~{%Opg8rtBXRSpGH^ua=jdg=g8UM zbih9GLFSx~hyYo@KNx(0O8`tjC?1KdKq}xXmT&a|7cC8^gaFupU9AYf4Y+JfS4;t| UN+D1I>pc5WfDMQV0O0^5;LsSftN;K2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0401.h265 b/samples/h265SampleFrames/frame-0401.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3a4763f936de5315af60bf7412864e24ff94499e GIT binary patch literal 4318 zcmV<45FzgX000330n~y2)I$OT7{Qhjt^g7M;0yqu3;>`C0Ducai+M1aFg+6ZJd-Og z!QbFN{mK8j{cM!SoS?xbx(|``6bv^lM_Ky*EBMbW?a1x9b41_*T#V%P*2=u$Xx^GA zFI6Ops(YDEJxDR@&q=v%BKXzaAhz|o#0J@8m+V})PPCadzh2R)K%Ek zP1FkUfMS^M)2V*RQoW=nM2|Kd7#t=L@j@GP7;kZ1W$_m1$SOPPhG?4qIrBR&iRKL< zw!v0Q{MC-v$00ij5hH4lqJPq2ZfGD>vj<>+QJ00eIKUQQ+s4pZ|M^nxK&+lJUN!?w zLQF2Iiw9AZ-bVLb*lqI+P>;J8?Bjg2{Q1!jsz6GmLMY3$i6!s|{o)dx9c=ifb*X?h zR=YTC|6zzqqP`a2ynoIMBz!ofsPNYAd7vWj>ZdgbR+~C@bQB@ltvzAbnR$!&wm1H@ zr58&^l@amtyWRlHq8g39ENHg^g2BsIWk39U(B4Q-nshvB@Nlm`w?Cu%|@1NT?r~f5@wHIPdQT($uTH9SPD{BAh>ax{ zYd{ubug?B=+b3S9OLJsuDl1YNG6;*Fj})$BhPEDtLqlXt&3sgTr4JPode06D7*Mpe zW$KuL{1a3`g^=~d4H`rUKt9pFhI4MfrhByG%@{rtbE|(%EhHb878^`}QEfjR%y6L# zkve8AWeH0+M7G+1>P}it3T{$XL%A(`xVhbJ{?RLwZ=^&<83vz-fYE#^F$b{|AN#qH zrM~J;S-tT{WkN!0@|F5-AbORDH#E_0ncEX1?aiUmdVW9eXvk2QQgZBE;y$Aoc^%;7 z+CSX9G!F*%^Qfg0qu7Rqy^&0KwNM5gn+#)rWR|=lZfr6o^FXdVJomiT?{7ni^IOLO zUt(6C1$t}-7Ay#d@AA;zcy22ZJ1ftPe& zxQ9-L&&3rGCC}M0S-q&a98#G;a0X5QM67q@d}@5KJKS!P2^EmiZMm_7>7CUO%7RP!B@Jn_ic0FaLZVt#H)EN2UC_#)1&z zD7C}4SEa_ZLk+ozb$)-`d*%Ys9?F=;_ZQS3_WOkrdQcROr^2FTaw_U|eV`v3hKh!N zBqOF;Q+u;Q%@I&4YT^cU@K-<&hA-*P4^D5Wi2 zF(5^yx861n%Ames;FpsD|210d~Lf^JZsRrkPu|N3CO zd>1TfxcvNeU`U~lEM?4#ew*Ng79WKu{PMh!dIx);5};h&xtjmXh1@;&c3h=`v&VBD zTsAsA#A2Pyyi21$^eKW(kz>fGOeyEu=$94&>CJ5-k&2YY7J38-ny5aj(d+HyYL`zM zmeE=q#nr9Jcc_A5w#k>RX~liezX~eKkRjFE-j3jK`wJ%8P^fV097a-pFh{cF;IiOk zzWfIVCE&Q#%C(0Wo=?Q3ZuI&uHsh8yU6ywee2R0q1<0em;#g-MzC|P9JEm>!B*`bi z0Kzu7br(qSxb8+mdayfeO>Sh87fj&eL$58j$Ryrxcy%tw*cK&tsaG$$hTsg<&NS zY2lmw_vm7snQi6I4At(Y73a)@oD&TBdVx|SD80P7DvdPg96%JrB9Or{7Z4^v9Gi>K z%X|6tyV8&hz}^inYd6_z!r)u__e6gppf1=aXyQ}3nL{B7u33uxm-b%TPT|hZqvJ=f z8j!*nkhm*4*uEIo|NsC0qmcWrAf3q_;>A&XEFbAj|KZpGu3Jtd_3X4RUJ~H8TGjlZ zHH@;XiCo?m6?Y?%CC!%&o)N`5+pV1@GUGQS9lqLH;XPL~kR0_*VOS0-Z zNQ~aNvV^AZUuk{}&F)95TcLnPbheWZtouz6+LKr?l`bFDip)6I zC%y~2<+BrrUpMusJ_;0qER^h=I%LxSovX8eRP*7tfVP2gaL00;2ZnLl!1ycw1jZ8_ zjgW=DM<-O>b(lsK>^=DNBp(KUA*tqw3ZO(9qn+&+k+V3()^q64WGgrjW%@ng)+UT! z@^(C^+XQ%tPhb*HkJ}}ImJ@$@(HwH}MQ=F)>nt^r+SEtoZ+I?+zd0*|F~B+hl$(9u zdr)FVM6l?_iTxma^djTucu=Ef_hJ`Tb^@zsq8AUlA^%0jPx=g4ScwEk^RJic(RPAY z+DnS^*D3ZqOK6Mg!_JZn_@&wQAri5Uq*7y>HAJHs6A4 zMe_TK`YKZQhVMsc;P}##2-V3`vY+4`CBL0{&unH5xrBSt9(jAVn+nCpiLApsP} zaN;OxrJJwLIu&%DGv74&Pj)RqbPOy8jzd`T1s| zf5C?gE0bqcA+@O}Q0RiGXlOa^w{hL%pm#R6UOd>FwKt4fIP^?`34w4wz#h~6McnT@ zM)YuQAS^ldE9of{>xy2R6Ef*o`$DXxLK)S7Nh=5qf6p&;$0=l4q5Mj-v$0=6y`zqi zO}O*ST&@Q}KdWpaS<}g=#Ywc#O@-3WY&z77g|T-I2WToDe9QGe-*}9Fe;5_`E2sFf zc3yx&k&5T`#Zd|p<9nW^Gd>ez7*yR$?S@7s;$4!%)iNK+SyZSoaE9%E2)3NK`c*Qs z_SX5&t6GK#qGyD#=5Mdw3WFh&THtYG8_I++Dxn=`UCsAyg^Hgptmg^Adn<}UFlrwu z^(-s9Hk+k=1%SK~7rqtl)SlZ<5-T2E=B72uKcCzBVd zw?fv+b1^zWY>leWfG-b%*vNYwXa=dSIF`rP_k{SFE%lbUo43Y=Cp; zG5T2|*VixIhC!=9#Wj=H5H=fX&x65BwOarHw)dzNuu-8H$N=~N`TWdoq?ClZ9$teT z_|O2Is(~1t&xCy;)c{XlvS`>$h2?%Ctp4FjDc?m*ud#JegPrj%HG#y({ z&91c5d8je?`~6X6W-|5l=$tGhyEl+VggB6dYcJ_Jut6j}K74wGg6?e0SuRsaK~#fq zS{=V?ONhJBZHo9?i*L6fJ34{wB0&jcI{YInqq8IHEhO?X0^#TA^WRx5-H6d*p9Ry= zyLM-RkD`|{l$hJYg1-+O>v*?%*Y>)0hJb5yIwYOA|+eWcD^#XKxkI1SMyCSSVqguggogn&=)`~b$T>~ob^9l~N#Nit!>vBFRnS&^_|e01c|YYGk<_7ELFVwdot zsMGc~Mm6|T~=EYJRRC@z{>m)J|P;?&h^Vab`GxrIkmaw!1dk?Wq&^@z)|TkecQ`}TH3k+A5rVvg(OtK*{FXMu*$%Ns76gj{0(lE79x(U_;?n<5c* z=F>otiqJ=7&g)LogcddBg`9p_DYM>kgMLRuFgpXRRRA){VM*N4WJ@SP4NL3$gRZ>%MgmH({om+;BxFkI{t+G)e_uPltk1TQ9ixEq z$n+O%{e5~(VnSuN*nME%KRLe>wUo|giT=z;!C>+YP80XOK5oPRWT#}|oz*+@HU|vN zTwntE7@(7!JkV}W|85#^Yg!mtkDExxmMh!Ye;1-UZOChe8YJZoORxs)66KwMAN+s; z4%6qpw?@nV{gMayUu+Mw@uVql!JOlj&&|qj(JV~SfJ!8oA<)^#Z`-?=fBTquu=1J#3=0UjoyQH!?%4{N7G~XJet0I8Shgp%`+GU5g%U$E zI7Jmob*b1Hz{)>KtuuV>oz;fEveM?Iqatk9>tUb#O4zv&WZnzdmOlpsB_KZWLFSx~ zhyXa?KNx(0O8`tjC?1KdKq}xXmT&a|7cC8^gaFupU9AYf4Y+JfS4;t|N+D1I>pc5W MfDMQV0O0^5;2oW5z5oCK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0402.h265 b/samples/h265SampleFrames/frame-0402.h265 new file mode 100644 index 0000000000000000000000000000000000000000..859fbafd1f1c5b3fdf75e479c118d0c745bbe3f8 GIT binary patch literal 1686 zcmV;H25I>K000330n~~A)I$OT5W!#6as+_jFbV?zpeP6ez(b39FqtIi6{MvgA5pTT z+&mS1DBL;VhcTW2ebNyjalh4{|JEvj!wz^(*hC|obPv3G?iIHg{~zG^{=QF$*YUUg zoH85hylGM zQ>3@oKpm2e``1SEbb6mXW>1KIT4PXJ(w%cwecGB{E}jOv?a)3NuvggruAZcduW(Ey zw$n)@3}Tk7Ws^G4bv127H!c|H^leYYLH_w4W6smNF*b!&_AmX4=<+Ga_W_;#DXiB0 ziG4T$D#r1L(LFEvNodL$`!d7&(`tu#D9mt{gHRO2vW0+=rE_N*<8qFre!z!M8{&&? zCzDbs-L4M33P!pe6jI)*7M%WYIHFer_aY8bgN zKtz5A%;6o4MTG6U#*sbxp4?hWb`TqIbJX6E#JRl#lK@ z(2ob`4PXD@d3NIJwcDC3eO@aZ@R@1O$S|2Eo8SLbIQwJXml~Lu1eR^(t3!g;C@LAJ zPyeC)_HuDw2|v_!yb%vtRF_J?9aYp08&uyLeT|^f7Wd<>WPLZW)uVO#Di$a|Yp3B=d390*18vFos8?RbM3-ddSL$nPH#)-u$ z8u_f#o2*rSw_vErl#6d7aFVwl1}vP3Fj6f)`mSzfYk-_PLh1<~*l@W783hKf zYe93Rle%LVio$b+=6Bquv6nu|A1X3Bwev(aB@)tzTCMm@Fj6y zo7orldgw3h{w+^Z_c^e+Ugk)ze4U&{DGML;fR zI1>!Odt`*}J~E}TZ-9k>4uohRWEH2+pW7n{LH0xbw7}y#+um1}$B~!mE+>J=S~gCA z#4l2h+B1Mlft{t5TD=KgZ!3k0b*yHV_a`s0uSZQ0K}tHAQ2lStWz(_dNUlL6*Z=ST zcO2K!i6)ksOAl8*S`%VJ&ozVECxqe7!xQXD8`eV8I*^}SRTFDRb84%GrNNc&1`5ge zoi4@&L05tc8eB5QO!h2tLY9R?_E|^W4j@$U3856g zCMI7^TF>l>RfRM+3RCnfV8>XC2elrW%!n~Do~nv}r|)&}DX}{x<{;(r@AjNtShZwyv%L; z_V4o~Kyh@xv7Y*j#mQje#==D|i7Ll7a0-Hc zDRZnf@&!UKJ=it8XapIWL=ec=yAv7B*}uf=W?&-jb~%h7?Tg8`?lqIT5@-%~CaM&f zk0^Dpz?kp_&bDswIXh-kic$a{Su@S?yarP^R>dtfWTEI6)pq%=rNLv|)M@*Tk^oKwG~+vVcDELFSx~hyX*tKNx(0O8`tjC?1KdKq}xXmT&a|7cC8^gaFup gU9AYf4Y+JfS4;t|N+D1I>pc5WfDMQV0O0^5;G;t_#{d8T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0403.h265 b/samples/h265SampleFrames/frame-0403.h265 new file mode 100644 index 0000000000000000000000000000000000000000..033c613ad31348b6c3eaebca3cba99857d55ed77 GIT binary patch literal 2106 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0405.h265 b/samples/h265SampleFrames/frame-0405.h265 new file mode 100644 index 0000000000000000000000000000000000000000..384dc7eb9eaedec3429d9f9c1914b188ac0571f5 GIT binary patch literal 1978 zcmV;r2SxY*000330o0-Y)I$OT7{P4j4uFsj0e~n50H72C09Zqdc`%tI!ewoDB%Ks>V|k5oEe+2M&W7P;;f~&|5@)`n^06zvZ786R)A9GEPLBm}whm zF(=rr-u-~^ZKi;tLl#yAcA_jH%iK$yPJ2>MX1_6ZY%k?{?4KbRRz}DrQK4HMg?RVQ zK<&J@4FCSS6gL5O89sbWgDgPb0vWab-cVy2GVmu<;n=d!^6%sLAu{}JA2zG{?!Pj( z{X4=Sa$IxXyQZh9(amSWd2Ym@WoZoz@82#!M#A|9FNeR90GZ|eqT2b5Flob6468DO z&a3Ciqem_Q0A`7~HoUVLvV$??E9FJvx1_Y}$WI`YgV{Vrs4&KDnt4dBzRq6o797Do z%B^bs8UFwYhJC4qVMx5^5~}|2Mho$oWuQ79Z4M<+6Ud@VV_}y_O|wIuI2DFfSy+?d zl`)<_gV??!l}_yl52VlL3CZl5igUb&yGAf)6(WYM%}wV?J7F#IaCwf?n! zXstO(mwms^9sK+ZUuRFl5BUr7GkVEy20pyp>$r3r&!T9<4Qnbo2 zbm$>ImtR1_6Xn`8MKG03ChgNZWW2dxoO@0KrQsqlp0Td8u2ZyAx6(Gy(*R#i(2y&G zwpG-+5CJ}#15~xBq5(_Hb@FF-;j#YEn}o7ZJP}jd#jy5BbxPMyL9kEJUx%=mR!^fD zuJK@?`2m{d!91fhohP9bQZK}r>_2sx#6iLQZv4mR@(%7bn`^KuW>=K_cSE}#?2Koe zSsmoC zcK2cZP`Op7q6zHE|8*sEw1Z(qOe;@*AI&ICYMlB1&Q>GG1PBRg?e|qr-|4RuudHvW zBBmku`{VkB^to*LKRP`7F!KKRsuve913AbUA}fcKp2l5jTsmQ)^x`xq=;4R`U%E@% zyp?=i6+=JvGxxf}&_M?uhyN((Z`Pdv3z>#Xb*O(RiDG~st+JdY{3fjiaiVa^L#v@b zx3phSQ$q>w2fxm0r3;zAAD8;KRPNxsWv>6v+=I#oS*{UA0MM|23+!Zuidc92oCr(# zI_JWH5Z$WS$z?}=o@Eb&O4W4bUo}pPqpxtAPK|6bw4T=ClvY{fO0@$R)>GFQssss5 z|NrWj?hxaXSCRL$-)G3^M^au4^ z>yDZb`>q*JyoF7L-T@K`DU%*k@D1RUr3F!+dEHTL?SC;60|uw{uz&mIcUM2W%(RmN|ACmNqO=L=AgvSI#8dWz9w z@9E>*gk8}CCMmk8;9M_4ImR#l(FVL!CY#RJq}Pm4>*l38-AXq(!n^&Z&nVyMXCt=5tGNFB0h5m}$`O9-9{wr5|N5P4-4JGUQ9k&BRQI7G!@Vh% zvgH9$bRjcmS&)hy)~p7D75(V%ZlQf z4pw$q+LjpV1r~{ROnOUvj-Z@7Ycs*WJmaR<%g#}CT!$!mW79p)p_7FYZefH!|GxkJ zTv^zEg`d`RRYBeSv`SW;%SdS4YX)`qRurpc5W MfDMQV0O0^5;LDlT$N&HU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0406.h265 b/samples/h265SampleFrames/frame-0406.h265 new file mode 100644 index 0000000000000000000000000000000000000000..69bff5029a4750a51481fcd34becfa187e21c65b GIT binary patch literal 3064 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 G03+bV&$!=t&b#yslO<0;h2( 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 ZOjk?+tx6$K0qZ>bQGgAI2>{^$Bj9Ki2#o*$ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0409.h265 b/samples/h265SampleFrames/frame-0409.h265 new file mode 100644 index 0000000000000000000000000000000000000000..24ae07f5e5b33be58611d5ee9dd4d58e76e9bf4f GIT binary patch literal 2794 zcmVe?&&IqHDi?Lz}yka@`+juLItD)~5ax<4l&-mZ}X;e8=pI<5#q-aaZ%<=+$1SOim zQc&;TOR>}ZLJUeE#P5!l^WF<70O(gD#N^u}U?YYB1IQpvc-VM$dhCXwx+ZIBYBO)u zMDGAQe0ocK>~E%BbFlq*%i7yUIbV-2^VM~XQ$oG00&hVhCtzL-q?9ml3|+nMx&SGw zmgBR3;vskzyu9eXTjt$5pY=`v0WHa>v-wij2dy6~o$U5y)!dhWS4yH}tH;xeWcp0_ zvmL}p7bBw>YAbu^WNlFoys@Nqn7kQ9UA2f=Ksi=st7{Id&^W}CXsW{foLw;F#tTeP zaS~DfFtm^1LB`e21kPf~MdQy#1lFO9Y~8=l%;m2KTR-NS9- z*z`~4XXyU!?Ys89#LJaQ5_#4$5#Kb1mV%NuBhlR0LzstWx+4+i^-7W!EL9`B|MX>L zX@A2CTL&|YiOO1RkeLYe+xWp>D^B@{kN%_z_vz_|!4}^N+ zOeP)RV%CSGMLU<|o#^`Hej%$-zcwa9-$f4AoM_W%vZ#dg&>67at^kUnl_}U3PDb zw&(;W%gS{+1&~Q*PCS?Tj)6~x!XNtFHigqgAU%H9xq7pS-&#*BO#PpwxoH@7$QEcFeF&ekH$I+F(Q0f(H*Cme*<+In3 z;lFO+;k3gml^lpJy2R%g1#z>ybX0!Qj_CF`td!PS(G6rz$c8v0TTj8_Yype&p0Ht7 zDCuYps8;4!a5e7ICtfo<$x; zI%rKjTF^q{p4x+s60Hs_FK@)3LDC{i;U6;XQ7;XcEp!g7&>ns4q%a)bU9=f}u;e3Exb-rFT)2hHp**9?9UtX;CcYQ z5wL})%TrBX#t>$zy5Afq0iAbARf>OoYfN8~2|>w03}A1{c-(kjIM+&E8Kk1Sq0;Dy z?}tzewU-h&Zk+I2I7K91d)}fsf81n#@FD?3s~&biNf>L`XgX8-K2$32;4<>L&KLMW z8>2=ptXUZvi{W9bTSPN$=o1E}vgVXR*38>zmvhYO?$q-vMU1c>0pV07Ykw})t+8Cd z<|)FH1KcCDvnbF0CksfGN!gX1ky@rDJ?AIvA3-B18s#H`4gNE56@W05kTtbXKuvdc$aOh1a@y);xs7A6S+~t6+9SFmp z{|;&iaq?o{P~;P&Jmwy03ZDi)7(S56MPK>Oe?rTn8*@Jv?%{*&SD=+Nw?l{l3fiM} zrvji2d2*gk&E(QAT=!-Rcr&lA9-@GMzhT*q<(RNO0T*lYo56PYb6*ZqT>cWYRea*1 z45*e(!X2X5E`{UsLLM$pNOsRx7qDqrlvuDIDPycJbMWbATozRT&ljugF_aC-W15wf`QtMwT21lyFQwXOL$Uy6OM%U{Y4!(W2 zAcy29kLirpq6IJV+>iK=#eES8+G;JemCx*R@42RCkBGf1$n8-ipO~w< zYF?z!14NABJfP-eOOSl~!}|#n>&id44EC zRC0VGd_Xt7P4kYtT2lRzEuov#RyV2S|ARqr!swBOTo-L^@&xu5?*V!j_9Avfv{a2^ z87fG>QedtQIjt1TnLS&UNtSY$KnQ^}DFYLfJ;JN&HErws2`Y-N#Tf7}fB?iZ9dp&i zW)@o0E2>|7I4BkTHONm$7<-TNe``QX_AX?BfGYAX5%^;j3Ye!-Lw!jyTia3gW_bA} zakx}jR&M42DFrGF!H=#6n5+1d(0*}pY3eq&DD3`WzJ0Pi3~UHHf0Jw|b>46nzZYSK zDI{bFy$;&CGb|U^fmKx(Zb;370RiLnUIi#0v6Nga#}@1llklg2KNx(0OC=w$C?1Kd wKq}xXmT&a|7cC8^gaFupU9AYf4Y+JfS4;t|N+D1I>pc5WfDMQV0O0^5;O+ugpa1{> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0410.h265 b/samples/h265SampleFrames/frame-0410.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d7aa542e1afcc4fba3993c6e1d764b8d0becb48 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0411.h265 b/samples/h265SampleFrames/frame-0411.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0e6b19adc03ad86a843bf702afd272abdfd65972 GIT binary patch literal 3039 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

bQGgAI2>{^$BjEG_qE7$- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0412.h265 b/samples/h265SampleFrames/frame-0412.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3d3e9cba6ac6fe1a79cbacc71603c7cfe8a0f577 GIT binary patch literal 1787 zcmVYugs0YeW%mzleZLmRaJ|K;AN z-FnACq^xBWVAFxj*rk9PO(1UWa1{=({41W86n$cjE#*?npO0{K^BNl$ouju{(7Y71 zRgn@pW-WVIqB-~R^Iq4Q-fE%l-OJ0u2{WGaFCErA`;Sk`a_L=uWl?%RqIZ zYzf3K;~P&{T^GYK?~G(SwLjv<0(OaF;5I%RgDE#7u*NXGL}jw^Puh5Dx@+tB{(6!s zy}>?q+f7Ti1CE6}<4L}iXauq9D^`*&|Epg-OpuYe*9cx|llV{(L=H>6f_Xtk)ab~d z)W2|W6E45x;wZ8D1nhk4LFyZd$NBjqay+eEqbPGs43FAl#N0KFEkZ4+?Z!xhiAwEe zkA-n-^_r1R?QnJIQZ>-%qM6nA@|vyunMNUq3-kP>eR}0){{|ZKKDHCbLu2=?1)5*d zgqjLg%6b-ciWpF3^S?UlHWRR1EwsQE65KZFdAa3{#0y^Iz*|?Uq!<5olnVS^9Pb05 z7()b+qLsyB2VNG66Kp69+c|$dUh&uCiXHoZYnEUY3$$a;R#ca`wtcb01Ia=li{65( zs_*a@1x7^gUqxrWG4d&wPv#s^2npoC&V?Pp3zvrqin zCC@}evF1pPtr|AT?CTM%|LT((&C_ z@ymCOzuoQi!dx|365nYFbidj0OEE{_k%YmHp_9%2Laa$SZoO~v<50B$MV9aj9T2~= zW!tuvov+*PpG!5dj44RQP7l@s(OvkgZ(FB4B9QX7W;GpjW)+0j*eNiJT4yHG)m$0* zCjZyKtdOVt))m9g(c84o(6n(3)Q|)USM|z(B`0IHQSU=EyvW0hLd5FRezC2LeJ1RwCR=P}&@bKIRl6zG)+VMuF2{&J3^&{WD zedI2`2{^2?(&9>Dh*Go+MPq6P13}8yrIh3CWTaAY_6xsI^XG#+ZXyr=I1!PB6XrLc z^w`>QYp!ct^JZ-L?d!#BfAv=>L0z;kex>p}qTg!MOgXGV5K_-SoTKLO=;^$A*C1JC z#q4@yr=}H}U$*f2d^pjt6hZsQv@Q##RYB#sy86E|R$Z26Ax#vN6spUe&{b)jQZ|c0 z9UQgzuJFQ$R)5_Ji{X^@K`4R7N_Rv8c&cWNE8iR`vHJMo<rJFf4V(w|kM>ILxm&8*;a_PrfB!@_Toa`3h9L1oo%2PKw>Huh+aaD!K28 zC6n5YHSTPZ#OX7p4cz`lRY2wIcG{yJ z8Kh?CFz~kq2X^*f3n=r`E_Db2Y-VzW?rxCQr>u)fBe;qyl`k7;6R#ZvTieGM0}O?_ z$JnuP3VU`hg5dfClfxIpe7=)mTzxc|c_NuFFn`+bwDEe6EjP-#{C;BTS$Nk-Xtsd zpW$$>*h+nlpacIbSNgaC13u;KU_TgqflDO}xF{ZptUxN@E0%Bd0T(R|r-T65fL*N! dzzw);Ojk?+tx6$K0qZ>bQGgAI2>{^$BjEXPh+O~x literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0413.h265 b/samples/h265SampleFrames/frame-0413.h265 new file mode 100644 index 0000000000000000000000000000000000000000..875abe91b4e8b805fdf6cd4a1c250eab960cc6ad GIT binary patch literal 2189 zcmV;82y*uT000330o39D)I$OT7{OkvI_IAtFbV?zpeP6ez(b39FqtI6MZm3OCBvWp z-~aV{We38>-=Nw@QpBo7G3y*p+wgklx*H+N&@>dv09r!Wp2vr$PmwETyR2F0=!d_m z)t4s~U09k7O(wf6jXN?m_GR=OCrDfeO1pKKq@qNDZqhVjLBiY}cdh0k=tx7|yDmeo z@EUp?wRnR@UlXaylgZTzw_uT$&y*Mc|BwpgyT=Q-kXkZ%^%Yz`+aY^8QY<#z_65@I z22-Wlx59qLP9uXpK&GB_(wRA*^SV1~QssR9ylo-g=Kaf)nX}JO!YTbF$k8d@{^dRI zK~63vy7vl9#*q9YGcycmw&in=zyIg|E#|8wf!%ahyw68;PN3N5%~JFEN6Q@rq(w!_ z4V2F)=^YQTjel5yrW&-e;jT4{nxaqI+L%7Dej0VwKhgcfz3}KKkmBZ{KifUC{s5^2 z(5uU=6I8!4)RKg=I2zH0De57;uRwrEEB~K)p$~ zk5+=YL&n9YRADtk48=uxhdWUj6xK2`7@{%-D&2r3Wp!vF2UatskP%Xe?v%9#Wi`SF zN5xK{k`pXV!d@2AmpgeJkUC639Xwo16kzv-st$?F^e$d0t^zB!vAOMSTw!Z=v9Aa_ zqmPu?`{5w-x}g~6!M8>PCXzcDg-6i4l!JQfhq;n!GLMedsC1$m=(kMINnyI_kTo1LLv5^E4Sm56pP-2ql^ndXG zSN2~k$ovfd1@zy$eK){<4fFryFX~nX2R#?DhgkMu(frcLt+bBw5uXz^r(rkdp68<} zX02wNGt96zDL4}Ii?1dhJOqBZ!5?6Z;t#g<~~jz zo)?*VK@U4P17a9%o37`(9#@eju}q<>p+J~j0rL0&Vqz;7s28SfjVYUVbC{41)O!@R zRM5+2KOFbT^eN-*j~hGehf$esTSE$nBaAumShO$vzeXmPSHfaZRFc49JD5(y&!BX5_;op7fNOz^1i#Yq8WdHn6L6ZlnTQ&r|vhn&Z}6yGC+ zMHFb8;oo3@OH^@Af~j7q=8A%s)qPlpjGa!L2~N*!VMi}Sh5<$sB%56&Fwz>>0XbuH zYz67-$CgM>c7)3^%U%hoqE`TqR!&XY<2qtS6rntgB zI8o!g4hl`tyE;J&(X1jJ2V$U#q)m`oB7tLlr4WCHlsH%_X;vZV;S^ZIQndioz!$AcmobZ5Mpx6L9Q;e;zYVSKyT=2d=s;ngUB}KLX zdwBi<)U5!V1DHnr2AqN>vstWhCrP0vP)s7*!QG}pp)9E@2ru9Oxmyn>nnWQxG6Swl z{%jzY`KIb`?$BxAKnN%gYSUkOUUstdhcf;4ER1eGR^?!y8wmz=%>QLU@&6z%lG9)= zvpnV4@xBPI9~iSc74todGHRWu!)T~?>Q%%I2tM&a=A4g+yCZ}C(0N}Av*=r=VVBl_ z&`;VO5oc1>US6>*1OOFGCmVJ_g}Vw}a{wQR8*tKqy=Vr27j+;ngy8o{Y6pnX#XyJ7 zCl#uCuZ1X|%HLM+779OzPDvN|!%fQIh@0>z$q{cppWbeRkw)cjuEakl_7ROAEFbol@1%fEByKd(Vx!Ymbio8wc$R=2} zlrI!;8kdHSks2>q+@_$AM8;Ow3Yq3Q0^HvS+R zJgF^s-FokY*{r3Y)|o;{YgZ#5cUKeWnmN(lMn(pO9PkYkZS>!OAgnpVtQju#tUB2l zu(N27`&l1HX91yl=hj%83Hb|kzQJ-=us;}lflDwN@jgnw{fqzj^KIure{TwzwkNz( zTfaj0s0QK*WO{v)F*#6HjtuWmN7DqQjnvvVHDAyW^pTzS>ZQE`{iYg9)R1LjAc@%VjQYKRlcKbI z5g}XL_Yw|ag!RG zXy>lytvv{vK)N^RP`ThJ9*L|&HgGGJZ}kBeEe)rH0N8+Ctq8ykxNJ;UOaZM*Ay5J9 PJo{0A4TuQ<;Q%AxmlQwa literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0414.h265 b/samples/h265SampleFrames/frame-0414.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dcfc378c08fc8e39fb4f8e5bb4669165816b83c6 GIT binary patch literal 2781 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 NQGgAI2>{^$BjCZD{^|e# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0416.h265 b/samples/h265SampleFrames/frame-0416.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a707ea945ed6d45c7a106804c09d50756742b34a GIT binary patch literal 3195 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0417.h265 b/samples/h265SampleFrames/frame-0417.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eedee7016942e28684c95afd11a8f09013349a97 GIT binary patch literal 1732 zcmV;#20Qrx000330o4Kj)I$OT5W!aRb_K&B$P5DjpeP6ez(b39FqtI6MZm4kOT;%p zPfAFox47m1{b66Fo2JHmyw8-IEm#Q`!q5K`PrR?-lz|XjDWxC#U#_o9PJ`AWQz68Z z%>#E+ZtjiP`w87qhA^N%_gDY?x2gADvfwn8iju7sP+FTcuZ!S>S^WRR_#hq7>$))j z_R0WHNN4>G_(urWGY+ZQ<3M@5M_iOPe(zp5t2rLfKD+K4s?uN*Gv@{0_0|iy7l>_} z*#yPBab87jsuhvU21Y!0rnRF7>Gul>XUbHHg*SNWKe{-3*ERmPnqlH*kq3mS&x|k9 zS}pZec1TjE3*E^EY8h{1s90HR;LzT(^;MJQ)&7j$FNA*%(F8cG=R?AN2Ypf#XQR*_ zJL(e!nn>ck>P~w_@YRC8$MtmeBvpHYVJ)_rNh70<;$^E-MY(h#bs3-I}`>fTPgiF7=C3^SDwFvuDSQ9h%6*?2f^GL7h(XiKU-L>*V>C7%(;S8Bw8MkSY zjd9z~It1E=A6>mI&#G^_gwp}A?v zBPebYmO`!SoYjSk@%QLeRtzQ;3`qzXZU!Xej(3NEQZAc za4LWXKsM^CWFv0LUFmr4tGML5#^3Jt`r$4btch>5aC%?j*rk}G@JPa7$56@U{~=aa zdxVB3_&jZcHNTA2bN~|fNxKf{? zV(Ch~S8}OrKGclCAhK)U^QQmTz^ss`{MHr2&(Yho&(O4S4AhVW3Rm^YfF&nmwo&gx zG`z^ej6%fzCKJh{3 zoR5gRBD+A4KNx(0ODqc>0Wpcy5*j^brQ~CD+5RaIh1l-G){kAAim4x}Axsr?@*HwT zWXrrzJh#bLD?0&xn#0-C-j&fjNbA-9r6RE3zE<&8?gL+W4NNHX;6D6OWb;oatkFiA zbh-k~RneuVTrn!`EEwMo>l;(JtkO!HCQd??`Su|9R5{|+ui``6c8ax$?VkuXlIc*{ zxs>_7V)r0^Stg%ZF&5Ls11ZPAiJ@_-LX`BgWR5_{(42~1%TBcy36vLcAM&FGK|XRm z%`Yn)1MWAD>4Hs?R}9-54P#nSY>x=G(NgpJW6LJRqtw#Tis3x_cr5T8kio&IUzh&G zfr50#Z+5{p3U|wato0&%(qUm(O(yL+^CNCX`vxR&-nj4y(0NTY)C+ z3*$DHgMf5oSQSG^&R^YTH#G^P%wgAjh}{~m7j0;UCyJ%yr4j`2k*B0NYP;1*yp(x9 zJQ-=gF&+XlT8+zN4h}bJ2>+IkeOr0PyZ{O52dUJ^cVbwyx6Vj-shqVr zK!KBya-?wyYp^P1k#C28O4L=dFja`%!=mhzS7U03+a(7-j1K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0418.h265 b/samples/h265SampleFrames/frame-0418.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fd3e34be9645e1668426ebe6a79558c901cc0d88 GIT binary patch literal 2041 zcmVC=3GtpeP6ez(b39FqtI6pZeB9Tsiu+ z|NqdH*zx&Fhdtw&njZ)RlCi}7zXz_How6Lx13^rnigJ_*?09W-_0qO$y2SMz5c&G8 zS#ohz)rp|Q(RbaJMw(sm_FSxt6&tz11Ax#7R&hQlBUYK7{K37LbX_3uq|96PS<31a zF2f2<;8_ zGSg?afd7`ZiVUlg+$~Zz41ON6@M}dV{fsL&Bx) zSmmaTX+tV2x(_89sP?FD9@~iUvO+&&oq5%wXOl^)e%bXB&C=X?P8zVtk-T|<(g_`E z01QD@9uH!kiF$E$`ld7J-fA>X&>T5f>gd?9L>Rka{ABPj84`DbiXw*{4Jx~IrHF}Z z%hG&I8B9*tkzTpn1v6EvnD@Ul=OqoDv``IMj{}IVgUjRd>=9~(5!go z3I_M$=vMYt@mkh4k18SMH&j=B$IN;Q=b?c@|94Wj1^Zb^>r-~^;rv?tLqPZPJ=oew zhTv8}aj}*7!uQQOy?RLOXs@~n2YEm82=yRgY;G7Qoqe&aH++c3?)7z(RRYt65Ln0n zF~c26tlgx_1rfzf`{nWIS%f2s8M8R|rxmwuYPOC6TMI8IXdq;OyFhOf)ZV1Z|Nj5~>-LUT zf=7@>f8Q;28C3Yg3{xJ~CI27m-{Lxj=lENq;ex+^=Ds8Vu7bJo@=wPfV1jnBdTWd$ zaszliZp`aGw4)*k;KI=ECGI3{8L=x+&#gGq-Fx8cs z&n&-zL}q^50FA_bkN-V-Ef;<_U%qI(&kQ2TGcs1rgRnvK=vxhxTIa#~rjXF_*JKf0 zaFGJqgGmE~3~`-DZ*@cp{nOUz$p5pQ;vDF#4R5s9G8i8wt3zlb(_wZav4!#-;)vho zcGDXlpf`qT$^1j>U5qzsE;79s)A(s7m4;`mwHyC%2U0@640}h6JuG7^dW{)gZF|6d zB(7an3>kDzgy0;)H{O%52bG%|V~IIH?dZ48i(`myGy?}>x+>6E00e~C<)u&1H9ti< z><(Jr`bPdkk4I!G&4{*jk?L|jP!8c$3u6BR_`>+S3LnyFG6QCXtKJh{3oR5gR zBD+A4KNx(0ODqc={MWUS0*!Yke`%lg51RlnYlXzHK!j0e|M{|FC|Xu+Dn5UCAw}-l z#fPxTeLFc$9hAOcc0jnJRBjoTS7W5HxHirWgH>cE&9BNM9w}0WKRg06_N$E%%CvG` zwX#g(8nt)Htz_-rGSo6fMBQ0{2Kd}L-KM<@HM`Fn_}WBhKgP`Wbht&_*FDLU;#CRe zu?&;+cE^0h2>ehHNOPswKSZ5%uRhsi3Jpl>0ST4VT5z%s0pDy@F zkD6+FrCa9kG87!Km*C>l1!3eJL4xNog;0Aj-?mKOVno-yC_Yju@&#+njK#+St3^+4 z`p>_pzzhZ3%nsDAIU3J;dvKMU<;d{ zN-GeW%BZl&;%0mfXM5&^OIao=0U2n;8v=~^u;5_h4@?skcTxxfwaHh6^uU7GVn8T% z&fM%__Y%b>=nFJE?D2IGPB*7G2tL+Q=b8bp4J(#!^$fW{Ee)rH0N8+Ctq8ykxNJ;U XOaZM*Ay5J9Jo{0A4TuQ<;Q%AxjpXw@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0419.h265 b/samples/h265SampleFrames/frame-0419.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bf5766c8d4820820dc6cf09eaacee3183f741631 GIT binary patch literal 2630 zcmV-M3c2+F000330o4)z)I$OT5W#dw34pQ0c|b4*0H72C09Zqdc`%tI%8b&!P&@zG zw`n`QG9s#od+-&Uf4A_yFOAbKpF@Mc!{i#^#w&Zqh`*_tkmJ+HgV=K945Fc)J!T$~ zq_+iQ4lW8^DcaJPJt|Ri%pb6RZ|!KiAODxuR3`KnQ|D*2un*E;75a$Zg1*YcW!4s^ zc(KJD^n|6V&PH!~)v=1MyOjnyBxVSdD)e`O)b<*l9`S^?HY)&!Hb0 zxerpEK#v>@&qNUf#n8V7sjf1}N1&0hr<+*XuvPDov_{)-k3s4<}@@hOQE|SBQ4pE+cZtEd@$#v8{L> zted{3B`Dg9_U{sr-X6ym)MOo|lMg0Y&5=V&h}Mp>qd=ncRZLr+9KWa+u#I7r=e2XH z*d*{q7j<1ar=$N`>I)}K>HUb@g+EW6*s@8(`mAV`gZM|E#++LCjPP~j!NPkm6JF~W zgv-j;|%TC#^m&$`)%PmM3*J>8lctz_)iOL?eUNDKu9QP{r3{0Fu z#2JQjsI>}H!!7-(?LEH=v=#Xm)Msf#BkIVK@J=tG>+WznL zgZz)7{Mf(Q|Ff(1rv8Qg-DYCZ|Bl-)01MXxMWzlbfR3*=j`v&gDa6q1IcJMN`Ax+L zfZO0${wkQhm%Hpuk${;$C$k@S<#EmH#JyRx%M?WS-}ekTWZi1EtANikV$~I*HY|5_ zRI22bL%n%eKbbus?<7Q~DYxb0aNcJc=ZNH8wNnLVQl)|5U9*8QR#rh=NwHiz_mIzd z{4z(Z^(QH9D!TN+ztASLFZ~8`J`7%jf=<@Z1^r5Ntg67H zax@HJMO(aX|H}4^|IrPG#+QcJ_(kYU!VZz|lRy1yo1UaYoaz63z(>9MGFjw!HzKRv zL~yI_Qq_G`#7ek~_h%Zrqo(VG@`O$Wk=L$n4+?7^&8w@)jH1D}t6MSWYYjAG#=Q=~ zhy@rN{pRxn>Kb}4xHKb#~; ztxVThX-6r&z;caq#^h(mtJ0o)6+>9oW;Q4eG|88d!xD-mHDxX`K1cGj`E_!59v6+i z8p(4vBd8#%5GujsRiu~-I1N=P30U)=RU*_I6Q=8R?yigz7XgQGBbzUf=){qSJIGqW z`Z|@VPgpnFu0d8^(INyJI@hT$4Ot4DYUc=j<5qCUXMFEIF|+#7ar~X90F?0aPAw?~ zq&Y$}w6-Rq#MV21id3&lk5tRqr-)las<2o;&CsTUH=E-{R(t;W%??sEzG0R+gP)}s zl}=#xXjIflj)wg)3XqZv(yh2C1td-*2{9II>J8%KmgeW-uMUK0AY_HVDM(52SYzA$ z|NqkgLd=6vFRPOzvdkeKC%2n-#9aF0x?Vs0?D)^g*cHSu2QX9(zSr;;Qq&s4>!S3V;f>M@n~aBJR?HT|cONUB&iX13B0V z+EAY?buY?4r&(pu$Wda1AU}c&MiE{kr)SEYNG#ljA9yj9e7<4Y3Hl;C5%)4@g!!E@0pw%jxCyNeIHL7WrSJ)+9(PGGc#5|(L zxy3$Hn>p_}#jlc-;Rl^|?t_3d|Nezi|Np-I?h~t|BOyQw_&)JL z=A4g+yCS-lNA$uWgv~q-A@;Ss}sJjEJ>(vXUAIpm6 zixq~1t7FFIXa6ky;*ki?HqSduIZJJlCfYUeNvQ*O$}$&9J&r=_foyiX^kBM$*LF_o zHuK{{Jb|H02~6+6<*S6q>)f&DvjFeJtMdyuC?1KdM0A4_|Nq>d{JO{k#-6E`8Xzw<>oLs^eDiEO zvgb&3O2S4DH0EJM5U6FIc2rHYI^fV)o>yYMLK>%4P`7r2SUH8DM)e5Mf!aow?1h1v7WWGr#r43%F41 z0xqn4bWM)_;ceTrT%&1;DJ=4NO76?Q`sN}1PjgQb2D%o z*w!i)k+LjpJr>FrS9a1sUO*L6Vat;;>LIr@sM#hUt~di{26UjFO<>l>l%o|N&Y>MQ z>m1AU!7wc>C>_FZ5Yqpc5WfDMQV0O0^5;BVC&EC2ui literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0420.h265 b/samples/h265SampleFrames/frame-0420.h265 new file mode 100644 index 0000000000000000000000000000000000000000..979b7e8f810a8aabf8da1d12b3f90f02fabfadae GIT binary patch literal 1759 zcmV<51|azW000330o57*)I$OT5W!i>qy>RbhztV&peP6ez(b39FqtI6)NE@Tm#07d zOxb^zu&(X@q9?=X$+G5X6l>?)gZz0 zn6$qr18X$VtF9!pnIwP$@SP$gP{)5Hv@w=kPI-tyQzMcuTvPwU^&}KFZ^iF=*nh*e z^4v53`uslR1dH6l!9KCv)(%k(HJQfTd&~=aU>41V#_LB+o@_1eL;UF>&-0Rw_DpFP znYVUGk@PRdJSvs9sj#|1mit+O5zzN6bXw`zuFq6lyi3@xzqDIlF`vx;V@;PwQ(O`u zM~1R>&**MuTZb|(i(ZgM9!b^MxU$^9eKn;j z=*KY;etK$figGXQ4ysoMzgk`@)yo~w{ZH5{-)s@=$m%t0Ke`D&AEQ5;`6Ma33~)Sj zFT}_>ep5kYHvm+;G!Q9-3RM95MwB0Pl735Kr7NWLIc{m<~pitJIk0ECg-cz_t3S z)F1Vsi~Mqc)g9a94APFRWX#d!(f(DAN@>D>G3~!J!HMd=(t`a)TNOpBnLAXE*h@m6bGqxfIY^{eoHE`;Wwp9RwaLqIn|r*#@j*s+id8f?mpl~5zNVZH zdRkig+#Rq4xJoGT!iFpTzcC8I(>Vty{y?&5D z0CJ+8S@8QgEe`j{y0RP_C#&EY65tAdoo{z}VWUb8glHgSfMP!=1x~yDJzyIy<$1)hbUb2N44T<~wvi6+gMAflpy0{RAO|J$MO;-6Z{N$F%RR|fk(*#PGo(lL;+ zBVy6cP??R>fV`OcxO>)%3*R>%DTN&nTL2TbYXbT!Am#ap0WdCB{mjHAF8|Z>Psu1} zTTcpKpzAzQui-^Cnp?P<>Ew8`<|eDXQyrQ{;nO-gfr05s1VUunXNRns&YLXZ%O0BB z^;-clm*YEW4ema#u0xAAYr8N{95VTp%&?EXcus6V3R>W+!=xiyH|0|LK)_NL>dyIQ zw8&)N2#7xMLFSx~h`S=YK#)Hee1S_W3X?R1+$bK2tVF%GWY^`oW;3c)fBy@CV!tgN zYD#mCD54J&j`3D6BfhKU+n-3rDnmnuu_NWufO~o z&Ko?uek|sagjqT^J%al*T{gIYR00+K-=Ye9#BW;UG z02qHrtoFAaEm;P~EdWz>rhdw3r(5Ge`ll%Q{ng`Y{5<1N5yOjc84X8k1u7d=0eMk` zrO)j6?bk{${uXH)zZkB!IjnisH7A6H30M{`Gh&Agpes|eZnw$0?Vsu$RuA2oq;3+Y zMXj5ERU$%?nK~3WR~lNRvEI~_4pOt|6=^PoOFo_SSCa|bQGgAI2>{^$BjAwr Ba{~YX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0421.h265 b/samples/h265SampleFrames/frame-0421.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4eed8d6e464fab32349b2ea44459cdcd461995c7 GIT binary patch literal 3504 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0422.h265 b/samples/h265SampleFrames/frame-0422.h265 new file mode 100644 index 0000000000000000000000000000000000000000..87f49861c7adc3ecb419d769d37c9f82dba50025 GIT binary patch literal 1849 zcmV-92gdjS000330o5u0)I$OT7{OSoLyhC^F z21|2Dn{peA#yaInAi5iTuiTU+#I6`lFOw`7K}Je5c{l>G(b`)c#aCzj^Y0jfUC4o6ow`)0Zv^trp<@clUT-7an4L zxlHxae&b_&i+fWo|LDDkClA=vzoL(cy#{~zJ=AU_$XL2@sR@$FidsL zVIT@JmtIL{B49Ds2-%?%EL3oEw=8}B4L5Q(pheUk;*xMF)|M3rxHYY3aY`qsA1zac zR4}^G>?>{p6q~=l_+H9fkA|!j_CKqqsUoY~6A5j!&^|OwvdyIV_x>~CO|XaM&4=mz z1W@4ybLV#lCEPSsnQo ze2_l#jZV&pXVwk6=~Or${UKVL>Yj<>K!{(Tgbv1HGAJT z^++Hrjz&%rYK@NTHD;j_@9I84R)4uH! zOB~a%au6W~|Ms#46=>UHf-80Yu6%I5Qq%{OeKJuTBfDKD@9uhtouxwX%d9?Toa6V3 zR%?4mk_lxIv>HO*{B_KaruI6tfaEzTJRAfGEA-89?}E+PhkzADxB z>{1iD-2)3!tgNK0vPb9~y&c2#u9QFi6a4=z!E>NQL(F=+;h|45yHtRq3#>$!v*Lo8 zlERc}F9PrWIyXn4l}*I<#}v*8Ge%DcpQbJWatb+^(g(LI0U#E+F4br(3R%$xL4{h zL-=mIBu+J_PpVHxQz{?93Cv9Umw%rh|9|_q=Z{oYp5kdxp`7_>O^GzT=+9|AhDSQ) z&#`Y@nF~znKgddr57QMpnS5$o88>iXte!>E?&wq%cp$N*!z^UaV#h8zsQ_=Wr1b+L zf4ResG~*9xhkmg`fQQ=H6*93N9>C=%jlintu!S7DQI%f#g34X}_ z7Vaq=4LMZEW--f((FQl1wVKEf*4)YqPw~}RO~*CzRE9qbh;K@=rs5L%yN)!imsw8? z6fJ3rYC&>D=fUbhkOJYZ)l`#nOQC z`{H^-;y(`uWw4#>8<&SaK2|V#Y6UY8)N4+9vE}-w6$m{l*8yJU+UC;Vd{1dl9|W64 zJe$LhbJV3z)1oqV`irt4SC_!b$F^DuAQSX^v17?Mcu`MMHQZdQtg=$@Za6O8F~Sr*~S(lv7t(^htXPM>`y0s-d<)a*pdS4tiJBK-d;>Y zo=W#m#lMuPp@tO%efJ!JSj#tcnMTeTNX#@~8`dP%UfmurVC{6gT<<-$N-zUgU3rsG nEe)rH0AoO1tq8ykxNJ;UOaZM*Ay5J9Jo{0A4TuQ<;Q%Ax-hzd6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0423.h265 b/samples/h265SampleFrames/frame-0423.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aea34e094f8990f07ec8fed00b0d688a052b6967 GIT binary patch literal 2067 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0424.h265 b/samples/h265SampleFrames/frame-0424.h265 new file mode 100644 index 0000000000000000000000000000000000000000..70a3b8baaac35e4fb77bfeac7fa4ed271bef1f92 GIT binary patch literal 2606 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0425.h265 b/samples/h265SampleFrames/frame-0425.h265 new file mode 100644 index 0000000000000000000000000000000000000000..94b8a0c77ab02578c79d3373d3c677eae257747e GIT binary patch literal 1920 zcmV-`2Y>hg000330o6hO)I$OT5W!pGo&|v*M4|%#peP6ez(b39FqtI6p^eEpFyBQB ze(GuZM&={bkH%Sk zi!`YheIo@F!RXn67Um9#GHvOwM{KzM$I z=^umeTzPQ?c=DE3===NP2J#IKl)>Jub(e~Mza>kGgB!Kg8}JW*1p0;Ki` z^IVg633p796|%z}fjagidmy9rC{U-cT2pI&2H787gG(7}X~OP_cVXPuaAv_0pfQcQ zQZkXFor3%+;A5>q06YM+L&&ru@Qu=SL0)FiXoy8eX!3>oSOZtESehg6kE|oedr==( z$C1x2cqB5n@xdBXmt&Qn5X(>ce zuSk4+OeHs;8<39~wnk&lnb<&r?#u}iOUlMq|IX7t;$LK-8LIFR4hjpH*pqWjge~z( zgEQ73y5au4_hC-B8VPUZwf0Wj^5M}m-NnZmUBd$H%AamC-SKhe(i_%)HqDnN5P!5> z&!zY$Au{iGhRH4!8RO4dfjxYgmPAQ6gWQgF3r!46>lW>=Jx?&in|LnmI9QU@n|bo> zkv(?Kp^Y#z*<@(;YtJ&_dWKSQq5u)o<`_D)jb0$tM&9{&-@00Yf`xl5CwC$~*$GN9bW&?OF;X<%j#t~FC zzh-htV>!A146%!>Ipa?BkJ37}l(5i-Q1N;tzXdq;O zy8;F`iV6SU|M5YNNgx&Z5~n#kd`V$JvXKHGGW@>EE1{?KjZ{-=__7(U6Vn(0|GY-(_#DO~ z9g!M|#lzA(a>-)Vjvxm^x%bEQ3kx#Ygg&aQ*zqd<`3ML!$|+5v7yY(hK22C?{ajTEgTa74uK`; z<$Uel0As|jxOwNII4g41*bz zL26{KXJM0zv-yb~|2_^_*mlwz+kr1d4WG{BLQEIhxQCh4D;Ej;-M`QP{b8 z9-U=gW0{UwUD~yRoa~1n`BQ9hpm$zj!8VJFkC%-&FHoxt+*kVh^WQ^7~?5= zf}qhwjNszfzpxippvA6qZa<+T`*lrq0~AtVqUUXBHGvMYWv>I!)8 zj`9DXxDaJ>X}=vF!A`sch8IsSQ@|#%B3tGUWKd6`0}_4~a8 z5G@W<`#&+5B~B%&V2W2|cd~FbmDL64Nt%PeqsDRDuHgY$CR=$bmO)G;u%b~wph|$z z&3GQX4@|nwjCV^BG<<0=%_j(1G5wMp!Ywp{&ik{eA1(_ml_Y^& zJ%BJ&orLOp1I1Pikn0xEWiFbl-z1PB&>zb`V+?1o+@B4X1a`%!=mhzS7U G03+aA6PjEA literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0426.h265 b/samples/h265SampleFrames/frame-0426.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e170347fb76ed8a43e3f11403e9164e93319a422 GIT binary patch literal 3781 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 YS4;t|N+D1I>pc5WfDMQV0O0^5;76aJhyVZp literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0428.h265 b/samples/h265SampleFrames/frame-0428.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2ddea7c1faf6f5eda0f2308cadb820656613681e GIT binary patch literal 2081 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 TAy5J9Jo{0A4TuQ<;Q%AxOIei^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0430.h265 b/samples/h265SampleFrames/frame-0430.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a2ef1e15e692b17bae61ff1033860f258a021c03 GIT binary patch literal 1946 zcmV;L2W9vG000330o7^$)I$OT7{OZlpap>-KoJZMKqv?Tz(b39FqtI6Wo@qj`zQA^ z?h&6y@e566<=(%#ntqYFi1j3M=Hje!rC=b-Ff7}UN6i)Rt@yw>19LKA87E$M)7a~p zU-y46!nwm~(~PDHhZ{>7PoUJzs@=qV{($J7WyD9B)Te?GB$0`>>z!TQ1P&Y?gxg z>U9TRSVMHCQ+n2?WiG{*!3q0_8F&cJQGei& zpXOJUd~SsWW1<5PCvM=F653ewrNGC%I%qDe6z7lddnyIW(8Ege08fk+BvGb)HO!pk zUgFP0wK;`ps$!jBg0iRavdl~ND#-6(=7&NCqfOVOKB9^ep6`vwM~w4Vq<5vG6D8R> zJAeJt>~Gg6_*>s+&;BcGr?`d4V!ywr5DBZ|{AZzJZk5p6bUW9UE3p(vh|yd1{vWTy z$a2bqH48hgo349ze!9n(8-RzuontQyZs-Is3CXMNM8lCx(5yT9Cc#v1HQ&I%s)5B+ zj0X`=4t;7L`O~W=Ci=vdb@&cG4%$EeN?B8X>HzewYmtyitYQtZd z+>@rAeNWSm`MS7AZ2kpdpe z@bk||!6H|v73xKOnr!vFog80JA3Rp~g*fUJeX&aC60z^2a#gGSLlKh^9d%Vz2L z>mS(|l)u)BoD>Mt5!<2LbUa1brt_mDar^J66B_%m$qaDu@(WJV#FGzW)O0KuR7sSS zh}pQzY0OsO8%(rxfZ=f3u#kIx`cwhW;y6w5}=}+ReEux))Pz; zMX-ND_x6A`iA%TMpGuA;9^`lXrvz#8>^5ml=BUw3YRl=>=}rclK|hQhy^hH3q&K+w zzP$B}-LB~yk%s{%?3Idw_9uFVeg|~wE~vBan*V;Iwhg_a>c@CE4v0SSLFSx~h`S=Y zK#)Hee1S_W3X=&HC?1KdL`oJDU@Mky^$<59r9dqWr-TCZ#?Slw2egNiGKxQ4cA zsF^G1mEccReNpzFh-v@u$}wF{8P9*n+Bv;kqkB(-F%c!@M}SjV`sjMyt5orIO~%Km zhds&wTVaoeCpW>XMF>+$XRizpB{4{RCVdWIZF<0Wtxx%tA;jeEe6-y{{@|66|dkAs?HR|!06A#o$H8HWTMsVnevqx)p%Z5fioJ< z=|l2>8!;InSYs7i;LGVD#~S}jN^^g-R_U#)@#%+IC0PYx&(oSRg9Y2(VQf3NsG=pc5WfDMQV0O0^5;Pth_`~Uy| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0431.h265 b/samples/h265SampleFrames/frame-0431.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2c0fc154c547a2661330f809163b252f6746a31c GIT binary patch literal 3042 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0432.h265 b/samples/h265SampleFrames/frame-0432.h265 new file mode 100644 index 0000000000000000000000000000000000000000..18d9ef1947b63001b59a3c7acc128cc462d06327 GIT binary patch literal 1852 zcmV-C2gCRP000330o8f`)I$OT7{OQ?Oa*};KoDEMKrjdbz(b39FqtI6)Xs8Fmzh){ z?3KVYgS`g|t&|Sn`MUjE|Nr=XruBI+!Oz%v#|rX+kZH>gug~Z3w*f{;j?nJ~$j~Ia z&=m{uG@TcZL(KFbaEt(<(mm`QZ?SeezqyetFV}U4$IQR~<;S`6`0>zXVAILJYa;B* zA}hThqaz-Yhkj?m?&QaO+dl{RN18T6aw%?+T)$RpI?saWr@#q|Mo^-QYIKJmkKCS3YqGoy zW*+mv`1v&tW-yz4tI438kLr4zp%rDz zFR7BNJ}UB}2-)vPq>A*lV{F==4<=P?a%^<#fO_k`K;gEUKY-=>3Njm~l2%#NpRMq4 z?2}GBs{=}9O=eT|yB`CiGUoj1jq)_OoH74y#IdyJ8bNOry;UDSh#YqP(9H15o`t-z z9D&lRo}W|t;z}N+(Y%ET*1Y=CO~K`BdM?|-(i2a(OW_9Kqg6{YXMrBu4HMcnAZd0w z9K}olxt|leD4WrfXxB%rXDK-tv`70QfB*njzz&3HAY_2LzIP)DVQs~~?c}%#KmFPn ze;wH3eiEs&v!PIF=tPH=q<)Kv0f*K|2g_?FZTwX@zhe|Qp&Xkd6pZT^+ zo`&KhYKVXS|IXu{yxr*^tjaHf6#TOyz_*wZu$*Y%R0&M_Kx(Owjk_gpOUHHH$1T1# z|97|730xCrq?BRGL* zR6k{uebC|sPXL+`E&`D<`fyf%WJ;_lp}10?p+GprmIEHFS0tGAj5yK$SR&}t+HO}M6kACYdo)N7`R42%q8L$E z3_bs(+;3|8jPXNCk71&9rK1ytb=2xOcSJEfE<#BK-V#m^CHmaLS628F3^%|gFQo7Ou+w~IBYwIwJR@J+FGZu-0 zz?PcI`c`&Q4wLpqq|qk} zeC9@G_a~c4s~)>UWI5fV5VbWjW<>!FqVPm?`#=DOvLC04aVX=wWKG(8p7|(MA!j)A qP3|nX6QZZ)tgd?zcb+h8Ojk?*_kca`%!=mhzS7U03+a21dPT2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0433.h265 b/samples/h265SampleFrames/frame-0433.h265 new file mode 100644 index 0000000000000000000000000000000000000000..813dc5be2617f981c1597f44016492ea2c5ed625 GIT binary patch literal 2076 zcmV+%2;=tv000330o8&3)I$OT5W#Q^&H%6y0sue=LO>V-09Zqdc`%tI!bQyNLD7jA z7Qg?$|LXS2Ilv^wvWgijp^%-F$EV_!<#H914Ls z=;(*V3@xk;`IF>}BHF7PvdIPpU32WYSs!S`up+y2<_*~|(qtT?IBzY50|uUcJ}q44 zxAy91#-m+YBO%D%c>yT*GJSI_Re{Y8H7j5<%8DF7_m^`T_7CjbyivChnuBL^mMsEoTs^~D{~h4?rZ?_o^BSM@S%j!RA)HYO z?_2-oZp)HuD(TNW$@m~@NF{&|mP|q~-yqJtZn{x0n(Sq`b9soEcAH zCEqnzX9lCjOqg6CLH%@_V*uz{RBN2;9zQQ$9o}~OLpCM%okXFUyj}WGNrFvLLDx(ZoNxLFW_p4a58wdv2lc8_Z(X{~ z0_7qw#ze@qxWq?%8X?{{LJICjKmjUkSM~;;WqqoYVwdR4pF3?EoqFF>bv18r`)jmAtNRi2rKA$qE$IK`e(&%fqv-xH zkB|Fr;h(qo&&IyL{QmvJIhc3N-#pAW8&Y^9aqQC7`-KPNo~iO#3e5Ak7|*F$9b0KujBI6AgB35k6CoU0?H`@$cimN9p=MC-a|>{WsA`_2Knx zEMe@-+L@Z5Wh1D?)uX5JQHf>{^1oLITr(bo3ZE_hqk{?!TgYnKO#T$dB+hJS5f1@P+`qK>9!hf#jtwl<5vA!(ea5CBNKc@=l?!k@4-^rB z@XwLA`e(KkisWl9LG9f3WJu8<$Up!9Az%)KXdq;Oy1NNpWFcSw-~au7(aO+B?10f- z<*t|-nUGOI1ey29 z@tf)K53O~q{h+wYU@Vh{o zS2E!25sWIHexD_dH*GLlRekV+yib-S_RGscx|odq+`s{=!J`-Ry+%feS0Ocd@vkDk z`VZZxLyr8wM?;M})WfZFM5_3Dvxs)@NM*{hzW^Os}B z_#(J`V$AGU%=RqFs&=BIqBOhCW);vr@j>RCkBGY>yFidX7<_?CEDDne6(}BwtVBu{ z6JRTrZ}kv2A*Dbq4X10t8k2z$jsy3+WuBxES2TxLg%24pT_l{3Nq$p%bLb z5gO9pS;51|q|uORv*TR4^jWRZ*y;maqQnDH$Kv~4loRo3D`*_5K)(8Gs6!kN#eV>` zq{qA4%;rJ+o3fhI%Zi{Y{JKsQWOesYkANkjcp01uljmPxD~DLFl)$C4uC~-9Od&e+sl!DS?9W z7s7(v6(M&=-i+Y}o@u>0zAsO)#*^c9Sn(jCghMC8vN-weK9snRxK%p8OG?h1FlB=( zR>KnG93z{)@gR%s|9Cf~f(1XYalf=8{$#W~e*y?uM>O8uIPK;W{@CHZH$`d1ISUo8 zkU;^BUs-d{*lsM^9<2Q`w1SlIi^^8V$_zca+r8mRdWl^bfN9dm3u?h_g(5vCD!i*j zPu`?GoYjl3-~L^dfIUIKa`%!=mhzS7U G03+a+O%VzJ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0434.h265 b/samples/h265SampleFrames/frame-0434.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f9971b52a5e8689382f8673e00b3d4630841b527 GIT binary patch literal 2918 zcmV-s3z_r)000330o95B)I$OT7{PYgegLo%0sueF1Qsz2Evb*->9ZdyX#NQ+H9A)?FZMAhFLFYnU7@kF>8# z_m}{v>b`w~W}iVLKiez(ZlK)ZX4nAQ(IB8Go8wM8Gt@goaIf&;Z#Y^b5AQLpY&^xD z{`{+u)&8ZI$V$hvz^p^-H1N((2QKK8_rHe66U%F-?H0cC9{ssD+V_wAB&u*>e0E|b z6+wL?4jY^B@I8>g7L^Vl9TfA$D=eWlxC;OJ#@N~u$r4+43QCdvWHMjI0pl7i6Y940 zLtz`tGzrkU$c^+;8Lbh5HBM=Z?)D1FfpYYtX9@piPH1xnJprC0hiw?SZM}~^`G(s3 zeX8W|t(z&_Ca`?0(cA@>z0X5WM>t3_PkNbx;>fJ>(5>Ci9tWUuOiwAodTpdV}zL1 z5{rl8%T}{@M^#WRsWZr?Xv!O;mySyOekY;zs9Zb4$;p?aL_!dwWeI(`ia)9pr(#wv z1W-47vdRf}p@YtHw?qzWi|TlN(n&x6J3K zXDSJV%TLJ6X8}It%Rbw9gMAS=A+D}i26I~R3T}rLLCi6nscPOQ$PJ~yjiOemi>P$I zuzlrMLKN|CvpCSgP66v&uLynl_V90ze}g=)uh3#SGigX&!GK~~Kkv7IyH?sk?RQ!k zMg7ZMutR5Dr=#~yH&u(mr)tk31|PfwGDES$au@pA01pqzpydp(9?7gcAos^$Xn!-y zfvk|Qz57Y9@D2vhQvKXkyv_#WIzVOsbHdM!b>is;v|Ht{AOfrtnk~H|Th~yM zPyhelZQq8p0uVo|UCZ?7U^^4xxeNkk^v*8xfbNT39h&7bLskD#^$0kI+7F;lqf1WM zUSVa%*OU;;9KbNzCX`3rK6^L}(9Un@P_VeXSD}E7?GUHFs&V!DHo^4sdRHzJq6}4& z3ExK+(HzPVss!{Dj8Hd4D7)T;Fm{v#I*bcL=YMJtKPCq6B41&~^UJPW{G??bKJiBk z3V|b&y>gC$=u(b{!(i(KQkB!z%zwJ)T-4)eBLh=#F%1n^J%L*99>4Oe55alcN5|tasSvDCFTKO?a`RLx2DVqz;5=AY_ep zPv{5#zxv@PgY{i=NI@e(r%w0J>thb;S^U3;^!Yq~FM9{6!Sq1zzAAoz0$73WX-+

NoPYa`U8ly)cRF*yY~d7b`CHa*rQj0EYcCx{ zEp9cow$h}|uvOMn{I#|Nz(gv9t#9SpwYD`HK?_JGp2~g8JYhQjz4ljWMKppc#7m;Z z;eL}l9)AN{N4U=Q5*{AN3=HCZ{oN~5CGdpLBkuw*;(f|Y>V}K3XMViDVR5SgUjYh- zDJapQv1bMNo*60T4hyoj&Ux|(!U-x5q%9T4fDcS>(;iFk@N1^%5i&?VF_fjrP!nC< zv4ECVRJPxFZe4TyKi<6YO_CB6)9>7mC#!H2_^>uht z608bkCnnBw7$Kc(8TrD18Xo^PeJbi)l7KJ$kLdlr(`NJ__c+N{tL@9{<2xUaFZV>GjyEb@KVnpT|#xce!2iZPS z=niUP#;j_;IS(%_*IH8}iFt<=z$u44fr z{xbA4r3q=CBR4peSl@?ua)U>tvXQ$C0x>5Kq;8xS$Yj&`x4^_o(6KJBBzN$@lsg#X z!8ts2t3;P*P{VQ=u)Qt%C=HLi?alO+QomMwxWr&TDAFdy`iCLPBrAass@0$}<`?nM z?Kusgf*E~=OzZ{=gvGgG7S(~$3mb$fg0M0kLvdAE4N=rz{9tp~vG;jn+JL%Arq*|w z-h|-eQnPw_kn$W(?y>0lK_iou$133g$!^SnqfyY}?{pmzRBKuy^K;$6htGD5K0ZX1 zaaOj`;vPe=s%D~tW1EGa@3Z>}fWBrI0=JOh0qV8ALm&IBRepm)uIxbY0k&}F3WTBZ zqk;yv0d@+U3n!%WS@)`@OZVcRJhy3r86Ek&_JfNfYD{CSoC$O?{^qG%Ar5$W92M#&%1So7r54G`1I2Tg`+EQi!rc zW~rdjM!c4CW@U^Tx-5}e@2^I|W?J?AWYj`WDT|YAEBMpeg)~;M!Jp*t0rrmJkyoDDWFJjy+<3R~Rh`@44RZs>gKtIVAp$ zDs~3ue)t75fDn?wv#@OF450V|Zy9m7ex%UAR>%NMreNmn)H*mnl59*@OaS+QN+D1I Q>pc5WfDMQV0O0^5;AoAk?EnA( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0435.h265 b/samples/h265SampleFrames/frame-0435.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3a8e6a800da70b37bedb37ada5a299d5c055a2b5 GIT binary patch literal 1918 zcmV-^2Z8ti000330o9TJ)I$OT7{OYqm<53#KoA47rsxO)z(b39FqtI6pxD+oE%v|N zO+QH7#CnoB^Kn)=Qm_zZm=JQ_8tn*^{rur=-pE^t0v`DGZ9?M`utz+~XU5R+`!I5=eZ$|{;Mt$tt$aqxK57`^30fegy}4P3Pb0PaRoeHC0CpY|j+2X~Xx zU+uyD4Ds--12K}}A_Sn;;C7p?Nn30tqyxwv5niyw!84#N`rv5?z+9)pHLS2UzmsZ- zB~@ZO(U2!@;FuEHSoERT)I{l^y0BB8JURQ~R)!i^m;R05sX>J$At}F+74WAB&gieD zMaYiwnL`(kF;no8&{Qss=?Xn^a7>faKHO$m-T(0$e1MGqR%iZI>jSG#e!k(){ z5x6hv)y++euOUMHt?ke?7d!`{Z;DhIU~vW44|#NnO*-J1CBK%}**kO0#KhBg7aVDK z3=77w{mbPeL#GpzNJ_Lr%h=XcM9n8t4U^ei* z_xv^T_J9~DUaI3I9wLodMk$|O6np{Hvczw-(AUyc2zUT3(MVKM05dwg>&Q3NhnJpa zu^M$n#$$GyPpmHBFrkBh!@{e12-9IOEEZP!7U-=T$_txP6}C1XLV8krr$J#W*t2^o?AcuxLIy1GL*0U@s9s;IGVe3 zLVp`WoLVQcAxR4_a{%X}>R4yLEFhX#>5-pzCJ)63N%BAxcHLV|r&O7h`@tQr4rL6n z9|QmZ0|7S7S=Pw*%MX!wg8?Q_EUQhf_`G8(ICjSHwkfJL?HZ*G1 z0{pBVQV8!~(}>~WPc;7AU0Fi9j1O0Qg*MI5xr{tV7t*3f?q=ytXtsMOMk+oYP}qnTNs;Tep%zs~&nOk;x5 zc^xSO)i+Y0(eEAXBMWVwPEfD%k2bk8&EAp4KJh{3oR5gRBD+A4KNx(0ODqbL2^ATI6yN?-23I?+MospXc_@IU44L2D_f4vRR)6x1juUgA)B zmr>a_F5+WKxAo1J|V6M8=3Vhr5*!>}G zEKxi+Gi#5uD2rPP*YmAD~*`bYzE5#+dnQCyuEj zJn!xLW@5mdd)jSxqh^q2D_E-0ah9W%qHMb}FbdYKAcOp543V-W616fL?Ca(duq!6x z_iNUz;xgD4E=ELl6(o!j19g{{B$J=W^0RR7m8(4#A7{No3bFh1={p=Ig7KNxwhs&- zDQYDpvWp8FoR9i_6c>sg*^mNY6HT6;MJ_owT<%SS8#2GM*%3Xa{xCTIgDWgX3{F(8 z>4%QM1Z+>n-(-t>$X!bA6J7EPd?wz)4iP7w*&xq7$D?P9Zx4%{su*^)gTXV6oSXCA z7kBvA77ANHRr${P@Xmn4_dInKLO^UxS4;!f7XN#;b=R--+A`~;+nQ%0D=XlOW%P<< z2#}#i|L_TFl{*Fs?H^DNl+i9Oqd-zx4@s#|`yMRw|NPyoB{=eJpX?M6ha09 zR5nQBix%)I+fwO|mi6k6uQ}tk=OnL$AM=iSxS{aPdHxJalTY;_1XrnRkaw4MYv%-M zseGEb2<89``2Z!rIGgRNfrG7Bh#+b+#K^I+{YWV6=~Fl;N+D1IOFa8gfDMQV0O0^5 E;9`xSVE_OC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0436.h265 b/samples/h265SampleFrames/frame-0436.h265 new file mode 100644 index 0000000000000000000000000000000000000000..84803b6819a857c6c68427c07694538266005ea3 GIT binary patch literal 3045 zcmVOtdas8hr?UW9Ph*G1*;Akibq;4=JGAh~|wJ%xqUoP$x#vM|RAN$z4qX0$Tr z{Qc`_KZOBrmKy9LxJOdM;$E47YOb0y@$2RoxJo5w_VZT0fLuW34*IPxClpieI z+eTc0fHv%iGR21mV&~Sm;|=TmvF9WIp4gfaeG%lITF}f)tdM`|Bk~Zy^imO}`i;e> z;49}@xNT?Iu}5epU0!k2|K&FFaKkR)>{8Nx;DWW8fYxPSe7%Y3p}j3YC!F6)ybpA< z^f#`My4(D5a$MH0Gn``S<8O6n@ZxFXXDg@3gHlK&Y`|vJpOPQf&Ra0w+n@{$oWE5A z%dmI=0ojDB6v56AyWpHa0;IN6^7}HMy@7YnYqf}oK+Z8Px^!T zTN=?$4P$VStFqEcl-HDsL%-Uy*e`M%Hw7WP(p{Ag{xwGJmaJn6<=&S#zPZAh*3rNE?u*v=KKJJZQ*({NaXXu=8ro(+(`{Zn|7rHsaio zOMzpWld2&WRbS4=vNQ#MD;}7K0Tw@nDH{hb9^iCnh@u-_HtAyNrEp1j9)Y%xqHn6# zH{k$@6TUUZVN^hCGnLv<+*{7D6;XkSV!cs8P+Fsx&gEY=;ugwKH9!2!&Mamh<}BDH z-$zRvw+-Vb_oJc3fT?UT%_2IQE{W?k{BS;ehKx$UcR&L*E}9?#S<6UISgQm>keK_3 z0@AhW9~7aR`u5Esty#N-@`y_}A4|tHZihr_@QiiW2Yn;k96*FGKoXgk{p#R-fB}+i zz8IQjwRXFA{~@sL&6L1&;CWGdkqnRUDjr&Eh%8*sJhc~4A35ms&OEDK-2hdxZxrfz zrW=_t?>Pg!DGuerXwlDCJ8`ccCGLgQDjKwzSTe| zV&7#E1i-$Fy=^f}wt{4Q=s8mzLKjk@Zx(xT(FX8+td<op_yuBOEStDERFg%ao&CG^ zE#TS((Uj0I9{#$YIb^ORgLMfvOKTY1u0SxfT>lb*x+Y*sjdGMyOZX*`d5O*;xf_)A46pLkzm8+jxWi|bav2(kY&_4dDU^6EJlAi)Q%)E{E-q4bF(L084gU@Q}Dadliro1eXE-xL_6?SFT}jZC6&tx`RZr@&ePVH03$jT7a0e z1LyDY@yHG;0pjy|U4Dv+a@j0+xXKi=f7v@Y{zAsm_p=M9*n>Y(h2tv%5UC$AD2)<; zI60(XqxeiCWUh^5zy|pIn6Jk~4mnC&mtb`z_TLvFS_mL4yzl%QVr z^hqf+%5}qChEJV%OP~qJRUD?#=-0zyLY{>_(D* zcht@$fEX%optto>y-{|`-{+Y8w9UP?5U!yAoj3NJ9c~5I9>jN616n!V&$R}V@6@che-#H)%;G3D zL?;OXZU|LoqBcR+IB$kSX3jW?@QMw7Y6-Um9+Bnn`<)u$rY$HZ`|i)23c%tBK`9l3 zu=OUrVX+;+<{?W0P^80jiN(PGMJ&=-!#B+4@klVbs}C;4}W z_~(KWfYNoj6(Jd1}ziArcPZJq?e*;1r{A ztGoE{N#1J7+gpHB*(**CQvPjM$!RZVS;kSKth{vooFfcINp`XPR_aU&`tjF5`)Jja z=oaPL67T04?0!p$fNV@xOas>)NYf#~I~+Mpois>4-+6~~3lcCRtMaokaH~@1ry)(|sJ&W}rJi>N< zwu+F_PI3?`snis${;lL0n6#`Lzj41LJ#wI;Ykt<)&anNF%G)`}$-0hd{$#(zO(9o+EO7fL87cE+nmfY7;ub9jS%?GMM|xs;zW n>3W+`Yra9K@5}Xrs<2PSIuUS6Ay5HJJo{0A4TuQ<;Q%Axsc!G9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0437.h265 b/samples/h265SampleFrames/frame-0437.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9732723462381135224d84a826c4e05dd54f3c5d GIT binary patch literal 1913 zcmV-<2Zs0n000330o9@Z)I$OT5W!c9W(9#DKoA3pbnprSz(b39FqtI6puXgy3y)t} z{s`t=8DvsQx|^dNh|yq^MbsCDnM1w zTszwS9v8kAsQ6_ilOzEq&x;HVb|I!!OjcT(H`oB7W6Zm0McPSlx%wOb{J8f%e;zsv ztQff*U1VLEQbl*8*4E#tRCQlewk7Gj_5kk?K`l#l_EISP%FrCae_)1s82zi>Qyp>H z|4wjHg~V>Z*(MbjcpL3OZNwy#hfW#jA2Go8IV=76Tqu$U#a9drnHLa&&z~LTnA?$| zl{22Gf#D8){CwB7=C_)td$)4(@PRIK;|uhVn|)Qhk`$@J_i{oqhE?{sE}|hn74NC! z9eQY*j6dH>l@cb=`V!sMQ~+rj{jTULR|cg5Q39L*@U%^VPmCWP8n9Q`{;r;+imz}? zCAQOHLU7}+%Sw6}Z||hE5iBQVRrZRlNp@AnPh3En5%e2f{o2GupE7A*TPiF^72u{X zq8(Gg5jD@0{((CmI?#H7P24h3Nj8rwS0gGM)N3GGmXa}3a#A$IV>*T{a8JBbHf4;} zywjyZYDGJ>!PlWk*F&O;$`w|rs^7Z``#N{H`URz#jxKtykd+da;(VDMCB@FdJ5v`EU5q_((SE#rEqB(%cq080_!5f20yJMZe5YP|S@r z0Z^%PL+%g&01D_1glHgSfV$8H?Zj)AxRUz?mo-8Er{2s_*zGCH*;Z_c_)4bA&V@mz zp%NZV*Z3F@y9mZCHd1$t<#LQI5H&?5ex33+G&)hX)^wzcI7nxZx~X41k1_;pPjCPK z{&yVod`5t6h*AuHsuhVA1-mAdgn5#jAWCP_1653fT#&N!j_S(jDdI=SvT@kh}^yT_GxU*Yf!|6#=7+cGAeNtcJK#wnm)oe&1~Q)vJV| zN=6c3YVZ>iFQ%<$_C%_}nj3{F`V{7X_?HiVJ?A(<{BJ`YuS=)E6*5@j>RCkBGY>yFidX7<_?CEDDne6(}BwtVBu{6JRTrZ}kv2A*Dbq4X1+mKcK+!h36G5FR+eVRw=s*w)R;7VnSmy8J_c69MWa zp;W~pwg4ls52Tq*;I>)qu*bhb=o^MdR z@iafmaV?1^JY*evSn+JovIugK_iu$@ADI+hZ)f#?zKqwDf za2ygq(*6Gw2T^WJ@~wC)$WQJ`fh#{nh-A0Uq-x}lQr;9{VfA*ME>|U4quu$s0VJWk zf@JP>TTs*yBDhLodeE56jXJaHusrN)DO81UDP5s<On#JI_OcbBP}prEdQU2I~@%!{$gsWlulS32Sp?8GU9NoVBSc}E1U z0u|_%nBIC0~?(YrMe(;mbX5q)?I6q1blFpdvE)*YZ`hpE4z&~HL_`C#EN`{ z+c|Z6gS>U|@1`)Fm{=0~`=h}N<8nZJDK$L!2~xQApOqiB(j0BMH2T{+XLfzh0BW1S zvV1Esa1$J7;W6;Z80{v$n*`s<@mtz@4kc=hi4aO5PyqOVJo{0A4TuQ<;Q%Axa&DbM literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0438.h265 b/samples/h265SampleFrames/frame-0438.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6ced94348a2bf7623ff2d22664165339fb418c28 GIT binary patch literal 2087 zcmV+?2-x=k000330oAGh)I$OT5W!z7It76sKoA3f@z4qaz(b39FqtI6MZm3OC2g<& z@BjL}vW{>GF|4A7ODJR~WijgSLrgj^v4%t8P5elF$i|yZdKThx z4R@B)+G&%xdj_A0l`Bm>-!xb8z9sm0`&~h{tN;EVQxF&ou@^2k#1+6Pri^H1dtJhU z`BlpEsqpXE%VK1%9tkrjeuF?1w5zpFU{DW@t{0?m!1Zo6J!T^CR;$i*Q_^>uYifLCX0j@pWLZ+U*u8Hd=o+I%Le|3%;*7WHc0+| zf9B6sRRpN~tmv@j_mj9__!OA4)!*!*TWN?1yFm+5%6@p>u9{fjAu1J(w;Pkz4%{CY zJ;87`eNgL0mzPdE!W^2r{L53KcQNdBZXDaf){k?O0Ujw*z>WzPELvTQLD&kfUhk87 zBBZlX?HFg{o#Lp5Jzyre)K=^IeNsKLQJ%Jv8RKtXc~Bz-){1XMU-oFoRy;!oz?hTt zsOW-WgWfT8leAF_3wW2c8|3I6Y{zsSP>F3_fh&B&+i(IA$(cen^e0DOm-+JG{Vqi? zh8d}D0=qJf+;o#=J(K$5PcQ;@s4B}aCFwZNW|&{D3~%qaIeGBO|3#Y7z4&NdsxIs! z4aYyL+f2nKLH={*Uk}{)%rY-Tgr>fk_?aEF57&NAREaQJAK*437OKg>xhbH0Pu}s^ zthW*sizzYJQ>9Qx9UAHj5(1*qXYaga8Uj8vCm`<|6w|?5ub_N+0b_Uf-+kc|JQDnF z$QivNsvhc~Wg(I7;OyvHNMlt1b277BaMmqy9Nj+Ru0DvHr4 z#Go`NH;_LXXszKzOR2p!B?GiG1C4%Aomdbmk^^xnSxYBK)*Bua%9)(q<%)i@p}Elq#D4Rz0A-g#dZuRP)sxr$CY0%=N53%LJcC|Y*qLd2|IsC)iI#Be9iy>0|F8bglHgS zfV&h?P3laq|L^%+=~&5VJQqn=$wEFmQNrUv<+j!({~ztw;yQ!p_*}{vZIZ zg1PbXQQ?oUATwCKHONL)ULQY4U~q;n%kX1z$<0zv%N=)#>J~i27Q&~B*>B>U3$LAe zGaV0=9EbHBCIgIuhbFl$^mbaECAXuj1jw2v|JS-pL=DmxZ6><$qUELzHc(;T%gC&> z_P(a;mu89G!xo2*yCRb7g^U*TqG=!h<&_G%d#W&(?xQ1I0NsKyai_ocSm|!MD%?hAN-J zISSH&(#ZhQ84A54MV~GQtlN$DW~POz`hu4di_!vOddGksA&`H9Nk$uDn81cz7(CO= z2@W6tEYiCD>B@e0NoO9a@cJnq1T%RKu<*?KSz)^7Y2KzCYn$l`a?vf|p-!(}>gzSy zuin-MJy~_7C~CIp?5GEKU6UvxIpk*2TV2jDZDt)AF`INd8kDi~LBJp+AU^Ry=A4g+ zyCSFj% zOas>)MlC{!?dT=1_R{uX7ZMfQBE}?^V1rnN2!dEKi)}^M7hCR%EBL+Hgr3n!)9STm zjvI+m$$0Cx5b+1_pz4H^hFusC%fOZ4iHV#hN%PBRA0;^b5d>q1xl9!l3On{QIt-eW zzUd!LlZ-tOsHZuX@tyv^MVQXQzw5MI^O<>!o_4t5@JO$4uY}MMhxJrsO*irO}cEID(V9r&2F`mgZp5*jepwJJyk+@{j{h{3c~My5LDT zEN_U!F>W_Dx7uYa>7LZmiH5X8*4XRElPTCNK-vF2UiogW`33#+cgZ{(7fZk%$(~@I z8e9NW#4#fQC7}{;7+xGCa5`cI zjzQ?_+7v}M+|680;^HPeM_e{iGRlEheTzddbapEuCFy!R9ts#zr%Yq~B@+(_z=d4O zp7TDEEE%~PuzZ%PBt$q00AgqOKQ;p3h1Fzhrp13+`AlE@pECanbc-zj08u&yN+D1H R_<%h7QGgAI2>{^$BjCZ4=HCDS literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0439.h265 b/samples/h265SampleFrames/frame-0439.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c7ad7f5cb97f1b73d1a7ef972877879a6b6c4660 GIT binary patch literal 3026 zcmV;@3oY~j000330oAep)I$OT7{PSmn1HYn0sue<0PFMufLKF|c`%tUIbx$Uub>Nm z|AU!n{qKBhoim@-Ja=z+&KzodnK0SAAV#7EAJ@xUyy=WDNd$bNp`1lE$S74AO~FM{ zvmJ-;zFco?+T_*CTbsZCTT%}Lj>ooPV^71JIonjFQcs0>o4|N_%@SLCo}+K#HDg(R zTB2t$vEcfu*;bcgoaXwTD7rvpch;6?{J;DI`a){co^a?;o44H@J3c;YS)Ay7;{v^@ zGeN{kM)UlkSDk3&1MMRSK1Xb`Ass1akeRz zS^M$GjQT(eNwJ2YLb!g%18yD#&9>zXN-aK#iiAKD?{xemlQ%{jT=@gxVfe#b!M!No z_oSRHrFLCy>R}~IIW)R54M?jT!mmQhXwPwE(+RPO(vm~3Udj_M?{Hp5yQER9QloEZ z(Cpq2+&04AKE%#g)2C2~-lSwqhc)S)Y(6z27)eZ<9Q&qrrbDFDQ@NF4IL@+|W@0zf z?K%hi-`4!!iSyed_^*X-8K~{>{$B4{g*hPVqixhKO(rlr00UuyCQKl(Q&N{l!tYuo zV21_do(bTdH|xdHk;x@qQP`{y|UaU()n>@_#G;Qs@AUqVJ&{ zCKbyeHx#~b1*g5kB+Q^VW|z1f z$_rza1#dfT!_m*w!99Ee8{bQqrzL8LV)W`D%Yyq8IRe{Cx6e_VEhkFXDNqf?o&tcy z8Jdm~{5+4(wXJvmPz#fgu>q^O@T=5&}a z6RTX+0=s2ojW)UGf--@KN)gF{ZT>H7drct>%uf&_VKd_=`u&P)g_uT?Puzz2`7Jlv zUzG_s4etUjklg2}RiixP(Fn!+qPf`Yl$#BcCk~zWeUNiYtP??}>7`004p)uZuT31x zeDLNJF4Hqhdvh{%pAE`u%EEB>r68?!D_m2U!@yYPg$Xr`e?<*CsSBp8y)iTgrvl=I zTpZ0wg&izpegM5EA9Iw^WhHnsM)jo-Dt8RRX4hT!w^oft;vRkkBt>C*GIi{=Kd`7V z9wKSEv6pa=Whr$%scvD9F0OAiR>fJiSxW4gJ)m=odc9Wx09LGWa?h^ZI$gMaA0oOq7dv@2{gAz_%r_Rec_ z-HU$eH2zRlU{IQY;LI(Tpx6RIjRh#b+T3#-iZ@k+PpqFdPbU>6{yYHf4|~v2hp)CQ zOAg7&8?lg~t!^-gyJb^vQ4+_b85O+J82LxDI$qggOQ%fH?7ga^7fYAJFK5Sy$Fz^3 zj0gP}M}oFr=*~oDd{Xb=)v(V~aG1VgIW6AzjQe0I2xnASYIjA(sU=fh@(#Bn#Py7o zvmrf`bA<+YtE9JbUT47g(=24x$N<(SQ%Sq0VDvbZyCO7$_7P2zpL7-AH+ zdbB^RV~rG?OMVj?^rMSH*MXr10HsNkF9BKjM621wdEo`XaIw{Ua+gKvJQ`7K%zD0ePh+mg+Kn>u_fu2^aPAxNW1Gb~Gq93yhh#8FXdeWNl$-{&l zJVXKy3>UXnJ4*`D86;95*i1c-5l&bC_xmjmf2&AQYU;=S@f;1M=EHdKKN*)<;Z3lJ z77u9RmSE#O^?Cv^+;EXRut9fQ7Y5rb-S{7Dz(i{{SEX99%RT-o8>g_px?v--1N%+9 z#&?e$86RpclmCZVPFQN1`mt<0tybMW;Y)F0K|}#i1h|b?GGLkjD;RJGSM60YR(+eT z$0tJxylDGWB0RUp+-ytZPJL}=CYSz#^nu&5&QBhdqVg>vUTIbvg{-=Bkm1X~Qg>}o zBr%2U4dp)>V41iXXwkarbbn>*DMgyr96@o*$YyLWwOT;MPzlQO`}kP-glJ?`}qEG#tJ zX;SX7(O7J0;~KPi&v9pTF2J(T-9sAuzwVqfI5z+-UK&V-6;dLD1ImjhH}!1wqjRPK zZ+uxvdB;#=*W2n{mShHItd3lQ(mH$Q(wrUeabtxWAwAY72F*2f4kh|^JE{aMzxrjA z%|x)G=^QSZJ9@?_7M{S{Ht(Q3jn-M3;}WRriKoVx2kof_MVTYXFxs2gpClSw5@ z&V=3J&XjK6U+4k!$vTMH18tzaAf&_p@*>Z$w|~Dk3JfP<=5My8l+3~N7f0d~Uk-G& zE8fkP1*Pep8P5uosnd2iO+Yy-ddA5aI*4*YUe=wfUNP_&h_6*4`ggXOJ7aG;-UCh& zFPy>ek3k3|;6Cv|=A4g+yCSdQ0YEDs|4ngmvISDj#g96B>^LsxhHsm zxAfwxU6Mp<)#Y();e9E<4p9*U6URX*bUxJai7rQ+&L&{~=Me+R`VOsI_ zw0d;(0tM7>J=&zAj(+Do5b`jWBo@xlAkTP)f6JeC9LZ#X5TM3ng2;wi`k?QHM<8u3 zLv_m>AYnUH>tT5^(!Z)3fVisq310+7tI zWy9t1z$astD#1DneNB&Ue!Tv}W`6sqeQ}e1fDMK3UBX)sK#dH?kKw-#Mg33#f z;>cb6KOmph&G}D5rJgu01{76Wfo!nEFymr}++qbs+{29;DkBT;RYkn7E&ALDL5ixP z*uGo^x-9<7=B$$?4L`Y(84*WTbxJWOYFBelo5;wTU|moH5)O9T`hA^vN;W(W3Sej# z|L30psWlpIOgtdzz|q&9!>z{}Ik~@Z$?BVak;b!vJFqvTiNYwH29!uZ zL6&!U;y-GT1)x`}()UiWEQJ!HOxm5-QwFVLL1Kmpr--pwGfg2{`>Brg^=Log&%FA> zp8RK@S&zb*eAks67{y&-bFe<|0Z}YG{ylm>rq6g3mE7jL-ud(bnjjvVm@T+uRM?Q? z4)uo6)1L*6p`H$XQZqqmzR>=_e zD_3QWITh}eg5&O306p6K+H5Y6Zr8D!1{6V$#!`d?MO@8OPJ@kTe3uGYbre2So0p(U UAy5F>fIRzAfDMQV0O0^5;6#MEx&QzG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0440.h265 b/samples/h265SampleFrames/frame-0440.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e58d6b3dd07661f08a787cb68568b57b53f417fd GIT binary patch literal 1937 zcmV;C2X6QP000330oA$x)I$OT5W!ojss(`{KoA3f>*>e>z(b39FqtI6)XriM)+8=V z1LpW+Cp=7R;!Ejf{omX4iRlIH=tqAYW0flb23d_rcfdTfqiOT0D+5g%5ipP<0B!kn zpJ0|m><)XgU$E#<*0V~Hcl(7~Rm4CxHwU3Z5Z2m#mQs2_o;37f&YJSU(X~>aG!~fTk=C~T+1V9M8 zw5+ea@aL}~Jmt{Vb{765Gj(#AT&TVj;c(H-{l}hMRN*tbMTw5 ze13AyCNHd5meRf^=~_y&u12jb{IFwne4QGE-+$TCD4H(X{2yFbub6MldkGSXl2LI*kov6X01fxs`x?JPocm z%>|5e2j%1a@8q(&+t=!_#5K2uFIaf)u(uCGVIEUOs#!qY(<}3bnFlmqd!qt|L4rfH z)mS`Tkf?2`sFN*?xG>@fz!i7?*W266^LoE=_GA46`$fGUVfys>QNBAh@N95fEs6ovSX`O>0j zocnohNZC5GsX#_~6z=(>lwi=yYkW2!e#)UnoGqwR-}epGYm{mME$;N_YHr}xF^3EL@`JvG#sy9wrBlwt9k!<)mG%2_T8Xd2O?4t!$2 zs(u|5R`R)0-uZ{ny1PZ<=CblrE04(dOMm?GNz~yw_6u*H0m3{%q(;=dyy?PT5vU0LX=rM%H>?cw^1~{;VXLbLbXBjT9Yf!eFQQc!i zRs*WY%zqkoC9B#LRF}+an&qv6zHw#VW8K0hB5e)u^2Q@%<)kF55Z^{hv~7C3CaHks zB{UhL(IYHvM{kGN@u&Bf$nkLT!;lHR1GvJMt-8IP(o)V#-{-AYQ6#8Fv`H|yW7YS{ z#i@^xm-Y{Nq-jf5E%1K;82)LR2RBbUqJ&i}v#DE7R(pIpI6d{Uc!Vti;3GO<4hNbK z@qqY~j5q25&|>_v$%Q0FlY!b(QZ=RAcuGw0E^4e|w%JZ~pofc5h$SkBRD!BPehr2f zvd^ZO_kk!=InX^Hre`Z3+RZ}<%B7&_NPSXog2dAX0kpUUveX^um`sU8Lt6j=yasw| zebL^$i*Stiew_zy(|Wj-7dg%t4DNjm?Wi10{dyi}PCp%(axoZ6Ay5T$bhhz%o7R4h zR+&hP+885>nkoFaGer<-QA-x6{*h7N{{Omj+Ge>P;MFnS_IQTR11kPMXTX+GRK0Y1 z#82^%MhZxImM(({rSN$OXG5uPwV+IAwyB90)=aGOp?hf1g+sU=i>xHKf9jF@lUX0LRjPVaFsrPoFJlLFN z5+CBdA0a4OZaKv=V={IaiFJ71OMW(Unnox`{V&^s7}XEUu-OuyQ;m)E7)mAZ#1Hea XCzx+q8VPH^Jo{0A3P=e6;Q%AxRN%Mc literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0441.h265 b/samples/h265SampleFrames/frame-0441.h265 new file mode 100644 index 0000000000000000000000000000000000000000..261300e4620068d4aeabd6872471ddd336b74374 GIT binary patch literal 3153 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0442.h265 b/samples/h265SampleFrames/frame-0442.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d7f9fb56de794fefe3d09b2dae596eb6077a16a6 GIT binary patch literal 1637 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0444.h265 b/samples/h265SampleFrames/frame-0444.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b78ca087729a972df8662cdbc2d7758558dc7d95 GIT binary patch literal 2624 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0447.h265 b/samples/h265SampleFrames/frame-0447.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6bac150db63ba7ec70d3bba1881c65fc2f0d83ec GIT binary patch literal 1839 zcmV+~2hjKc000330oC#U)I$OT5W!jcOa*};KoA3f;5uxUKtqdpFqtI6pxE5>zJ@ye z^blZw!DD;Ti-8)RGo_ElLcwslTB=^q7<_L%fAI^ppz^SLJmb)w>Ey|VG!5*a0rgD( z|Kb2ev20uKggsOUPFjoHEB~@szpvk|<@q1Mq4qwX^4K8xpNILRF)@hTb@)a)9)cl+ zZ@?m>A(nb}IsUg5E}e}^j0(|beHc}((3&r?v%sL|M;lG&MIH7b|NrvuQ|`U%(fMtM zi!hS@-mqfqW$>}IU5U+ER2o9N}%H)fX{ zRiU4BC23*>X#DMOK&ntd{N{%*DUEah;P!FK6+u_vpYg_eq(OcxHQ1cSa38Xd7rSA0 zOXOumWKAW+R#|NEzDYDj^Yf<4cAg&zfR{P(hZkCW=w9O#LO@WWJ_ItA97eWKB`Xrr z9e9Y@0QViZ!bgnzu0oA*I&f-ujB0@n-wPuZk8aHv1Hp2g!86qU8wWHC4IV@ds=~tH zPKxRJ&xJ}2$r)x{*CpwJK_%5bqImQ^mOqZm1Oe4(`(?8)jz@E@XTOAi{y zV)!PH#&mm1$uK~z`Q^tlsSnU6arb9yT-6WnpPfQlwKk(D75cKJ)^zeZUz2WD#+cL> zQh|iNy(g^wVX$C!uUpKAV`WZ=vp4WzbmRA`YP}2D8 zH6!r7q?*#40DmR+=WIp#|%$xfq1hD42d^gxe^%rXMQ;4 z8r^adUcpengVPisBmId{NDH$AVgLD<0Z#fd+c^d&qdT~*i346I)DWgo^gsUSt~1sQy4@ZMHGCJ0fPqDuxE{4BR|z8CR2$ zRO}O)R42KFnsM1CoPVtzl**ey8|!vH1$Jf5Gt~@#V=oYo`k0KIl^l)WL!rIy%9^4ApFnC)>+d~$i2@#LC%SS{ba2Ww5j{5#P z;Vc{*nYDk^feQtt3;Zj8* z<`i@OZIb7qxQgTwOaK1=_i@dAD3WPuq_FjK<(cmxOUP?GF9m3m!-x$AQiZP@c1rWq z_-?B><-z0c_dESijWr)SPd{!ao~3d(jBDOh;Cey89G_O*VxmbV>-ll0T7ewgPlvl1 zcZLH%&#d=r_WS43&1_`~&M=dL`+%fOW}3C1!xF0AXmHf16j-|sv5N<_9)vO-RLSdx zaet@0Y3fcD9UELukxow1X8cC!Qs+4C?WW@^-{1+fi?9h8ScjiOHeA>NXj}qhW18VU zQ+xD#Av1!$0RXJ7H`)7=Kfp8KKJh{3oR5gRBD+A4KNx(0ODqbL2^A+nlEydtO+$-j<)D z?8w#SLRuP5qvQnj2#M&3oA^}jSC4PbFr*eTp9I`MW*-%AoUx6$*Y0B+2 z&MC%=@c&yR>(%^TO$wTny+OTm;KHIWfhXb0V3TwVY~GNjy}XrVw_*iOnUAJLW3QW( zf6CSRh9(%*vO1T(+j|$+Sq7+TUcbw;F|?l@k27@}TH(7X{A65UMGds(eA#HAJ)C@h z7=xq4UT$(bi-0Ts(_SdM$FjsbCG*xW;!j%9Q5u#8224rLs)J~-%d`xM&j$p;el6}kYUhAZ;tb!S1s1#|JuXhMN9MOq& zET*}%a;f7#;54=C2`s(h4W_NwsNCaw8KxCJeIsupXYSX3sda(#BJh8)%CM#$eb1~yz|FY;lw-q`$q!gbnDGAz6x*C$8mXuVJEpYfykHd}Y_2>{^$Bj8XPmfrvX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0448.h265 b/samples/h265SampleFrames/frame-0448.h265 new file mode 100644 index 0000000000000000000000000000000000000000..edd2191db684b11041258d8b867d06207a80b9f4 GIT binary patch literal 2149 zcmV-r2%7f*000330oD2c)I$OT5W!z_QU!q^KoA3f;5pvAz(b39FqtI6)K|nE7?FW% z|NH;`uWX~74cu!ep_0$wOA$mwbpkAl zTr*SnCllNwjKL)z0yXi|T|!uH9@821PF12xiRM(@;eY>Ylo2>IO}>+o|V1y5|YH1O!I7+pto~4#ARi>+@=r|!=ZILxBoGknJD3kD`Yndb_E`! zY=YuS%Q-SU&4nzH7g!O(i^2#B-B>x_|KrUM z6iA&u{>Sd>`Y<2hPLK+Zwg}FuPZ6#{#&owU1)D`CQ8HQ{8RyrV#X$aV+CrnJ9msnF z3mabXNWyg_3j=u$WXBn8B9ED*l?-GjL9icW4|NUr&+0~R53L6mJaQIf(*^#;zk)|Vh!#A@)OHt4O zN}E;vgr}KbYNZ&a=+^R_U7;!`XQ?FR1sRJ`Y!Pd@hb~Wk5qoHZylhiX1#Z59@#F<^ zhu|IohOO(Y@&RARZ`Q)d4xFIsN4tZwp=l`lKXhwpyFq^o%s|uPshiJ&mExHDYj(&< zo`*S~b-gV?vrxrWAl|Zt(EST_>DexcKJUKDosw_@8-A^B@3v~f%m-T}D-sm`90P=*Z=R!2hPsy{)YN6mNcWe! z^>Bs5G3Y?4^55z?aG>5m{Ar@Mg%vKQ^w^XR(98}vkT6s)jBWz~S`GY;E{bjqJ9uKT zEDAw)Vb6=zHT5b3A6Zd%N7l{d?j_tE(;LWM0&T`wAw{3;1o!v4fMFD@hrkTdcsw`G zN_HW!SiM;2p|e?cff)ct(TtG_dVfebUnJunm=6v_)v6+Vs&OI$zo>(mE!YP@#uspH zNIEqp%S8??QjF*x4}z$=b9*$uA*0`wg`sG8Ay6Y3E-1Wr9tCe?X>_kS?vn7A=GQP_ z001PQ4uohRWPrN_1vjZOzyH7g`u(Goppn@DqP!#0AT>Tl;}plWiGRoX_xO&m`TiE@ zxL~W_`LBooE1<4?eADp9+7KD6UaKP`Dz6Wpqq2BI7v=adxg6%HC*_X2#PtgvU~6tV zQ!j;5NQ=N&@V}KDjsRehWCsq?aYm?tUAZ7}h@^)0vMQZF{=L##Aa0PmX*Ji2Zoz;B zI4x?y&u36g!f=@4!K+Z@j-t9DYd9n=TgB&ISkSC4rz1(j(4W=Ubrn&(V2OO$;M+}M zag^4`<9!!8QN`sHdFy|+QNqCOLf<%Q{WQ~4`xg9?{vq|QwVRX|8D5NO{4@|!bL61< z{@*|f7^;5=Iz&+FGvZA>mC4jhC}`dB^Ygr zV*(j;VDnEfBshQovr6mtrz!c}C7gPz!|0@Z5Y6N|!^1M^ZHDWar+S!mu5Y9%%S5+= zg*v@^tE|^*zk661^<~zSp{m=bvY;K^c1)m%=aHL9ZFe}qwU~5d#%<8-YEj0fiU0hV z3*>hi!7xh8?l<>erbByz>W~|N+tcXhSiD{!@JH| zqdr8Cxv8qi%77wW&r0N~;Hi7|8{4lbVSX*f+j!* zdK0QfcZxsaTjW4Q7A!R26n_SFw^9@2W1!}J_*zg(HCvsWk~&a%yY1Ya1+hy)YiZDs zg%*a~>5x48QGgScbfefJ&8^}3mNfm36d$9fqVj!=2I$k);o}h0X16v@QDkm1qdfVs z8F13R1D+}Ob-teIrmv%GrnQDAZIw9>`E#3Xv;QB?H zp2EHaGz~F?O_Yep5xQ$+&#+k7wn_jNZJ6U0q=%%*Pyq8gff=QlX?iH1JFPeEU&h_^ zV?>eiF&5utNWg^|SPSlu^SPN&!2}ph2>-@2TZHsTs}acEL4zE z_y7AOlyq7pbG+CMVs^s8*~b4r(dEw~i+o~2DT9CjZ@<&k=}IaIIbpWF-l5Ydm!|0D zt?-t#nr?^+e(_B>BE&8fQ;xQmR$aJ}|1ML;(_EY_fBU=IkG~2$awnFwVzBbW&%mc< za?`!@U1pCAHzT{Bn7jDAx~zmJLP61XhdtS28aSo>6;I+=o#ord!Q-bKyenh8R6{`v zOZU-O*jE};)3UTS&I@v8=-co2$&JkbP(_Os2JyA&fj=)y-ifm7_c1QE92)Ok z!R{JtaqGC;bq&V2jr%Z%L3EgWdL~Z4{fC(yknw2*nsCyL;b;xZqMEQ2Dk_{JwSH3T zFiteRh!p<>op?3W=bY{rgh7KxG&0WHpy0ObK1nyKa9~&xC;iUAN z$y*%fcI~A{^uaWLDgGjy>*O-o166%WuAf*xhg3Q+6AQ1j0~b;AcsZQ25sIVl75@Pc zFALr!JCu!HwJZbhKlHGq&`36YokllhEDg_E#IM)D?wD>GXmQ;OVmUffEQ61+m{@#e z0Gds9Ra=-_9ul-wDoylG>VJ}8<1pn?wzB;>))JT$++lL1v1!+kM1vT+*DKZ`iAKl( zDzXUFJ&k=Cb&%7|yTEzn6N|nZnNCk9l^3mebd;_b$ zR|#rbxI0yT{30)4M~LjKs}RAkH9ziCjIn;Y0t39xgcylBfoQA}9aPG|8C6y%#5N3r zGUJ4^0aY?b9k@Jy!vB=~kHCDVX@4*7{J+WgQvS>PwMUPojK>ah`ZR+*!BYSEYB{R9Zdba8~<#(-mfiBw2{LTa8eo{}o zpFDl-o0oSEuzJ-tK6xd?e5J|Izp$HHig)^7c~ff^xy?>`IAs`ydDysYpp`@XM2Nli z)Ji;-!v)A%6+WsJ0!__zszIa5aed`=IVBm0X9vwi$Cp5n7VBggps3Blq{PUncSa%A zhkZ@V+qz@nr1uhc&4XbCM(hkW=>YNuUMves|A!*K&&HOxX37E)(ZcBPF zznragB#_=-wSY;@s!hd_9~q3klGI(TgUTnkze!vnr98z#*m;}QMQRA*r39&K z9^;csm}n6lKz0!Y+BFf!1BGgG4-uH&{h9F|y$o&dDz&~%z1}2ek{<$bqz=CyvxEOJ zlAj)|hXYU}@&7GxjAO*!TbwnZ$~A`rE|bHXPlEtdDXt=}J1r|DyQ0ZbuU1zhvjR6z zk*S{(@7)UMbzydcBLXZBu>tSSy3~e8B7t$IBf)Fqk#*CRUgcP(2WNv}mGE~xJQ-<# z&ssDcyNN&egk-6k^Axu}1Gm&gTr~bHm9Wm|^<+YAE8>yly@hLz5i!~>c%-iMAc72# zDgRY?$qN;4sbuz}JTW$ctr${9Cl&ShFr8qMOTx`Gf5$C1T|e6!&DhWx^Mi8jB3xr4|!$gCXz00RI)zz&3HAY_HVDMvW- z-ff{#QIE)f|NkEmt2HVx6Pb>LVgZTua;_by@;K>Ef@7#*>CZ3PFa5bP+hRW0A_F13J=4cm_iPgaIu-* z?#XiHM`?v zP}xZU9kPgb1_0GyvB0e8{G2%hh>r~Ll_C6~s?#iKXD|FN6!3jiXR*zr5K1xdLxDo_(QBk!%cIg2L*~1w5%gUi|hRC0T zBip1yC4J6B@nT+8yJU*6c-Tup#VoUgP`{&OA0hG)^zX0j7S6x7U6!Ejrgl4-8`v-$ zb4258HT;rxn%d~1v%6>?PV|*_9idg0FN2_Ly%qoxT|~2X3^AHJw)k3#{c`VCi3zuT z7Q1UmT21k!`B8WIJNAdBPn#dmVs{afb<#klUC7`Z!hE`20>X{qdg5ci&!N)G>b72s z+x*2;J1w~dipqzsy;FU6eK|QoOR5-QPeNCW(L@_K7kH((IIDn@!6|ZE)xe`o4IQ~8 zE%jf#f`^V4efl#OmX3r#dBDw_DzoFGist#JA&X`=sOw%Z(OClIn5-K)V<;ysngulV zD|OCH5{BQm=&4LiTNTZ%Bj708kCJ&PMsG|Lo8r_?ZN$cT2iR_eUki5a)_X)o7?3{k zLFSx~h`S=YK#)Hee1S_W3X=&HC?1KdL`oJDU@Mky^$<59r9dqWr-TC3T0C8?2*4cL z`(SKLS4;xb67otRPy*2jQ`t^pPf{Ub9yGS`DPX%58v0~3CQ%NUh$tr%mw)ygn z%v}G@FgHTGtPe5VZPv^~3)A_u-)G}@O&3H_2i<1{2yBt=w(>a^m0Vdaiv%~GEu!Mg zPFDPHDem3V!!SU&6G{}P?~M-E9eEf*t7}N%eu~J{eEEj|%)eEL7H_4Ok&ZHCn zH`yi+Pq(r*)cw``*MxrCNxDr6I4=Y{X*B}n2X8Gd2E>X1o)kF2E;s;jPOg_^wd(<| zG#~;ENq@pg2|R`rlx(;@judOZRFxh;L{;r${vYz~8+bQ)ce|8NE-pwYu;lVijR}3(H^Cb{S*m zlNbU!6B9ZK`$TRRU$+aY9tj3B?VcN@$Nx~WJzDP2v5^#@S|Nol~D`jW_ zzEeV=!pfYq4(z(_l9|u zM!sfzae8X3xd9sz0(U78|31i-(4TM;*#m3Jsbt7zYjXtQL;*A*Nd$FVoD87Dhw1vO ziexQ}dGeDNyhTWldVe<1JWum-s}I0nA^Wz2UCkCt5D`d{ds@wxRwbs5N~v~xz#3!( zJI_R3@v;#ex+K;9W+yS(w_{7S7ITNd^8tm5-B5RM4V^2_7(F@o@XM{^$BjEU` Bm(TzJ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0450.h265 b/samples/h265SampleFrames/frame-0450.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4f10333a4bef39793d9b40d9ed34462b2a7e75f6 GIT binary patch literal 1916 zcmV-?2ZQ(k000330oDos)I$OTFu_{lxCMbgKoA3f;5ZQ}z(>M^Rep{l%Qsm<9NXE{ z;p9Wt(0(m_nGgN5QS_0oiDX}woBvqlO29#uTv!!F9K#2(RS;oJLYt{J6Zixd`H(Urr^OXRMi=)tCgtfk&dE?tPf zB>Hu!YzoAx0K161^hg%%mJ9#uxq<*eT!h+*^qy|;<9zvyfcru+E^_VZRa5Z<>WB7H zir#oZVEN4`8kEkVK%Pzw-oDO?ri^Owm;zjU9yJCpc;g^K#J+=8zd~H-S9mJV;Qlyg z{rWDU-00sp!W(o>Vw=3EH_%ZY>0$|+C*@Z>m)_11)Z5`hn^RwO@ivdPNlZramBb9tx7XkW2d%vv1$aJqtQ(2 zf>w5<0Llj~N|Z!-K7$h>#W7ZWZV12ts+FG9_+UWaCG>fqc4A7o37#xK75;S`xI+oSUaLI zH%5qaGPf7=dI~3OCFlceHBmnDFrm9)Ray0Ut7OM{Y>QG9Y?>3~UbEu@dohba=umc0 z(^DTMj`8!T(AGgd1+W{LSO-tQ+T)DQh{rH}S6Wl4Wzx&DV5bh&x`M|awmXgLaU9a+b4>@=Nt zLY$o*h>qM|$t80=t@?4Ee}8>l5^hlHDWf$IG1v(y#8p%dWBj(=3r1Lg*zBBY4XRDn z+Hg4h$%!IDRRgLnOCi(uveM$%=K$ zH+dD&H}^35E%_#C__Cc>8XFahUv$~-wD>|KjzUB zbmV90n~f+!d$I?^uQzOVB;gr>(~hwvyO2$9&D9u&tO&%&vsFrJ@u6y_ib^!)8=syC zndPcTeChQfSd73xcKe&X$1^9hh%A2!iG3nBv&MZb@56!sE*b;GYiN7`GxUEVKq$nj zDag$a!yajqO2hyF2v`*nDFV|4?g`NQ(!0c;{{R1=*r?-pRIOW*el6d%Vt}V)1U_ry zJoJnbC3=BgZBt~Wg;WnG)xXjPpk)bC$|)YPg($LtSQyKj2B2QxE>&shf_pN*=2oGpzF5asz2(;0M(uVEfXyxACt8Id0gTmm|mTz^1pJ+Jz zKj_Cpez@lVWQ;e+iL5qDdhSR$fEk(85Vss|OEz1>M~u4+@hEsuh13*u05tlrEMKgL z`(7?7;E+u_b6ut%y*-LeAb?(Y8gMx_dk&iy(}V}jCo9V-LJidx{S!=xiyH|0|LK)_NLbJy^H{lz{1{mo7!QM~y+01bFd zHOe4Fb|!2w+1AZRU0@M=nPwu`1PKThzfImA?fD@P6x6I&-fr7VX3-R$~w}qBsR>PA}zV;2a zUy5mu#K<($#wQr~a#@iCJ}t0JexL=3Sh{$Q+sRQnK{s6>clt&-7<-ie(WK$B?Qd18 zMw}Rcp?*S{XmTb~CvKLpezEWK%9_w<&k)NA22WGHPdR8M9~aAr-K+7=VLk&n;GYm( zMmf>Y_hO&9lQe;20s!Q;We-dT$Rt zOU9PSTLNk>G4fV`NQ8|M?Q~QKO6-J9R;5cgwJ&5bk#)X2P!alyQ*18?Q?7|n#U^&m zs6rQX*Vhjsd2;2CJyO@}eoxjB_NhskXA~##obsHfl*HEr%>Y;CKhHQmpgI=z=&oSE z3fepT9`Tu%xY5oaB`h{DpL~)5G6?uy;utbadfoL3{U6%$cC#>`Bh6!jF#~4aBWo;xvVAFjFW##~^&1QUBv7S6tn zcXMXU6dyk8 zxBQ{C@ZSJq`ze1NkToWJi-$i(hfzk?l4VVp|5cGV9up6L!E;;a3c1WC8{MV>pC4d8 z_p}4GsT*!bZ{SGI??o~fSWY!oc|#w;o3bSHrB{wty;*{ybvUXJ1X4v(>h4SWH{==C z&&Xf#T_0y~sW_zw>paL!m1~CaAiu&pVMu3O-xNV9wh38v03+b3 C6`^bZ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0451.h265 b/samples/h265SampleFrames/frame-0451.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b6a8e58fc9d5c92e11830d1cf11ded0a6f80762 GIT binary patch literal 4558 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 P*H99<2xtia;Q$RNP6tIm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0453.h265 b/samples/h265SampleFrames/frame-0453.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8cfd08554d12c49172723dccd11c58f86733e696 GIT binary patch literal 2210 zcmV;T2wnF8000330oEb^)I$OT7{OmVI0bGF|4A7ODJR~WijgYYJFGjWBI1fS z!an~|oAkwjlco&+7uQT<+N<4{dg0FHftFAeb#0;&8 zX^ON6W&1=viaTUCmsGG0Y?(d7~9a}y15`v2yMcAF7XqItQ}X&N#&zY7DKxKf8P~ES#;#M!KU6v9I?$LE}yB*I>Be?1~yuwkZ({Rb=2?l+ZpW z?|AH1TZszAl$h(O!)qDa9uKtjG94|VtOVvG#iNJrP9xS|1L$jDlS=$M$ZHN*C4I9d zJsCyxCV6ynS+3w-cTxYy{omj}N74LYA0PJL!#{8FpN)Ng`ThHa!xKE>*{v{cxg$VC z+MIjk_KXeAh^nNd?YN&^fDVRZOaE;L!xPJV8^0Dgtl4#R_Y;*FGdG18V0u?~0lYWo zSN!Mvd-(6sdVYt={O9B!P4seofPG7*aX`FLGHw$c7|X`kIECPdUYNirdiknS~p}yGu+Zv(X)H(%~<12 z`FG62ULc#0$9l!6NBs{kX0_X<&9dt^^l*^A7=I^tB6M^F631W+(s(>K&PsM6u~@xW z=%KS&cYzrIN70Ot3VMG?IA0{=AD9mgMAfP>wkYu;0>7w(nJw4{K*kqvZAdybCd)+* zEmDl=91()3x^sIpzagXGly%WZc_C0E87?TicOC_AWN2cqIhp~#GwP5(KmY)mfDVLc zAY_2MK$5f6-lWR^{{R2$_KsG9M`Q+n-z`Xh)XaknQy$hO{~zn$;yQ!p_*} zz9ayyg1PbXPs1Nzf@ZOLYm6h~g&sS=;H2Ffv!oEc8p0vab}9&}MA-$QpcXgUQBdf< z*zguSHFSt7Woo_>1BYoiqkC$XZb%$rGLA_sWs!0J+}l#6evN>ysZbne@`95yC2Z(A zs;I!UwGvg&gY``zq2sQ|BD&!s1-&Mc2M8GBITT zC&HNY3Yv^^Luuc`PdEo*-S7Me&^2>i;ASe^2ZSyp3S5`~Oom4WK>tdHe3lZkEYk&U zJ(u&000fO@T)X@TREs1>ezLA_28{n%yeoor_5@{)5_?vf`_lAJl#Xn2P3hH$Q~qWv z6P>*kqOJEVl779+KgVAB{S(gwRRE&K)=L@}rS0reg;Nu)ZpH5%HLOW(0k#T;4e=i0>`tpJZ}PH$%LdBrWVuzQjzjIWKMM9k7t$g*Y@n1 zX~r4s(trY#ZJUAdUrvQClhsHN1OdwLd;`om1&$W%&!Tj}(Xvw~Mdo-d7;dw}9^{aC zlHyBmvZum4deyL{5FKRK$?cD2p)?h^8nX8gWwNA%3xfQJGHYR|>q_n_K{7-mh;bP) z@L|=z0PA4e#-TcBC)(`wAhLgXeRMyr=D9`l&l?L2>KSY0@SzvG<0Ih!YR%9_B0&IQ z{#X`$ykj?!dsX#e|TUyc6GuSZ*5U>gb?uS)rqH@O6%Srd?#Ku7v~1F$FIwjA^Jka$InW+*5miaI)DAxQUVh5G~Lo-rse zjQTr6usJJNGAcz?%#7lr9eK6Wb6oZH@+X}^wx)*VHmD{DcUqie+9i&@nD45qEiWzG kWeUczf?I0qyF*X3Z8G*XJM`l7TO5!&raS!!0O0@%SopO!I{*Lx literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0454.h265 b/samples/h265SampleFrames/frame-0454.h265 new file mode 100644 index 0000000000000000000000000000000000000000..06a3b7dc05413720f170a8a1620d5cd9d9e0ccf4 GIT binary patch literal 2511 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 Z)iVgDH>2c1Q&#|&izL^pj;>BWk$~_X%z6L- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0455.h265 b/samples/h265SampleFrames/frame-0455.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da3caa49aa82c89d88105214fb2afaebd180a188 GIT binary patch literal 1852 zcmV-C2gCRP000330oF19)I$OTFu_{FoCSeEKoA3f;5ZD~z(>M^Rep{l%Lv?9YJ3HA z`X^tYr|}C-w?Gizx|)8HHSsKq<>un7a;0D(%P=h4P)E%b@U8g3IRkS-Y#=Aw-J2_KHg6430$wWD4#qbjEq~U`qJ)5qqXwDAXElM=ut3lmltg_lb(awOIZ^VRrQ+An8v^R_U{amMs@UeM|A|GNrVs1S#V_&<&r z`@V~)cRDxDi|q3R)&ViU$;zd}MDb7LZ#Bs)ZG_Z-c>}^L))<&3bOoe#;$>W6v{PSi z4)iWz+L84HnSO%Ni^T!zhR?ds$M6olI&2b56w}*)GwEJx?&inerBmI9QU@n|bow)4>XI_!ktjpT?VL<2ZBUf^u1}D4LxT ztpDjEOD>h{H4KB7c`|tWxOy?`O=x5@yEEI{GBhZr3;jv7b|3C&#JrG*=W6HvvFD45 za7fp`~!`-;_+2bBXLV7e|f1S4JBA+;oKa6m<&=Z}mRpp<6 zCG{Kd8&yU6qOgAsvQp!vDhk&I8->WcFQjc@EdXlk`!-0eJ_yU3YQPps{a7s!_kz%- zYeqnU$?))VR$;-m`s8ahpIBYE!id5F4`NQv8h8AeQwMQ}Cbqx<{4obi#?kY+qqI#& zO`0sTV-jdUf($MOW1T)mcGI8Azq(DcUQiPCOx_hum3QxuVh!ri99R(?52CdZz5$3@ zJXplKf$ar4r6CKPnkp5+WG%S@{NX|1rK1Y_kbiee=8>y>-WJdH06a#w|7Es06B-=l zK?X4aXmhpd8#Zpsd#o)45OMf_(3K7P z)1U!)ut1-JI$vgD07rl>_e+fG>ws~g+=Y7Own#_dN=DA``tAV!1}mj8(ydE|9Xryn zS>j)e?#sCg1}wFO#NqIJDRqC96gm`b#dC~Mc-c(SfOrleG>9j%l*)YpxdQ095}J}? z0s*UfrAS@0xL8@|-|Wi;R{mRO4w>VZmsC}%&C~dDz)UsDAVhX1Y%$r^%|~Di5)xmW z$2@gFCutBM#ZMV}KrdDGw+LjB5}-2$Z-fHX8bo5U^?(g1zp!$uH%tQ567o;(z64H$ z_&+;QfD@PftrnSDAyf)+elj$}|EY5`ns>jCaUkOYvWIB3%CQ9V+O@R8qB+AgM)&*- z1lLAQRk0`^ryR!oHb`r;=izl{{2H~>bw=!4=0b^|$}F;^bCLQNM}Za-sy6Wmt(qHj zREofZ29lAH-2s;=bz)@_A$(1(3Ko$r&ExXdJX%<-2p}nOGparc2=Dmli80ZLm7|uy zJ^#*2)K*<*9@ykfaR86$*&5rXlzdgf6|)|(k`m>MS8uYb_*@~4mIDD-_`X|uc{nJc z8P9{>p*Ukht6`}T1JU0-OB+kvs@3DrgRMc$BHkDInn|*hB*&ljqO!862OxZZK9XRz z4Ff2&=CJr}TN->mSzM8%izOIa7=l(v-hi`og|7vL?MQ=q`qGGkY6y3SmvacQ< zq;tj3?7QDe__K*O4#pDhO9aq$VAwbpe9l^e@2H*O5lvmz6#p8Nn+isl+uu?c3K)Z* zd^L~Sir|-lzwRc8Qt5X-fg)Al`6IcJ8#>_vd|id`@h~te7q-sLn!)u-!=|`JV7C@W zUP0Br!yj_H7T#f3aY3@taCtQKpb1%Z05^^%SO2iwxLZP-JZL#@qo>xG9WhB^LLL(D zTzB|KP8%GgG9j+bokxkg!>OlT9n1W3YxPDgyU0M@Eo2}a68v^o(x&@Z)9(CJ*DUs6 q_Phq#W#9LHN30I`seLoXiJDH&O5xeWToV<-Q}us_Ld3cjP+}mQ_J|Y! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0456.h265 b/samples/h265SampleFrames/frame-0456.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e777377b3cf856e2d67fba611199fe9a7ef36e03 GIT binary patch literal 3117 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 Hwz<(kh}{R* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0457.h265 b/samples/h265SampleFrames/frame-0457.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bfbdf95d0289899feb82b3462d9d3d938477b803 GIT binary patch literal 1783 zcmVM^Rep{f=oN{~`Ri0f zQPPUb30LO%y8uGRP%7#LLS`S}dJ#hX$N&HTHZEd{^dF0T%^lvk54czO&vv>ANs2@B z=5{fA5>6BpR=UJ?X*53wZaN zUGgJl*`~=JoHcFEPLl^c*r(;9ASZwB)c6W~5C4?^1Nc9vonJ@twbk-e1B1GZsp8(64s~qcy@%vY1?(AoL(Wz1FMJ&P^5ad4{Y@O} zr54Hs69@t^O$7g#y~Z}X58%KwFHKp5fGUD``D(B7>aXR3Q@9NHP`9}@Uapp6HuB*5 zyD$;G(m{nW4>g4Qr)Rj=+s@!Yl9LfYdrX+3@kS`g=f)~?*6?!Re-2gBZgIyW>Mrql zWKHFbzOn3w8cy9M5g-3VIXCBku!4u)A#~@z%U(?sDO)5czo7Ye!m)4)BXMn;w^IXq z@g^o)Lhj|0s)0^{cXgGJg(8m%G|IX(DKQvx#(?j?c z4tmp_+aX1&K68_RQ^t4Bk;-IFEa?}idn7z(7?pkUtQA&`&0LR`-)x4YI?`9r3T`yJ zkfQ=TlA<+js@M|1%!tGnir^2igkAQ%_p=~wmP~$i zHXV8@zoobMcI`Fh7SQi2bVVO$dzAe>{-kDyszpszghNkH(O8@V^UMZEQh>4+BIw3cMTL<1hrD=Fa=ZAm;^{kc_>XM(<;x z%v8V|nejWaiM<&%jdXg}a+8scp5=>x007;96%i={(*|Z2qaz+9%ZvZrxG)hv`?NCt zJF&t%Or}*$&%LSpJsPV>{TCDi53GKEsRZNOkA8>)4V?cjRIR=PR^1QCE=>6UMPbigsKJ6#?7fJv^1rDf{HKjzU8887# zT!G>1#_K+w>6)-jJ7t8i3{*X0XrE*+TAs!hku58)>UD6%*`qDs7CIIuwgua^l>M*U z@1IJwu#_uE#!e030>gpOCN~fZXGuvsw(b=69A>W);qUB;`0~Og_=>4QQ~yV=fmtC> z`K&94pQF)Y8qeWV&LqePd>c-2@CwB$a2v6maX3UU_4d%aU436RDyM`wPLP_wF$CHvJmy27})6VxE%FsT&d08G@z^Z zgFn)q!4$1~qh=b$hj_ZA%wz^kNxiC^$kLKaiHVj3B1_jL(P9>25OME`LSj8iemZtY ZqC!rN1Cz_Sg{TmXOX=I2$WJ#@6~{prd29dx literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0458.h265 b/samples/h265SampleFrames/frame-0458.h265 new file mode 100644 index 0000000000000000000000000000000000000000..79c6c5c6b32aec2ec8e1e8520a62a859b1f5d288 GIT binary patch literal 2014 zcmV<42O;M^Rep{f=e_I+A&5W! zfB)TtV^M+jrHJEoJ3ofs{Q9hMKZo)B8*)qML7)qPWdH?!!Xa&m2=6v5K$O(FixlZ8 z|6|C^L?yRu8f@W^;BK|u)y{Mc{yV0aPwIH4h_Iu7`WM$5q%5`znRT;2JO)_W8Vy-s z=2!9|I?AiHtSWj+JbY8R@}w3U2lP|7D}Th(I?vFgJM`C6on{bV=w) zocIqpPhVTdhK9OthV<~=#5$MjO=cwG=K)Jl{wDAHLcZKMEjB=ubSsj|$OYn%u!Phe z8{REw6Jp}5Cf+P^&uMnA{%jh^?l6*zp%-iO|Gxr`Q0A2Q{H*mp9}}4k$OfYxQHfLM zC0i#6cvZ8`uX7{d!olrqeC0tjqoRNczn+pa8_Q51w=7!3_wm}~sTpv#C*`7YlSpd- zL-SfH?Y<3pCPnxfS>j)Cm&!$vGK*`xVI(0OLxZQ&w&UdUpaVg7FohR6D|CUxx_Q5X z!lEbM^fa@0<{SF)8@$@7m2^KIT%n!ClfY($VnlS5z^FDd7Dy>e4WIh?KD_adE z2o01FtB<@lVt)6I#bvmVtXWBpx}SDnlmtR}#u1o9K07R)TqiV3(_L(Z*B%T+WTKdF z&@KK4t{ULTUtL_>4UwSe4vOf;DC!h{@;`U@57G307)QtbxA4!~{Ac4|U;cl7;ZA9q zRJz3tL6uefTI-fB9MOH(z?%wTS4(G?nOY)bT$`_-lkA8x-4_HO>A%dxH>Q}|f7zqQ zkYfR!h!&Y-3#0!O#KD<7yPB;5?{U9H5%~Qal8H4-|Ske_@jJKGbWOKDZZ4sEP!*AA_#jCcy_B0@S0qudCJsQ<9Nj5xyYI} zTkY{?pK+1kBXt;kfQtyxh4qsD`agybo$tx5Bfn{|cJ)DaG0mk#0HVqN1W#Z9+w%I& z1*=Q-490k!5_iYj`@Y;{8);+O#J}VHd;CXGeD4c% zTrgMf{MW>Q6$Ucplk&%1;(CwUO1Jw? z=sxtY3ADk2ICN4XqmY*1cQ6gs9yd+CQ)F~aPLQ=nIYc^(asS-%a+&UsP3$Q|jA!wL z=0S`zbLQv<%TJ96s9{0GBlhTc>#_)}utP&EA=_lTf{GuOOOa9+YCtx*O=r*q}yMj;5meE&}qmbYe@3qj#R5?`FhJas@PX%HaAPZ@eZFIDxo2xO5Gpfd$;gaXwXL}Ie_ zfDI_WuyU$5Oajyr@=xx*1WttbKRZ!?6PKe_UPvqSe~$ge+4smK6r1S0PPQpPHaG`K zsuylNq>QHEWlS%ikEIctmH}*B)KCAtl9*CwR}y`EYK}*xpeqxF*iH!#=mP26Rb$~s zn7za>QhFOPLh(IztZhv$q-4gvxaIg_WNO7vfQ2L0^Vw6eOhb{@kcS6^iQ?3}0=bVa z;Oqofbm5_#UE{}WaY8P!shb6=`7=lA2i^v+s5yxV1=H9e7U+CFg{Icib{d5L<=9QB zb>U&gY@h#KePEN<)o>?4S5q$=wlalp!%fFxyC76Nl=H!Qmg*24{I}bA*a9dOAOtN+ zrlhF#v81e!D33QwXb;Bpb;!nrKtMjqS#q$evYaHxzuWnJW{TqD|H&R&Ql2tgRD;?Z z3R&kc9sXEm)qP}=30ZXjJqTxhHcP|5vz8hg!JeN7<{Q!qy8u+Phmhs7ssO3GeAx-} zijcge`xH7CM)`pwc55TziZ*sn{S@-$V`)qYAyG)~SD44273h<*+Ui$sDqh8leNv@5 zbY^af;Xy-EnFE6El!lZegg1=3-{A^a>pQL*dVzA{MMKm;CVT3wG>h;r7{B;)Pf+WL wwt8r-PKjQRj_U5+hxdybKh#%{HGdYy0nX(3u0#RMVn&4m%jow0`3D>y|Ih~X2><{9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0459.h265 b/samples/h265SampleFrames/frame-0459.h265 new file mode 100644 index 0000000000000000000000000000000000000000..36ce5803ffb0ad6ae316b2653bf1a66bf04636c8 GIT binary patch literal 3067 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0462.h265 b/samples/h265SampleFrames/frame-0462.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4de1d8a8ff94a503a5f231288a60ecf907394f57 GIT binary patch literal 1830 zcmV+>2if=l000330oG~%)I$OTIKfxaW(9#jKoA3f;5ZDlz(>M^Rep{lT8Xivcy@qb zrsjwGg+4cNKF(C`eaHX*@f9uD;Eh(v8p?pM6rKWA@7Y$^?h};02^+)-!De0Cw&8qB z{sOEs+9*#R-+^bv%nf!T##Ja*TAMf6CVtwNu^Q+9^4_Wn`?q5l`oTH(e0j#7kDH6$ zJV9uZ`GU7CDSL!daJJoh13At2*mR-$8^6Xt{1yKd58E3>B1yoyemJW@w&+UI!~nb* z+VXHzpFjDjoV=zhv*v@~R}bzIR|1s8i7n&5njgdFGU}ha<+& zhMsy;v#xZMxQ?1;$-zM&EH`AOc%>0|>BOoY0YkYEHmeH@fjTRv>pl{!_mr$v_XCc` z@P(X3XUk`SRYz{vyZR0!Ajg>bv$>DSdjTLb5&%}K#Yz)%U<5gB8H`>gAJgOtCjbSN zHxJM!b6;m`U5RQ*pPdz3X*RBE<@&Ov)|siNOC2U5IYNA`sdwVVNvm!|=t(_073j&r zz4^M}6`L}$zYQ*>%N~ZFVf(fn0Yg3nB^{t-l(!9Hl!WU%9Z!McI(E+!BG(ZDFMFWm zZ>#$ZyfYKAxrMTBt_Q=gsPljGNqd5q8UZj&h_nS!h-K3MBv=e@hNmN!+J^V2EP^(B z{+U_BCAsu1xz+rd7hNM-72~qvXQW5RW89f@UHiyxUDt7640j8UM;(8FF63>R^?B_p z|E2tK|ETPIHSq_hJtey~4;)IzOH-x~mdEs@IuTvehX1%7xcBIQSv$rvd9S0KDAv?$^QHt@szr8r zPowW>dKx3}u7Cf(^SI}sjBy|7o)FOrp;huEBy%gkMz+IW{VkWO$Cv8~NTJmrfV8NU zAO)}~OOQM}8HDtQ9YR;69Q3fdIHDGjx-RXxu5C5Kh7sq@|5OBOY40I6JuHs6vKry? zSsjGhIn38!*DqOj7=d4s9srbX4;ziQu1S}iPs}XWuyG6PddH+op#R5?`FhJas@PX%HaAPZ@eZFIDxo z2xO5Gpfd$;gaXwXL}Ie_fDI_WuyU$5Oajyr@=xx*1WttbKRZ!?CjVlXfuB?!PLck} zJGRn%Xm70&K3t%(=jyD8vim@*tDa;m2f1_WxGBA#B{J2w>2J|`;W0+u@Ar)NDCzxy zPJ`Pr8NWFjiY^X;^Slb-PBn%;IA6$D!0am!gd#1}U6$Wa={Gb5)`sD_nPp7#81usr zlO-tl={O1cDDXbPB$o`U3t6T;J=>@BN-}b!htuSaJLTzZ#W}LYUUc|9LB=N|^o0WOz~mx|t#YNZVKXD0DSidfx98@xbqz;625MPd5u zUDez&Vc2SJtLR5OoJgo48?8xQ1H@p@H-pm5>i&Xud++7w!AWZRlX7^w9egA~$UW=n z=oH4@U_*|?Aq7h_XJb+nrj-4_Ew$pKf(cUyDx|f^Di9?fgq}Dpmiv172-p4H)ctgZ z73?K>XZNqY?emh@CQ~2q{}5_<_PGbw2Xqp%X%;JV5kLu9bpUFQ@o^>Er>|NNjH8q` z)vZK&s7jdOn|_R(c+ESjG2qB0jgLmjCa-1MIy zlg7*SSjTg~806JvkWKmmSbP*7>@cr5!TqynI>EdJb|x^s5;(qV#yxB&K);QO!MIP0 zGPl}vfin8$x<+N+6DU<*D1tBJDgQDbaClVhz=JEE=MO?>#V^s(W9k^lez literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0463.h265 b/samples/h265SampleFrames/frame-0463.h265 new file mode 100644 index 0000000000000000000000000000000000000000..364016227e4b30f2bee9ff21a8d85438f6781e87 GIT binary patch literal 2201 zcmV;K2xj*H000330oHN<)I$OTIKf{tQU!rPKoA3f;5ZDyz(>M^Rep{f(R!{AT$L~E6MgqJ?)KQdfn`80 z?{wuZAI_UI&I@GNn&yc!?|_b_GJ~~^u&xNk&<211KAvzi3Gu@?UDC?5151>s1}PNG zV(!gEqtdgd020OBM6mTqcS0Z(XhBiCBO~LDLj;XOg0PgAlCbtE?OPl?3T`N1zRT za+fC$b;UpZX0Vrh456J=VDXC5sTo*HW3=aChyz}&7E;igQ=sceG-#-B7{KMOk#4XAo$u{&Uhv~l7?yA>$ zt7Mp%m@1-t8-IHW92M2|SOj`gDoWUC-PS>}EKXb1B1!BR#_a{cqqsF{Alnb;myDU@ z{n-(*kW11SzQ%z>!(c;kROEf_`Z<#e@6H3&m@ z>kB7AOz~v=FV}e31Fm_<>>j}7d6rQ0%D+QV3IZAf)3QU=VX#64g^G0t>=>-+!(*xt zl1j0}yvW{Fd3;?&I{A=;e~lxqEs>jLq*e^blK5&fS4LN5NFs7Lce~2J*>OIbJ~+yW zkGt=(r(~P}hTp4OyX~5=vjNu03dD0in_|akfcutfk_8|PAK-Gvk&qy}YE+!8qp&D! znf?dG8{&bPG?VE~^rgvU1Dv4{L)eSPueS3mGSJXYrkrASd!WNpE^ag_q9-a$)$w?Z z)M54l8-pa*)=T^7{un-Yzb3Sf{iea)uMI&xwv`kDiaPueJ%9sm%j-9ikx$UKIq*sQ zwOg`*s zMnHkYVsxMSi(#DyXcn1ztJ{T+a{%hg@ z3WapoYH_DctE~6-5jMOJ_f9LHqq2BI6J_`@xg6GoNk1wzx+kdpw5{BJss{jA_C#I; zNIYbb1x&42C&Oi&xDFy7-IkVOMi)7YKqhD9|I6g>mL&33?`A3sNvKSDFiki*NbGbc zeesFVwL2Y$a#AQG){~dFI8Msh#pSOl1TG;%Cf0_=F|9tbM7gsgK%nKQD30|+ZdlX7 zP_bqW1wd29H}c)lh}+$7!HWy3ixC&+MxW;W2MpcIWJL~?Q{+%f$!pYizt?~yux%pk z9<~U}o7FluAi-d+`4-Dks1QV98g_UlP%vE4jG3V#j3emx&PG3-+eiabyS*fm0&%Af z6aN4KW|i0PPE+%`OF3AV{MbP)^G(#>-JsUR%m77_&Rw7~0Rip^NMQGCR~^S~D~5jU z%nMF$P5!1D@4?S`W>ElLW_io8<9rcZJ~3u?E9QF^WYs%Sk#0$26aV=!$N&F^*$ZQ> zKpyx26Yxwm${<8`CTua;*3Cy?3=$GwoX0$MKqqMsAjMA^dO$B#^|uIQkrJRY1#g4` z)fz-%vh{!sD8I0Bsy9pm)DrSf?!E+0g!n%@QGh28u}(J1)_8Sh+N;+*%QsgVAB2Wu zB!cm3ix)Q8$mk4_0zPQS1J%V>9lTv)@1Mu5GaC|8sGx9G|ICK2O0U1D8?J^Us%yTw!n8Ii%qSg8#NkC?*&ib+B^0w){OkIgush9wJ6r z6VXQIPE1D4LzdmPw(lGOw}H4O#KJ-M)WE**5tm?(R?h;^X1HSqWn1v~-W; z?e_S;J2SHrW$4#HvP(d1?n7_=s2fhm0?KMpE#y~tPop}3kV}XYsat(n9L19O{(uQt zbpT($?2b#4;_ITs7l)JAcUQ|Pntp=;YUj*AfBz{c*--bzJa~nC?7bV8H_8ao}N-QjEw>LQ2(ezC%obaA6B4-6EHH@@tv*+85oa zxAGu=6QJv{s8dRKB(DAabZ1C4Pa9h=*rT&Jk{J{q6ASW+Cz$dq35G2+|86DZ{%o*Q z!LWd~F9_Jm6xPSQ{O7nVg}Dc(lAsDb&*GDZlT8^8SJAxdh}X)SaVL`kg53EoSff&n zK-N)F*`>ins;S+DL$_cNtUs2__QqH&2?iNcCoC^v83iuC)GvZMn=)d7dGg&4I$l>) b3of5#NfeZx9%Bd7xI!|pI=6oq#4CNUbUHh8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0464.h265 b/samples/h265SampleFrames/frame-0464.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0e31088dc621d8eb30a96b4c59b9f45400aa1bc6 GIT binary patch literal 3034 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0465.h265 b/samples/h265SampleFrames/frame-0465.h265 new file mode 100644 index 0000000000000000000000000000000000000000..df209e1c7ac43699bb2ff31378c854081fd84276 GIT binary patch literal 2066 zcmV+t2<`U(000330oH;4)I$OTIKf*Qt_6WWKoA3f;5ZEEKu5xZReqB(B(lORa9uw$ zmA|^0ev&ouEQ{sl;;eF|U?9sdEZa~=%@y#i_`o>>b$47^7(jo_hab0Ikiz$zs03#w z3zhhj?hkT4;hE<7?5Y4u#fIV7#^g*>QjzORjn!XmJvbT3Eci~HW}18j?qn3BdU=VX zGIST*gBco`|N87#F4zbdwZ;GwK)FF^PKxU!8L$PZ}M`faM3(d`5N7FO50&IARa*QiuHyj37r93tH1am z-tCQFuEkr$gopDG=0uteHAsj^NS4e~)fE;4Y+!iX0U5`;5Z%;%MhWULX5%C(-uUk3 zE=dPKZ6}RH;Br+)?!d&6ZHK7XpW(9xsVpvkE&)^{Htz93}`8HSEFbu!)r zJ-dAY9-iXvK^P0$=S~|{M*Q8IA+=}SB^G(vue3Eb1YVt}GY&sy?KWb1XYF+dTi*X4 z&FL_=3Ugu0pT9R^H*>Davr#B4biZQJS$~*z1E|vK1C8KS$`F2WeKW$Y+R_i4d!RO+ z z^gt8jCGejFH%5fG@lN*d@$a9wsMBDZY=*0m7kt8D;%>K~-WMncKe!T+VX_WfBjnts z81N0}a9VM9JZjiSa<+-L(=5s8qq_XlLQ~yERrvC4$o6<;gn5(7@IaC z_+2sTM>qMh#!q&Ab6hHAHn&7Uk*dtyTV8YP_)c2e5tsZ!0A!3e)S(Q%ipV*9!T@Y`gZ;0B6$OBCq1=WX zt+q%<+fH_`bv+FW%?Y>nz2U@PTrIxadQ*^^?zi5N0_&Y&;R$WmfSCAar*GJ+gMlb) z%suL+{lp}k0e0guoOfSDivH&RJM-x=jtfcTbfgg;DQkkS4v={)-<3=02oXqM9r@6L z#!NNJAVhX1Y%$r^%|~Di5)xmW$2@gFCutBM#ZMV}KrdDGw+LjB5}-2$Z-fHX8bo5U z^?(g1zp!$uH%tQ567o;(z64H$_&+;QfF}?5R5f8?xJC%c@q#yIN<(fT=D-~t)1R|a zh!WKp|HBPsFW>8@epnrcZTlTZjipde((n!ZI8x{@v+cmXZ;B@QgoN`8%Jfr#6}SSO zb@5aw!Rw3c&FPBt&034s#WOw5mm*G4K@S7ifUk!8)Ec= z{Kpi~2MlBHpCsTe zKP1;z@hpysPEMg(8@O#Wwq(#cZ%h*s_vrd%R7I3?)%6=vXIcsu&=U7c}1IEmT6wC$RMqQbghdUVNPet?Ga7iMY&v z7Tt2_D6;0E$5Rag$+w0WgDRuC<}sp<#>9G>M~=SlBfc_J3sIz96iw(AJs2pQpv28_ z4Lm)I5R)2ON60hwRvT~onLY_wbpUFP3#}-Be*gQfIA^s^e6uDquOiD0$SoJ$-AlR2 zr;z468U$u4CSO#L;-Xr}VC0UN5&1ZJt+Zw1IT~)ctpw~Iw!ypsD8ysDSGkz7KCe7f zmMkHPJ$FDfSws_ilmJ$~C~h#wJ4D6u(KIlvSCn=Si_Y21YO>e_be#f@r9Fi@#t*d{ z!To3Aib1cr6VH*2LNjYG&38bdLsaRa%Vy-$M;!{HsM4>i>7?<9tg)RwAkZy?OfjP+ zm$ujW{H9s3RGr`_Nf@*veA95EhN+W;qE};pw=Iqd9Bck+S%@Yl>Bs5hffJHmO$duC wsSJRRh!=m(f*%h?IJBziB$gSu6ob=-{Vzf62~Bdu9Qz==*^o%d2M?LxAQ?pK`2YX_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0466.h265 b/samples/h265SampleFrames/frame-0466.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7d35aa14ad1ec8daa855826319f1d4b838fdb2e3 GIT binary patch literal 3357 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 Vi&M~WR&)7c*5jZF0O0@~!hqhU(f9xW literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0470.h265 b/samples/h265SampleFrames/frame-0470.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f91937db0b1b3cdb800f447edaa0b194bd60813b GIT binary patch literal 1988 zcmV;#2Rrxx000330oJMi)I$OTIKf*|s0D#QKoA3f;5ZFSKu5xZRep{l+00e0xBN0T z!@+30t?TKDiN<+?8z(9uNQqmhfdA1y(Urr^OXRMkLd2 zIs($oCPdnLO8^)QN1dx*!s>CKt4{e=o^+M0T6qg;M&WRfoi_#5Y|bHK1VjKGn%(be z!NZ?YQ1gSwo8OK3;I`sb%Csh#nKil=ldg{X)(|8`%cLpMOfItN!7_QtHNQik*E3PU za=X>><11lWUj%}723e}WG@ZPJ+u?XVIinN8RxfYE;>YpZNB7}xiqM&!GLz3o^ZmOD zb>kDyW}O&(8!gV@7)i2p|KssLi^yWQGro8>{PwP=M)^T4heKBbwEP1Vr*Ml`fSguW z$bb4R-_5nvJMmw=x{BDjxTAh<&5+u&?vjfNh*cMNWG z_|NmbE{5qUKczjDzG-BabC$u&d4QOUk6P!;6bi10n900D;;CxyU*Hqdbhg&P7w|dg z$xH}S8zJPj6zwca_ofv&<4LJfD?<;Y<>o+<(NwOp$Pn96>3fmMgXf!>)z9_*U|Xh| z@sBVQ^~eCPD$OW&u!nFYe@612!Q5&%000Px6%i={(*^EgPw8FaPyc`a&}>w3yVBOH z0#6JAi@`utmP2x~LU`SER-HwrLOvr_wI0e6vbH8GnIUwnU1uJbLM#9FGxj}o&$jR2rVn2y|C+o6hI%hjD3(6`@DPGetoIVp}ee@8C% z^;>KcBpw$AtkDE>n_n4jXGHKuZ+Cqi8s1H_e4WTZz32c@%{o=SZ-)hdaiQFXA?963 zN8$^_JV9>#VV%B+QpmKwBgU)+k1srL{lX z9BWupT7TD{?OeDGm7}+r9$55xjX zbQEa!lxMW`XL_EeAPv5mC%&2IQuTBSGt@s(u%>c--I+}#X?(3Lzx$>ghm+dckVK8n z3#6!pkT5nSKMjK+<3^OMnIQk>1%8|~Ohw;T#-6;fGTcm`cSHA0@d1L^Q!$0>6(7^;@Ix-C{3!*j zRC1dwM$j2esfK0{baitZ(*$)kHLdd^^BXaX7kO=!M`*~m9hq@A#FEuqlOKjGX%pD5 z^C+^nUns$rdS6r_5%F)*KVe}8xRlC5{3Q@7YLC?@0}bL;;|46lp)fN8@z1c5a*m!I zyuhY{scL1LgUx^wHwWm_X^f<_cKpjnj4;1K$vKqy%;Ng;=TkSwfX1ncj@~(d!gMW( zO)?fnWuyR3+vwzmJp_hCAxUkQ^GRh0sD3Y<>52pGh(;d*vlIx}oSd3>{o~2D`;|Qk W97n58>YI1#S90ON30ZXjBhKK{zTVmZ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0471.h265 b/samples/h265SampleFrames/frame-0471.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3b0f70a7cbc883374dd22958ad2496117859fb41 GIT binary patch literal 3561 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 v7`8Jqy~`I1*ya^?mv>#>1)Vt$+aa&N literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0473.h265 b/samples/h265SampleFrames/frame-0473.h265 new file mode 100644 index 0000000000000000000000000000000000000000..31dee3d719e5f289aaea52651a53e016839f6cbc GIT binary patch literal 2254 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0476.h265 b/samples/h265SampleFrames/frame-0476.h265 new file mode 100644 index 0000000000000000000000000000000000000000..90a46a7dc359c398c0d2d8ecaf06cd9d0ec380b2 GIT binary patch literal 4356 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0477.h265 b/samples/h265SampleFrames/frame-0477.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8825c70553894f7b80fb326517f5b62a60f7a6e5 GIT binary patch literal 1724 zcmV;t21EG(000330oLLF)I$OT7{ORlQU!q^KoA3f;5;$|z(b39FqtiEN5H9fB*_QV zY^gU1W`#J~QLX=1|Njsu`)(Xk=;w#2?@Cl4B3~Yz?Z$u4_}+iNpXGQyYaigz%zwZ< z|FTR+8*qRXnqXd;fsG2;=aK1dHd(ho>^+6_I&U6<1?li5@yzrWuNNo_CdV+>N|$nWzzfTd`W8xy7N0>8!NEzD@pmrpnCiycGj>uiux0_qTN^Kpwa(7jFVg#XhCVjzLRLd(}1O?H;cU`ogXY zPiR5JRf+q0)81Ua@CImRu78hL|K?yICScBfEAIat_$-L-W|Y~8%20LBKmHuqp>hpO zO?qcKdma2R`%NP`F`OzQ4$VyQ^L5(U&RUG9UPsk)Dr40%Y4TQCnp(*#n~pDcx@h*nwzzc>v#?Yc4e_M)eNX89;QkDDD?3l;a4%E;^RzTpM>Mn z{}cG*&f000Gq4uohRWD{;BQAVdD31Mx; zzwP9>2|xYX8Gjwv;(ijTva_L3Y3M|Um85=)iUEh#KR;B0aqY*x;)R-Z`&?c|=7&l# z+Rl`bW}o@COP+?}E09Sc|NH+tj(GJmZQ&yt#u?9+XS{~VFG=jYeDLC?9;WF@NxX*} zIuCmmA#+2VmMqbi=wDx%g0g-mOS`6ERp5fgmkfy$J&PQ;>ZAddLz3-g_r|i#&j?KQs>iq4f9HGhS@(yy)DA|;Jq)wMRv2lpCM?V zanoK}!nei%bwd{DW`}F2YoqnMM{;L3QwydVOi`dk%|4#_tLUxhxZpCP;cVhCm!_!U z-e_YepjDHOm-wmOiveDonq^PyZ4*X^tB0|E_6{PNn10sIz7L?S4ps&&FTKDx}W0wUK-Eoi~+xZPjrS`nqkUT3mtZ!*v zMK@H{IYgqf4z>r{^$NnJq2%1{sh literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0478.h265 b/samples/h265SampleFrames/frame-0478.h265 new file mode 100644 index 0000000000000000000000000000000000000000..403c815fc3b538f5f73961925b167c8b0d4d9975 GIT binary patch literal 2187 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 Q`%!>JNlFO-;Q&cpK#$$e$p8QV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0480.h265 b/samples/h265SampleFrames/frame-0480.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2c2643fdf3aa240d5046a80332ee9a04dc12b8ea GIT binary patch literal 1613 zcmV-T2D148000330oM8d)I$OTIKf)Fpap?IKoA3f<=F%SKu5xZRep{l%LoDhQEj3F zZ>c6e*->3U4j*!${F+%z5_}p)3dbdw2rZN(T(p6(Fnb-SnW!NEvf^wWDl*@h4nJX!4KIEh|mXrRyrA|JQQ_0F>DWaROD4o$bc?^BDp5gj$^C*4K=*Um?p3Zjs8wmE*d9_eH*W&PkJhabVerj zu?{ZR8V@DDxi#{67pqJPwuMH?FHbv<`BC699DkEUHYQ_~-dZE=mXs67SlC=KUk%-! z@=$~*Vr_7@o;m8OKn%~2v}v}KmZ8tw742$tM1WBq=6J50<0(=bH{|$}p*3=^s~MW> zI`?!U`e2vSlab{sKaKn|jkkdTw<6zdJI8Yx@ixhHpIp&DtXpSqjkLy|%?V2`KwFD> zV(l{^$Eet1Z*N6lV{)3?9dU-rr^_a-NW%aA+r*MU$1Vvgl9Dg8d6YSqDYHNH6oo_9 zO83|B*U8!dV4=FJkhFM_n(Ly~ay{!f06a^~G(6ixOhgaB;0(_veV{^8&>dbiCi7G8 z_#2<@skvH9le!wutS;PPL}37ju_tJ0F5lf*a^~2g93SAbtA$OCw^X@zWF^kU(gN2K zY=^+hJW^ojQ40Kv%D>BHdv7p6&M~eOUogA=HG4+wzLolr+N$81b_I8}TD5b9@p7m~9w-fBxSLaUqM<=_t`b>5Vg3I}-2HMa?;8AA)|n;7z1?_1l0I2>7{P zU{O{92AMMn`Ig*5*M`jx=*>#~@bu<0_v4ZvU;oH*?{8FA!84p;aG_$lxO>*c!uQ7> z%3()D6$k|b-9!FZSk;3Z0KP-M591TP>9XD$JY-I1i9^!!DiH0*^Oc5fQX$p6Vp5re z2!_YnH^jdg-IsC}3|VUnUL)Z4QtJOIU_qA-SoGH4s@MsX>73fMOFq{~q#*A)+^R?dZ(HkV{68q?q=B^=3Y~#vrsBEOad!MQqmTbVg z!%rS1+Kc8#iPKZEE5%xmq^1BuHqLM!)!s%c0VUngp_}kKn6{XcebRqyb<00HQGiAH LQVCgg07+dyAOIL` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0481.h265 b/samples/h265SampleFrames/frame-0481.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5420ddbff8bc9d16afab2bcf0ff6cb3ca799f5d9 GIT binary patch literal 3085 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 b8-?EqA$X_*e5gM=QGiAHQVCgg07+dyL+A!0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0482.h265 b/samples/h265SampleFrames/frame-0482.h265 new file mode 100644 index 0000000000000000000000000000000000000000..721337d10ce9674dc3a3ef102aeb4177490c1a57 GIT binary patch literal 1653 zcmV-*28#Ir000330oMut)I$OTFu_;iOa*~JKoA3f?O1*TKu5xZRep{fs^yrRwrCfs z!s_YkHi)S&#OoeS^PI>?X+3v;|Ns2hxv@(#YT0)-)tsa!g7)|9uBV4@?664QAWG50 zLL%i7#AFEw95N?Rfjli^$BUR6>>-S*P^`JOa74`gwGh4>5C8Ah)b4v09@yh$E9Wfc z33|$50gR{{msj8~VLDQBJ=G6C6o&*|NWaDhb}Pcr!Xcb+sy6_2dAxV_EAe?Chp2vi zK3{ry9be4EDT^VxZ&mwz@@TB!TMK|s?k2k?g7yr)A?GUg^(0n*L&D*+*W4p65^oXK z%ltwy-Gk~vRG-MJ4s5iro>fOaFxLv?yiMF(jAu+BC%}Wn46a0k=W*d-+ouVESIVr& z;AsxWc3gj+eFwr*?lduO%&KWp*aacT|1iS2pkIcD9FhIGoSN*P7B@J+}b=A89gRe{cP!dnhEK&2hCdCy`_eo*1- z<^$Pr@Sa_?OW}0f=^;~?s;E|_^!22TrVGwE5%)+bHDrh|Va@5&aTaIk;SG#tWOe%x zk&cTImw-|BO8T{F7X9U55c^89f;Rh0bf>p0FY${onw!55fFK1_*^LQGr#f; z(htOvfFx?XDWD3bE#%nOtRXz7lxzy$f^W)eO=}kI1YN{e51c4S`~`d1@L|0r9>7}( zXM$HTF)v|BQ@&ZlrAY->&;lY18K!6R|D#W8L}{(B^i-L$`_E}{7` znK81-lZt+g(DLBg1JZad&hKz%dK$ZtbtvG0ut4Fa)EI+J_D*^%`+5`)`2ByS{14I> zVQ~Fl@!#2I`)}jlzjdR>wSWKsm4FoyDFV|5cJ64%$B8oH|MzYT1W*3$48M--aE}uy zl~Z%?YJSf~s?tA2#Q?+WAD^m0IQHY;q5%0(lcw(@b3>&Vl#rx2vseN%2f?y?5%^>O z|9|Ik&qEmEKhX*=f?a&CE35iHcYf2#C0~!bN&W@Wzy|nA?@z~dUBxB7Hvf0K*9mad zWJ_seCCJ|v#UiC2s>TxrH~vpI(26DypTz$Mfq-fKk}pi6Dz2Rq#X>Wx+Wo%y^s8G5 zLbQxz;G+OMv1t-kO3A}EnY+vFg^(AxU7d5H*;nlKa61TB|Jh~V>9z1HBq{$jg>duq zO=>Eij{9k%C)vs6TaW+>#_6OGVYQ2z+_ES}JwEUPWMi7)K2v-2dm%G|z5xKNt~d7& z`G5dC;7m2jAVhX1Y%$r^%|~Di5)xmW$2@gFCutBM#ZMV}KrdDGw+LjB5}-2$Z-fHX z8bo5U^?(g1zp!$uH%ua=hW>;fT%1)#|NZ}tr9)T{MUh9>1Kea_zAX;s&Y#Gcs8KIX z@+h|+1-2Wj#O@8f9VH zykJhwrQg~*|I2WY?eji13<0F(X5dfmzA2WoKOQGLtXO-)Pl2(XC-RZtR-!aLko5C= z+O0BF|32*OGs{o#K;axl%maCA;s++=NpD82WV!@)dC)&QQGiCdMhRJU07+dyPxdos literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0483.h265 b/samples/h265SampleFrames/frame-0483.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ce9346dcff5644e448635a07487e056c3171a05f GIT binary patch literal 2233 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 Wz84Ee;6FQ2fJ)Wv30ZXjNnJpBI?v<) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0485.h265 b/samples/h265SampleFrames/frame-0485.h265 new file mode 100644 index 0000000000000000000000000000000000000000..530b4a36bc8136db6a10699f3f575b1328691d25 GIT binary patch literal 1977 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 V5dIf5|Y`{ zB&KK^ykLfc)-$1S3dsljg&+H?|NdLl`>%TRep4XY%p||JC=h!wd=QI2tNA}1N5-fz zcjf{x&;Uzb!JV%s1xfS&nwiVW zV!JwQH&{$t*i^w1K{Pa359f|$u17X1scZ2f zaCQ_-WfW0E4Iqid?{zFIRVYrA&6YPP@9Q)#aqU$Nnp!$=uYPX01!l~HGGh~q6HJi) z+UPhn*ohM`IvQ6h^}=6}VDe2UHTQd*Xw@tRLWt1d5oe~;YeWC_el<@&$2mI511vvM z_DFcnF;gY-ToqQA&0Lw5-pqrv{$N|`+4e#0lUQNkr$eCfngiyrne=4ENOA5FsqCoO z?vo(~U5oxH3ncVddQ|CAg=16L@er?ub{jr@kT5lLk|k5G1?f=TpgVl+>E0I!O<*r%=4D(q%47I5U}}=c5I_yE!EgWo2xtz3 zXdq;OyB7uR#A}wPOY9b0)d&8cdof32w5Km+S+XbLDw``h6$YM!NO?D3;9x%NBN(vR zN!~M+$}qG+LYcU2gQJ`%*3|m{r6gIxLp+7mO8M-0q9ba1fB*mUxaXmaaUbcP5YY;u zSdm~`vT0aH%y23MrhOnaRLDii3okjS@vh(=Bz%h}9MXgyH(B)QtwMrn+bkuA^`Y#? zMEfCn)b=p6A-GNdFOzjp8aT&oERMLc8sYL;8gsS#eY5FSt`dbQ7)61rz)~h(P72TL ziB*L(HwshqD;_adU2xKxe=y4>-zp!vU-90DD~uv5&&Lgi#GJ9aO#KT-5Y0&dK&5|O z2m$SS!&_7HzD7>DQ#sPQ-+)ht^4=9>o4f+CG3gaq<$Zmy(0^^r|M*tF|NN&U%`=e@ zX0ijuKJh{3oR5gRBD+A4KNx(0ODqbL2^AS|Ma$#V*=SXPPXn$rvf27!up)UpGmz6n3kn`lzT4CtHsI76GoWe zd<ij+i@nM`!*elng^`Z#h*=@iFo=q~wm8wxSFR!M0eE0u72!{DtE;`8ja-Kxwc z9&M5%Nkm{nx!flLUamy$?4K*SHrV-b@f{G_7#~sQ_bVQbZLMNQ3==CrmBi{{+aUJV z&N%(t0i#}kKyd-6y9+P#9{{u%Q}?B?W?k3&Pq{rm^{4!DdFiF<#38Q;R`b%~fn1^# z@n`*6&6a-o{*P42;e<#SB#Oe)TE+TiyTg~z?Nr?}HX)vALZg>t<67TY-k6Q zE!f!V{h*G=KnY0uF<0x{nbR8Npzc<#i+JCq>e@`%la3!TSO_B(t77+$(Ng17zvLHZ zsd{9}xLR+ter7*Bp4J~fq&sh9HR(7fS$!M>z+XcBEt{HQ|I7q+)NI@bpmUWL=7F*> z7&)`=U?Et}6YZRyTRieG*n2a{K?F4M*ZdQR2FBuwYLQaPX)=S8K9|Q+#O>B1Gipo3 z%G*z|U+BQ;7-tyE!!`#E#X?aoHJhtR^d^iqS3SJ%14vfXZz<2%5j5J6>)ZH8;_rzLK zTEL8)gFZ{5nMDHtz8nUV>NJYDR_nPy-o3Qb*9t-|m-UYnQte=W%3$rl0A<;!f?3Px!!j2AOj>sk?)1Vr0KBJi7gM$#@psu*{^$NnJoYwXR+O literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0488.h265 b/samples/h265SampleFrames/frame-0488.h265 new file mode 100644 index 0000000000000000000000000000000000000000..71fb223b0e1dd60cbcb28c5b9bf825d039c77d73 GIT binary patch literal 2205 zcmV;O2x9jD000330oOVI)I$OTIKf{_Pz8ZNKoA4dz%UF0Ku5xZRep{f(Rg~?L>!8hM?Uhi#-*cMa* z?)Oeo;r!{dJm9tz{8+|A<=^#n`=XBcP}ht|lj~cq#pqNi3|57{;hro8nD1y~kLeC0tjqoRNcz}4;51o2p4-b3u>g*VMllp;lga1IG(s9XQ?^A^skoIs zMZwednPDmQo~>A)7CtRDuMznbiW${L4p6aUI$M-*-6n#m-2f82Hjam>*-%RcV3PK= zpm#yHlg*)D!flWd50Hh&Z9GX_0TxTBx_f3^$)Aw6mImSDS=mNZUV~;?6yGu_lr3Ow zA)(7v{~c50Q&cJdC%C>0_-iY%TmQ{zS>7qd>|0p)No0W}D$-EFTkSHik91&xEw8cm z4^V}Fus(+D3||RKQ&u208Ss;P7L`Dw6j75wJDv(2h;cs&Lvk(DR?M$HWPiYHQR%X$ zV;uHOD5WlC4(em{r7w-M3zzMt=I!NC)Xrso)>_!6qY>598;FD^2|4uzl8`$LT7t^lS12G zN~XXL(20+`@3N<4oB)R3t6RJ6ny|A0*2xOQhIpbA$g2R_v>25UH^47^%vjyEDo$2> z*bdfA{{!bE^luL5aX4DeUm@V$M|NRbJJM?K;E-*(y2=Wg_)mvHc^)ps<#Mx>2iH?N zqZa3M)Ck1t$QQXNUPu8~0`l7S)Twl<1;I^#e900|fs z5h()G24*K4PKXk(|KIa`Un%#GsS}YWe0{&W?Z!d2mOZRX{y*2R#B~SH@V7<71z!Kn zd_VzEuA2=|tm(CNpCtw++4~D^IDGvblfoFkFTst-=QT+`EOp)|sQt99+j)~Mug0|dWe(WfEU@7BxVBYCO5VhN}GQ#`-Z38Rp827jsXDbJx=n8 z1g~w&M$xOLC$-7jb`FdM#YnX8B8eO^3I9}S{#(uP&D<7FQ0Yg$F$BDpy+?Zg&;pi8 zRwuE+DVFQlJ2=L}$;kS)d7(cZ@gt}?``rcw9+d}UN+Vuo`11#-$NEWW0BU!4q>?~R zG~vR3-~cSry8Y?Oes@V{Dh~gf2qnI0x|{p78rZpj3I#R5?`FhJas@PX%HaAPZ@eZFIDxo2xO5Gpfd$; zgaXwXL}Ie_f#;WP0UgM4v_Ku+eTETLo__-62;SjFA_q->GR^+x!iaKq#hd`R9YJIi zWTp?bKwpyCn16Ipekp|C9HoBuAK52bBPhje1hFQD@-P|zNZ$17=gJ7Cf8zN8cdQ_C z^*-bRl(Jw)I=#z8Gbs-_P^mCYiH`9yh&NYFYIjOdd$?6R2FRmWs&s`_(JW3xuVO}x zBE#)XtVA{#Q&bhuw-)^eOh_2+?)=SNg%5e8{}#MnoM#mYEW21(jP{)Mg&WWFVapv` zuXF^X(1YWS)G`&J_OcWH5ium=AHV$YFSGncn|)Hj5aJg zpBOa?4t`e=#X!mU#b=O)8+f+J_~19M3s-Rq1sz2v7o&hNWJ8E7l-h>Bk(IC6%hEP=d3&mQ-s{ zI(-fcI!{`041!l14165yORbmx_q~zR;u@nnH8VAW0jb3!0$FbbdAAkdLY7N!q83sRe?6is5{)B176TQsjX58B;Xxmaa;t zWNof%PfaqvzFuYpzPG*v<%~Q)Tcc&z7$$c|NAwVw09@#4RntQbc6`P83COMw(w09l zBkSS#vI`TYL0n2t@h+|CcSA z9K<7TzhHyC_9`nUDg9$I=&?!FhLTR=ZMQGiO-?Fm_R07+dy)+R2j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0489.h265 b/samples/h265SampleFrames/frame-0489.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a2ac5414f4edaf38016cd9166d5ca723102ec330 GIT binary patch literal 2913 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 L?Fj(k07+dyn#rM_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0490.h265 b/samples/h265SampleFrames/frame-0490.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1e3698cafe15347265a8f3f5d554e6f5de4046fb GIT binary patch literal 2028 zcmVH%Sj zi!`YheI7jaJW5WEyRHje0x^mbBR0l!MoSl*HqDsUNZnokAudb#qS(s2w0cUYS-vXy?VVv5M9Z<j;t%L&kA-L%jF$-zB?h+xwB2$_+hH{z9zgJl^@b)1odIov6#l2F zYjM(PM=o!z2-v6Np+jMjW;Xln01>24JL~)Z>vJuDn>hDk9dL{4>ExIk*ltlhd6B7M z5jm$`{)f2t2h^kbk8Psqd~f3-ExK422Y611BF)~4G3#e!;F&z+n%|+&YniCwNnFbt z&=qa}(vezXw-}11V$e`D#O;U?Y)rMBOIMZwk#KpvW(S8q!r#BivEZ90aT|454~}*` z_G!_F!K!UBfqW|--~K-n_`JfFkD&8HpG#gSmHSED!k0bJ_5i|Y7{7fL*P<*9UcpjILzpba|hJcKXU21SzQ9)q%tOK z>%G-u1l29(n30X`K?2A@?5LIvM;k-Y`MTQP$CO>sP7e3=3xM;`@Ooss!t?riGhP2Z z=pK@DV@*h8Q&6lUY*6Yd6-zwv#?o~=PBXxf{0m`ijL}IYAcL`;%~6Ne3(qz&C1{Ln zt2!ERO?GW5tfcDozmp;Q#fhWK-(SODFK9u6hH9=d(c%jk`+K@T+F|HJ1aKN}IDh0(jKbmiI z%%9qm?Ia5XWLheT&L*V2yo(C4c|`H=quLXdq;OxfJAY6chiy|Kfujl0dTZXwGtfXp+K% zWg-MVW%zmLq+pO6R0{K!(7jXIh1)2td7A*hi>k<&+3$Yr(0E9V?Uc>|l72wF1UH8&Q?~nBh z33A!IK61KdR3$Iu%dlg1nfdsn0aMr_3_fP1+oFig5 z(rWK&28g(i#rHA7prk%Wx(S;E)i$w|HU!O#JpG1KV>;Pn)^o>rq2#xtXwVAX<`7Iq z$VCQ9j%uEMHfAa_uVA(q{sUhk@f19Cp`LFSx~ zh`S=YK#)Hee1S_W3X=&HC?1KdL`oJDU@Mky^$<59r9dqWr-W06wCjplv;vZwI2$lS z|G~h38M<51frQvwDW@m{2^l|7Q{nENxZdoGmU+)*f zs7afNC3;4I6T$jUb{8ki+*BlKky7=rsn^)PKxjH^0K{q-9eCuL)DS40CO!G-V#zyX zPX@_UGWpKn9=8w3F2{x!Kn{Qe;R)|(*>yLSqaD}=6U~1hwezTaI60MUD5?8g24<>Nk>UIeI*zd6iPs-ryc3r8M zPvYjpf+kuRh`F+TN=@c1_lbI#xQHP%+(8KUp89mc8QQ7Goi$~PU9AYk6?sw7%1Xdu zD@9J=M_6A~RE^$ZPp35y)15i@E7)I60w~vbZ$trta`6GotGU*N;uK-jqUl?&2{T}k zOinitA#jE7^82!JOEbBo5*WpwKC~L&ECvQvG265^4iUJ!H?99fp}->c!=qNTO`L;U ziLp3HSq=f93|D{a-sdJW-VJmK_A10t>mP@1nF*VwFBs~%yK33gS#zI6`V5BsOS)>w zXhQaJZ$NH7goy|abGw-URyOj~b@WAXnZ$PJH3mal%4)A(PYDaiq%+R4y}~NV5&5h? zZ_|xD81jEztgt`Sf*q6`Jn6LG`bbef>PB36Y3zi|Vs(M6tk~g$odxLe93FtJ_Q}5QY=`u0Ojk@6(J)FOP!c^oAUyj~fJ)Wv K2>{^$NnJo`-Pvyd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0491.h265 b/samples/h265SampleFrames/frame-0491.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5dc071ddb2b1d04af20e9a1c53d8eba213b3727c GIT binary patch literal 3324 zcmVvnec#UP5yo-2Z0ts&bZ-*EOwqoeqFCY4s>M&uf{#0(^J}mJ7+PSj zQy>9i1)!w!f{qFe$-G4?!H4bGSi3(K&%6xg)x~9g%@K~QY z+?@b$a+$PhD*?@n*eD1lW4A6Tbq>gAxC4myDhHm<;0b+Mvlyui!e#7fD`VhWE+Pal zxmLc|QIySMo!iG&ioJ(JF(lzf!q=xtnlI39V0EA*4U9j{;0qNB)d5a85s^XW+N|Z* zPB_LXSxsPzBzjco6erT|Jx|gEr{gSlvI?hzD8|5mTlrPRM`A`=*(%pr!VfRNF1$P%4&yy4|jDLAb>h&yoTfJ2Ef(z|viJ#K`!IxK;U{515S-0#^QY@^b zkYe{;=6`rbI`YZ*Z#nn7{5SBgncMtJ^Peyu%s#Ae5rh}g6wE=(fddbGG@v!vq)6=J z(TZGQ>lIs$Cra&)mzLImiGdg_s9QOI;FHkTCN-XK(w;{0oaXVJ97AFF>YRa zy>a~tlDb|-V*FbKmjz#N0h0n;)W>1hgD(J^ZY?U&SR-#D%Whk~#>cUQ>zqumCp|kW zagqJ9Gl)E#;|go3Y0)?FgG%fZ*fph(f&kyD%}4FUMX;CqU$!jwHGw;haS&$? zG(%5f2O<}2KOb!FguwuljkcTxk<`f!OyQvq>LBohY5g3smX|8S7)IO_hg~gVkxx81 zi`NYwC%w4q#Hic5QmZ$qSM|pQN#INREHv3?2!_KRs?*PoCY=eP?a~mqi?Fa&XdkbK zvR#XKRsZRj*ihZ3AkYl3zQ9HHSW(DWKolS=sOt9^jtx^LE;C(SnOmZF5>dy_5Svc$ z!V)Rs*fWAFn0NN(&y>;0+W8VrmNRmT?d5vzfH)|mw{AYH9%stO$rRw=Hp=RM9tkk+;kW9JrxYMpkJ1;Q z(#){gbbF*CDCV~0XuW9$>$SHd_5x$VD|2^}5e9+v_vA)iC%mZjnq9N_Sj5jb7}Xn~ zwpmfIYQ3$N9W#Lb6q}skL91v=HEdtPivjC-j;`f|aIG|Eqez!j{|W+stBY>BID~rE z7^+D8D-9@^UTAtfg^2hR`v1avEtvtDUCf)` zIiGQ`?K=Pf0{{c+4uohRWQEMb2r1+Gq4?^sz^F-qgD-Fj2ft39I zPp6;kQU_@$g<;&=Brs^DuB3P(@!sL?X=}F@RTaK3*Xj7Z$M7`CmSW5}fDwUxjQG44o)v4}oRDAmD$0LTA-KK+h4)IHaj^>_4sn>8N4 zoN88X#$Vouo@4d+0R2Wi2s+&k(gP4%+lneg0y(}XKrnf`gSas@(<)P&)WzPU0@^@4 ze3Q1P8cV=36{?>YeO)KLE4pPHfs5$QW|9pH)_0HWqK>Nx(P##ROmhhmjmcFIGb^j=iTYWL@Bo)xaK2L)F-E{nrx&Pt{YGL75tc%L>+%rx%`rS<>T6@Lgq6~JzGXWsEl|K#YNoi&+c8`Ds#rP)=U zVk693taNv<6iwek043E3qJRWlWXJ@&V<_kCnoIxxK<0d}++*!D6Gq?7fHYt}@j>RC zkBGY>yFidX7<_?CEDDne6(}BwtVBu{6JRTrZ}kv2A*Dbq4X1>p!w_{dY{lq*nA^W2Ly{1?0` zzFQ>m3&rF;;ndXeih_Ye|9o-_|n+v8Jnhfs!g^P=D{f5;ya~dcUZX7_zW5MK=R)A`!>{)C&_x(j=vmFZ-_wHspOQ zLvSC<5P52_pZjID;2@Mtk9J7>T&l}SCU%)57{gt!fSpn`V{(`9PL2BqZ-MAes{E7H zlXSGD%V@S4^#wCEBd`wXk+Q&g(yh0X92p3EP8~A-EUQ_ASt4Kk~CGd8%rJ z&zx*;JG#V!!IT$;Ob|lgbQu_tr;$M^AU*3Vk0-Dack_sEA;`G5yZb)=!O3@Sl1)5x zACqqd%7X482VRWwnrW*?ND%N{tq8}sBXh@9^kyIb${^$ GNnJpmn}MMK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0492.h265 b/samples/h265SampleFrames/frame-0492.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f71f0d39981569a5e43a7007c051e9e39de578a2 GIT binary patch literal 1817 zcmV+!2j=(y000330oPgo)I$OTIKfv^Yz2WpKoLZNATSIAKu5xZRep{l%L!Fb@{STN zDESEQ&!_?DMBn!x|NrL2%u!x{4R5)l9Ob@e6VJVl%X%O25AK%>J%^!K`$(;S4=djq z)O<3M*^&p~zzQ8B-x7>_7h|yHnFs_wkHByL<-JrD_in~9^@4Nm`16fFA2%1dx!Gwj zbKQ#3S|S2>M zZXqO`I&jZG`8+2GZXe#qz&!=*8GJ*|Rqg6ptgz1Gp2>G;mO0%e5Bim^GHFC}OA4S$3J*5Y~^9svyK%mLvJD~&nO=G$S@g#PmZ_44&v z1nG2qd-pKa?(7wAjCFe>ceSnF}*c6Lbj-|wZC6ud`ha&c0%^7(6H zoe``ARJ@WM6ZHZRWy+3|{FtiKGIGyNh(LH^hA}K4SUV&r zgV_?d0L4@nr2Z%PJPZR*yNuQ45mj{Po+=TVw2yIFShiWuyfKxKkF|gSN_TU=!o+Lh zqp3_ffYG@iCoU*f}?*kUdqLTYC3j$h8$4um;$($ORqrr`cq49!x1$N>8mfv zKOq&j>{AJZ)7Tge!i++Z$t=~`<9k-O@#l<*=xPjVFN@`~-h*p6Fyky-AMn2ci$yAs z;9B=I6@fY6x}r1cOYWPl4-^Fn>BwREWKw%+L28T0Iq7*Vp6+^JVk`JF>oDuszRzS8 zr(Z2&;{E4WXDh$-hR9a<2>83rQzfEsdAyf~HZ(Ee@-&hgC89A7*;B8x(rvki+U#4+ z%&pM%A%PkZ$-8j6Or})h<}PFoGzm3Se5#zbBw?GKT`2cO$kzjc+;Rvv=Xg5Tx)+* ze4>|O1`#$E5;j!*r#iD%F!g5WhYMWJT*N|6R}w8Ge>k8_6{=9q@6!-6TJEIUr@pwF zz=f`6@kGBaJjEc9Y6IBhFW6!Kvzk+Ie0@9$b9a*)sS?$7B@AIs1b-7}Mv^NJrc>+~ z?AiDt?u7d@)PX%BG%TLMy*lTu@f?R&_n+|sgvT2|{YF6d&i^@0}~mQ;#>a;i5>7SS+I?!FhLTR=ZMQGiO-?Fm_R H07+dyoyT(U literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0493.h265 b/samples/h265SampleFrames/frame-0493.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6ad01385914a24f0be5f070dd9c5326218db20cf GIT binary patch literal 2223 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 hy&!B%S4l~?M1QyIi5OjfH8&2*H8!zq+ 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0497.h265 b/samples/h265SampleFrames/frame-0497.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b1ed80c711ca46489c325a3fa385c900a81106b GIT binary patch literal 1922 zcmV-|2YvVe000330oQ^5)I$OT7{OTrR0V+`MVtcwz%UF0KtqdpFqtI6MZm4kOT;(R z!DehThZeX!C|i0D`2B0Iv;V>QQYSWl|NsC0H9!5d!xgv>ZC$2O#^kV6==2Pgxy`FpVhe1MDAR$1rWZ|@0 zuxW4!kCd_%Ld`u|KzGVN|Cd`x)@=E|qonY_2?H>j5AL-yCt;B8?x4}I#9As0TF2c; z0h-~T^;PC)Hg`H|ErOdLdcD$SwD8l>W2{Eybw_f1( zaT*mfN<{&@rrA?iA7P>zggk)Oky3d>F-R#L!8kC_Z5Q1!9hUT28q(MVv2=J_Z&wBe z5&*4w0@dNa%dRiY1>WE$<#jWhuv95&I^1%S*T$UIR)PsDlrOQhEnY$Pw%GbfXmffh z#(vG&i)!|cDsjy|dyiC`1?}=6ZB}C!0(4hT){kXb?k%h6K3m(8G%!fBb-*h&W(#R=8eQCf zBM!f*SMd!Uwk7jNA%+8$Q&IWT+t}G~qu+tw=Jbzq{RZdaliImQ$xDChj!CC@}evF1pwK_l1y@A&RH==4O~TukAV zGoLL9u_5QeneIQraOYu#Yov>lA$`QI_dXk@-Z?OM`~A-ER3lAC&XdpE!UL&XjpG{k zlvo~+a0e&Vw^zt;m#zL>Y8Ie5jCZS2H*LYTnz_yeEeeP1vYZMu;HXuw!UTXjzOeFe zmoKTZe{0L|Jszux_s-ntwpH|XZ!-yCLGIaC;(Pic@berd$sk%`4KuYf=+D~Lxn0kRm6;9Cg@G0RHImen{sI@LQvn&jWgNyBn2|q@o4ra*reD$nDF1HQ2l)mn)oLs6CFUil zH*4!x8y{nK(Y5Lep>|PjW;*vV5=Yhg?wlHLhgUbsUR4}j85ZU+8YwIg#h^1fgjCTH z9Z^*hUHJG)u@)cyX&){iYLx4wp}CBNpR)1`7^-`TQqOzb(w_)`>lTo#klSCiDDA-r zO`+Do#~Yh!GyJRv&Cc@c{LZe-J5WsV*mx)Q4>!N4fy9qszdaJ zK$Gnx-_=!~iF*3g!?UAc&Sv8mD&t2F$EkV;HZ@=DssR^Art%V<%AUe?pJ?}IOOWM^p8%*+lo&h2jIcJR?7%^v z_Yakw+8CsW+qV(M{}xfU2%{aoCpQz8mQRdwyMM|)PvdC-L85_A2F%bLI_T+aS!9`h zTpM8`DK*4!pc~zNjgBBK4X1=_4G3MW2*dN7aBNIhOcv2FN+D1ZJv|^i`%!>O)$IuY I;Q&cpKtch$3IG5A literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0498.h265 b/samples/h265SampleFrames/frame-0498.h265 new file mode 100644 index 0000000000000000000000000000000000000000..518c4a525ce5a559e4c68222b4b160af774efed8 GIT binary patch literal 2407 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0499.h265 b/samples/h265SampleFrames/frame-0499.h265 new file mode 100644 index 0000000000000000000000000000000000000000..533c544bf2809f8136c4dd035b4a924925b0826e GIT binary patch literal 2947 zcmV-}3w-nd000330oRfL)I$OTFu`}#I{>g0Vu?@&0Kgan0BA?TgH?WxBF@eqdiR_E z_y7Dj#Hf$MpBlggT6cN%XBGZmqsyK}8u-Kno|rg542$QY?$KuGTsXqEiyS&-6QJEE zO2cy2lVea-PqZy7#@OZO{Nv2j1E^2o#=55gsJGV!yPz~c7aLnt}XgJ8sW9VprZiGI10hMzp>BIZBKj8SS-L{bKo zzV!Eg`zdSRK5?EhXj46KFo)du_}lOI%Sr`aznA^&jm^E>X=kNIiDP!X{EV0^OL8Q} zYlvi2|33Oo~s5yaeR+Jl$+UBb2M0$TjC{gH~@tb$lX7`%Pv- z2{D+x&(4QGmo>eya(XT~20M$8RsZwqIVOlcG$y3z0J7N+UVoQ2dr26aFt zxc}Z1!LrQW1)LYUJn4kdlUT=<@b%`pTt8Titd2ctZ_54 zl3u)(aj78Lk7WAKGi|IhT(Z5ex`U_M6}@ix(?|qB_JgNQ(%afOpnQR%v# zXtvw&iARc9*JkPYiyX^jpE|&jK+jaZ1t=`5B?q_2>kh*0LGoBySdTqP{5MC?e!d+QC#Bop)FIvJ~5J= z=Q?gTAZ>RL!kzo5W~^t9kinhjr3M(H<8>H@>rvvs#0<_f=z2to#hAS@FH!T%W} z$$z&H+aB`L{}P+@&)2 zq?z?LsUr2+ZsXhf8!q$SH4?tefm7S#4<O%TgxK=Pa4gxQLz*JX#T{0^U zh@?NLui+k8{-fo7yE|qH9vidEw>^WZD8xE*;{UZJua9NT7PXul&!yY6;MjmOL*YSw zyk4uA$rC~<@K5PIv3GP)4VB;n3=`U$MpO|5omSA==qQwk6|4Ru*SW(a0QYM2BfS~e zBz_)$8K#@z_R5a6VtOD;j1>wx8QHixF&vt&)KL{%Iybx$QeR-W{AmgzviNb(t-ogi>g(5o!5}4Q(mZQmW7GMDQD+-7*cMUI2W3^k zb$w~en#|SKbVMw4rppCFeD$55KVq)N84TH@j2R`*4S{>+$t7P_2BXsM#W3TKkr+4F z8Qb6&V_ef+NCH~e)_R>o=@C$aq0<7Q6MPG>J?J<8d54YrAA89RfgH2;)2Bk5oTZS^^}pP zD)>5W_y7Ubxj-EeU*)whbjLBt(_D|j#4o+l;CH)TyQ1eFzOC{BeQq(lxiV$DdZrTLFZw}%UJQ`F&D+-kyk0a(bLBgo0ykZ7i6S;f>`Y*o{O0;N&aySJ)di$*^ zm5dcn%J816^vIJZqnps+CuRVA4qaaAYUBlM7h$3xex5DTy2dhFR9{&?-e>%V1NDBo z!oR3=ro5(}eRWi(>p`4DH9Bz&egR3r>=R@s?{oB|^23GPjlIgOF4ALmLC>@Snj8!d zRO(9!S6HI3p;y|GWr}fmYXu`w8LXRKRck~t9~M9;0+Cb~$5+xuDUVBmAV)W{3o(c%pmX#BfR9o*{nrKkDr5xW3|M(}{ya~kCfU8CxjPbsy})hTt%?*qaxoOe1vXfn(mae|4gE-+ zVaEr9XIWy;E!(59(92x&%Y-JN9F@IeWQ?6eHaNjkaiu&rt{h{hD>=R`MCRN~XOMk{ z=tcBXM0?7#%;7yuHOe4Fb|!2w+1AZRUpR7}E&9GV z1?5wzR`_N8WXGt-j7u$5RjkpE`s92@+(E9^9kyBsSN;1XPlAUDP&*`|IG#%b*p&<+DlNRJ@>;*9Rl0UcC_=vlf8A;4Cn$}@1j z>?;Lb6HR9RUwcB^VH^jENSBr~-i3{0>OCMlS9POP$w>H1KOA**wOJwGf)39cKkkE; zKdE0IzeB~cIy63NloC7VXN6xnrL_7uG2Z+WRR<$zaHvubXD=$e)mljiBMWoqSjvB% z|MFz#X6^w3%$#7YcrEVxe5rOc@cg7sl@lX+#n-YGr&#Vio`B-nGJqLZA0q(RiZSSy zaR6)fjYJQ%o6EU$lrL5FxX+T`$?4Q48(;sw|N1`uH}H+MgU%#OhB)!<_D$i%Cs1-+I2RXHSt1SA?_U`DDwXjCA##{Q9J zzHYm-+ZNm&$7Uhl9oJ1}KWXx+tT2-p(E;5p*=y1}d+ssLtEGbzvE%k^Yd^BYRfWjn zhsr#Souy*k2LE2Q!V5)*`%~B9RyVJNc#EaA0^`tY>mImMiHhDnl#b`Xq)WEA<|KZ6 zznAUoWUi&`_&OX)vpFf(0)S=wd?i&QIzx=H_HJH>zLE~E`&LXASSnvXk|n??_c#a` z^Pczz$NzaRSs86qW{ zmtSZ@4jG*^7V%a&Qm_zZm=ROozRKq%mP1qkmx~R)F^$NWrllj%{q>=a?Bm4ql3DPbI?Xir3*4or9`y4QMr7zO zxYZrFga7r|u3fY!FzAQ}*_riszI?_&eW4boId!$;Ef@kKV^Ku&LI-eygoI8XDX1|D ztd?OF2`U%otMLD{Ue4v`Y+;t;-RSELq0{0|b#!9bZx0jje;hOSeHT#fbZ?y(+2#qX z0%L!Zl}m<+;-ARgYm!#m38?_`2ZUFwF)&Q%3r(MJ*+9D8rSRS`{L3<{apRPx@e~;< zK=FG141)Z0J@vYXMkKW{c2?96IK#QwekkSBvu=ZFEzgCfq*78rW72=!{L#q8!Yv#rxl` z%R6YK_T&ro)a%2Uf?uM;a-MA0Q+$(Ctt_yCm1qfon_=}GdaxF-Q~-&n8KB1NdItN ziXlW0FE>iuY;lTrf)kLrn_V90I}-^J_yqU?0EeA*ZrfpSaW~?0AWBC z5h()G21)2i*tLo6(+^UFJ{+J$`>&Jz|Nde>j3K|lNH@W0oWwpBzOGyIFc0G-zN8=&yA$Xn{X@U|2y>QF^&sKruMUunY~Phj=>q{sUCeFL|MwL4|MxXGkw)_LXaElQOf||NM0O@@G1=D5M_>#R z5?`FhJas@PX%HbnVHHS6a?QKW5AF6Uq{z|RQ}fz!1I^DBQJ<>=k9TEyj5_HC^~h1M zRYB>gpO0IB0x!f8=DBS(DvFrG=H{&!F{B%Y&|GU_Tw>}AA3fYMzzHaJ8pBa};4--O z6?*Ck+ttyq8+8WBr9p&fS(R3MZk5u zE;pFRw**6iqX|{BNwQUH@7>* z4{q72qq&|KPK66z5`>9z_pL0h)N^l5FX4eIP8jO_x@h=1fs*~7^kwV_Z}WrLp25iv ze~n8;tXvYm4@5d#htKW=e22kM;v#Y9WgW02)#TY+dl&{QXo=rZ+@=nk%^R)c7I6%6 zoalfrRrR+s2aTmM`f06R zRsFEO?)7~Q001E9AZq6x`l}4rg-c9f0UVe&h$5yy5?sI-49m=J)Dp$)C)HOE;cp*! zw_@7rNRZOl%qfPw6DzMyfyVQxZ5_u|nWiIRGDR<)M~A)JEZs^tMR{XHd$RQh-S@&- zD%D?38q}ZurJt8y;9Z4*I5oau7-YE%wD^EoMZc?&RW;;bY>;V)2fb>wCwhhr~T!-_D=GAP>6i-tAQU%RxAA1_71#y5*RhB+76n(6OGf3I;n&} zBp`EloYn7?2rsN>NW1Qj7z*2@4t-)=P1d(W9I0i#F}JzYr{S;njBBEfhuHZvRA= z4dr62Y7K9BLdgUrq1Z{f^Odvq(=v$%j1KEy+bM9U$+_uEkt@)m zm?7ZR$Xrsg&S6wOlIqxBC@~iR<)jLfMD7Czo{Gtxg$Z8gEf|JsFh5mihD2QXpPr~f zcE58dk@HZb_6)R6r0x1llBgTd@(sSl*!|^dubLg{LgvvtQXNi6+ZWPyXP@%x?WMJk ziwYrwWSN3+tNpnTSuXhPnN{Qo)S=Gx0DAWc?gwTj1?5kQ90bj@R zHNkxAdiIaf$iIXn(Zr?ypZ zQ&d6Pr9sRPd9ZoKGgiUJoG^)o4_%_=j|ZRV%|44KI?|!`5usy34A@D_ef1@wG&<2B zSJt*NsMW4|Y#d4A8pMTPS05$BO0P#S^XUx+5uwBe)lyovFP7m!Ci6DxoRYu7c8R81 z7f;jzYIkh}MIt(;$!dJy-FG93m)LTl{F=s^MJ09{D#%8BOD((w32;oQ=3!$oM;G6P zBHVl}>SC-yhC)Xj&R5ip-bISHhDIT^Fr;3cM+7Z>MH7e8WZBnW=UKaQf z%~i9lSO|;m3$SL0PPP4l3HgKaqt|2&|q+6&<|VJSOYds-YTrd2F6F(P$W+8Lv0< zL?YW0UxPBD9M)AwoS`p2cW47T?AX3aMHst*s|at6=qiiRs(Y>LG{+2CiBgzK#0doH z{1bNW(vM24lYBgGE@p}%9mtvWN|C_|;8OVe{!PBpW(>gC!2Kz^EMY7-Pvods<>$Hc zDrWAY^3b=-MVaZVX|IJwk_JM8-SKC6$8Uv#bY80?)Qlf zf7Gc#9am4*^!>aGaI&!~EXkh9nob#Htz7q1HUCc`>(r`dZtqM7^&qG;`bKRDFY6#? zERJ~Yo51@>(C+?xO{(B;XP>V*sAN2!|CE>Xqwf(F_*O>a&Zr$~Yl?-y!;5cO$M=w; zgl)c~ua-vyu@**G*eABo(VTfyZMfhhVye9)5&!Gf8`mJN1z#eSm)@SG)`oOU-sNN$ z#1FLo!11sPB6B2B{CHUDF(@zX_TeA`iUlcl2v(2R=ST_|m&^%LRu4_~s{L>~j3r;s znoCDglqIE-D|AOnE-UxQ4y3;6j$TDbZGq5AQ&nxxh|-Ghh;RM%n^!-GzL(Kypqr-- z)h&BL(jyibWO4*_KH&BJ65V(G|T~QHp#Jc zbORO2y4b1m-4cc-QIb$v0pYOqSQuuSb*GS~Rzy@k)>rWF!EOs_9zP<{CL6=kPdBwQ zay?sxO96L@*D< zK93o^&U#Y!r*O7ragldEByA*7Dk*3nNW-ha8VHRw6Ua4Ea)i^CWf3v8=%Sd+HMlPAJqIhugZ2Vy&l**{d)A*Bw6YB3J zlHh5##sy<`Dp9gdMnj3!m=wwSxHw}j{PQvCDO$7DXEUA7`_6M1%FfOoGpRq-N^fjN zm@)`Z)}*TM1!Vn>StrIp*FEwRBu^7@bFK$ZLv__$I4V>Mt62|am~If9(#9Rv8YV!o zEoe>jZEVwYL-|2^J#|w?q^8XkhEZor@k7M&jf3*K<}2mwMf^gF=M=+zDCzjK`0TFz zl(T^K(oY?AA&0>+u3$3_^#p$$oRV7@0VKTxjfKv-twWWEKphD{B$@iMK#3(^q6Hj6 zjtx&U3#DJw+6A&j{Yn!Wj<^-V7qgK!oCB5nO`K#05QIqrTcOjH-+JSiBn;DTO|qGtCP~Ky zejCCyh!oh!y$lkt;W`WlgCQqdn++LOYg22H;xMr4rztt1y1DA4siL7Tp5D&Z$5}V- zOTjK>e|AYOpvI5er>*Jf({s8dA@40Y3fnaiAGgBUUE}mGuVr_5RK^{Agi2y* zl#VY5_*B3dIuz=T-$CrG#RNF{2OfIS)h1adlWBU6eXj2=Hr24(Y$6oi9h zEHK*Du2C>+7`IbqU(6iSeY8S@{f8dV0#tlMsj!}KmE)*d^Hb+Yw=>8?$!r(HPm)4+ zpfraJh)yab+}sO8`?};iQ0eANClULRVN2wkN^A{4P7anEH2vpi#v)c!;GhPS$6bLo zWw%wo#5`2bcb5U85Zi*@s=MUS*g^y=-ZRtMx3*9LZJJtAk7X_Xoh>bttI7E$i1ZHw z@6pS|m3&V|8LZ@@dF5jDd2H($35CD+67$OUN{y(QJrju@$Y5AP-GiNecU_WvI{Fa~-i3BCX6IQj&GP8F8!5GNsb(=V z3f*a{{(&k#nUCKSb>!;!O{A10Z}O&RDc!5_YocgP{dvnn&L)5AS=QSnMzu&FxY$n;zmDAt!@UyTvp?mx&^2Z;ac=J8Hl2Hk* zx2VPV(sS*ofmeAgLKGAHDx|Mwh&d%I_txry1Tn9#UN0ObC(=RoTD)X&gJ6Zqt70O# z`cDC1AD+fY=qnmpK0Gs(pBM*(s6YRb@Qi66+1Y)wy_m-+hYZSx9mQ@S6tG_Y%TG@6 zEX-5Cw3Mg1305G+3O6s@R5QF-x)@^r3`q5xSK>D)1PchaI0S^gWh5+0F=8#cO_%gm zX;SAbP7XUHQxqnFRk?gkGSjZtJP))#GLGK))MM&7jyT?Gr19AJgs^5M?heMLA3ef! z+C@~nUSEYLF>!U%(1`!(HWr{oU59n1pgDa42qJd~BJi@k=BI|$3+gfl_gwGCgEiNL zL0kvB{(ef7z{W9MFf(;IM&z^w`J^5DfrAGgzwT2frA>;&4>7v0Gpz9a0^Q4Eu<2H7 zFDu!9GfrkMiE`8XcC3SEK%3kZhenzB+Q%jYLPU2g2*_*5$A!TWkLICLM`9-3cX*A` z8#84LcShPA`ufcBTsNze+x?)!vade^O!y%3*U6fy8w~3Q4r2H)bfe^qD`d_);%Jg{ zbJ`&LrwsdC!l>|NOP;K|GZ8m*KGn z^q6YIQtcVjcBY5hyc*mf4vzZZ1p;v(U?{>uUIV@oFHI1=_T;4xheM5^51+@xFJ zs(!-{J?O#Fu8C^&T=|kGzT$DAdM1i#uMfALle8zmz>5|J^QJz$1ZgI+jrW79-^6r6<_ z(q})6FS6}0_#SwG%h~?T2RoWF6pwK|1yMC_J-pzMHO?ph1=F_m`1*NDx8yyHvnQL2 zy;+P=IUiYoUJ1SpkNu|z7bl8Ad1A9wL@7j~?$-*Pj)ZHrQhnTAufs;U9O#bW$E=uQ zHxuj7zD$^kjJw8=qtcfOBq`2>@{}Z7DgZ^Z7AQL1tP9kPlx-$W61w_brN-9IC*1ve zb<=zkfqJ|k0@7kF3<`*Vv>z2zX~+`l^Z9+y_4!%*GJv+V;5ANCv8eY!PC;!rcwca0 zFE1EH;(0ci112G9Z1)VVk=WAsv@%keK1Sfwb4?h#sE^jZl*zU&>Fk7FH`zqO-`|bv zIpdu-MAPqu5mZVDTE-25*4>H<6UXKdRCw0CXy0}<{BVp(c{>)S8@j%w7~VrPn;3dL zEX%y{D3mwxS&A>~GG%`?4|}^fG%(}6awQB6ycj{*R=bRgUFYJl_+vkbA45I*Z6c!m z`9_Qyh23#DT4gY|iYHrgvm)N^JZlvrY}VIbVp_IUaRL`h7vk3K1?r~*|EHzBUz^MT zYFG`QIC{cmbb6TwJ$@OEHqVN z%|`&_mkJsBf>4)ZeB`D~6d9+ATiNs#tKsERN$Ys4s&%I#PUw9uL2}>3v~vA!rtFhN z3Kox1KfTVZtzdvsWE-!$ta70j+qw>gOdIWsdGYOXV&N0b6ki~I{e(WPy##}0-~xi* z7wmLB_|eabGBzI!Yx^muS4`dBh>c6#DKvO=l{rYyFO8Hh)ceXues$7}N-YrNf8l?3 ze6_l5m#lVW347F+Mc1shW_Gl1PqaOZht94}G zvSzYkB1q)PPX37Z&DRgzbs{^@82+9qZONyu^t(FPlB?*25-7KFe{dNEScQ&BomEEg z(R|Py5^%n*Y6jZ$?~i+<6MT2s@7fV*M=dE0KA^}GiWEm`9#6f2 z;WKwUj9H@&g3G!{HqPB)Vb9*D5Kw>J>K&PeD!d; zK2=pT8HaD`hF}^?S8e7Sp1=U9_>{kV1&TPWK1pDZKS5WMiMjI7)lLq6Y8p)5eV;j6 zn_;Pv+7k-!V5<%@YvMNlbEdb1t0nGHE4{N8sEudYq3;$u ze98i^Q$Cr=M9J3yzf9S>XrFy`RSUP;1`L?t*z!E;K&< zdGcODFKEWJd`>1#YvZ&I!m#ltIc#3bT)(63W0MeoIp5(CD)OL(mKNcd+PZ9@&cxgC zqE-YV?^Ko;@WNClb_oOXDvU=&R;11QdPpsAYBKQ5`IRi@)4V)ZHM}Pc36~nB84kl@ z5)RUcZ&rMDhFTn~?naZ*$;H-ry|(IT)rjh*v7x9ojQ-C5Ral!o_E6q-4|^)UX^s%u z1@05K#YWq4Y7uMQ?rJTDe(`4rQ?cEOvf?LToeA{FX8|w5Y!Q@`ct7JDC1LsV@Rdh1 zS-k}0C935db?`^$hzw^2q6`=&^6TP{Q4I9_x&ZTvKFB-x7yazpegEUB4n_gfKSE)Q zqPJ{s9lqis2{_F>L!3XgjZmrkA0PAlCgDwc(@sCCIJ!bmp`oC-g8WRmBm`Pw zGoG>JBD1Bc?K~a>L2N6{j6a+dXMb~p7?r*T!1X`^0Kosh1t&QZCLeXYii**f$;ORq z#hYIjLZyYy*Vnc1Xm4FK%;lSO=w{u{LBtn9o;K>}3#}TXWl|eE$ky_qiWk4L7$2L0 zEe6tWsXCrSTN7RAA2o?F#{H+sT@)j({p|;5_&~Rjo~7X)8gAZ4G*zA@HLhTG887j> zkztcjE%IikXK=af?ME&!rXC<*h$wBi0w=R=IUsO*QV2v6G&wFjw(-z zJ(N6I2Nku4SZ0hrux8vA(mt=?!Sm&1EM4oU#upMT;hqo`lVTIi=T zrOp;Z;u8V&_dmc#J!n6sC+e$jx_^oRjGKPRY-npR;vxXD{Z@QcFqT$pxvf{O<_P)9 z)sU*Bz~Gh1{hgjfC-JSxCAo0pZ-14hR2M4e z%EAme!l`}<*5B!C?PH11K@A#-t#8H(`K^9ZGm*J)8oALC@cOM-hy*X&t9fQ06*T@7 z@DofbQuN3joC7%INTrJ0-=p<_&Zr}m++{qDNq-f#MIc>{&dWKgV+Tx z<#8E*jZfo*zHH2Kwin;+ZI;bWR*F-uF5jE?kYbwnxabkGNy}|h#{NB@l%lP%t%^lK z8ufe+){H*Z}QJlEtrTxPdA%cwiBaNXnmV)P|?uWKUn5DFTZI$|E;%AyxkfT%`3h4Vp; zr^;>~b(2NPS$X7XwaCkDR(O%;)1%mWUSw5n_6N*AG@0}%6>QcBK9Iz7!eJ$dkWv=J zg{4oQEFv1usM1z&TNERHRJlw}9ZdF}ybQkob8aw$#CnJ2+@O~dJ6@;{(YYnbN-$+$ zs)k;d#b9L7tx3Vf+E}QBBXk4p?tKHM%(a1+Sed!&S>HKJUAvn>Zzx9t1st7G%4JF>peH6L;Y_Av2e20 zYb3Cd)m(ph9}^7j2`=@n%DNCC*PO&+9c#od{DBda#DeN%pg!{v8nzm2k5W5h25tFxI0ob(SND zV>qTS!$MABRxUctoQCe`Rgvfz}h_E>DF7^Km zL&Ut|WBkBQFh(R3yA&hFy&U}RYzkKi-cB`Ztp*W)=@If)dBWFVCy-1wonvc)8C#ft z_Z?j~>s6c>Y>jM2&F)03#d*;bLy8iETMZT=-ehNvrVPgh|BAkOQ!(v}c`%T_7)%#$k3qV28%h+BF@84BG-9|$!1&v5JC=%P0 zb89(uXbM|b@YL3#;@p~jo@3bM0U*ksmbqL#2l>RSN$LO)6piRSi90jOd*8dl=9TM% z)GIaXGpXj+^}dGIGoasvYO)@+jm72fal1LQ{R+!svMH!Emzk*l+OPY$6p~0o+l%*z zTYFYT$}~mb`Ojs}_pz8&iQbb+6tov&m4Y#-A5W6VsYkrrIgmeYF){7v%_SA~k()x>V z@+*OW=}XVdFJk6{%D+5v=^3#^AZ+P_K@p&}ihjC!ba6=Y=fb`cRu8}O<;<=+RE9wX z*-1Ay!eU;?q5B{cx=hN$45D8H(qXl7xYnwFK=L#41|i-DmsZ1|?twKAt#4%U>VdF2 zTphDrHV585xg18l$|s7$<7%=WUcW~gcayobM)wpMP1kC$^I0*EQsr6h+?N(5#uQ>6 z-ZF|x;qw!;!-*4iv;{(Rw7QcqLVtL9*v?SxI6J#|s%~0cV7C=9+z(ga^Rtwbo|8(r zK-U-Z+J~MFBKv*h?GM85=%+Qj$MHqh9~)K)U;;SGy>+0|#@Na~?ppcwYwtCZL#n?t zhmv}gucC{04_IFj*}DyauNhK}5_DvJgf8wfsTw{{F-rwZ&sprIZ|_@*>+ucaD`n50Le3D^baFu1wTz!c7y`BDfQs|w;=4X z5etjhKSN7>;R`rK=Xd^2O4b}Q>AeY<@$eW@@{;R?3>0_dW|FmaGQ9ck+qAvcfh7Hp z(}6cPnv34__)tR6q&sH-04V?v2!OMMXaPI|#{V^{L2&;cINkqW$^Q++WdQ(?>i)MK z{}K-Ab^rjezJC!}a@+0senH=&%=y6mCA{D3v1H%dfD;dUl(VEv|K_d{E$eq-`@SY6 zl7v;hr4b*z+LAZ4`XLh>mo@kGRnu#$cehvh6{RpSW7C#itG>%yNixO?c;zb`&6Ldq zCSLla-uyn7l_zPvuFjo-&I$@Gl0({iBM=~p4{T)e;{V~i%+PD$G3}d6vW!`^+eNnU zbHg9?Mx-WEvj5@-98|8#4iwpQtU}|B+R@yV*O&Dj*g7NHFy$gPaE;B=$B?|=3CctNRrag@WeRN^!NJuNKQ!j zqopl62T+#f@buuF!O-yiy(Nt5=xwWkgXQ%uEwH>nU_5>@^?77iS7uk|7tY)UE_7!D z4w*iU?T~;a9>J<@RI)R~7Ry^btlz5=q@eZC>~vEB4OSt3hjx>FDRCQ0IoIZ)jlt6K z2M7M#y?2GWY@L}uk$s~5Lo-stQ#E#3Pd6#5uhb88+eCnAMO>6QEHpcU|AOAqZOaP) z-zv%^S$kNO!F`#T8MAvC{7$3cNs@EcX|X;2$(9LIP1Tx#25Rwl8~*F)&3NvLA*)Uh z(CpXTfmhoTV8fuCmQgoV<1)gRW{Oae>-3h(X23->Pr7o%Jqp~>R{j&j2kSU6Xxy*J z2&LA2u&yXeZ@Gt~U>)rqZ5Pw7GX(o$W}bnoESS@M?(9zV?ziU!J26I!h;yToPAvGb zD#yrclf>Fd2)&4y;;-arCtv&Zo_l~&GSwFLqi!;NxzgQiZpagBu|Wfpumi7sI*cmth z02KZk6^~%}Z!i!r@lP^<`giJI%H#ibQ&@8V2#)_IQR)LgB>gu@%s&TP`frj?e*h%j Qf095j1AsjLNdf%+KdZWOAb3VHh1PpP?8a`&h?bBRI3yDy#W`A`Oz72avsLLM$^+hg2`~GzTV2 z>*&nr9UuLE_@U)Fqw2Mz4eHNYt2HjQ_V;;I&EPZt{{2Dk`=P+!pvt#Ryvie{jIXc) z9RQV4795pa#{3UaSO91Hhta9$5-&}%cb$n0{2nJ@%+5Hg26(vN7B)&Z_PO;_3aGQJ zzA+dy)?Y3$g&LXkDD(eYY#*hS&A``3DMU88>xj^4gj{Pf{gPjznk5GO0D=LwK92NRvPOoU8QwUlR358B zf2x-O7#~ZPu^mjgNts}}lG>Ud7(VYqF`5nez)ylr15L*_htXdM?wbcBm~OGoE9^l@ z!P9A8M*5Q8IC9O2$|aM9ze&WwL%DUn^ajd>$1cWMc|`j;0s2ZSDeHw0Fx_=A?&a0q zeFv2vtU@pZhl|U68pPw#dL==b=l%uaAAjgr@dVS^l?e1rAy9Aj=Sq>rmk0L3tWA8tx8&;6#~r685(?jd-AF_xHL zewa0qPx}dy$v$yHpa1OXzNPN0krcyd$B#zNR)Y<|+<>k)^Zrc8R{vHJTou|}R$9My z6i5JjR%1}R0#WnRq^=E6)P$mW6ts6lFpJhy;8MoQl^lVZF-@+tC9IK;|Jgh!HQ3#% zpKxDV1xL(#cmT-H16w5Lb;gMfTpTvA88OknV=@95XL#FYG1M1GDtYlBJd9jklLJb; zibpl?vTqQ_@nOf^02gqmUs+^xopynuzZQ=-a+~a>H=e4`KmY*afC|?v)tT7$DcyTrFH4$G3CLcwq+}Xl)QNG2o zI19a@P=rL_;uj15{r|4?UM4ehT>;FNKJyH>>2b|%6hJyo2|qjxi+-P-6iNxqn<@9> z(j9WXer%p5Zzvu_#FGrq<065%DgJ?xGR7j$nhrp-6_>P_*R_$GkU*?^bdk&@FyVcD zEF}%2aGZ@6$k=Um2gh5K1AL?3*lE1IsPp{JZ&Si0p!|0QwT3d~mOa47vur#dHXVYb z_pXzo!5~w&|JwQU#H$v(#&jqUjz9#YuqQwYu`;Dl=HjnWz!MweqUwh$hq!v6E-p}> z9z)evU`zs9>$s`_OF+3h7V+Y6TV}#wu@A3e|Nlz0nmOE9)XAwO+S3oRZO*rlRe5){^JsC+=*_{KQ7}R{QjL?`!D^7{+c#YUebh2atFw zOgz<`UL#3Jl<3!k1#P0|E(5{;(YW|vVJGItb@d6DrX(@Gd6c+mO=a)*b`jX4*myi! z)#w9=Np7w(H}M#CY1GiIAWhTfeg}_1XU6XCIFiwtdX?MwR8!&sf;EBTN|Cl^Z$i?h z?av&uo=vGUa(pJ7v_}6lWS*g2Y9U{OIZMFS(oGAiKUG1TS5nm9F`8jaE~ciL^_QNX zwZBK&F2IC2oJ;)~RX}kmap7va&g3W%JzneMT%?D77QK;tAwLuW9Yy^dA}Y54FbrwG z(|~8^jzs|e-2!IG7bmtf+<*j3paFXdUn>*Nr#b*610(yTP5Hd4HQtgr)i8BImpe(! z+atn^xix5drkO&Jg;2=4h=D&cViT5ruPFmlx0WC4o1e0?4|$G1JWfmoig#|s?60V& z6p`^*f1XyX0hYiOZAu_|&msL!WHHOkmn|gHdn{?%e`C~xw&sA7d9iP78{*sA5s|O# zE~al*(Izc|FDt=xuK>Y_q&`@v(Ac)Jy51NWI_;kL0po0GGn4A!kz13EC~yZm7Y)x- zFr)#8v89`SI!WDo7$hi~!25MsK24-lLB#{Qeq*{u3+tV30E9}rl|0D@@1l%3S`Z=} z8=;Yd4ZlP&#PVBhVdKtP0Anvw+F8!LI;e;S=`R0)Pii+PpQ&+2*W!xI5El>wkle7j zVx{?+^l{J%*-A(Dq7CzU`9+OAH2PTY(v$h077Hi=48u|(i8`R oI&s_pT9Tu=iYQmW00eFO0014Z0045p00El-1RMYg7ytlnKv=tQG5`Po literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0503.h265 b/samples/h265SampleFrames/frame-0503.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c88fa2d153b62ec6e59bcedc5d76e7bb32a48e4b GIT binary patch literal 1732 zcmV;#20Qrx000330oSqr)I$OSc)?lH)&imCXb1s-U>F1eKr`P|%YXog0}T8$+b_7~ z|Nk6zofWFq@f{2jq!A*y8)&jkJ22|$VZh+fshV+*EDvG14EM5NX~h9%UU+Z3Q#@ZQ z5+d-T#BblSa;gu|S*(52L3C!@`M%j;XU5eh)+(TepmuNwBk)ebr}n?(gyVptOt--0 zI9u>Z@1pG%qtVpOa$O|EPt`+EB@TXP;7xNhyk#kzX*h^H64ihaD zhf}LS)1G#3dsDKYFAR?_I9lX4EB81IgIK!=~1S9^VSWG>~778AqFsKUaAl>jqocD&LVs z1MgX=GlUeC%p_V&Myd48P-drG&%ckUr%4UHk%7A5m7K(nxw?)OWNgCZ<*XhmkqP6@X5f1*WD+3Se?hG zQ0OL-aIFQs&DaIGv6OmHKcx}*M}j?Rgf zx$!*9EAKGv2H2VVQr>e#x?G0dKAJxlYZqP@(r#d=vJ&#aE%5ig^3X>DdLc`pvaJu0 zl5kmhrMwBGf8_gr2jkiBqwVzn4fOi{AJ6`q`+Woe;~Op&l$!S-L5ex*6Z;beyHa!u z<~|S<6CLA=e$I6+ns=k%Tz7N{jEnm)=tzydMEG=@p_lutA~U8vO+!pBwiKGuHvO8@K_T;I)5@r!x-_ep<$sAL#vjqo zT-&UZDkv$vP$4*SA$}OQeLyovHR6403sq$S-Th5AG5BYA)R|8?<%k7MWq zQ6iakB6;nb{i%<(gqyR$-Di}I6N}d*j@2^H98g>#)@kA?IphJ)K7qamRDdtv)OPQ8 zc?Q$h7!WP_4xp_pj}7R;xakaySFcfM@tbG(iYCsEg7JnTGW7I3n) ze!#v}^Gm)7*o(JWH_C5Z5r={O2zj5*zS}{AC1NdKRQbyvY;&-6wv&p)Sjk227oB~p zbr?uMVofuIf!dw=A1{#vezARXQ0!#6qV*%5fP_Mdc)t<@!dGt_Zwq~2J-CHEwlDyaeJBCAwj9E2WE!>IN4zjI8)4AaftZ$MKq=_C7x#e|=}0O72&kjLMqnU83^b2Bob~eb zYj$azODz&JPD_2jD&xz^96ZFVW2)ReT;2>KLu3UmZPJO%bVo|U9*fh2q>^?hsCar* zHzET5noYh5U5{@osO`x!F-lF)>|V{;W7G8cIiQwG`S3^}0Lc%N<>_>}wwnv9^V4EL z9JPTJOATT`oW?gXG11cZf2k_y$^)jH+^%O6mA9x(!pDGL+xJ#kiRzUNimuIDA6%cG zHx-+Tv_R$Kj{E|x9co#NuVL24#QnUjG2>7#<}Jj6%aI-p;}SVhCH3QEa-)r5xwF-j ztb`%PHM!y#+$|CjwiAndCVnNlm=CW zyf|SBBiY@}koAXmsYgh=s?htM@HT*uO`K4yQOIvnT)-omF00GL( afB*mn6aWAm5C8yezyJX~00Q~|02Od<15^|M literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0504.h265 b/samples/h265SampleFrames/frame-0504.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3e35af38cb02d45a2a09188264a2f61ffb07f482 GIT binary patch literal 2124 zcmV-S2($M9000330oS?z)I$OSkilBKz5=-fPzV8lU>F7gKsHvD%fJBntLEx2kN_RAjev2*VWEybamY|l#z^cfP!(e>xKhKu=KX0p9tfGA@?+x1} z(+08{??n0oWI_CN8Mn*jI_LL>u$4?JD-Ivo?n~2hTQ)<34u-D8v?L7wzh}qhOK~}* z^Kz?$LX-t&;&Rg}rD7XyR{L&`l+rUl=uTn+tvP8hS24+EOi>)e0{cS09bd}(k+k`A zr_K8SM#bf-p6F1kVS~nU2>*Fz4794lWx=}^Sc-;*)ZkLq@oT>YN$@CL9QVEXN_u5#kHTxjzb|!qlsO~lN$Q8+^X{Y6V)bWVZtUgZnwfCY#(K?WQC7=-pw_9|CIzJ0OjSh(9zOe#SG-)~+KK6D{CS3y zNm(ri)^Gej52IZfzL$qqPRLEg$bM!aS>zBbAnvdMlj+j4Sx3^oGyZ}9|B|d{zlODx z)NF@G!Cspc<&9=J{XY#Kqrrj2_$^-K)=+y7r&h|??1qx3D=j$#w7n^C7&>OP_64~A zEFV<~QveLo8Y?}tq#$)8wCzgK>lLa&NpK(eoL#8`OypZ4{=-qG+0QwVTx1Q%*Hgeu04lPDi?X>hG&{4W|{ou;TWA8^7CH z7KMA*f)1}#y9g7fr4fS8V@+r+s67j>)q3(XLhm3S001_nB#|`bM-y-(6uf#Kq;Z|!<9mJy*vFYdk9P>@xk+)_7cimL$Lhyx3 zDxbz+wze!Er48_=FNwJCGP`E)o>xxh*{CQxC_nH}m}>8B)ecN!&fZ(xigowW0lVK? zukZ-uXS_UAzXM}pU?nvVCRyXO8|-9GlNoP=(X|3aa$bf@->0+nooyhBGFwVMd`WyM z^~mjv4f<{Cjqtp6)8Vq2;Q3>lheT_Ko3U7_cDytE`#5HvDbs*9Bxmkr&R;kE6T!Xt zxHMxeBK=k&8+ZTzXAxd;2jVik6;ePz#!(UwA?vt0TWU>%UenS_wOO(QxP4y=%O>&k zsNH~WJL5-c2LmTvc6COQQ&{TW20NZu&HydhAx&Ol+g&-l!{A3qH9FGQJu`zNYs;(FsmLmz-!k1Hf{Pv7!rT_+4}0$8B4XY{>M2<+w9!yaI~4a z!Mr{}`dYwCd<@K8(uyq*9_R7%QB{?uo3uGCY-SX$UZ5EUv|LNJzk3LL(Mx>ue|Okl=7 z5*d@brTEcHOPYXfkOXhr;lFNf)+cla#4=ihlquKVhfpAybO4^aT%^J})cS#_X<@#> zo`PQ?gKY9%;B?!mFWQ1`M_snB;bYA%pCvw>OOU=V_r#f(P?j?8Vh%S@`&U)1(6Q)8 zD}a9iI7j7p-Hi7Zj0+N%`2O!&``_|4TtB6PD>5}`&8oVy;{%nnNe6roLRC0z#Sy+z z*5;iG{L=-*PeZ+W``tMG#Wn~h&%{~@Yg#brkaz%&&wAGl1Yf3L00L?Fz2WIi7a83A zHc97V^3(t#e4G+K5shL#w6AmvrMR{JJPlqdrDUvSZ=aw6!w5R|M0SNo9G)||;qC$M z^3sIQ?;?ns>-jAfx8kCsb)e@s1Y>*;vtnmJo`WZ1A06l000G4000>f003G*008EI00OoE01@y2 CcM~T7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0505.h265 b/samples/h265SampleFrames/frame-0505.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68210604a78566d502cab6e4f09cc88d555e3885 GIT binary patch literal 1695 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 ICIA2oC=!n?DF6Tf literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0507.h265 b/samples/h265SampleFrames/frame-0507.h265 new file mode 100644 index 0000000000000000000000000000000000000000..252d5ed3188b48e4826fbf9e6379727cb031ecf4 GIT binary patch literal 1622 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 O006~+00Jfe01POs50~fw literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0509.h265 b/samples/h265SampleFrames/frame-0509.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd28b3be3ea173f735217975b53550426cced453 GIT binary patch literal 2324 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0510.h265 b/samples/h265SampleFrames/frame-0510.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f88b1290eba6f76b16e302a50ec09bddbcd1d37c GIT binary patch literal 1709 zcmV;e22%L|000330oUpO)I$OSu)$XPX(oXHFbDyFU>F7gKsaruOjP(aAXej&9Yg!6 zp`9ElsJgoW}D%cS83@L)$P<77>b3pMHQg{Yjd8GUcDLy2ZJ;g`fY;Z|aOU8gOpqa$oO_MrKAw>*3y6}I5kUbtdy{{=1@rIZKEm0`-8&i)E zdWFcyC$E)d@L|h-G!n}640bNx)`IGuADKJF!5b+zxAG>FD=jD5xnCTqDUL`EM{^(C zX!i$3jPS8Bh4o4bP9Y-xsV^$C^L4BQD#wqqcGYj6MC%bEbAf9pBUiWq_+}@JZ*@>d90<|D@&OII{lR;p+g%i6$~QP;N!*O*j`SfFsJ@eA3w)50nc+bUU0ByUyz~K_OkJn}DF?e~&#vj*fLBu!k@P?JldJ#(G?Wqt zZ$%NT!T2+>SNK|mQP}_U19+28HXf*>=CJmeUk7ii(~^?vuFROqpvLo{-d#jYr_P}c z#LN6j>=ar;w&7~J^|X!wIbgcB(j{M^oG1-x{D$5pCb@fmga z;o|&Izl->-z6;=VxRHa)eKhvc=}22ENB}afeajuwhf5EpcI=lJZ~y=Z_^3jXXBd#s z;s}55|KGIj>Vc-yd3Md-*U^BL(6CG96XatYffE{A#|%u#?zK?MRdD~BbziOP8<`2L z4AvegZ;@*D>JI@R$!#t_|0`B^Nv1@~JQ@4}>T!wG^Z+WsdHV+J3YCp42KdO%-@n4m zg*xI`37OPWrTeb)-gA0I9=~SnW~E<&h=K6g6=r`Nwv>A}WnkI~jyk&7WUsa3t8WHF z(?>3r^Aj|*^;BN!{ul?QFuq*->ggN1j|i~xzOEaK@Bx0Ug~x@}OEw9lfDJGtt4Fh% zJ1$2@`R7kBWda@YU>Tt2+pM)J7av!E#oxe=GMyIEke2bMk8whQ#qt9ERbnbmsj z!IQV4WdWbg8*J~7D_k`#UiFl+-FvH5v(3y?3iwMQRu&m|;7XMMXh7-=)FW;O0+*hG zclROxJWnDFFmWMFr9ojWZ^3|En@8!b>2ofl3ySkOls(&nz0N!TOdbJ3nx+0{6X^IX z?1*Ql0^06qfOkAf!Csi^6s42mt#Z>n6sy|FnKpoDBW!|@*uN0jQ|6RbHL1a00VwI-~a#xOaK59@Bjcmpa1~HfB*s}000aq D;D|%v literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0511.h265 b/samples/h265SampleFrames/frame-0511.h265 new file mode 100644 index 0000000000000000000000000000000000000000..84a73bc086fe6cbb6851c9bde45a5e1e2a628d62 GIT binary patch literal 2724 zcmV;V3S0F6000330oU>W)I$OSxWRVaAtlfd0e~O_0ALIOfG9X^r%Y7%$n~XlulN6J zKie(DH&AAbke9mC!SZ@zvT$vzsbDG?@w|B}H%EDn8UX1G?e3;hFEqabb%xY>zDd#@ zMF9uLOT6b}PBESu^FrOS+z2Wx0}AqSQHd)z_7Fs+pFGv?%`Il@1w0AvoQA^qo~WM5 z%srmVA0;{)?9AVuOLVlk=IZj^ka=O=CXe$aYwUzNx85+w$X~dThgS~?CP+$?eYi8z zAM@5?Jcn{=c4;Zv8q_UW3TRHkdTf~kY{sDxi&Uj1WVNw$kcb&Ol%a#^5v0*#(vvKj~+uQHK5>FN>CWV42kMmW*{t*DF8>FBLO*8c2sLpNIheMk6ruINXw0;YXiq)^ z&BFh)n?URl27q7Yt#&Fy;OKTd`w+JE&nm|yso~&WH`tC&)tG`z(tDpAVnu9`7`Bv9 zOYN9IArJ(1&n_$PUAseJ5;`+<7-XZb4jZ%~bi`rQguv;mJfYR5ZY7S-Kc!|OaQW5Q z@BfehXrkJc0a_>VxVQmH$o1yWwOTGX16V@o4EJBW#8P7TZ~b4TXFIXhEt^FMpr6DQln)nX+uZNH~c-htw_LunPHay#aiHZP)>;7e2 z@8kGTjbm0JN<0B=fW+_r21Vd9be2&|?&mZYu?6+uvsn0>%s>eB;K$0pLAN}75iL2C zOItj$2TE9el}4GVb8!|~94%%qqiL!2-ceuGrHXbmXOdE9K!!Lb=5JuBcF8h3c5yHm4+LGLaH42?laWc=t2B?gxv(3ZPfEDkL(eT!jWZrHqcGTvY=yORVK z+SOyMGn1t8W5ZST2hg|R+j2)dqkNdwI{Ve-&pE#*TQMIoIi;X4@z9L%mM%aJXg?a z^a89w8hEf7j%qp+O)(4_-p7sMrtqdM^{y)5<3-yQ=wftfGS`9BtKCk%tn)b3iO(h9 z6d)6oY|!SR8!P|*K-jvvi%W9PCi-`o>-fnio?YW*7)CU!9}55)80jA{BUUk@in%B} z4|?`ct5H`IW%Hl3gMG#Y=+iB=X5Age{FKuA>no&+nwYV|F?g`QP5=M{0^X=Xl4w){ zIl(ikv1^J`Tc?3RX{Op)L7`MU!r=TG|vIGvqrI0vfgqj8}F5y1dd}XnzD+Wy! zNnVEp?l}y>gHxzZ*@p3=Zr2Y?ac+#QA@nYbZp`+!UZEO`ldZBSRW6qNzP%tz0hd-M zhss}|_t+;LSGaN;ZR_n&11{8LQYmiEJLBB_I0^Q}yTmxVzz$V_0aZq5hY|5G0E5j$ zQ*wX}7+W!Hq2qD7v$REUN?LQIW*;KX%? zKu?qbuDYOm2O06{v~#|%faR4*p&fyF5K^>{;DDaV@LyxL!lOoCd$U2M@ck{Pmf-xx z&1@9tqiMsMK03z#3~JEjm-)tdDChz-PnZDnZ21M)E6X$3uf2tp#EbIn?_@Vy&HTRv1E^ME-vXV@wQ-BAe}cN@3B2tM(eKxhjoh=2h~ z6c!So0YLZu5zZEl01C`ZCU_I$lHqgF1M0Pi3m^ucUQ^KI7QiH65Z(X?@eClUD$hW8 zKwj;8N=}iMX>;h~RnH5l;{S9had=>{&n!<6~v(ZJ(zOW$ZhLa;yDa$8?t- zh+uIc`I!)TB%t2<1H=dLgSK-e@zg+AqHO3Ewn~3Llm_I)VS61e*BLoP4FubfOJ@Shm1DaIIs2|e*rlu z%UyH9x8~|DWDr`^)I@-W$LsWMB)>NAG4j2tNScD~&}wP#fmI#tUIt1v|Mulpb|Igw zpj;K2Q7N{!4JDjr4fM+%L^C0P&6=Q6OsI%cOhwgrZt+;o-V9Vp{iARio=l7A(AM_& z6gfVSCMO8k-!fXogJT2(u5ci`Sjtgi9Nmt4LBH;&<|3-PofXF*wmRo<8?DfT@pMG8Yqe3eT)SA)^w!QO(^C}Ff!YH(4O!9{XqOx1MW&T-3UEeq;4{N z+8#CM>u>DK5nR2Z`E`F?`@Y62+S+>TJT9y6R@mI?c-shVSqFms>cAa)Ab<0bF8TnD z;oi$I5hxJvuWpM=- z6um*`sWAx|#PME!{|#rU+q@zBaa~-JxGq5`rs!%DAB_-T*%$v&PQ&P9XZ|N%mMru@ z`YC+S&Y2C7K%ZkS&(qW};d#;=NIf2He3EZb46qY#zM^->6{MjB;X&x;8ubR>vH-Ob z2pa-6wBBLu@(-W7hi)@{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0512.h265 b/samples/h265SampleFrames/frame-0512.h265 new file mode 100644 index 0000000000000000000000000000000000000000..81618db23fd984404b1fe598b2852e40d995e6a8 GIT binary patch literal 1707 zcmV;c22}X~000330oVEe)I$OSu)$QL+U|h>FbDyFU>F7gKsaruOjP(aAXg@ETd=$v zwgvTRH%z51H_ZNpy9uG4)9yKc|5IB`D|E^BhD#pSmo9ewAAo;MV#J9!N>Txo zr4Gpb6+3P6&Gy`7&WaE&L<8Xf6c@y(c>ez6wf^tdby-%A^C0iKFHD#Hw!DJ)$|FC;0 z=UMGM6+MAMFlLx3jvKc>hQ807-Wh@!78_aES}0HIuGYL9RX(yYrWDk7JMz)3WU=taYlr28soj1p_A~X;ce} z;>AA%zMDP1mBsVMy82nBki*;gdp=CJR$7`aH10_qQ||{fu~L=hk4&1!OtvD@0X z5IOpx9b;JZRSOL!y71aXH}L1wza0B~@6g70p*0S;6uKm^3Xp87xrv8=9pDG?KTH>$ z8nfBg20EY}Go+AtzWqmx2twYjuh(qtE@8e*K)+f!?w8a)X;p=H?KM&z2MKntlRHJY z>Rdi=8f3I$>`6m&Ps4-R9=opbf@@KgG&*FiSCSefYyUjZ5>CNh(u$NrSn}pSAc03|5672pPeS1FnHF9{jXA#T>}>MwHRLT$J3P;?p%LSqQ{lSjwb z?fg$jGKx=I^N((CbMv2r9l!tp%Ydjtl4lqc6M3h1W`C?1)5d_Wz+*wQ`^xsE8u|70 z)L+db^PlHQv%UvdDrPu1B1;s+@oME|Nj5`NiL6~ zoT-b#?yKocB*S6NMG51gB6J&Mems=?cu(3@;PaF3o(cK#c{}_-dvf)tw(rGlBX{;= ziIdzkJ4f6&IoR-M(18W@n(!{UtpP@8KG)RR{C-#5)>VT_F7BYcKo7(AWfraR6N;y#&2B(md%KZIzybwd`~Lh31Q?P!>=9Y3i;`LjxR86UT$s@L7tW zGy%ee=kBm>XG2H!4mJh%H+KP;?x4G)s3RMdtXRbv8-YvMB0u29AC5S;mud6aYOS>I~;a zD{^0SuhLh_{1IErv^WBg59&SWZ5Vj=Err%Lg2a-* z`1M~QMeHMAK~EWf9&RSlz{Rp`ym9r{vV0hl%UmRQ;-rM*MaCdl%v%aB*K4v+mt`3h z@**mfN*m2br}_$4S`g)pw*gxs_suO z&wSVivL`FVFA3ovjHgXP%hF4uwk3bUi-sTL^DlB#Q(z)qJ1`+dIjr-#x6FNoB{ zn$Hzz?@=Vsf(?Nl=XUVlsrWQWT0KB<>n)xX&gR_&Z%qCz1vs0*h@X)jJMr?4eNdb2 zDCDr8$#8$+p=Uu+SW!$0)g3*`qhF%y@gJ~~)HBI^Y5K(~^BKU%YRA^D$IK5>v-&9? z{S*$Df4z&~nQzfKEOnqNJCLfjr$jWo;Zea(zkU2`i(5XmSG<@rzpjO0n8Ol={R3>; z5lx7`;4?kbMwZQ8O!v&U))?i6MGb#hJ})KRn@QE+%Hc{vXhpB5@G5Bt_mZ;VS1VGg zZeB}xlz@i<^M{R+>kmi(1B!FN%y<9;emmd*00m3{021&306(Ar0L6d+0ww?e3@9uR BP?i7y literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0513.h265 b/samples/h265SampleFrames/frame-0513.h265 new file mode 100644 index 0000000000000000000000000000000000000000..22cfd8de851a7c3e643b32159539597ac7315fe1 GIT binary patch literal 1916 zcmV-?2ZQ(k000330nh>e)I$OSu)$k}K9B(bFbDyFU>F7gKsaruOjP(a9)7!1A!sOl z#{d7^87aDToijAsyFqXgO4Cg$g*(Q5Ib`JRug3YV3qI47?IZ;8Fz;(66PHz1e&r({ z4RSOsy7%y?+&N}7tG@dq3Owj?zyuG9iVk0{l=-U=?E&X6{!k$4twI)46T=C3F&|w} zpPf+nA3XLy?ibqok_Q`sZcmbULnoB5Q094xme=fJ0Tk1v8*)})PNN5s`V7$&Ra<@w3YBLGjtl==f-dCh18i{-5 zMoH|2`s8sTrPStJ_@&3tV@g+bU`fSaA$9}WtN&Iw{61@?lwFPyeAk&=y?J5Ma=mMT zOBx8QQ|C0IljPJiiCp&k0{e1OtRswmr~fkO0XoggA(9atqUiXHhG=cWL3mJ_UkSNk zxL31T>g8!Q3t55~x|9mM?$H8Y0I(MePRRUjiRtM4*exyEs{t4eKibU3&U{L{&|FS? z=Sp$lPmfKwKJlV{yD9yY-|8`#08R?>DXgS$|G#CU=(dn!GwGe5oryyfa83=fDXDQF zs>SlryIz73I*z@gMm)X**v8?SHJ1fT>qg*i7E4(iq8<3~Wx#(ytbO4pRRiH)-(8Q< zkw^oZRE&+a%Bxvx%@i2>7;k{svL}^ZbYXNZ;^t^#5}1+4(%KQjHI0e(cgWu@5p~?Q z!vzcmtMVs#RAUZufHh}szVuU)d(pGttGUS=0(Heyzv$#rG1pvEByZ zSw$RDf&SYkHP2OQv37jBFhEE@M?=J?48)Z&)L{ZVDfXHF#p|scw6lq33qcUa2U2t6 zruYJY`Rj}4*%qf1#tUf3YG=`swM8t zqd)p80zaMCMepzb0}%Ny%tvQ-oU-6J5HS{`7;Z!=jSKeLrmbJ@g!3%Satu6A(^2%z_+YK90Jx^R zR86VV8;GGrA=OgmlC>%x#{j{aLfG@$AX=c%UKUjsV7gZH*)QX#MJgyO2v z2a@g9q_lPJ1&l=?G*)c)c}f7zl1aW)jQ;sI`dET_`;LV8?Z9mijFNSzHiN{QVwI$7 zAiKYAj|x?g1Way-1o(CT6!I#Q79qHyvDOIK2b=ug+=Mh!=WVZjaq`uXg6c!cbS5z| zzcZ#JZ;#vS|KcW@5{m-KV4fs6z{DxY>E3<{>JId)m;qM9zr?-+4gA|L>oURKNfh{J zjcmAYk4b<(jrqQI9D{1J?$@_~)Dsqcw&VDcdhD+zDJW;r5l78n^B+CVUEJW4M0qOJ zy<>YOelvmP4H-9}Y{qMgu+GlHD@HP89zULQml@7#0@GcAAjO^bpCBz zZ})Sc+%;f_0_7T*4yg_J00WA1z|4361AaT;000F{000v3002Lr006~+00Jfe01PN< C8N9v# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0514.h265 b/samples/h265SampleFrames/frame-0514.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4e011740e7d72769624a39444188f3e846e24ca5 GIT binary patch literal 2460 zcmV;N31jvE000330niEm)I$OSn89+Q3W*R90e~O_0ALIOfG9RrmCL{Y`)LCBz`y_W zRoV6q0u(zN{!^QyxmP{$AHzl0b}czL!LioImfWhe=$VW(t0?gPya* zO2oCa)>ZnM=*Opm&Py@6)s_VEFMG<|<%{(ZIxy4DnB-2v!|Y0G)Q9rhMY9{(1UKSf z@&z+V3(HsYT4!92?DLpTDPaLmaqg;NXhJX8WqVM(XVG(Dn;zg%)wFl{EF!I8t!p_l zl9#Nj=xgOIj{)#MIKUS9UCx98nBTx)u$^mHZH@z8(EsSN2dWrb39Y`v7ED}7dSnH0tXvnR}`#egr| zkYHNeL0FmvB8Qp97L;MxgE=ZbeJY;M^^q<`S-=DzzoM-Xx2tDc%n5myP36cq!`u-d z=sI|BjdpN$T{9Err_%WpEN{5#-C^~V9ukr1T9uJ_^D zb+R|`i%ECJSQ6;YsFjKRDiOn)wsWSj9$Kvsnp{TH4Y7e;GllCpMWZQh$~w0AkMiBy zER$p!_EtJ>@rj9GE9Ai=4S^K=ahdUPHo;iM?-Qz6mJm2kCwE*bPlIyus>war!~L}Q z(Mwe;OmMS7e-2t;xVgd*lG2hY4*%5{a8rFy_Sz29MI{~&Eig7L48huM&dpoKa% z01Dx6%J57Ln#UhNFbJb^ z&k+?&5mq9bts^+R>E>i0#}&WkJ!LY5(#)XQV;Gh?Tce$S(ULQn=m9~fLp-h zUW!kh2YDxtO3U*X>ym_@KAuM4;O}Um^m1>5#)CWf*y8S$u+n*@3}9S`dr(@YW0OoU^Xc@1wF3!nQk?DDu|)m*Uw99?W}L%ms=FM=IU)3dzH^w z_7x=V3$ga+3|*wM@>}8I&=Zq3(sQxXP(l{Xw*^-e+0}30D>OiFIz#68BovuN<8885 zNpa7rC`s?Q?4bY_d@!FgQ4@PhB9en|L+Z?LDg5|#2CgcV2nXYB+w!_*_EK4Lh5s0E z=j9p>7i=+WyW9k4f-TH=fWP!G+~nmsnM$RA><^Xz01jxPq`kzDggB^?fB*mg@I(&T zup_WhVha+0f^kQ7OnVu`9FL|o>4$`~8_vTU#tEDH}34IzSvY2vAP)q-yD zy=)tBE0!GMJN~J&APLC2yN+EK`q`A#&6}T{=cmRxBg$qRl z#+8~1zi7A3BQiLW{`|x6Pt z(=wgsbMwyykjVRBT_e6}ldcfR^a@lUAFZ`Lt5=SYxbU3u4pAE;zdxj1dyo80#DBm(BqsO3-*Ku>@S}5F3FUm&3dH_jnNYz$SR~DDcL{=ovp~f z&ZO35$o76-$J}LqcwyqKJ?y-|=k4VbS-WBE?f;(4Kc^gkA!)V@LbD~sX*NnThY>Gc z?_wTQCc6GkW-AA_xGh!gLFtJ#E=igFu8)4vs87hBCEFe7^<69f-+$wxk%TY+yTC*PMtGHA@{V#jNM<# z8uhpgUi&BDq_Fg)uQ*D*C4u><^#S=c8rxPdOo2Ay8AXg~H&P0*B2Qd~sL+|BBmdy1 z|NpaQ%xU?*?h!JTHP_RtWMTUOmsGDr+|&@`T!bg7SB{^eROHJ)%~~lmZ*A!|8J$Qn zA_qu-1cPg57E8D1nD#`luL)3D3U2pRNtNhCViKLf)t9+ zs|755oK~0ateV4s+%V=BqaPFAQLOoM{o-fE*4!>S#fwy+#vL5oz@LY2?*+l_-Js=z z_-Jei2uT~-qLSE!*93KaD5%z*;`aV2$y`N7O4Yao`l0e=;$&qe1nL~I9DC`bvH;Ru zW|#ibH7DfkKA!YyoiX>b9kA!;R3ydwU(i!kZ=g#S)ICg(xcUOU8?S532M5`O$ti4Y zWl{7clnD1f*6%rU|4P5hST`^G9c6CMo!R4>Nz1d8mdmd0Aeswke9 zpZ2B|mg6-no7In4kN>k!S|OknhAF<}gjj3+Ek#_13t}ayt6g3&00YVgP6aRk1A06l a000G4000>f003G*008EI00OoE01@!$hs~M* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0515.h265 b/samples/h265SampleFrames/frame-0515.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ef1312b715650472d5a5f71542d96f00aec71d84 GIT binary patch literal 1738 zcmV;*1~vHr000330nicu)I$OSxWQLv4g~=KFbDyFU>F7gKsaruOjP*EGDv?(BTlSS z@xEJolE9?1E`PaWF8S-_!@-e~#t|bUxpu+|zz3WF-Fq}e#kxM%WkkfgAt? z*QLcf5v2BRr8rD38v3WRC$^*+AKDn|0RAnfD%F*J7Sz$C#k!PVlo4&6ft?6v-*DY$ z|N8DpiGw3JzIlyXjeH4L$BUV~Ml+g%U;uQvr)MkHR4YOKn)8$Wwg}$#8*nE`uCH#O z$i#Fg8h2I`Yt1z0XVfBYVl2kk2r9mYYG0(G;gg+*WWp5wEMClc<$+hPUW`4L+&$6y#k!Gz##)qU;?a5Vi@_*YO}){Iq^x~k0Hf7Jg9t0Vg9pw;iNHTu z%s6D`GJ)xze~6pMU$PHZvxIxv^=D~YBdz<45xQqo1b5*`qJx1fu3!sE7Bbi4wQ79F zh3~={E$b*kVO_z6y$|mGM6Qo_$Orm&oF;SUw@Wz*JJZr_y7kyyBZ|BYL>91GV5!geY(>*sHx6C^=@VBRax<=|) zWzFR@4wV;YROJ%zvh|3adxNYr%fJ+JklZCV!&lQ87gjae&+7nZ5^jGWS>5%@R~`V6 zn}qJ`*Y^Uz03)uwojRPenMp&NIgjV|PmFWHY!CruMy2Mm#lIvIsDM935wnWE?7Yz^ zF^Hl&v_i5`hY4^$QYN@j1!r*wcB0d-exS)F8&=gs`;GQZ)nq!i@@laLk2N9k9tVkB zJeWQoT;rChc)oJ&F~h@?9LYa(nc}2srFkz`?D+>wcB@Z$1&{zdBxpqX$Pq9n@5g}6 zlY{^O84##Kl4s0#qnhY&CziY5RSUC0&k|gHjiG*_6D~!la;kAJWSMh)*2IP$X^v#!!3O^}q(ina(^&?*B7zf1doHk6_ep zBR`%?2ssR{lzrB`}{2A7}qno5uHFtUwnTiVswZ0unpd~ zQw+gPLS!H7hNqXg4*)!#Bt=uuDWO$I8gglz=}H`yx5KqrWWStGB>qKQJ$z`WsrSzW zn^y-<9D_NR`AwQozd!_~=!Q{lwv^Y&k-+o#Yu$xJJ)^rf>r2~Zjr!|PmZuaxmOIjc zxZ`*%$^sx`j*kxJw%*GXWz&R#N!u?kz;5H^Lcgx3|lb_u)k><_yC>I_F`4CZNW8+8rk`oSZw z3vt0v6LL8!^_@R069cpkh&AljQ1b9c7sn#ijwQ}0-lHO@yRPEoJ0EtI)FV*Oi@DI( z=s~x*+(WZ<4VgjIR@&p>B*hwzcF6kq4KtKrJ7h9g%A*wlPU0++PL3D8q&jR?oXssq z-OVO$pR7^Vav?bt#}Ihrg|pr==ySUpE>7yR@u+L$!~cfZS!;kt;i#%&2PXsR7eaBd zJb>^jzyG@u6ab*xJK;5kF1bkRDAcH(x;3br5H~vyv2DS_Wz7GhV1%EYbX?2m3hAqb#&ZKrf^D4k@X{gL|Pp}hlFumiW>lz zJ^RFBnm%&OBO$!YFAyD2I4j10Vt?(r9|XViQpYUqPH@ax=Uy7e&YWNHD3CTguGk@x z&os8ra#JMB!7tNO)#LO=L52NTI%UD}RK1abO}V@aGxQ^N4dmd$+o#EMZVS}^w?X3P z)`H*pC6K^v3xW-{F-xc$Trqsx27~=1&6wczHR`83KcD~r#ee_;CIA2oC@V5fegFUf literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0516.h265 b/samples/h265SampleFrames/frame-0516.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a1259e47a38ef104a57973474ab16c336093b274 GIT binary patch literal 2810 zcmV{lxOrX^x_D-s+SKOWF0~c6kxL zkm;ue?0^c8^6z~c-S8){W>cwS-=_Ik&ueYz_>L*Mv6~a7{PlyFl&E5o)zjwu z1JIl^MTYvq3Q~NlKYn!&MjOp!P*4tKNi(DRy;G44Ds>x&Rk0H{K^HxC@`;D#O<18D!* zg&}M0j;jjBIw)f*?;kwap}O%F9qcB)2z7GT6@w50>QwA>6f657_kd z`E`)>AuJe5`E8Shz=38Vpdd`qg9!k1&_O?BHQ(C#MtA2m_3GD%F04shJ@-J_fv$i| z2f!}dTQK=<@{5ExE0>-@3xQ2+##>~i{$?H0vUAj0XNaP)AW#;R6e=%|&&x*J!Cu?l z>0`KMi8yMKK^!>FcCOzMvsVZy0{pMLlP!c2Ui%3vS^%CxU9LDfZoJe*D|2T!Lcllh z@2)JLD-T>yH}i?^{-8B}+85RW+|D9&Q}BA+73a&a75)#2ZgX|!T}Z!6H9|W86moB7 zYU-6p4`QCt3XCF{|oj~9bhKQAw94WI17Q|o9Rf60Wwe4Pd{?dWA71c4+pIR%^{ z*lyIyF$>82=P3@1YBY*csMi$*v+fST2k6 zI;Xyg5#&tKAw49du0Oe*y6i^o+Y|YzyLS}LK@13HP^nQ$`YpZcr2E2V2`gpd2PB}8 zh^pnnQlx;fkbUU}5*6t$soAWuG&#~!TOuYIS&L}olV*B#NduC$YY*)dCm*7%8S-l# zY_n{lylONU{?`NNx@#;g#UrHo*i6$O>eB(TH)61NQU-i9``8jxD8~p-prp{eVnwsN zqs;WTh2{e+*fxmU#48B>Tt(;FlYtp1sz|Wm+p6Pb)Ya{%TJF%rriE2(0go<_)n+mk13GL44~-afw6_*wFm1dV({L3bqm zkvBiC85jpzgbJpjR4;2nXjRy^$oj7XwrQ@#ot;2MxyTAsYDz~;Y;TCcF|DHBY=rGh zoBPH!Ikj|SD|ikYfF)6>%JVVbPOdbkc*bO=SMW%=d&dnkhRJ_aEaXTXMaNVlawz4Zn)lws0N+`C% zC8I8JHu;G^$&dOEd{K?2V`gw$!34fmu~I{JCNViY03BgR4y_A+(V2o>ld;?x`nQ?+ z=;d(L>@I+#>!c!q@LlV74fjEd4>M<*p>$KXw>K8?97S63nPM%ae;JzWHH`oyN$X2Y z_Tr!a!SdK!OzVqHO80PrcofPrYNjHM*A%x!rRun1w8Z@YUH-rTo1@dW_2DeS*}PX`6iY==Pb$D_`>P5r!f1y!Z|YilU(?xCJCEQLmSJ#%#`K z*qvUSOOw>zy}-KERd*~-2%HTqd0fOu=!_UhtS-B(at_+TwS#o%^^#r1IaYsOVzdg8%}7Xn9?698q#uD@eQ2-D2^4Co{1K+{a@6%*wKI2>~=}h?Bhw6tkNq-eu!c zEk{cGSv7Fa-snWJJfV0Q8$n^3aqRWB>v)S7aQticGpD>%TZKqrpiRXq=OG{bW$e3& zp9DdVjS%x1T!QoOl0&sjh6YCbbDc=PCl{q*`$78oSsK;Oldc~5N6C_;1c1r+wf{ZQuYmY!SG!S_NW{3bFV5+&Fn@C%nd)ULEv{@hXw7s%_HI&9;|jj&E>^iK zVsi@k=$~)^-3Ycx-<;UzC%dzEydNPU%m?92+LZu=3Q>Wp{sFx>00;5lZg+cLlDZ#U zuKwvkIt2hH60-+I2cpW`#}KjT03^#F9(?R}>9B_qXn7|P6*r9l{OCJb?4QTfuYz+* zZA80B00OG&4Dtt3KcD~r M#ee_;CIA2oC?}3-CIA2c literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0517.h265 b/samples/h265SampleFrames/frame-0517.h265 new file mode 100644 index 0000000000000000000000000000000000000000..98b85a5eabe102d1725babf4304104fb8e591cb6 GIT binary patch literal 1638 zcmV-s2ATN)000330nj1;)I$OSu)$R>)&zk7FbDyFU>F7gKsaruOjP(aAZXq4YxtrG zlMtJqeZ$gDgGZ*MFCN}0XLpRW$=d-GVL7ITb|2NR``wrbc2dwW7%Y=HP%Uk5)0=gG zsho7daoc^5NP!J?!d||LlPErB`)(ilMFjxaSTR)vpNa1s%u0Pb|@rV zfX}-6b+|nL>>I{vN}E&#X|VjX{!^l{m}>QAWBpDgvd@b8CaXudVa``*eGB7OZE?<1 zD!znJzUZK&@+lB4;~Hrq)x3J6n8M5c-o}x}GhM5R8@??r(dYiNrmiiDNucUJ&~&t3 zkKC*BiBxM>g2K?vFbvfLu_y{xq6j^VG-@r-5CJ->5+rTFLD=Z8ZX;)Jw1;8N(4z$z%x zs^%sg{BcMh#RVZQf4&i5JpS^Mm$eS_&G+g&Up6xI?tZ<4X;Dq_RHFX&se9v$;xV)& zAa;AOQ9V_m*Od_f{(tHy)^L_K>Ow!!>&7V-5`a}u3N6aq?U8RQQ-EK1woj7L8SdXkR?3t0_(=82Ld_XFfN2iSb<;vZ^9waM{&CbYxPkj`D(r~H{kGIOg zgwX%7sk8spwr{)_Wm!V8AT_p`Ny|6yZO(-jQ{`x0As+YLXu|~6cc&8)7770 zOzkzOKQ?VRPstD#v6l~oAOl$iAFl639j8iyr#*5EaE78JbJ7^L_fF>szn$d5wq|eo zVFEaR|9}0YmsiP7RK_iLRrIB5i3s6<`}T3hMI2RA5`qp{7wDCEJmmZ5eBAkbo(~Z$ zF`(sJuf4Z8AgA-rjHSE$P@rW*p7Mq?AVF*;YQXBE%vvV$W8-a1@^W6uFE1+?0+z`D z8__NH^#FvVv^BupoaZwffRUA1v#bZI$#sLQnE>&B zO@7P)z+Ge`Vp&T*TP3el0AK^i*(ze-hixiiXQGj@IDVcE>9(s_c{X^oE1yGOyia@n zB<13t>CYI{ku~&u1+4>-=VRq1sF(&FeJR2M6#J4ak=FtT`25X<4x>{)DrJS^-tpc# zU!RAG&BS6eYqRZ|6WVTmw?L$gZwMjoneT$Yfvj|C`> zlP{k}{6M9ml&auV1nq%LFqcO!AAuMPEwh{RnbL5q-Se2&BtSx=OA?j#3Us%os}e$v zz9<&As$dybyghUoi0%ug1xq-JIG@JAP}IE|?yJE9ja-4+xS}`jPY>HFzxr zYxTuRm^BlBl1)$^;_&*Gs@}VWL1|_T;8(4)sEA0B_8iA62paA5LnspdMR3KcD~r#ee_;CIA2oDE{msSO5S3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0518.h265 b/samples/h265SampleFrames/frame-0518.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14b815265af3732802bc1a39cf7d15f75d0a578a GIT binary patch literal 2217 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0520.h265 b/samples/h265SampleFrames/frame-0520.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d990aefc507e9ee99299b48d4fba34acffa8986b GIT binary patch literal 2227 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0523.h265 b/samples/h265SampleFrames/frame-0523.h265 new file mode 100644 index 0000000000000000000000000000000000000000..af0b5fffa95e1f4871fe6b7c540587b88eef71aa GIT binary patch literal 2688 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0524.h265 b/samples/h265SampleFrames/frame-0524.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b3157fcbfb7778e88a98a29949a523a9a697033 GIT binary patch literal 2792 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0525.h265 b/samples/h265SampleFrames/frame-0525.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4a92a0a92ca948e61d8fe12c672224c6ca67c874 GIT binary patch literal 2336 zcmV+*3E%br000330nlOp)I$OSn8AKjngEax0e~O_0ALIOfG9RrmCL|xa=Ql`TX$Ft zTk!3nnos{++T7P;t9H7Kf$wH396t)LqwCZ~$L&K+hc_R^UK8nSCJUgeRH%_;%m5_ov3fGyoSO;va=X{+j??xOI?!Cywzk+DwJu=5MqpCYykeiK$@76xIR=UUfd9$B+)! ztiNA=Xb&VoZH~H%pY{dih2tV#fQ10BTLU4bZ)4|3)b>AD{vzL@2x56t+qaebYMaZo zu%NB6R5d#jheThr;J^|&46_FGt$#(3>$LD1K<4L$LO^0d0=I@#&gYXQq&A3 zNt-MYNb@Jfofupwh(o&DNOsq*H2aItUnCzZCyON`50fp@_xa%AeN!H?@H#|C_9&?) zwu7g)B!h+p0U8A4OD1*2{WZGG9}>7&h8=(*$3;dn8=#1R+h50bupT&tu5%nTVbjhl zZCG+*>qViPz26ALwFphRwyp`(@5MVZAYVXQpp8+5fct#%is2q|otH>e?&1FrrzaZafL%*TMfoXOR%H zlK`?Dn=Fa1OTkxawqqN}y5Nck$)a#n@oEjLw2c&4$7yzIN0>|}x0hw2G0@>Isaac_el7xq#!8!5UM(4p)P_ZPS?7{flSe!3r zwP!y-do`4bM}T=%u&^;&k` zn~7V~%5^t`pI>&`xb!wsoW@>4s0S7zHmMsZZ1asan48qZazv@ZDAW^U2P<$q6B<7c z2j;VYX~^_+RIa&(&4BI*A7lBJrM^lLO^yb6b*n9--b&P4zq9E_`j)8 zalH>KjOkK~C>4bJatXO>cLdN!T4^I_OR8jglefj)A0%|Crc%!u+?sXIZ!}2zw%z~} zgfyUbhXEfMLgh$PU|zi80^;2t2xz$~ybQ7N$Z(@a`=@}RS2t8M|Ns8m`1nHQ>Y;_e zVXkspja#qymtdgJ;#(w@+n&PR0B9t2dwk;GHV{B6pbUw#8W!BKW9W#=MO)m&AJRfc zf&kTZw$DAQC}9<1Yt&^!cOXLCDUfP@qFu<&jYD#EL2{GGK`az*I{R|C?=Jvp8ZRAB z{_9YN3vu84RFYao+Zx(+e|bHgH}8nt9L~tXxR2b2A^A?8!h8Z#RFhEY<^5sj8am8* zhsE5dYiD%y-3wpN^y1KpDBfzBCQ0059^>tX-v6vo&17&TM*dOtzFx={7 zuNG$9r6uD%pn1YjLs$<>*TPKIK1{Jh!$s|g?-PB;*$2!aLOAd&S>9MKmta$)Sh$?v z0Y{N{5W?26`dbt|Np$sjO65x5LW8O$MKpZw@nO+~o~p*#?n~lFWSq*v*gi)K0>5}- zk7p#y-ftI)O$i|JTK2pyPqNQv0I5!Zn`FR$?FtxlmeOk%mG(r`fm~pZ#gLuU-uC+!MhJ6p;Hv9cU zD~J+XA|JA;gt3b>Tf{xkKfi}RLuQasJN*V%7-*t|{}x}Hrvk(}1B+mTXc-EI-qx0! zGbw5^4tg%59`}Y$x%$*HLSxRZ_{0n&jhgnYb5lU~{e_S(B>=-TXA>{BTk#;gt9w7v zVzp+L@;FS3RLhjx2<8lt+ZCSVQD4F9D#;HBG(Wzd%I zM57<+`AK!rax54|e=iu(L+ZNMGr#5kEsZd493V%a375IqQr=~=joXXMD{53$%~|5y zak;(v1wCS?oaPS&0$f{FoF6M>Q^O|PzKOVBK;e9nVgNcFYO+fyQC$)3Ba3N~3GyCz z003^lqNKhUSq~e$o}#E-1nMZxKkPRBX`>0&+XlCa!ZY7-2Rl zY_Ry+=)iI4N8EU!mBx(w=1&y{8b#hCgLJ-V0uMhOengT${5V8_azc}vjQK?i{XeW0 z@ah~g)Gqi`HZmZG3t}ayt6g3&00YVgP6aRk1A06l000G4000>f003G*008EI00OoE G01@yiFnHbo literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0526.h265 b/samples/h265SampleFrames/frame-0526.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8e4313fa217110ced6cf0f66e1a1c9d76ca300b7 GIT binary patch literal 3293 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0527.h265 b/samples/h265SampleFrames/frame-0527.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8fec7f44c12669c627222ecbef8475f4f2f54150 GIT binary patch literal 2035 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0529.h265 b/samples/h265SampleFrames/frame-0529.h265 new file mode 100644 index 0000000000000000000000000000000000000000..65ee6e496404af9b66daa06039aaf26a30d1b0a4 GIT binary patch literal 2397 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 PKmY*dfB*uv000s2dc?Bc literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0530.h265 b/samples/h265SampleFrames/frame-0530.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b68d09b8ee182507b437fc3f3dfc4f6b828002f0 GIT binary patch literal 1917 zcmV-@2ZHzj000330nmy6)I$OSu)%kDqyUf*0e~O_0ALIOfG9X^r%*DgNXyrh#N&*? zm1s|kg?#F!a@~Fe!UfL0GTW=>3)$=-xnWa2UAyzw*I%|GbzjYx-)QavZdJ~dKEP@a zd_8>h?|*E-O95~Muh2ljjVYx(1F{iEursru0okA9ZsbTlLKC6La0oTT01fC}uu4!` zG?tFpx_&}>{?3>#x_-3R;p?JE^HQn$4oW1#U8|%g+2vPd$Je=V*qY~J+dpW(x*>{! z1~=AzLUPd3wXy`TXg0V*6*;jQYIGWK?f9CstS%GLr}DCS>_3KmpS_oq7$ORPc5OxX zM7>_B(COlI1Y!6H&i24fx}{3+w?cCD^t{=8=NN^_iKOeH6--lSL8Yu@#dY)LGDM9$ zMQ;cSOe%Q4Rn<-C?~IWEsvw@PHSykVv{UWAF4Ltz?1@a*vyeU%9Od73j`U^(6EJIoyu9K1w_X;S^(Bp z(26l+WEIx>Q*y}(KXkQjDLuERb8TcPt>aLI@(>#43P8OVmc|h783hr;-Z#eS<(Ds? zpa(1g!11WnUOy~QB|-oJ=|TNkwyzjc06%U_opsrB@4Knt=S*dJEKkd@;SQv4Oqk+@(5)V>2wJYX&)3Oz ze3Tngg_JDfOEy#xT5hG4F=XZ!4R7Mp9RH2{KKvM?=}yiIw%L+wNnF#4{wS`%Jp%H` z>DgUmfA4RMPVH3FIdODmQ~&PGWaJRmtF7CQBgPenSi)zjKo)XmRteD@>^H_9A2OAo zNw≷yE1`p;4NCHTW%TP$F6NbHT<|6_;$PKNuU2a@gN`S6h%Y*v(K6lNPP}MhLZd zK1!af>I}^>tf0qxfB)i>Fm&tE;UM%rDZ55N8XKuxHd-`KbQ=MK)9xQt=j#PXa2SM$ z)4|G2;cLv{cnN7M{*>cG+HjkTd1W);hiQz1kXecQJvV>-*0SBo0YZwwO`b=*CmWd0 zjIbBkMVtZ1E9@_;0lX#DbDV7cQUB52Oa(BuF8k_slS;k@Cb(&&#uY()Rl_#sD$&c^ zc_vA;ZiFZKJgyz!t&GUlZ9!_tmf&!e(#rweaH+>;}S-`*y zIhS?~M~tEa;J7^i^feuVLGWdG=fk#6P`>b~Iml4-7dPHXy^zD5xTK`+Ll@SeIh@?#P`Ja zp3?vlFpBOXA7KG0eJ};CCm(V$R8yFHe#1aMRc7+M?6IX`hruHsV=RkX%lAYb_4^}`UJYN+*7{W##uCG1D3ar1cKSFofZm z^f%DDOCfS}?OU$IaXC8REC40@6moma5-bfMwNIhfWM~#o(amV0L3EXlU zB*wWr`HechEMA%Qj5*!D$aAOhk`1hghf!uAzPA-ao&8!7jcx0FSMY@XFXE>7FM-nO z@b$0dpns7I1-hZ|0RYK(DP?DRNgNCM>}4Xw*Z=?ol&C_RPm0R7uJHS1Rc^U`KifKy zY0MkpD=Tv*R1g3E&-}!A;WYQ0q|1EgCCus&_9wwBz*j?+L-~bnROeKGB+guU&QPLx zgOs56wd;Tlay1O5os3;aiH>B_bXDG`Nw49BFVFn@`I=I#JxO7%>L2b+Z8UY!a+Ohe z0R8?J?5Woiz>toh9jW^7V!-)I{5r+whTL$#fvRA5Zp{D74H`gr{PNX+yd}9Ne6vh8 zi&&8cC~^E7=3L-$f)-L9P)9YxvOWKk@q&CtdyX-m-JkSPm)eUE3ywLH2(+XhpRH)h zGJT7#*DJx$OwAWsPsPZ*ISa?uRP642CKR|@jLRa(K=Mn6g+0F9LdDxr;4t`>(8e%H zi91dK7CrD&avoUA3&@i)T0xKUdlb0Xvx-CC`e6?g642@l z%Iq$Ul)5iqhYE{R6VGuC_y7ZnbHL1a00VwI-~a#xOaK59@Bjcmpa1~HfB*s}000aq D`T@0= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0531.h265 b/samples/h265SampleFrames/frame-0531.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fd929788acb7b95e174004b71aab78865c064338 GIT binary patch literal 2662 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 U05ISH0K9+z0xkdrEC2u}AWP09HUIzs literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0532.h265 b/samples/h265SampleFrames/frame-0532.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6719b505664b4f19adfef2a2902f7bc3928b07d3 GIT binary patch literal 1546 zcmV+l2KD&>000330nnNM)I$OSn89+`fB=9F0e~O_0ALIO04O$AdNwz9`>gwa?7H=6 zC>-_>%#^Vmb)(AN$zaY{hIWA=vaP z*+}UDcmR$>Y$&ZfD~504YBEw;RdB_`S<~R^u^$yADn(QcAL)_*A5r}LhIOKlk%A&g zER%?-@ZiM~QGg`;d_vJLzox4+SD+hg3>0_hntfpq1}l#&bgG-|QA(!IQr%iSpui$h zdEpwiuF7d43*qJy_p4A(*Kg|bydy5k`h{v*;8^xi&AtUZGj<}NBpL*dYgxlI28?y( z30RAjIMF8K{2Czj0rR5MUW6z;u`ML9f52UsM?tg`ywbr=ioOE2>wH{LtGc{F#3 zo4lPOfpAVaBsEHwOhji=pusbB4MDSgMR!+2+2Te51_61HYv(Qh4-OK7ez22ck5R2m zX(kCm2(H-zvtU=IrckA3XiRvioapCs+)pL~Tt+!%pS*!#Uf~V7<0N{vf6~^dD`Y_4 zBB_6*v1(otn?H8?d$0G@Yz=N~^A?y4i_+{VQc~-OKasC4$4gT6v!P7YT{M6B!P{|{ zI&?s}59m|@3bcbq$M$hB4K9$)O~0JR7+8AUOA|$ESaPG<<+W$SKwN?iz-_(=tDVtT zc{uXLeN4KA=vR64kIV|FCi&5cJA(J$SJ~Dm9zB`@)d@$bmRDTsO z^2wXyjQLV-enjG)K&C-`rQ5hOPam%$md;U);O;kL15_kd3pYYLiu}tkOspd6(2I|o z!!SlnWD5w3MG6IYAEXEii>ZZS!s7Vxgd2XluHcxrTfh!=%BDV%m~oqP{|Zc=FyEw9 z3HcBBo*SSWx0lsqy8*cdBcGcuODuU~vBTDQl;7^@j+*YNJX%_E(^mFl)<;4`h|YG6 zE@w-;XC$btqBeaZq>_pK2twVd>~G~53)gjqJTH2Gyf>D1;jYX?D1^;O)<&(?LsY1M zR@{Os^>RTJf`FEMJRu~7G}n}%iRLk9zEpX2+s z!CFkbwy6)2-~=jI+*oS?)Lj`f9~2=ElktF#%`*jQSeyI+-zvXjcQ(8T0(!7q6DOBo z#nA&>U$$lxm!)ge@$%j`UPMJXo$!#|JYp5cSeBU=k`pa1}xfWTu( z1p=X>l`3DkpxlCAU`yXUa#W(+wv9wqKf!%8_QffrmLEbh=XTP zXd4x3X1x5}tU_*%MjaSWB_2d%*?dVrt5jtdG(<1m$`#Kj9n<22cYS zY>}&NNC2D0n*fhC8UVfd(WTWB6FR-%CV-fE=7`O@LpR6=TCc3;9Jjd`B@t@8^3%$i z-a~*O0gJ#7JVra{d>iikQxA{hKEO+MF2%9noP-{}pqKAChlm`L1c;Di25jqN6w09; w)`E_s%F)1>lTil%1c`#4ZTP- z2=3QD-gHH)i}O}#7UDd_Im;1&y^^Z;pJ1I(_<8t(&Tg(!3ykt*ReL$-w~3DuBNsgs z2=`9)&wv0V9kHz*4G09v@oNqv*Qo*+yYHrzQ4C38UHE(r1wfMwmro91*41dq5A`w{ z^4CrP54O9OVuijU?on^c!}ZO;mV@{eF$G8Dg8(iw;84qHK_V#&mpIq0OyTx>qThmB zfmD#b?r}vRx?uP&`tq2QeGo1{BoIPus6j(H^IlSN9oGuiU3Wg3&L+1`r(zv~*+JBS zc>EVdAMg+t{KmL$pYNQHV=%7r&U;qyUZGwt8OUeK-%F**QCo3?3cXE+MBeJbIuFvJ zilDf0bhHvqBem4TZ|Rl;JPw9#oZ9}iAuk;4)vc*VC}FqrssOJ`%4m>VSbj%I(M)xTrW=;rm9kFOxbwY#XA0G~eq z#<@H6!#+?BlXG%Y*}W5Z0!(tg=&O}uEsk*q=i{lQq0Z=+`vx|0o*gL6^vnHlyjpG=$JL2ph9r9b`=80?imuHVav~M#w6eAdOE4)|n%4VIhd0A} z5KTGCjHGqU0+Om;g!GXL5DPXn=bv^9%(7 zU=-&iy|%JlsuOt+g^K7ZFr;&zfTW4Mq=+B{ z!kSDJ_cBle7FidAo1cpX?MGaFo`xMs0x-n@&K##<>JP_eCaeW8)0)In1BJz|=_5a` zh|2FMl47^0C{eg~HpVhH&ts%NdLyZ?bf%D}n~Uw+52=h&2Z+ZXt5X~QTp$oWC6Ln)qK-)e$Rj*;1* zf7M+$PO=R%1QRp1bwmxaqG0*(XxF#LCTX_Vb3?==OD-CAitFhykcAC@0Lub6_*|dD zpa^4APJ7jZG>w)zUcCA!&m2#&Y(<*18wXOKkdEZoai{~GFI!u~R8om%FPT9oPL6Ui z=ayhaL{Xf`T7f{>n`dE%B@KWh?`j_hzrgpV1gIKE)>*9LlZIPU#IY+Rw5%0RzK_$4 zt>!5)iCB0p;RLmoSs_WB>6;D82=|GJ~&pH3?EC*iMqrPq9 zOp*>=X=NWZ3PX#laa)E`lb+j)bU^cgai$Q?90zr*1ljQCYBB)t8SLf~1=A9$D?*@%|aTH*LRD5tWh zUPGIqb%8pX7bTnt&KqK#+u@TsKOB;TYMGWqhrX1OC+&)mA7nS;DLIe-+sm$iiFCTG zpS47^U*gehC^NUJj07Ks<&@m+BL^&|m`}3VBS{)XXyYDl&?r>s`%sZ%(jY&Ij77(cqZCBO=lw#J`oYOwG`f1D+L|zKNpQfp=S1lds0Vl*( z(CYD7BwV?Y+79N@F%edX)Xc{YnuRPHzs)iu3&m@hcw%iTOk-lB5>2uoB-scS1^@!Z zsgTpa-e^;P#;)I|W*yj`Ui+zUVHPSWkUD0I0R}0+_N=Od598!2UTPea8>{P7pEl=6 zV?TF&6B#o`Fty#he;2Zm^Op{v3cj&kh=<^z82AR9`$7fp9(&zvDWIRGM=0gT_!v+C l0gzJ9>9_y`5HR2X00cY$01c=B04`tv0JVSs0lfeK3b@ZDzA69! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0534.h265 b/samples/h265SampleFrames/frame-0534.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a5078ab29da71f8743968de01b32d10e5cfbfcf7 GIT binary patch literal 2826 zcmV+l3-$B>000330nn-c)I$OSn8A=pQXmij;0yqO1^{3N06+ycR(fQ$0TwymU);8N zMye zh*gM-3GMGzh+~spzynr*nAT$r(H<(oME9@*=&zlYKQ9zAjc1$rf4+YMm8X4hCus5fOrL4epC()v>&QFnv^|g>;3htQ-Tt)aJF6Tr)OJmLEnm}Qt+UnZsV2S(1Tr`2 zE$;C?db(^z6zXK9mksV9%tX88vH?Pqr?*p>i?pf3FEgS^a**Lu6_4ZcI!cS#XOR$V zKe2s&KLi9&qca8t#teHBw31{(us1Vy@{`E9VFKKp-dRvnQ9W^H=u}Q7fJa)*KD}Ej!N5`=kpP8m3T2yD1!He;OGI zSePWs$xQ^$ZdJrsAcd|u1Uk4Ig_iB% zN(fTXOhv7YXIfK!_?4yHnrjisfF~S@V>}9AA5AnA=axXNwE(a+%J6N{($Qc zIrzkenT+n+71hy2_1V1a?Str@tMuYwLtD1uI&fZFn7y7Xyb}~8M@I{=U^i+oSO~c( znFU=GOys1N?lfIVtK8V{4!iwYlh4rPjP{~Ga_XCRDe+YQ48SXII;xMTeF!wYNiTR>HJVvBODFXtf47A z`BG`p%9-E(@CMX+)&kQc!X5!tK$P-W^-X`GZ15YySAthTpd=d0T$_iL8AQx+P_Qq8 zcuqyTCPnjCJuq~z=q0E?u9V?5ij?^q@{EdQp{^f%^-{c$%LccC1q2ak7QrCxvz&4e zbzDp{ztLXZ-BAKq3Ct|K#$Nq?aad-^yEz63Kv^1HFVUU{OIVX=Fiv`Q@#jZ^Edd`4 z8X3@v2|F_symWFo_66TOYxCeZ2VG~0MrdTGW*)^BIOR%ekFAga>h zJWmDsb(mAJPf=HdUO}x7irvlE*4tN%{nm~dc{`SLrSd{&(7M>>)9Z6gY2X(wnw%Ic z$QFH9!y7$TiQ{^PW`9G+G=`JzbX;KgfU^>|g}s`(S|f>JTP<{IC3GlGSuCzBCd>fu z<8h;dP%PDNAuJWLjsbw0NRpIYPDce1zk+I(UhL#r^`E$xw>n)HS6kaJ6xK5;0#?_x ztVt20?~?~BraG$#Ko%8HV&1>2NVStwcJ7_e21yHbdpk17rl6p|!_c$`(kw<3sS|gY z^vAsV#zalI_4Iw4#q{umntn9QkCYx&aJ3ieqvz%(8fL)N_K- zBOvUCK2E^L13lO=Eh=aJj%AnUL9+Zt#OahGOBj^U8Qav+`IZqByZ|(&m*Lf`TJBoA$S(ShOCfK0eeOUkGaFG^LK!&tMdJWqP7=FN3}Ft z7CSwJHjXzg{OKky#&$7kd3v0k zBe6?x|Cu?4vFFXyXcv= zYf9|}7g3i%#`_*(uFas1hM?J|&1`@ifE?AD|J1$pH4*gjVHp0KF~*rWO$Op z$*eB;Ud|#!9OR^CDP)Rr?m?t229jy#Y{G&6K$*Tb%+&>oIM&9 zc7MZg2Osl)S$}2*cMY^nHrTMtInd}{1Sns&L&)-{&6eX?lY>h3000DR!gq6kjg^|) z+XJyTWwBq#yR27ee^W|KBX!_8!h1OqNH=xCQ)C_4CPU6e$c=0)Ov>AXLX9v(MF)rLNhr z@qr;G#|jvi`%b`_8OKd(8rO}6yYRMQ)EZ%aq^z3)uKt=v$jGuMgA@MfVsUR3+*x%A zk-=}!;9AoOwYdffI8!v#@|?fp>3PbGV!nBsp&J@B(cJ3f$)^zONSc+Uc;02)Mnv6D zf%c2g0uSV0j>^yUoC? z?6%6*`x8F$pd?h%O`;L>#)iPcG25$rfWo}IRjt~xIxOt+pWNZ?v#ZwyIrVcMbL_O9 zH8tPiHrM^K!VyS=&t!-n|JiE>EaS?7khZxAsU+rLUach$E3k}LNNtVZ_u=+W6A_9)1%NT4LlTil%1bUR{Vn6@{ c(4>F>01h|+04pE>0Hc5a0yY2z3;+NnphbIhvH$=8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0535.h265 b/samples/h265SampleFrames/frame-0535.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68cde3cf9357e8686041d04eaa8edd154f64f3e3 GIT binary patch literal 2041 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0537.h265 b/samples/h265SampleFrames/frame-0537.h265 new file mode 100644 index 0000000000000000000000000000000000000000..431d864118c478220bdeb11251cd36dcadba363d GIT binary patch literal 1893 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0539.h265 b/samples/h265SampleFrames/frame-0539.h265 new file mode 100644 index 0000000000000000000000000000000000000000..152aa2d433b9f092127cd5128b8f7f1f77cd8f31 GIT binary patch literal 2936 zcmV-;3y1Uo000330npL^)I$OSn8A?1SKtx>01NHFRufjzast=NSV++2+`QbT) zDat~AvyMeP@C*VmO>X_7bN%xpWB&s$%XSPT21aPsObPVvuA@rNj}vOxR|7V#A}?;L zKLS|JI@i7Xs_}{O*9?MSedn{0KsE*K=a_cSA3{$@@uRN)FJ*BdD}-n?!b@~ zc9ii7)AG@)hc+eLNw*{6!>^!W;;bJ52$IN| zaOLB)RDYs0XkRmu-Vz*H@k5=Z*bL7Z(Ig2a_B3zh5b!zxre&1XHGs>{mRSrvm?B&# zxQ%7qpwlbJ{FtWErsx7yZD{Pf+p!-wP)W-eVxcGiFZ+9AdTfRk$L-77nFZ(G`i^1X$Li@tn@B!{k*cp z58w~q6B{o?zK(4Bro4dqA(pwQTGj^xuX5|76T1Fblzn37nSyW~`QAl>TUUD`sU|7u zV8O^kx+1%PQB*UC0Of1^N9*D>z0v21ULVijQup1DpD#oFaQw%&l5=bpnpGTn#Ek16 zk}cpImG6guDvL5^$}n(Voz={MMJJdsK&>_|Av%e6#kF)WTy7wYdCBZOg*M7jT)0CW z6^}PO6Aas5=Rbp+G~RP`0Zm2R8U=)T_$B?BpT+nMJdz3wSgp=;Uoxy0K*&-7O``;u z$qO($0td@|x$L;zN~YIK;p#g3x_Ab1i~%7rSkO=j|FnevgIjBxs4nt!A&^_)P>shw-Hq-Bq4IqaK2Q{fNg7zA%EzlwNcF@DLxy2k3- zz?WTPGkvEYmT?Zye;w-Kt>9%6fiZ4x}v0v;lQ+ybXKuQSKMc}sHuC&=vNOzKqLpXIW- z)1RZnT2)D$ink8$+p#L77T+qxPGIaQ5J70+9uEY|R#beQ8)x*zV1qty*BDR72~0{l zxuAJB2!80-yFAFB^tpC;)u1}^1V~cJmuB<1=YVvpC2~*4j5X}hB**EDW=NJ1tu5cj zvB5*PhVaUS(>Rs#_Ai-a=xwl5;nej#z+>yp3nBZJq&ho?p*&?jsxrp#|JgoY$)@+c z;?|6ld(&`F)H3?%Qmf~=DYWx7F~Z{6ku)I<{?+)t@J+;Fiev{+@f-7DVKkBvPwnvz-QsDq+l?tuP^9NVmYn#TlY$t})P^^}*|jvMt7Hv9rNrr{`jE z7w)5PZREv3TWiXL7<*@WHER2=FW6i+O%<`02~xG??gitPf85PYs>Ws63$9u^PNgnT zOtvy7lRa9k6`2f*2<6rP37(stm;_(LrF$wKJ0Epp^to)1j?EO1hi5NLB9ozbKDZ#3j%V%9V*+NIs1&{h=nD?x%p;LY2vtU-Y z4$}X;LtWn&G0L+MK{erw%laZmLa~Z4G3yeu5964TWvZ1&`)S0%Tt8j@xVUXhOl6Z~t6a8I%{nc@ps z1FxShaa!R+DFQZ^_b1rL2HL^q&{ z9PFXBAq;*}Nf9dth_|6KL?@m)=-EeA96f8z5kF9r4mwCJ9@U`#g(3qNMO#typ&}@Z zl+xsT6*CT5hFL8D4rqCKRHbr7gxPgVmf;LN#{Ls@#y3FIKdb)n;Jxua-x~ZuAka&Q zz`Pegb}3;8Z5ZBkwUYwxe28C~*D6SvhrrXOF>v$4tRg>_6zcJS6pE7Cz}O=o002?I z*4|hop55-M^;tLkV!5<765b>Fdu)s!Zf|hNd z{X7$p5BY^Ym!_VN%w|=#MF2fiHVJ%$1(|69V9!$YeE?ca?G`%+Hd^I1n;ovq3lqP5QuLGq=uppF1o~@Fco3x5Lc>190z)98A!0991x0hD9PbG z*w*;g1{!3mEJU*VQ+F4$R_3t?CUzU9U*_IQwSvKx_Qhk+su7e0$hXmmKuIP_$V-Pp zU%uWFJ$(~2of)<-1Hi#j7=BRW@90dzIt_z*k7LZRL?w8#8;6vjPEqunpCEV&07-XQ zhqOXgk{2U}fI0gQDgzguvdD?-${^dVCt;l>uuYol&H2b6gFqUN_cukvqZNbLgqZ`M z`ZPfu4l>*lOydnyWcBzT;pwZFmNNg#M4ddf>=@~c^F(`lKZO&lf;lv$DJiz)H_K(| zd$f|Ni^dB;I9kNfeo^7j$*Cb{>I&^%TaWHNy9&ZrxemQZZlMfM;TDpa4`7 zow^8iCk)+!XjkQ9I2LRY0Hw^UlFeuqj{w0llbG io=5-zrW&vS00RPM000W8001W7004%700E-_01J2?8=Wrz literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0540.h265 b/samples/h265SampleFrames/frame-0540.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d1ab518454871826448e601314fc5c1108ee6242 GIT binary patch literal 2170 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0543.h265 b/samples/h265SampleFrames/frame-0543.h265 new file mode 100644 index 0000000000000000000000000000000000000000..66dd877fa6f6990b75bb3ee36c29c4d6d19ad944 GIT binary patch literal 2466 zcmV;T30?L8000330nqXP)I$OSkim92-T;sg0e~O`0ALIOfGDZ7!ajr#IeQ;sxF#y0 z|Ls}M94We7v+0eRrXc7Nc9u@?6cHtqFIUDLqBl7AywcF=m*sK$d{JWX!N<)%Cu;u6K#;})3!=~zy7l>RQR>qiF@nOl z2%lofXcEdqDKipwgq2J4;(LUB($59nMGZ^oBE9#-IzsKD!#hvi8V}G(kARx@ymY&a z6uy64k~4VQrtVyW1E=jkBlEqEDMnNYR^FzpQ)BwHKsIfT=oF)))qCmG$Wmk4m@^qzdc@alR1hBJT>8%rw0_sxvT9Q^__8?eWdDi((< zqGjTnUPSx(;>OdK+9&^W7o@6HN@6J8_aN-50Qe1A%>h^wN(7+<37FmPW zxY|Kw)dbP(M&?PVJ$4xH81g5zyL~N^?si?ikY6kusmgFNGTQ-=2$1Z|aneX`2)y$` z(;PUHq;L|OKmly7Sojp=LI>bh9Ev$V;QkK0c26){y!{8RoK}6OD`9i381{&%6U;Qe zpu+DQoBo}RzPBgD>V-gloWExJ9EX4AV2lypye9m^a_(*gy{_H zTkKB#4LjWyOL8`8#`o7?H3ttOEJel(vf)z}k3DQ3C5zkX8ZM>({+zS{sum?=*4m-S ziuvt24?WfHA8@bC2f;EFaK9a20w>|gb0gw5R+iw?J@L&nVsk*SIW--=iW!F0UCY-&LR*iK^L&D(6Bo5J%m;!? z)GnRUun|{W3mdhUK1XgAt@DN04-Eyuu@(gL+9XxvtxJsmCjp<-LowHpniB|nX~6>> z>*bD%=m!v=i)3Z91SA@?9u|oR@{uIB-(7tCZYA8Qo zC6dtX*_0d*lCT>GxGS$pOUFkAq@4~|%mR0%jt^RDq*2o%KfQh)9Bug!^g4L0*_4gS z-h(r40!wzMKVEX1d6x*15h}XektnWo@9J?*^T1(i>9RssYe(<&-m@%f_8h|oLy_}=Tr8^)+aIE<@+GC})YOW}MN1#R9 z!ueF{ivcymc9c+ZZ|{NtK|#e3Zi}18>Db+)WSLu0BOb%*-=-+I`0!>bCwm@YST`gl z_BjP5_NK~!-z=Dd1wjt+=|s8Ed(I^N3c|kheAJa?J1Yh|Nm_eT)#jzsM{8As@^~v( zkrEh0%ctx1K~j%w2OTK@75Orn+OAjU*wF{;N1z$E3vv4#<8B_f4#u@OaR2`Y?yIUi zIv{wpOBu{pYF~5bf~bR2Bl4mifTZ+fjAXFZQ6sRT6rt;-A9LV>wjx?38_jk5g1+lA z<6wXYScv8zAWjP--ARigD^cgly zH}Ow7QjNfk#+5BykL1Woe^>ZnmINdi2t)I+gpcpv55ep6r9%H{ z6dFiy7c=ihP1Yv*&tggC3-4{O|MoKoE|D0`^2%G`7BYaUjN-{AbEI@n`|Qp502MRz z%-U(=p*)24f+nDqzr-pYi+@LECwrj8)SCO4lSg4P@?Nqi^CUL`0FJ}Kw2LtA`h)uA z3{8jC4av_liHYJTm!ufH<0eF%A?%$01ywa}dRebQHOSkIM@pYz-js?>p-;S@dBlr3 zbkFn32@@uR1(RMa{e>u-D(LSvEWPHp0la=NS|cluj(Pk*#N3Vf>{N`z^8veW z&LM~(PMhK4OBvxqjR4BjM2Qo8=9-k-!jM<|75M2LGWicO=hd9ulkfS$zqs%Gxx0<^ zP*XfrZ0Wqv{|MjbAJ4UMg#9n3 zwJh!*iklrFpURP+?@q4m{~+3MIQ-js5qR4X-*iGfdE)aCZOS0zXDx%_RBXm-{uyp* zpt^MSkaWv)3B(ZS^*YV5`|?|0&a4dT7lK#WqG6J*9{impz@&IHReD;=b}73 z^}muPV+YCa;sc0kchhOy9jPopoH;ZWm^aA4?`q(_l2gl}oMKzSNd2W_005e^qQpiY z&no_I!@u7YtAR;I24|bp6^vaE0`f>n3vS*LR7bhzoP7-w3$9w}L%~km?#!sFRdU?q zRHEFcwV~cF(3c{h=2eA`v3qEP*q&lW&i*H literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0544.h265 b/samples/h265SampleFrames/frame-0544.h265 new file mode 100644 index 0000000000000000000000000000000000000000..30d1038c722be54fe9ba109ceccf2622aa7b8d17 GIT binary patch literal 2652 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 K0P27M00;P|S~hP0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0545.h265 b/samples/h265SampleFrames/frame-0545.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f2a21f1b0fcb3e52fb7f6ea821a720de51e8da0a GIT binary patch literal 2098 zcmV-22+j8Z000330nq{f)I$OSn89%M&j5fB0e~O`0ALIOfGE<7WK+U!0fk#&)tOOL zIeRlt=rQVh?HKl5T$@Yf;f`*m`Q2I4A=04a#tHRGtZ$<{M5Zj@z-gqjaN7T~iS+pT@nZ;!*0x znUN^L$}@|#z+l(X+j7P__C{^*(UK8JQC1H0%HRe)QwN+X4wy+(sBvl0S-4m34ihSR z&u##e5K&+-YtPZZgB6y3NWs{8(;(1v`5zfSB})PfBHI*xB--Ld>unwx3bEtved^zQ z$$Dpr^K&bc1szMQbM%L5n2tmOPHNtgF+qHZuzUI=dWx5{(&CcWsbj}yqbL}sJP<=7 zN#cx^{C9^QcR_vEOlW+n+flS6b84e=!Avz2H(h`y@XP>m&P00e-3=K--&U6uPCbn?nBN9bShdK6GObxdy&iNwq7&`)dNVp;r@MpdSuFEz|Y}G<513thh z2#bL^a8Dq^`V^aWbHkFCJkh9du4R2n&4oIz|L#NQ@tY#<$+?}HjSnnI+I#9EyB<$~ z5tW|{YZy*ryW0x^Y`>f-B)ed`Dn!(+xIoK zf7U4GvIMXsR*$^HXAlekq$>#@(vW}G-Yp9UINi_<@Z({OT=Syp_~(8A{cAemaUZsU zd5PKP`*_4L*fc7CFR!aEfR-=U>X*nGum7RXwcH#p!SV>LYr}OUHJQr6<3lI`)-zS? z@xq7yF>!SRJfMROavikI#)K17SZBZq{5KwyQIWepeZd2>b`E*y1X%^!K@A4Ou?HRA zj8!FL>iICJIwTm29i1rDP_uCh*Iuh5H`{oIfQfv#5h=x#!d!?#e{gMXfxMk2S#cv} zdaNM1qMus|We@?a^hS9Nmx0V!BaRJ(cX-9%d}W?50quE-`@cCsx+7MfOV&78`nB)2 zvu8Qb=|f<97E#66^BplbEKZ0&JILMc5@2A=-E|Mzebja{YHef2|Be4U^!<%f@qG!t zBjG-m=Q{X)3ijigeB-|bSpj69(3QC)Y=~tq5x6Bw)WSa_nXrYBcFdgBtFPI^Z$69P zm(?sWPdm*pZSWtiR6JA|M-vOHfKavkviYXu@6Z4agVUqH`Ugaa=5HjUH}U8FYj61r z*5=;f<_y{lL2MoUt#N-jb?yPes$mk$~o07an)JL^-3<8 zkBmI=iy8YP5 zLS=XP&IJ1@PTPiPm!+bg0H^=7?2CTU!@0Q<2pO2#BH2{qe* zg|oRn3K|Jz4zTqMugpHZ%UhKgWXLdQl+qw8RxphpR3@4}-EfEW2I&!V zlE1V?dtiLkFGEJ&obpp+SZ=E|Utny4%UbnLU0Yiq_m2NrNio^(bOLnU1#eJ!v1yf% zVBjT*YNjHx|&fmzc~W^-^a!JWo1)HJ~#LK1ccvu?43 zr1#A$lNq04#-iL#g5j6WQr`dugJX7E4!Z#1yi#S}0+Q$F7l=_e7X~#yI5to&6?Lt+ zECSk3hF6$bPxi|ASPr(`ujawCa?O%!6Uj6?c+CBqSd+f(YG>oZCj{EkRKOML5vgxW zj|;b1bGlMl@+m=N6_MossmXkWR^N9rP#HiV6=ZkytYhBouAR&m#X=%`#rg{|4)P}M zg}Lg?)P|@3DN=Mf{XNP54ggKBJ*bz&_>g_&i}V9+HLrNP*F>wQnd0SeVQ-y9@6@ z$<*zE_|y@f+;zH8-{MPildfa?cFUU>WJy*E;Nt*0;ObDq5lEHB7vn!;4CYF-rKln- z4^d@|MKdPXKf=|q?!I;Ky3l|~C2i0|yachb;CgV7FPgM?eD@>)OA&IE9(3v3G(1?_ zRv+>}`IkRpkpY2W#kj`qVUUBCB^rzzbjZ}^{|i6@=vCXe+=^}$!BX6{TiJE!I)Ge$ zx2^_C6Yf25iZL!y&o02+1bQ$$=s#fWY1P)ZFmMBsvEk?g@5m@IprfH>%+y!V00FQp c-~a#v1Fir76mS3lNWcI9>VN%6GAa@Dx^It>Z*E@d z4E8YX|KWk&k@{GB>t(dJ`TTE02Kqd6go7M@rGNP3^MXAfUI~JTY}^L(1wk^Fl~bw1 zyYSVxjign8b0E*FU-p4WF={#_Vvd1U3(JMv-PuybZu=?sp1|=C^}&duV2X zriJV`q9mmR6hC-ugzbDF;0enRqmwJM?t#&|&DPgoZUHn$Q*kX+mC;FkU5Y{qHy-=4#XH?OKE(|hoFy*3^VhD#v z3S8C7y{oEYtd{Y1gy(@W)~GV4*(dn%x<&sb36bD;$>{bb2)OF+!sBg5_&?8&pax-9 zw9QVED>gDv?1cfn#)}J2QJWyEJ#3GC10J!0nr5h2Q`kj> z!wH-Gy_PoeC4)Erp$%8T7{!E;T7J#3J%f?;v4BndoTh@h%c{Z>S zHB-Eka-lyycDbVqfYi}*q0}m0rcj14$g2I z?9}RYyBl-kYgpW5iiuz`ORt*7>z#R<4rhK^W=~aO z(;JxF9|<9fZ-{;PZP;=T56ir?KER?gdeLQzm+gW)JVww+cL^H{DS`$p8pDLtTq4UcY%w^+e4?|>FwP3f#SM<_dP=)mkYv0qoySV+YgE0i@rWlYI4HI z3Y5Y7v>xzHZzqj$|5FO!n*n z!1paq!8U*=IDH=&6m$$ahkRDR;{I4t}5gDz|{Jp~n4(w5Nl1)}6;rYb%YkdS8`Tun}u9#PrtA#<09*6womcRDMKr zS_LYsJjBJhtA=9Qt6(?5f#|8mUcVu>u$Dc8Wpj6cl^luhK>l7$%^EJkcC?Q81(%VY ztRaHGt_cw*gz1iaIXvCS`Pv!fduZMJUxOXT_pzbb!X$>aVI$e!v=p;CL>2zMzy_UMM9&LVd)W!O>XpsmIbYly<#*)Nm1 zKOFH!#Isi4qLtWXI^V^_{XURt^*8NBqcmt?1&H$CVenLVo*eXnS;){S_Xo-T@k%hZ#&Mi643FUp#-m;rqfB)}G zaB#Smd>qJKoeYMgOHpCzUxmC~tKcsjP`+ODWq}G5Gu2F7mB^dj?R)t$9(~a?WQnw9 zoA)oDViw7fcV5rAFE~RE!F6Qn@JW8D!yo_v2*{pu5;@7$mTi;SnCO~#ha>X}$hUQf z=xmj~1k`?tZd_mU7rC5@K|Y@`RwY4nUvf z?{@`S(k{8e&sLp>^?%F$FY$k#XQ$@+9;d+mcl(qdUFH6L;oKF{wKj#owgV?f1{y1? zflsVt5fPC=Y9)~s)q$GDsrvyyznsx$h3*siL6^vdC1vv_u?Xft1*P!d`b}U!J|{F} z_vrx0*y9bjA;Y5GCi5JmhfVAEgPl5hkpS$~FwIYZZZgN#Ad+g{?7A75|>6Q7@;)cE4{>xbf2!6jQ%3Lwx@s^sN=ovsnQa*Vlj;Q}96lB%o z3iWJs1GdbX9w(}|w~eCq>-nI1vk3S!4LaMnALrKOH%_hQx@NI!%^mu`hn%*tKfNl3 z;bj1AS0i*90*|8V+9C+(aFec8`Z?TMuW$d)5REwN@ej=S`t3>e&n8|Vg-t2*>f(SGuvnm|EAalSkHD`ggtHCAjmjHchDP7+BKy5 z^JHL%PR!NOnCbDO4N_zXL@Pqj$3f)-HP&$7qRWoB5Gp+^CWC_DZ)iMy$jwo#f^UzN zaxQ7#IjXSzl+!5;1KikE^Z|HD&OF18I&wyv<@$#|J(0LsQa1-qsWy_=Jl%qvR zreAE71`2Y|LluEHPD~HZ(+O*vu39Ml=C^lLcjO1Qm7KvC)zG4yN2uoPhZjmnqo~>M z8LLq0De2CSYia{~m3s=MBch0&PAHA^yJoOYtQuQ-gMK6@-0~s6=xgm$+NR$Y@TzivTmu&|PXKEhvUO zb)w0`yhW<^ga}h_K*9&5vE}(qwJEa7G4L#EsMb;dL9F4t)UFkfDt4I6>wt14fZa=y zwi%&s4VsjDDf-tt`!E45;(=y>t0?jW9>zo<1V$XUvMuQ&Hw-<=W?~4))w($%=SplI z`j-cFVj-!b-6n`N7#8YieMmNN45>`u1-qr z_DTp$KScmO$m|03Ee(16gj8?<25duT^VM?X@a2H+5&QwkI11wdJGoP6&XvabNW6fr ri^V#Yo{@l`z)V2gfB*mk05hNf00RM^000Qc001gr004i0000D(RIF%n literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0547.h265 b/samples/h265SampleFrames/frame-0547.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dfad1499a7bfdb76b14df21c30dfe7bfb3103a15 GIT binary patch literal 1895 zcmV-t2blN(000330nriv)I$OSn89lLBLJWh0l+8)0H6>7fHCv04n3)%)o7o zr0!=5C@@a(P&@n`3?$tU$MVM!scGv{Gyqf9>FmH>&_RoFkJHmK(Yx9I|NsB`ksCc_ zn_JPO8mz(>$-WoQ{J6~r?S7B9hb&yaB93lc(jM&M+3e*%JA7RJ0Y0ZauX_GH?^(NH z{QK_HL&GCZB0;9za}TmiFOTo;OJDH6P1R*uzs-Mj)17U$poc&uR7Hm+S1rXuhCtGPY0XjrFdzjoK2AopRGj4r@*oswypIPtu1$L6h7mK62q=v5 zziLv5gO>G6wHIXK3Vm_7C6czEul>?!J8&*tF=aGn@8q%>MF(&Uz$n|eIaZ!E_0=d$ zO|n_gQ8d3Y3ha7BO{$|q-rpxEx*HAJk2ynpxlhvN$;`~U-O1=YvACtf<*{s#wFed*_;`VzSs z(Ma9Xs_uCyy}m$)OuQ$L`$d)T!*7fPoARXG(auf*59<;*MNsUraLv>1O!H9_Rkrd( zi8dsTJ-vZpwX<34bzQzc&jIgM8j9y3B3*=3HS1Hqk`iGla}E54f*Bt9x)EQlI>2K^ zK^4oc-z91P{nvV@Z)?ungT%KqIAQk6jO2yVi1!RMUf8~LadG&1=oNSLvKVzYNLp!4 zo82AbNELIQ9zI`&@ovHa!1_mBsc>;WdcF z%nPK`ENubnwBPHETcGwy3 z;bk=9BLSd=dQH#B1T{;g!etc+eznJ%ns=hcHrKw3PKL< z)r%6u+*UI{H3eDi@rc(HJg|oJz|w#nz~tt@x0mi{jyE=xb{7c0|HbRWz9uHP0NiJsu%LD3OsO>ta99-dp&E09=o7#|g^0bWn>wi7W@2kRA9K!t zkI3pGIGSCkdxXtBBBF`G{|-Zv!I7543ue?(he9)SAO0f@Glz^Qk}jfkt#2a=<2tNu zoI~`5VBbVsBdNvo1jX?azcT@JH6(jZp@O~jhhBDg{^Ti2VR3av$*<-06GcaCQ&t0`K9D4hC^Q+%I3>DrH*zeFW~nJ&66N)g0Qb?43I( z{PUN!+=eiGQTgqvvt*FZ-CRu}S|lkIpThJ@EicLwEa%x?4xiPqMth3)W$?H}T1mm8LlhUEsFh>Cbj zLhExKJel5)T%VYp9v7EkpkvJE;x+JzhzCO4r3RXWV36Y#=&HgA^LiW~36XnE)h;$} zq_0=n;q9r96&dzPWTb{A{r0`{(J<5_>iptwTFOpQh(cocGQ8?N1Zf&nn#9pq)J{M6 zVHwY0dM<4td5%8`Ph9mkW~po9;J*c=mg}!}7dj;ae>L9&IgK}e2|bVxv;TLg-EK0` zp`nc4Xov^EANq3ji)W~NHxKNZ5W?py>D^M}a1N4095o3{UOSd0>at^hb#=crH~$5)YO@M&Y=EZx?S5zmr^Tq%#H zr|v9o?ZhP?nCgu)Xup1H)h~9Jl*E$^Ilurev}G9t=}jy^fJLm;KmhSaTF}3Uqt(>Z z2sWZ?E;f+6B6|&K!ayY;?+dcnRLNEg03{&gpb|pSrv#l4u&ay`VjXiP#GK$5gd0!* h00RI9oB#j=08YRF00RMm000J*0015^00093hBK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0548.h265 b/samples/h265SampleFrames/frame-0548.h265 new file mode 100644 index 0000000000000000000000000000000000000000..59f0a9e46633baf8717ed8a3986056334212d0c5 GIT binary patch literal 1893 zcmV-r2b%Z*000330nr)%)I$OSu)$pBf*OGUI0yoOfEWe=z&LHQBTyMDKog`ZFTG4g zsYj%Kth z?|sJq|Mf@~jyM+`&&P&*#2NKkYzm=H@t;my(#9h63y?7RtQ>j1{8J+>)<${V3^S-X zcFG`0d5A{PI^nf*h4JU7TMO?r`M{gJGwW~Z`~wmnrZuED*;4rnbM2bu?2?w$0qSX2 z02ArS4mvOH0APs!X>dRP8JHEAFEq~cB+v7vJiRhw&h0E9*_eWt*+fBV!Ea~cQK*5vIuV)-heOBhj?RQh zDl|OzN&2D%QS2w@3fv{bJi=8s*GWk?JE5r$2}{hbUbfKbIa2k&rHwOIDzBPRN$tH8 z^9|rX*)`m<0R7S6fBF3*m&jos=s8-p8dTNS>Kh<{SBU7JzG|RZIa8}pOr6eu^`V{s z&clp#G)0$xa(_Vy8m5zjr`;i~A`L&>J?*z$uv5@nh1=l)dA(4VbXl65CzZxBA$4>zPYJ1B3Z`)5ayA5OvK$loc_SuJKMt|&%&qv?OoH>!=6YTGizB(gmxow5n?=~LvPOxb> zI%5^Nh7M2FZ=jF@(a;+3>%ZA!ZuBX|vC@aQdd53SswN7K1Fcq)1+DxF7fgtXu6*RH z>|qv@Jw;`zIgi=8fG^THZs#h4_GZJRxH(;f-)Upp4_*ylHOpr==g5qtKm`Hn*KzS) zeUxm~S6ic~rZ^T4-h()hGe_ zfg-GuFz9JH_s&Y*ZnqAUq1HBY|lEzNxtWbI>s81|*Z90~bI=n(_n{3%h9zU2KKg++{MrOI>^% zWMF26bs2N-sTw7O>^&~W1~dtE=A4hHMO?Y~-=r^R(1uJY{Mf*$KScp;+ncwLOS-86N>hQhqx$U{4bQDQ#Z_ z*T>K@FP9tolC$6j8_|=i`*B%6we~r{D>45myB`}W73qHV10%D?4z^UQUD<>!zG*}# zb?5r|I2zLS)pTm|2h5g#iZeNx4P?4Cfbaf8Hz?LMEr*%Hb4Y{$tg+$Zqiq~QP}GzV zWifVr?i%QTR|$W@-?|4E*(Fy>hbPOIr8dMna>&k(ZS$OE=3kf}hg5JErC+fFaoup0 zc~@uVTd+`c3U|P53}~^TpwY6~8+58ZU|6x;|FRbY*?Es(uiKly80FoX!UQc>EyW=2 zt!cd9?a%*2GD5@ro7iy!4vn(U$^48dL! zov@>x-w1PG%-}PuFZ)?2#(k%eL<`YBk?6E*1=@Ml+^m0#NBX-l zGKmjQz`J46JU}4w5j(g8QYVew7kvtJ-W_9eVpZW1-~TWnwqA@;&x+SphJ*=Qhn$>j ztz@?>-Au15a2Xvm|F`@H^M7t#aCkn?7s-57)$RCsIG0KzY)c+WNlP}QP;IXgILTI( zjDTVS^_L$n#NuGX-tp?ijrkja`){Uv@SX#LHGwq@nCbVd&P z<5**Uh_&G?={zR8A8{y!QuQ6H62W?GAol)F7l#x_;_>J4{m*UUf~&W7lLQ@bLkgHJ zB@rc#SSYSf^+8wV%0*&bObeM$0;!r!pa2pup}Z2oUES5U_0zpGH(7oWW=PjV%*8$w zIi=2RM~c419UxQ|qS%lAM@ez^CYA%@0|%Y}b3p0o&6Mc}qk+k-MXtq4DyV>+;6=fk f00093D&PPB0|7Yz00`&+04JaT0BJw~00RTo6WO6R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0549.h265 b/samples/h265SampleFrames/frame-0549.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ae23e2f7958b06b7291c26e6ebd08b6a8526e48e GIT binary patch literal 2650 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 I6951TxP0C#kpKVy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0550.h265 b/samples/h265SampleFrames/frame-0550.h265 new file mode 100644 index 0000000000000000000000000000000000000000..985723a2d3338e9825ae65fd86c25abac0d8d96c GIT binary patch literal 1679 zcmV;A25|WR000330nsV{)I$OSxWQV>*nI&2FbDzwfEWe=z|qNe8T?_&1F{dy2Tcwv z#lD{9FlVZMgy6YY^tf9~*q%*Wu^eqW%^uqI^0&?9Yo>FCTx#!Y7X`WV zj;Z=B3zwhd1&s14rrNOg_E&rFV4>w_WB@0JFIIhs?0m1B%5!u|1|J}5h$k+~kM}lV z9vH>ie_h%+*}5j1>{QjbN>r;bGn!;E@GyzfSqbZYQaigX`m-`H5x^q<-;ib3aTl%0 zv5B1qn#h-TYLgqh1Kr3ZUd{yZG92p);DVKM1Y#RFEJUwm_0r$WjJ?xJ^S0auA6vD* z|C&i~^({P{^ z=`A~NqI=Xl{%k>-z-kFjm7XEZ2Wc145m5^(9m-$4V7veMiD%CM- zqT2GN+N<1Z^<+mq(I}DR=L13gq#l0$WNH#_#qDR%COwch=W`U!RfE74aK%~CBOfKk z6^ih(x+EwN00AqWYydJ{SR~>tmzQJ zMKOtfsLucIAjs=9l*+Wi7&UMJnIxxFqGNeZ_LC+J!%P_8T7QL7-YQT6$LKUMn$Vxw zaH;K!B`pj{7Ye5~m37x3@JGYpu+iK-CQ z=TTL&$lqg*YlS%QC=H(Fuw}m`B*c*fMCqZ)urUwi=1>K0WYcf_`cYqvL{&{1?0xmJy?UeA&ciq62Z^-3HFH~i% zP`q-P{KSF;-M7M!w&%3`&gsBX!=Pu@Xp4Go)O@OErtMFcq9o(uR*6VO?>Ab^H_O$H zHE7NK&xW5ZM2sqNiyAhhD6Vbx6o;zX!1qv}EWF`V000y4tIQw;$M*k#e+i#gl>kPz zd43U<3uS_;($h4g@sE#7WzQB(hb2Xi`ltlDN{mqAD*JD~1W740+pQwlWi$U&)PrAR zjkX2B;hN5jfcF->f9x%b`RzV(-70}K zxm6-S*{bCB?BmSc-k1?sxNsRexY!q5@#D_|4#iMK!sPzQajl)qVD~0!Ed_inU_6>y zEnyKSRyX2&&zM&Q{U&9&leZagqOKm7LV(3T0Z3`Rhqk98%^J89%Eu3HYIiJ`(23vnH%L^c9GhX4RD ZAOHXZ0gnIx3djHeEMNctw}1cu1vL8!I(Yy9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0551.h265 b/samples/h265SampleFrames/frame-0551.h265 new file mode 100644 index 0000000000000000000000000000000000000000..25ba37b7826c2c7d0b61f750f34349c30af3b6b2 GIT binary patch literal 3619 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 p-Rws z0sOS-5sd}{gTV`JZIoP!vr{ybmL@stXv}Uk^HFzC(X;N06U_V=m{TMNR^~%r_v`=q zodeQ6p_!Cw2=FA?kH~JjcQ2^pa*@I&xF@G_!5fg%Vn$y#X-3%r4~_vxrfvkpT{XN~nttO0HvJt2BxH zKm9-Bd_QTW^n8dP<3T=5e>@C+II9qtq@NZxUMBXr^*+n?)2FU69+N01yy4FEB%2!} zTisA=Yc%j2sy>vA4)7l~tlEk_>9O4j3>p}GH6(%ylbMOKL!~89P|L|Z)@=z%TeQ$S zQ0-36iqOpc^5WBSugbhyZE@P{h%S<&aj6)n0lN%caphbq&?zPhG? zp*B|fA*VsQLXJeEVa0w-<$}|Lf(kReJ8+vWJRN5aHuP>Hm|tsT6=vlVF{iUXN3w)` z%&G@RmQj$n<=D$FD4%B_KS{@BJ#eB18;&ML&pAH3^Gm-3f*TaHj@C57J}Xt1x8Oaw zZU#CMxRoTsORki@SEk@L)m@rwD0fP!m3;4HHn=bc? zVVoUE);hky??w_QY5+ys4))e~f|<-B{m&mV8X2|nlv-IDdxSOJ=whGkA0J=0@qHl5 zDLrq_J-NN#&VCF86d(WxbaUhY0}X3F^D(~)A%RuPu;;~|AC611c4PL}G&{RU4|gW% z-CqTNgp;Z=F`Ld8^pt#%D%LXL@Sy-||Ht>5Hs5paqmYRS>#Fm|m-crRnyDxcuKTBn)Z+2yg3-|y3|NsAKC6|Q68JNT7*c0aXH;{2czHn?qAjO-94-jzz z=&7;=n&mkbn)|lMsJ0cczAorTsS4kVH!0MvR zS|;*dRxt~C0s19yblS1!W(_O?u_b!`?}*bGvY!nwH?US?-?!F@<*~Q+O~=EjmE;bpTrVmFz*?(hvLk2=(h6Du`95%`1s?4;K4;29K60 z1zA?-o%h|v+*D*(f1Xgm-j5 zExZF1kjL%kkwv#&K{coKAug2)7a-BX7**xrUnD`ZS(SW>yM7KxI&v#HHU#P!Ao>Xl}pR;S&E)xtjgB| zu+ZvbJ`U*f`k7Kkf8yXYEh9vgi#F7<>G+Kc_A=HlIQAWNO+Q#TA;|QIPQ$X@_SgZw zoy!ycP(=V=E!fav-HYS{TKFFD2qAhwU~RB={MWRY!`K)&Wnd0S-|&TZ+Nj(Z)V2{T z?PDIPgP=g4?^CR4ZA#6wV8}-Sb^*3G5hNM$O{*hQ886?8Zeav&=HH;@CT%o_JnO}I&09Yp2LTe9zOu*=X xu{2FY+y><1``4@E#EhIEJc8x`00RJaKmY&(0-gW>4+sDNIA8z(-+%xB2aMa9@;U$j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0553.h265 b/samples/h265SampleFrames/frame-0553.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b1f82ada7c89065c988574ad420fec0a2e37282 GIT binary patch literal 1825 zcmV++2j2Jq000330ntJK)I$OSxWQa%`r`orFbD#GfEWe=z&LHQBTyL+T)EqTA$yW7 zynpi$(qXP`Wo3*i?Ov!1zc6;W+1!BJZuIO;^<&`@;c>g>o4=Vs(cl07|Ns5FGuQ0V z`T7ZPaAKfm>rFJO6z>>a%O@voegJ_K)G$Jt+1BBbY8=;)XT0u)8P8jb7OP|;J`ieX zZzKUx4Qh4olrW_E&14t=f%dZjB{LjsXLV$4hp^?2AmiH;)zxSd(tvycDCyR9RWBeU z0UHdkF|u9%{ESq?XdI*^Jew%aui4j8d;@n@*T*rXf%(w*(V9yq0koUl+5%zoGSImP zLbg9{)`{$aDAo(i;`b}m3%Zu^%|O+=PW-vg4=c$dRx4t=3}yO zuxW+v{1w22fishrIf>w(9;kZWgpJ|^e@KOXD-Ljielt5DS|Qz zrdaOs*1VU%;5vr-U$+&xVfpMHOnLI1C6!oNN00bx(~YX(m$8uJwgOsc26kS8BJv-F zx{uu}J&tPOE!g2$Pro{2%kY~DPVACGzrMR4z#i}hPMVn;ZDm%n)PrJ^+Qy;w8jWA^ z7Nx=`fx2VWWNwt|#`C#?1m@GsaF_e9qrUOemFH1`SFS}VSDqD?h3CLS)wR}DM}=ruy&ixdMwRO=$~}rh9VN% zu+HTD+&))YddHs5hLrU$*aRCqy8jy$OadM^fkxG8B9}ApVvAJDMA{7J*MoN-c9!pb z{haK5_Mdr1ms-Sd+Vnz8!XHS-0N#SIpf7E z@Qc^u*s&)Wx)nY}P4t9c*nt=Yjikl5H&(SxtIQRSF0i|q~J~`4=vJmgRC-@)yd{}0`ycaE@3~oJ1m6lPq71Ml@wH7Wi za3t`p?_{e4yl0z)FS5h4o(mJ!>Y5pkE<{Q=UyvE-n5nNHKoE%MjaM0iuY!{8;)on& zX0SyQyBhBR010?&kpKesAE*j_p=`kq|L^y_jQ+?JK>=eO1nM+mJ=EByJ|)c7g(BJ? z`Q>O~w5IUG(ry4j>?WG@0XOkiz-hP29(`N|U1xj-=BZc6XgqlAbFUl54B3h)sQ2Vl zODi84tMt%iTw3Zbbj!*M`%WK%0q(=*0YEuA)ZMoP#++koN%NmR)Y^^L_<{moGiI4RT#y{b+jI&<21y<4UI0flBlQ zwJnwwy*nlm*fE6|&qluvZMp+Jk&bZg&$7ya)X7OuRdxZWb|ZlMLnI^s00r3*K!@+5 zv3FTw(iYwnGLyn>C<6@J-K#9)SHzkF3J>8%yep7(dMCKtWw?u4E9m+*2#u-*cLtKG zg@IYATH_>emGh>a!?9TIwYfRE`cg1IPQU;X(4q3<>L&?nLuOpK`Jt|Kj!rU?@mCW- z+vU4))(qhs;5$w5bec(KjCXRX9mcZgf6MgpRlt7$sMs2{V@2F%HFTOPt)g~aeDq4A zd=Nrp0I|N^=X9{xo#0eDq;=3A;@m9bcp@ovptl={OK)(v%dP;6hZpf$QrK78!0=_)7GOq}}d zfpRh;m{iRFXpiy7Ppwt4(bSo^DiO<$swlr%aM<8+6atDctv7|F6hA^RCTWg;C%Y;% zrejCx0GahAG1Ni4B2RFGaOa=Q@?oOy^M`jX8hX_WZU+sYeLrIK;B>i7Io!RSTcgXW z_#VLLhZXH!Jk&7yNI)jw`%p*liGWB3wD{(rqQ9AKv|w(dZU6uS082ms00RO3000T- P0021P007K@000K`jQx?I literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0554.h265 b/samples/h265SampleFrames/frame-0554.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d9e91f1d0f8a9816167f12e01ec8cc5c7f5ab529 GIT binary patch literal 2283 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 Wumv0- z_G*!;8~^wJ|6_g5HPm0fn>u|eN}w*Vc&tihCN7wxBVZuS5FWwGBY(GVE#DAS?} z`=MXg@Qt_zfV*0WTW^Gvs|`;CJPizuv{QWj$>)l`OZ7s_US9;0;pW>$<0VV`1mAtl zd%dDPui;n$D0~(EfSVc+wLUuuM5aNo*?b}k zfYI5~Z{wmA!h~$X!GX@?R6^-Y&x1xrk0Q=Ypu0IPLs$b2 zI>CmL&8Gk!i5=wS8dSuOw5=mbV+_wyc=3gL#&own5Z|{+*P~5!>g=Ez_=(F41qa&Y z#MIV-2cQKcO+e_oVj5O{_T^049m-^L%mIv>G!?7Tlr5!!xOn6ow_-3MZ!DD8nH0)n zu`;h~qly^SYhxC>?fjY=&AIJ4%DCPiI_RydM;BE~`O<&fYUDQ@qBga-swWlmJ=%XJ zlIc0c>AMf-35$K??H9;SI1!sZN;iXzc7#BeC-5?CK@4 zvU^dgl^fibNoxlsGYWw2W#6R$mu?(`6C?kT`@g_`kE8g)K0ochhJN4UKN|Y~^ZWM< zm5;AJgOB=CP`V$3Uv*fn?4NJJHF7V2Z7%U!rT;zGgur4V{tRme zi{#9Kmk~>w=<|5Ny1(Z?;vjq|EN^PL;&zU+97yN(9-4+ zMgp63K{e+`y9pS>e60AB+C0U8vm zMh;J~1?+Pm-t|Qk_FjA%PQX}3O?9H#zvP7`r_+w|HHm9hQWj6{k}&`Ty`Py6B*pLo zv}Ihg#e=kvooKzazljNgS21!__8A_ZH$@}5CQr7>d*wxA1T{===ssNU1H@EYBxI+- z$~S(O-2J=8HvWcgtL1ipO-PPQDs<71s)D!4CLvH%7XkUkNi&WZLG1nfkN>8Pse(kY ziR`rXm(xZ7015a20P!SK5EhU+bU>AV{{Nfe`A@ukY?UIfkGKf!!N@k!$F+%n$NKg7 zexUi@7WnuftKa#rhyW@T(_sKsdCJ7ElOXGz{e`xiK7NkL;S67w;Kt>X;_RQ58r>7- ze%h+8Mr+&+-bg1b73zwa48({hZhgE*4xn+mZStEVqH1)H0hh|M*0rDh%>|h$6G)%% zeB}1OLxryl*hAKmm;a1FxzWdZ?Z6H0x*=;gBYRu&Xb^=^tl+XkOpDN>N-XzC{tcDnI-W38l z@%6V8^orKSz!CMMOQDC4KcGDD!2o~C6{sD4O_gB&V8tmK3sGf@gwQPaF<+NZU;x9bfmS8ud;J@t-med$iYtgQALbTW%TDcRz3fO&IaI9VLg0xWKF&5%FU?;rNdaFVpw7~6dCW6 zJ9HbK*HI*y08rn2^H0YD2LG54S>uem#~eh*+&%P=guTs21B*IoH$iQ*u_!yj0OYDv zMu+qfse&mp$e=D5_%<~L@DO+$<#}-I$2DQty`faNsEU6f^oVY;KI(ZYqAYZU(cdO9 zgj`vhX#k9~>^WR^7l+ro27JLF#7e2zB0^Oxnb`J0KjP5D6LfSpQ4|z&$ErX7|Mt$M zQR*C&L&de~Q2!D3_}PIYm^n75%fU>x+7Cj0a^L>Z5c5JBOvHjP?=8Pd>-dw&{zPn> z34%+cp-6yib+Q=J#tD%o2;K%1!d~{hA{@ zSWq#5KQ;Y}$lvkMUbc((M#EJX^;uv+E`j3^Ks~$o8|BJV+zn|^{I=5uNv|Cy;Ff$; z-U{;ZA|2`^914suxWH9iZbAVf5mgiIY|M17x;Wm2-nbkgJ_jcCWMt4g6+O~rLZ~;69ezM_GmZ& z6mUpgn=V3+L5oKUETsY#5TNJ)9gr6T2mqac9ngRRG9V`a1+*kTzzk>yz2$&bz{>d# AP5=M^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0559.h265 b/samples/h265SampleFrames/frame-0559.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2833b5051dd6a758de587c25e909b243f47d678a GIT binary patch literal 3045 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0560.h265 b/samples/h265SampleFrames/frame-0560.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d7852b7074c86a016b0fbd17bd5e85e22d2809b9 GIT binary patch literal 1993 zcmV;)2R8Ts000330nvH?)I$OTIKf-WoCPAx*a`vwfFKA0Ku5xVS`JvEN}+==z7HN@ z7lq$kLH*Rz^pUTLWM3~g6=Rhv0R~xtX4-;2Xs?BD#sSD29g|@*;0gaS9Dz-GLkr#3 zpb?yyE?44DxKn%Vt-@Jll|S=%t6Sq3+=+^6QavBvTC2(+ngcl{p9#~f(_p~8%z~6{ zCowCGobcQ8N*D@wMYIVYRFxZgfwAU@EHi=4Z9RaE>z5izKy zhnWMoK|(?&4^&nVWp>Ljf@HOK^VRrQ+An8v__i?1aqjeWUeNCGC%aY7KmRY`uPAKL ziP%H)@P8aL`+XNs?sRXP<-rph7Cgt7l<=aBF?8{DGDqeGenv_EEp&g$57IU9 z1wvc-ZGDcnIyiJqEpc(ip>8(3(|}eZ-zcGkwi>>xh5co80zP+CeQ7URBswO?IKJ{7 z@w$lVAO;%(^d8y;{hZrQ)GahIGpt*-y!AZ85^dnSwBce)Qf=qUrfrkU=Qq$;{hS^< zr1ipVgDE6)&IY8ia&jAIIp^52BA8ya=008nid_iu7)CLCB-sw)ocai0)?NJe@ub>2 z5BDm8z(_@}wAK9J^TowDByUw?EZ@0o@yiNL{EEUmirf55t$cDnF!2UOt+vwcfuYv; zsl=v_(e{JPNUD*zM%Ak$%oZMU0rq0Un3YwEC0rMyCh9?)&#xI-0QDCXmL>uL>}sv$ zfFiq%ipwef7RAX+Gj<^x)co{rP%6wNQj|D`%x^&!OHu^Jr4bGrlH2LN!p2IXb5#v73w>PBde9Ii!V?dG{j-Ud}8mP$~S zETWO+wW5nC6@lUtJRGKX620`01kL@G|1!1OY8Y-M5$ID7Igo(0k2SKGn4I`A-1<#V zuf(FW!fF{@X8~CWrJ{2V?}X zs+;Z^VKKL7f%$0Pgk2ElDvqUg{dHVD>qUj{jy;sYvWO}W3JB}``<3hAVCleRF%rFT zZI)={?)Mkk(3JfD5qU14qo4t&)q!oY4nT*`S2ua1aC?=fnDXX|(NwEZQV1X#Lv&yH>lg`U{o7*b zR3ZL|m}(=&m#x^CH_18vA&v+{tQIG^(i{G8L07&y*=qS3SqcU!7hlF`A^?dF)tln{ zCJm%LoT&6kY`1tH3P`JO0?^iohz$lHHskA1Q7rJmyMRb%}GOh&aF%ixGN8SIPFZb#B zPwZ*bmzCnA&5^U39I=B1eh}{M`FRLNm>OcDD)G1GV=}C%H8+Zu$UqI)m=%amU24H% z)bQKSdtuV$7xAC|f5FWArt@;=WyoxL4Fa%z-7|m8pLnoG2+>SJ`Xd`MgE^?pps5ulqDzJR(FJDZ%uDu-|n(aGLPZ_~$) zzy14M@}6Jq%kFz(Y5ac%^QC!Jw+L^(KB7zWw5I)gSSHHyj;q%au}2ppDp=PUWY6+f zfP*~cKW-35Ui@*A6j<^iy}%rE4xmWxX}rns&~Zeq*JxA-u+>JK*^Wx*lmb61>s1iC zz~2UG^>2G~<5c5=wX|`=ZRAK5C&-fkE{45?aYg^T=QUjX7O(&RhCR}WhRSjP?nUF) z;R4E}dX->OK5&rU<9*e7HH(zD(?fo3PG3I-#k?or*Si!>Jt~?6j=pZ&jzA0sLFW#n zD6JfFV&{o6Inq3)6-zgeRdzVp5J{dN)`LwN**r!`iK68)Gk^5BG3Oe6EJ?)I>6eCWK+;Wm|Rsac?DS+WFab?9F5+uFvSfCH+ND>bKHeeQ^-~tvH b3)BP*8xjB)P#+rLLO>?@0F{6Y2Al$(OW)RK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0561.h265 b/samples/h265SampleFrames/frame-0561.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5b36eb6e43453269f4a1cd49acd7c096f8f67ffe GIT binary patch literal 2974 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0563.h265 b/samples/h265SampleFrames/frame-0563.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4ceddc9be125a2c7bc986ada17c33ff017fbf570 GIT binary patch literal 2131 zcmV-Z2(0%2000330nw5F)I$OTIKf{#HU$9Bu@V9RfFKA0Ku5xVS`JvEN}+==z0j9| zh}8}E8~^{YdCW^po0?wMSvhTy^Fpf}PvQK32Hev65NHDMSvVq@Oap1y(dwjW1$@!Y zGxe|uI$QnjYoqXkWDeef#-qSB$408~H~8+XS}Cb*!|WNE8kIl8U=j8NoX8y&hc$ZL zo@UKx(2lxpN`4H@!PE#eXN|}q0ShyAK}^MvTv%keH+uj7veC1#BdTmF_ZmDL#Ltg9 zWb_4an0_HarjtvSNpaXPH<&CgqM8PVVdTQ_?Sb^X!Uon|Dh2V zfMVN{0ChD&5FgA4pNQPEsRth)vr$_VAsj=4soc9JPFdhnL?Oy85Ma1%g&i{BIeOGn zz>1Wr5GIVvOS>c8}Xmim~RiQ2NyhY7FyEr;}a1mX)ySFyCTyf5W{TMy@# zjG5%-B_HIJ{9*df>|+v+EQNK<-b)5y0Zua*xEsE~dBaXJD7dfL+9ALr?H8+*kU4_P zPvN|FD{aJeV$58XQ)Dl5uvOs%5y*4 zg%{@eeoRJq#c5Ec!#KU$dtdSFsr+>XW9KJVzbi>4R$cOQ**qLMW)K>VW zclg|hJnnaFk<0#13+^lVFL#y)d13+a{!jD28`7e5E8u;v&Tqjd(L&G!=l}o>$N&KG zBvTL;aKdmVOMm|Vo8tLTyIn|}h^yo6{oinL`?Rs`Vqfw8z5XMpK6iz>E*LBK{%7I< z3WapoYH_DctE~6zF*dwsTWQ1R==~(LG1)s>Mo>q~RnoF`>$;`2e2f)@6RlWRj`7}G7pL`wK)JK!ftIpuOm`I)N} zl~GfN6}|qO&7TX1|5}m(cWy_)SUo;!L#^H<#EtHST5*3B0y**Zw-fY=%q8FnHSpin z?>g*tji;Aitxk9a1LP`?@8DL%FT^2#T{me^j)Nz$P4GO69sNP zm-CDO1JJ!fsIy9*Wbocs>ht4XMSt`kyHJLXB>;}cqiRNLNG7soFKJx|>)M*3aRR(v z#cItH)(7=@sb+^=ma#9>*JR2Fj(Hihme+HP8(D`&OlI8<#e;WK7XN?)`~WVcM}Nu> zia=|?0G+bgfC2lONVLPg`T9?V%KtNzDRk6by~H!)KmYHyywPWZgYHdJKeK5UJ$_5Y zIHPuIAL?efz|8&^6;`8G$i7JuBuRWyN>+bLfq`g$C9 zAJK5xhynb1r^euO&$v9XzZfcc-(NGM~8@ugGhj7vi~aQ zASk1M=vH`>rl3*bym0^L*(Xw*!~vP{dZ%m<*y6%>R`8ea0*a+$)`^3axX${tBSM6Z z%s(3rT}DYo+g#&;bzUaDHW6TE@`xxP=BC8gVx;x+aUH<)`;Vhr^*|Oe z^A>qw6r?T76zl;oxzU@j{`=ARgASEJFK=XqKKU}6brHJgFgXTx?^Y(#i&>nEeyy5ImcoXOuE&n)Vh0UXdv4hT#BJBLb2SSTu1?+1kBGeM~Nd$ zHoI>{>sxRqnMIg!IPGYWYS^iXDb-f0$IshVI7dQX|8XUy{3b-H3z!p#=F90$iE1H0G JKn_s+0ga{lBt!rJ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0564.h265 b/samples/h265SampleFrames/frame-0564.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd723b827ef0a683e5e635bd8ca0bddcd96c1dee GIT binary patch literal 3011 zcmV;!3q14y000330nwTN)I$OT5W#h&m;jIrS4+SJ0H6>807yfNbFPI^P}BqxLYv#` z=mOvW;O1I?d*2%8Oy~8F9oybBhZ>(IOg3)F5vYMj_43y5I%5mcK_4inXAwL!c7RViR|vx&ENm6sRx0_W7{yXr{T^V?W$6#C&IkV;5Q8Sp>@O@Qmt4py?nVu72-Yku3anhs?t%#O-b@iHb124dOBj!pm{MBm4TgxWFw`)FixmNF4hFK4E#k`G5GIhV*Bu- z8WlBM)0yR5^U-Cftidwt`zGXuL))Xv-pZ+ItjjAzr%3j`QSA4HRb#miopUH1hq(dG>@&mC&EGkTqB!_9a z-g?@Z0;vP7=Mo^%o%wab?H|dZt&;2u^I5b$@!GbxvWd9gKP|QdDAaB&@$3l(306Df zIFm+910_9RN5!GafmCefxdu{64RO~W>L!IjLEmNg{heJmFp_&4h3@^nhtYr~|aU}hcH zf|uww8KN&kkcjL=TFo-Qoz#esjXD0Q$(D{bqS8peYo)wvfbmtP2ZliHTx~$t3R3j; zIj%%g7R!G5>9?|tyRovVcqRT1;{IdNr&poJ=Ki$@@a6yH|LPy>98!f;Hg}!BIB0f2 znMJ%nWUF13P&zj1HR=l3G3rnm_xykHKbwD}-3OT?{?Eu?yXJR}DDU`=ey70sj1l}t zCnv#pKd<-w_vv^cT~URn`stsG1-w$Q49Vrl2D0dP*fql=^Y5u;#Cd~)iEbMw`|wwy z5Zi^Hi_Kk$Sa?#CY2D^(yBwN+ZpTNxRYwiwrKNuE#&aGQdGOydHU*fmhZv-B>7SUW z>{4P{5naer$r_aNku$ZT+e=U^A{M9Jp-yz(M=P(j^**=eI^6Qp<=);wm}V0WBEbm7 z?|~yl-T1Q6+ZB#W?Drl2K!b~-If;#~X;mFbw z9`g*KkJA8~lR^mf^cH%CCk}V0gMDk@U|*vW`M04@PD^dnWh+^Zf`N~iBV-xRXjpRA zC6nS!|NP2wm*&OYkxk*5$YlVt+`w-B@gC*GINw#CGQxkrNPsnd5?X&BHy)LOWWz4KgYi@cZOK*MM@00)au&|~YC_8NC zW@(+8&b1uG6Dmv`;eR-bz}7%efQJq~mT)v6bVm)*`(&0wL*UTfv8=_DhQ^eCu)kLk z4ok8@zD@^_Z5$J6`_cEiPP)Gk87Lax)&gPf?oD-1YC9?+`!KkHn9nDzDX$!yI6>3IKp^nJ zdv#;9u&oi2MIsG^!`bFBK!5+2&z&*}(CKLIj=gF9AbGuj-iwX)L3V-EKKL z7)|3x>^M~sw~x797sj0W+RRNa{RQY-x4DuYH|s^@T9&-hp|=ZJbmt+%mw==Y+Mq~d z3)&mXeriE8a5B-Ob=2to%hpnhHLN&-6{`0rh-E`?kg?tud)D2C+1aPFU)S9gH z1LN?&iKD%A?x-W>Np2jXFx7i}9Z6aDUWq6*#76d?PEnRAI>D_o!#UCRpB{`5z8h>D z(ao%%`eMbGi+bjRt2#NX&&|5kWqX>Yrnnoe45NW6DN5Io&wCod7wYnWcNneZo~tjF zm8Yft(v#<~NntE? zVe{4j4*(>6VTCSsAOQgYiX%UO1NN1DQKGG^+TLLw6|Y zNm9gCg_A?w&uKaNxa#ISr1h?eo!T-p09YH85A&=~Un0wb!)bODst_s0A+!ydko{oid8L9C=1&!n*3bCSDYMbL87Uh z>5Er0fd3yS+Z@}kHyb;XtW9T`T`!6ld-mV0Oq~gF!(5ZpEd1E**tk1E=?6$gy5l~* zidwDX!u!!iAOboSfB*oZej*5gyG!QfeR_}K8`HZ#66P{wE?guoELU=ZM}L7=conAs zF9EvREC6ioTr#y^RSrT9zvyn90}cz=t_?xn!^ux7xE>=Y0!Kk)-_~O+c1fi}v51qI z0R4KmbU6SqeW7bkr?@m3?w3#wctr{O_z6fAYoUNyz#7Yu0YM!>7zd0X22c$s2#fmw Falip~>g%WHgd;ve^Ly#%2NMXs& zR01=T1mP!C6;;nG(yND(!sYvyK2I{Z7Hk=IPmV75pvrRq%_c97m zy*$LOHpCa)gBmq6|Ml3eU9>1L;9LJ8$@O=>e8xb1p&1uBcJ!*L_<|y1QB4mr2XKOe zfKDE#s4)vJmSFUWDi`Og@UOI9(Pi;z;g;jw_K-X^N;fX?cbT? zj>sia{P;hP8UB8YsCPOy&U5VZ1l9pDzsbs_!$k2<}n*ue3&0yB?&0N<_!pBdSHDIe42 zA2Ts)=hRV;{mPqu@s;oX#A8QG9F?Dmi}674VxNg3=E7k@i^3pkG~Ieb zo!ijZj!BT~EKTFHAe*j2>lTK3!3C~b-O=UOKYl`V^=Xct*lPd<-}VUkh8^eayJ>la zYL7LRbxY>1*aVb9Hy0y>el?_8iE8-y(wJ)!9|FmboUfzd;BgVgXe?jg-pHZS;ewsK zc>r>3*nfhR9u%w8Y1LkGYO&y?5ujUi_zw{>dh$buG<&^t@~xA3!r;(}snDC=7G*7w z(iv?)%5!Dldb2Enmf`78l^H&^P&yY z)g6PQgG7>+nueH@Mn&V)h?p}_tlJ=2+7I_Hjx>g1>}Y~ST&bqH$|WqyTL*mc2yz>O z3Dja@0BSG(rXLi2k1MVbdTJ=On>cs200@Wx0P!Pg%yUVAE(gJCi@D3Cl53mm@kMmW z*B}4%8xd1stpktjVP;z}ht*Y$9wHo62eu67PNh{1Al_VlmhG_IJzd#> zs8iwE&dU9gngCM8+h4 zKVV2GL+~qbtV)F>&}X>C^`0o#@S>W{E!?ev^EhWMKfiK_H$rn0Y6urNhu1uTE^BVQ z1joZWuMEA`&8JPuqW>McW@u}awPhclSg@r{Zh>Qqj;WT=rXGg46LWgY$dtkGH7|md zz3bCNyALJ|#B8Vl00RIP5CATvM}Nu>ia=|?0G+bgfC2jy`MTB@JG>gfvBohFu1t9D zblGZRYnvsV%zrY>8K#{Ix2I~s?=KEJQU3(h160l{=DH)=QTcc?$!qXzu?u97d=-CzQO-ZM$Q(8+!k~uvpLXjJ=O=9!5U3VIFBygEPoO(hA^sfp@Ao1q+r!H zafg6tygHfjESkZ<=tSw^Ka7ahwH@}OXvHr; z040=LhQ>AYavm4^zD23$`@m*KfgG-uT~U7N>mUB+he?t7Jt>cBOCLNi3w94*dD@L< tynss1TO@!7Oj;r`fEe%~k_Z6UfF`I!11c+~Knd6`0)QqU3P2+OUqDwGcP9V< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0566.h265 b/samples/h265SampleFrames/frame-0566.h265 new file mode 100644 index 0000000000000000000000000000000000000000..442def7f75becf2ca39fa95b08fff98f0b955096 GIT binary patch literal 3249 zcmV;i3{LX^000330nw@d)I$OT5W#!}U;vN|0o0%c0H6>807yfNbFPI^P}BqxLY!uB ziGdLzYk&R!|Mf3Fy%p*>!-l7=v;^kPZWD5}2QNQFvr zP*)emMyb`bD0Y+zN@7*s5yV@t-#6-A;HI?I*p&e2cxf~aWZ1i71{ zCCO7mfpe40_zIiCuwE3v{Y5e=O1M_ljh?zAyQ%fEq6EBV#&HE?7@ zd8GIueELH)*fV@scgb-OzVGLD2;(^1Hg+RXIyZ@7CTQPKQ7mxi)ncdS!AG6Yd9~O9 zj4d!%sgMA%0=aT|!AAuKIZWC$9_Jhm$00!#t79%2WVTR4!hZrZy{m`E`2HUY zX{7p3445B03VsA;Xf}&tbqil^Yh9c7gtZG1|52#=(@p?Sb}^~O%>h)KNm9E|eWFQ6{dmkF~+RsQsg{v**Oh{^M()-b4>-e>>yZC@iYbU8iY zEd%WRHx1zx@bsa#1fMVqcS2x*Nyghw0?6uQhbC~)hxHJ6LNxx4SxZZmVU+{(K$&_D z3_(8a^&0Vfmx}&`bnP$*0Koefr!Zk%zirc^fA_|vpZgUfX2h?8UBuI&G(Eam7`I2M z=H2o2IS1ont<;}OBCWW~m7tFtR~PU1>9 z`N9)v-WoP-ESXjPqnAya-)(Jnzc^F|grYaOufr^EVr6{|7=;RFw33MzB6Uf+zM1Q8 z1KB)7*Wh*B#*Lfp09KTMwNhyUBp!W>z@`V%65DrRmca2luK#kiH)zsdotD7M%zi4_ zO_j|X2vgdt(EW@y4>R&UFpppys<@K@FF^vvp9M}z$yZvP-Z8WLLzwxQXC?*jOInsbG^Y{y)X|s*wUiplu=*Fu&Ja^v zMHkNZ6nx&1rV&W(q~7z7JpOs2CWXRe!Ou46H-S8}Dev69X%jYpUJfSXPF0OY*hrpN0$VxRDHre$ zo?-6(7SR?a-`dmSg5})n)t1IDKb6;vYjtt}r#^jgZ`2N?GxLs-NgCX{O6zyM?azn^}`9O@qH%zC@}KTVpC zU(PivH)AjFL{BmL`~ZHV9)ulkhiL(bE$zh>A^{xV6QCG8-ND=#n(37(&FW(BQUPrs z9zIFiQ;j9y84A@;j6SZD-j&@ljljk9XER9#h3hm%j~_S-*-|Y~GX9hx=oaMF>&Ia( z+YTPC)^(Q--0;f>raLQ0(8`YlE(bljb)~n_dKS`?Z{S{6vYAJFk`o-cqE!{9cqdY{ zLPL4Hs_gVRaSZ_9CkU&7on)63vOy&$^7ZhrHs=E7t$`FAYWaVoXaD{s`&-c8D5-&> z&45i8yCUeq!E9D!*;;i4hZbyN9qd0^zB0Qh+6* z$N-|-34NL{rw0ub&@n>px?L5@@;8OMnXC~Wtdsy&EsYkT`(|%m|IwXBa9y!t3N7A4 zkZIt%wy!G}P_5qzL&Xj8X?Os8m1mJK1*s4K8w4F2hlKMuhpO@d$^ayNVTCSsAOQgY ziX%UO1NIds6Kl!<8L$k3;M&(d%i8?-9*8P+O|G;)ww2vCnVY(kc<1G2gsMz|+-u$G!=BG^k-wwK?XbsfUrc3z zPT$Hp;gnmM6~4EX_{rB2lL{hyIvPe9rOiP@;tnhJ$25v^K;Iz3o!$aWAFk0;oKK^- z>9gY}#i%%N;&cNsv$n&KuPi;4rF{LK_sFqEg(LU~#Mm$6oT>>l!@%}IL9yZjP_D+;YXbHHO868T{GOqZSQp9U0?h4pI00b0I jzMB9Gm=|(h09?QrtbhXU9n2sI2p}Cm5l{!p$bd?~fF4K; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0567.h265 b/samples/h265SampleFrames/frame-0567.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c191b895f50ff1e394eb478a93b8b49cf5505846 GIT binary patch literal 1737 zcmV;)1~&Ns000330nxGl)I$OTFu_;?SOoyUG#DL#pdbhWKu5xVS`JvEN}+==wy~J_ zZrg$U&$ftAvwHUgTD~Kyrbt2|MKJBoE%`c zk9n@IA~tS-Y?0#Lioa;P6PmK9G^5()26`aeFa*$t|H}V?{2$cLzohv~D)}1n^>qGJ z5ZNGysD6DuUwU~RU(CcQiy^viRr`GMXsqB{31}zx6n2wAdj?++^ObvgdaEomxaYE6 z+9i&6QLeTyL0=!=^cDtcd^V}~xOdysiZGA`P){E%RsK(v{IE)Q0XA9|jjw@E}t|IrRj`QR)dq4$Uw@pgKzflfG$bw88JlwJvX>`?!%hucPD z9wK4=K1`4B09jLr-2!(t_I9<{kp!9r5mmO6YUZwAt14Y-?gKSY!|pVpK)qFofD}&2 zfR2C6kO9hfbUgTTQ1)X9yZ%x*XOgC$0sRR!J_XF$54>Lo5Ja5$NvQ$srC_}GXEA{$ zfA$V0N>*gmjAbKwK*7R^H`V>qV4w|dlWBqWH#3My5}a;ATrlSKAvlM->K(aKzc5hI z&43pd9f&Dsjp>_3{FPs|pkFzdZ^Ot1l37&qXtiv&BxKl*z@`;7`haXy+zubcSO7n8#T!i6T$Uj zJ+N8U1-a7i-LG?+@*HlOK~?jt2!impNqf_-S2npp_MVIVHqSN=wY)=Q&)JaCJHvLVX)XkV+JZ^B9!yMvRPu z0_Y%gtG06r!8e!OEKHhk6K+Bw*CRjxe82zz@g!2hatI}v$(I-ZyKrD4fA?r*{C8u7 zc$rM9o1c4A_Ifo|k@_wu1|L}b{Za|Xw;tcN-bnHaL<<_mIUAZCD8!_NA;p@&5tu#= zn*fhX;kE@&|KIuCbMx_zBiPWH=pj$a^18pL_jm3zpwTb zwgoA22a7VZnorw74)UkWF^ORU!Py~19>|rr1}dPvC-FbQ;9wek++Oz(9TAnic<9k7 zkJ|md+4QSd2||>NBEa4NFPsj6m$-miI!a09w{WMh6#)3FhrhBXMxVJ%laC;9*74<-zLvfkye+PhXW4z--o!rETwK8>M2sBIb^5XVM55UiQ zfvEb1lcbxqetWIx86TLzo$G2*1p!7myEr7jm14v5qjffW3f=!-d zG=|_T-VEn^^Xs0`qTzDmldG%Ry=Y6LalBOJ_He-k{dT@YH9OC!#(x0VWytSxz z`MmfR9GsI%Ur>)Ds)j$3oxqAnRK($FB!@~UNE6hGO{Elw-JQ} ziBv%^*CGJ>7o#|Hd34)Wc0VZGKsTF#-C{B?%s;y#&kaBx5UWW?j$PABMzF73I4z># zEZbilo#8C?RBT_#gK=m?5=M)f=F`}UYJVfQr%WfV1$zeE8OJUi1GDAcIe({L3pbGe z{kf!W|I<;TYx0mC=3>(&j6)<3%D-NK_Pv%qK41U^1W)6Lxa$82 zcFa28hv}n)cFX=>$>9uJHO{Y|(%y#xK0zlK=D8};#19!dt^P?tX$1iX&T5O5R7L;; fY9niPfKb3A%klwPDcb4>tSq3g7Z41dJ%E{j%9Bb4 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0568.h265 b/samples/h265SampleFrames/frame-0568.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ba16c0fc04180b1224260139729e01ed2651e62a GIT binary patch literal 2144 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0570.h265 b/samples/h265SampleFrames/frame-0570.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14504d74b07abadccf1b451e9f16dbaec2e599cd GIT binary patch literal 1783 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 nBL`mkGaLW`(nYj~wE{A0a?I`dIw@Bjb* z|NKWzf)ogA{-H@pv~GBwgPE#+$!h-_=|3jlbIJ#u_g|rokKx}>?G=850>AfiX5xH} z$G~lY3}x#8?Ik`De6@FFKYP)gWXpmm=8ZF2U=%jki8T=WJzM*Cw7>s;^-x#cyBNpT z3D3LZ&Q|`M;(kHl%!x0UD{wZKxJ5TNy7mP{NWaDhb}Pcr!Xcb+%{Kssv%GiqEAH+% zt3bBsO47str`g)_a6n@V^qSzjrZvvTz;oL1{gNdV;}Ez-R~vug!Q3OUmsIsAb|4(h z4+?>vF^CYD3-T|l1&Yoh#j+l=pow8fOdR;bi>*F%FL8PVJ5 zM&|e_d3Qw@4xA_Vm=CX)s?aA(qvPJYGi2bPkQN)VQoK@#ymaDK4*-s-;j1XZ-GK|P zy$u&ZL|pW%0wzR?ty8})4*p+zjvymJTQE=VOqqQ^d!~(`gqF?T&WlnzwJtb!ey8Ro z)hxCNrq}n&cdRa0<7)NIe>7jEJ~hRXP(KW`I$Mo_KBr+@FRW3DWQ3+|(Oe&GM}~`F?*k#C53JmMU(EzAEfg z-yIHOrU2Z}iQSY<=*hHeqt>&OoQzn}sc|d-4u}8%@g!2WsknDWMm$NE7yr9(U?P9_ zXl49&V}y8_OsboodsFs$HCB=OE+_^cSp5A`3CFh{{SX*hn-w>C8=4&`#H58G#hSno zm_7}Y*slI<|Nrm&?m6UbW|K=+HHWL8E7N25`1ktKG3}mT3yr?tgIECw6gt|9iqY3B zfUD+uloFmRk%F>$7j!$OU{&CP#+M9<6FrM2*y^MKzXT`oKf&N&8h_pfuPBPEr$q5k zjMb!jips^Z&VAvGtb~26018vPo&FXhUlkonVblhV$v3d;7_fU$>8!|u7MHFVr__|| zUjnj1pYvE(4?jnu#5JG7r<_TU5cobjrT~4lxT90l+3kIj$4sH@`=+ z6F4j25DLoUedF%;L0}~y04}9Rf65PvKx@DNowC`00s9pNmx#az!~<`GuK;eqUHb}9 zl5h68+S>}^rA0uuxJ+6gk(I%xQe|yP=x5ylZ>BYXum5CIX8+QJcvau^kzMW|&`JTG z4ETdFy)&T>RzjASK4-Bf=m8(D>$zKM^gynE1nIGVl-puQ718v<5mMAX#QR+Dk|q=Ok(RT zq~zAI?W7aZvuZ?4rRjpceVE+hu02BZJ z*9x9!XP-0j0To3{p)H4|hu@Dbh3)pn*28iRUYhDE?pW>=WzOh%b(_*fW*na~6jB>K z$#(@F`DUT|iDg+&A7iLMkxOiC{lXpIulQK|&fWLi23Qz&#_8c7#c$%SO?_-kT($oh zagWYFTvN{zgA zt}g|zLl$>eU?88Y&Z|8+%N@(8578AHK%FpVMR5FZgi)1JFy%q=*peYP)wpa~X@BMi qcUS@ZTppPJ_k4N(?PWhf07JklyPyS(F&qFJ5H(dmaX=0g)B#}@xswI} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0573.h265 b/samples/h265SampleFrames/frame-0573.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7c5a03fd5b384dc2f7d4dc3df8f1655b6314721f GIT binary patch literal 2191 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

AU24SvPRIy* zFT>9~;{=G_pjVqz*(qn*f#muF$~OoZLR7MfN32$gD`>0?WzC4>KdkhD3FJ9kLM=~= z&xzH%vH_9QKGYZ3d6Y5J;sK@~|J&h?VljHPWePAHl{0pMS{4VO>3FMh;Y;^kPxwUn zi2qF_*99b?qeB9AJf;1xpv)V`cr`3UN zvJO6$j=_*7Tiauq+Fc)@L}mnE3!S@C8gSmJY-W>W-eKZIYM)xPV?G;vZT5FTn!Cd- zc8$H~dnipLZti4B)%%&b4FrpYg`R!>%&=8&<+gC?o;j?kcBg;<0Ih%kE~Q6*$`6V_ zYrp`Vve|$E`xOP3h`upc)V# zs#!lk=7U1CDH0G9)_qz+lXj;E^C9fZ^Y(>SBat{BT=Wq6sFkNth5Z_Uq{*jCS_C1eS|>6 z_6qOAiIDqKz8YxAp+cp_FF%PdnR97XMvBLGs$20C+W-Z}Db&sfgoG=XqU{3|15A?9 z>X&Zn_puyepB15`Ln`$S%^87XQXUdsI7JfkCl=xk<()+PIr&Qu!R_}h`idlQqQ+BT zUgevefrzM=gdzJC?b+ts;ha{Fq-B0O{cxu8nXGA^3;Oi!A<*i%Y2~L}Kj5+ggH!S= zXRT6K_d1+d%jTx5(81Z6X!!JdhfeX)%Q?qo$~Zmdp<2e_s?wc-Ttx3jg2xO81JRH4 z=O;A|2JKN9y}PM6JMCY~OgN1zN&#}($sw9yNMn%+MTfu80#Bar+Tu^nV~6ytt5I=1 zIK!LiK>9@`yd|)gA^UuVRZ=b*q203YN2~WjFcw>VGc`o=_WQO-LNE>r4jvpB;z4&< z+KXbsR2VDW9mVSrpABrA03I?u+xD!lX zFbixT+hldW28gkIl5rvW^Et7zhJTJ}JRwEw-2bRAV&nCp9pUfz!`$)MS}{HC`<{O{ zu*%7s$sOBP1*xl}($4AMNgS4ZS#6%pNao8m*Qbzaj7^CU9ECk}=cb}t)uhhP*wR-w pB;xc7W(XDb2qiK~n7jZ01QalbKpHSMQ-F0qKJ0*~fD=}j1cV9CmoxwX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0576.h265 b/samples/h265SampleFrames/frame-0576.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f2504eadd1ff59b5d41ddd1ca4773337a13e2dc4 GIT binary patch literal 4397 zcmV+|5z_7e000330nz#Y)I$OT7{QZvj9?M~zzhJu3`W5K0DuWYi*v4pQBc$bBJ-{Q z18|^Cp11$s|NS*dGYu(Od(p|1$E=qLqRvHwC3?t*=t4AkX6_VW#@QMLJ93E>LrulN>9x&M}H__p!Ov~1wd{RA*&Oo*24Sn_- z!(rLceEl#1r5FynZFElG&Mj#|lXG7Efe5F(^p;BhFP6?%*ckdwqw*UeXn%Hq+~P-6 zIGjvJgfyP_ z0_mHR*$pSmpPb@+G?%2y>zpzcjCikr&SH^E3ciB;>x;@ zpSh5Z<&KDM+YH7L8_JbJj`oM^hz_vzrG9sfwVG(ul!OS~j6tFbZdzi63rYMCfwJx8 zyOCqdTb~)=G|=ZB`f%JrvPMY0@|boz)vnsW;Cgrc+dKOMV6xS=PUzM(R@`&3)Al^c z_A_`jB^{Y?;o#ZdFe`wIUwB%Xqbe*$NZQ27xBDaFR%Pj zuifIG-mSEoduc`8HrdH8Z)nv#wR)5QIdi1HxOFKiwQJv5$Jf3Bm>#lO9V z3)BwsLCY4Qb$fgO+>Lg5UjYMbjJC7ZNTx`1w4g8bnH&uzvq}+wrvF@cVdpMuM=0MpFq7RKDD+!(xLdles z85wKc8k_4)l?en2!!dtL`7-t2dXP)kOG%619-7cY??h#Ss}JL1oTw$r;Y zl$DJdI^O8+U^Ni(c_J=v+Lk?L>xVobiJ|X?N?q6<70nr`H%=Nt!0oSh;6dG;Vwe1B z;zcxo~E0g$HRud=SLt!<@!qb~-n+Tia!*8Z9#3 zN#F+MdcUOq!EZwp>379jkUBHR9Y zHX9r7_Npq17NiQLlSn}8j_dUbH3I@_=<7H%|4>9GvSi0VaG4@Fb?uZEl%E(9c5dWn zT!PoAcy0PLFIcWeI8Dog1@Ha|+i8M08C<=f-tG&LgoWlrF63CVnAs=8)$aX-{j^|h zw6Sy)f-n09^)mSAYit&&1YJ2!<5qhhZyjf_#~zxdr}wXJk3M!^UWeW5M@a2raQCu*;eo_ zEJ74MCYBI&X$<|<{1`CLL43sr{NfM3SHW!ws}t|;y)5*D?NbYCDFOnz@?IO6THPV2IO=Kj&Qp~7R;#BuXT-(7T9%1z z3c%1j9nv{`?~wj_r^+(Qg7Q|7;XH$&A_&Bhgy4}G!DVZx56Esoe-6o^vgg1ae1(Q5 z_$v1)otd;J?+b|%SQ-QNE$z7ZRTZ~I*+Uby@*yjbqaX1Z>-l6|c*~s>UuFlN55)fn zL2h9!T!7aj&FN2gn_c+9uERt+%81Bv^TId%a)J`OZ;0t2N+b~9GYHGNl-;hOFp9Y~ z8kQ*aPezV^seo$He23>iwxGB7U(m>!b#X_4&etKh9S_H)WW;xkhSToo&G|tpK_;*e z`cq8yqxWj~(M^K8H3=#HVLk|NgpJw&_%%pf{^?E9;i^D$7qK{Z9H~%bj87N9f67}k zCwE-PU#Ax=AaoZI+S*NGayIfsNBK8C_oj4;(MhQv*@=^aJ2q#I9~9{b+6~Awa&k|; z&_X8k4av83#;iLu2w@6mNSI~HAi|4l9fg^37%2-^i$_~ob zt@Ry`ehVS11s!{otf$|bno{*N9w;t#O|7m=>-<$PLE%A`w zU;kU3$8eM~Ci%d8+g{Mra>q_ndRR|d0A1N|@))&%Ag~uON$MLOo6+qlAf|0oum#Cl zW?cQXTE@>q<2#xY0y}dw+>OTb|9^nWGcDj*A^5E{-eSO@PL%$z)9En!&hz&p!U9-I z{BqtV;!r{x<6KA(l^Xdr;8s;j{uSDiGlDmUWm=kL?o_9Ew(d@hi zv0CpM#U+L8dhZ7WUs;Pjdcw<^VlsnB9Y+|Do<+X}AG|dPsZX4Z){b=&F|&$>YHobV zh$OAEGnTfb*t0UNfZL6}DTdb1|2gR?9#CaW!f z14|A8^LykUesn0k7Q3lu@AzMTzslM1F7$amK0g!ZbLRjW^b4O~pRB$hSzekoOS=|l zxpVp(=lJ{-i#8FQ8V2U;>?IDe-~aOdK4ulx%)%i5mfGO2AzvjS7(U{-A-n>HZVr9U zEy?Js5-l>kXe{GTHx3JqPTyi>DMed(Nc5XCgXE3~aYX8mLZ4PfJ>21SN||(v|IUz} z4xT}|SwR5-#7iEq;L)c}G87s)Z;)&q%xK0tjcv;mq50~v8+bE*L?sgG2PsW1Iow|< z039s6rd*^h>X&5iNx^;C3vCtGE|OY+szu!Zedbt@_amPOqgsheYRn(aSKQ>B%9|K8 z!|Z=YA??B+0n7tK)(aZSSec*2NoC$QhCN@(2Mhae9q`7pl^9 z(^!QB2_p{1pK#=ho4=(4^CmKFPymk8@2m!$#;RYcH2NlHEww=Tf6BBWqKO_gL;=%F zE`W((*>LWI0%4XI#Zua(x^P(t(+mytNf}q02JhLdUD7KOy;H|DaW;R^cUZ4^!H~G! z&*BXH8u{Y_SAx2qNbBK?dr>9QcP>E$+VC`9O42reD*PsJqDa^I+DN@>s(x%}2*!a! zcY8X%9Lte_W#QuJP+g+yU-qyj36oW=hbCxGMim`V$fN^;N3MHBK89IjoNFM^JFBS@ zgN67!C2OZGN&(7c79ybMCcinb?aM(2;yoYR{%&>Z5kozy&bY;+G>z6H`cw|dHbf%r z&8C4Rb9N`z>fb&P!0YcP&v9>Wy)@#V zp4-NW+hqPm+)N&QxT%g^*x@^hz5p??+?3*+__-k0pW<2oD)eKA*XM)nm$AbQ z*31CPH}*-dZ!8fp|Fyd4Wj2S30ZxT^jx}{Yd~#FEf(%eCEFgN9Gw47R5PhO!0Bdak z18XntCV$4z5MFYSpcl{pBz<9pE_NUR0RW04KY#=F6(;wHzz4(wVQa4dZopRT^;Q7k zfF#vI^-eoiIzr$7fB*B3gvo-dKaJ<0t?l^WT}qrXh2|i({H8jDB3rb8JPfnd0(zI4 z@=wLm{#9-w+CjSwut;B5O)oyuE(ttV3>7! zX|Lqnd3CYW@y!q5l}EO2dlM4+A@>RxQ<}3ZUjfpr9G8 z^|#w7&mvC*VfQ2IsDK)SrTT!}iSO_ubdsa=>|>d)uGTC=4`L(r1;yeE{~$toZk?eS z{Gn|gWN5^Swyw5b|Nnv4gy3WT9s=}#=uUrEmv}(IikooLjf+y_?$1e8`-D962Q>YV zKp%h|?>GyfCh}iCo*eZ6^Z=4JFlRR-9-!kY?dc?1@tW6P;E!9Nv}F^c*TPJUVbEqF zLGxg4SY4AUxXL+}c*w$I&`Zcc>>N6Y1)>AYUc4uE-nWt98U7GJD%qi?VDL&&9(mW8&g}R zbw=%gU}SP)0Iui_-|Zj7?)TjYK*^$vtDuT}i256`n@o(72f2}ePat*&-q|H67(uz% zRs;nf9b(I#^Hv+L1BOm-YpC8$JOsvDoT)~pB^0t?*>J)=x*|m?H`vr_&;W#hEodvC zVs-QWScEt!pL8NPv}kD!(XTH><^BfB~}!FaW|st(H4n#%HQV|G_fj9fc~v<8qn zlg@bAAev@t`(ky=|>7=X(0cd>Q z>MCh1t;-JC`%yDSbw*3E!^2iljH?0{U3wZYK8U&LRqAh?jn9R<(SLg%G-j-I4fx-> z*#={^oQUrMtG^~V?|3Bp}~p{h0SFxUD)i>La9OS998V4^Ml-9v>=ihKalHRKSl4t}cw;DX5oRF@(w=#5)OsVxgcZgNZ0>_1itl1KTzb_Gv7d z;hN1-7DZL0ak6W)`R)Oxjd05-YRHeH|wX@{C3Q`~Tg?JbFgf!eHAGboZ09imkePQgy09C7tAGG5rAL3t4~jr* zzyO`H*?>h9*Q#MQ5S`eNjD2)W z)`G5DdJpO&TjvrB2ZH*=(hsIPK=n)s4ywE+0>JM0AOE^tB43J_L+!gCqq*hV^3xx-z+;EA%AtncS%ZzHZfQO z;K1Z4iIRCmb(S&A)!@kZOUE;;jmmA*(^CGKe6dSG%|A#=mod@eaWuyCLF1Eg8p=M6 zWX;rBT!LI^M2+F5^y3PYsG@~VJgsv$rbJlNW1VQ*Uyb18nN4#edfa^p%Vxkd?t?Pd zF%P!W=x_mZGO{tbhTEv7KGr`!Vid%BmsTbb_`ZP(AgRk*Fp^INdMlQZy@xW>x}Xl} zlqy)s;M?-0DMUKNhp<-dv%pDzrn`Jo)~{0my(MG2M1hcDft8Lpq&9wd36Yqbx%)V1 zNBrSl-whoHyDcqnNH@@Bw0M>tV~Rg-&! zs)irWBSFLZ=PJ{ra#b0h_KM##Qzap+h?%)m`vJVfFx8xe98$Gi2NSJ?VAwsi*SI8O zfVUmLwtC{0w`xdZV@-%{3_4h@cd0K0j1oul&?SJ#YQGR)WYZ-qeRdb1eoct|Aqy`z zj&$SS`m1TUh&R(b(TVwvvOH7xE);kfDf}fN4}wz=0Hv%@0wa=zhwse6%!U7m-*$nu pDZun*02qb<27j4<&VR|OEB+m;%mPw1P5>z2KJ0*~fD=}j1cWFLo|ymu literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0578.h265 b/samples/h265SampleFrames/frame-0578.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6c638d92bbd767188380a0a62fcf993ef07a3435 GIT binary patch literal 2226 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 NKJ0*~fD=}j1cX{wvts}N literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0580.h265 b/samples/h265SampleFrames/frame-0580.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a0e39550ae18a945347c9aadb4bb309a73afbed9 GIT binary patch literal 1874 zcmV-Y2d(%3000330n!=&)I$OTFu__%qy+%LFbo3#(#Qw`Ku5xVS`JvEN}+==z0se6 zch?Yqbu|4XYvNfK%gx1D;al;5at8-w*i85Wf6Rv;w_cFLlbdh^ zXC@1k_>=Aw-uo+@mRV&_{N5_p4#qbkVw#kXSP*W8J89{_&Piv&bn7(J;4gC^r5j1i zO5-O%eaIoBQ$PP*isjn?^G$I51o=L$_s^Kf540m9=PurrRX-3!Olm2i=0NTcP>_kk z)fI#pU9!v|nJr@c^?nuhi`m@1EsQeUd%Yc3v^%^>?$w4YJd(@ptg4}9p|mlTVqsH! z`#ixlfJ|@la;b39JX84_&2mcHVKpEgK=6w7h9(J}0aj>G*+91|OX0jC`Ico?`OFpjGHYa%>npVUJ1_~c}eEZ_C!jB9t09-EgD zVQ^hRF&yx|X!H&@-Gkzzx%Z3udP~*=Nb@VrKmu&K^svn`WtY5aFmjMKR~tSq^|V|N z&0IdiZuDzOJw_y$s^|oK?x_0GUbIMbO_H$vMS88`%f!oD7`$1zLt4zG3f)DkGl~PqLWRyN|Y#AwApf1Y;wSJCNHs&pySG6vFkd zG4k*nUYWi}+(zRUZn&kp7rz~Yw$SIW>lf$A|DR&DEjH6Y*6IF4zEX`<&q=vV+L814 zTgciG3{meEj#JrQNS;FMnD7{QzCc^a2-FC6e3t)UVP+wEMK7ejlusW zv+E1D7*QBNAuLJS)jofj7qDB^gt>&&ldW;Qy36M;eKPsUGmorG?^wG|3M=dxB|1BR zKkU~KXJa)AFpC+E+^bV)N+lyR-sLJjgek8PxA_&3q1&mAjD zWxFBa4T{A@A(4I=*#F8LocPu&OLdeAz{XtIW#M<$=04xqvhQCc$&69WHCkX3wLMUD4&|KDAm%yy z{~#d>JNmv80TVXuzHMenEoO5!2Ql+GPuF-93}Ssxq%F7}E@}ePY7ji-O1oy5*xw>J z=9#+IMHqea)0o%Yj!0pI8X?QQy;j=<$p?kOs`2l2g`k2CKM(pb(BG{(LK!0s^vyZ* z`L>8+h`SRQ&7E)#G&_*QJhsUQ9Ju%jIsh7dSQanVNQM z-eWE0`P{`sbm0%x?v%@_YTRmm7xAXEEvNox;k~#br&R+3TZ)!dID#Z=V^Ps#Za*G& zQcKvLx1ebv(fe;H1XC}&xn7e)5E4PsW*ta8n<|n;Jx#`;=X4f_1F8=n&PkjV zWq);im$SiecLUytnY#y_-v>KcA-l|@d%G|#^m2mc@(Z0$+ZkvF_EeFsauvNfT9Bjh z)jCx)k~+8Na%Or|8BYpv5Yk=k!)`(es#KC>{IjR}`ECD-=5MM+;@G78uxEP-b1*nU zYY?rIvzQ z;|I1+#ISH|y~6|5wkEXToKSGFhQp_z#xhY^ny27@I*u%}f=g(ft}VY*15PzSU>q<$ M?0~3%6IPf6gg;k~XaE2J literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0581.h265 b/samples/h265SampleFrames/frame-0581.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f30f30d4a88496c83cd4a7e08c69157a485a9f3c GIT binary patch literal 3022 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 HR+t2YIL*!i literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0585.h265 b/samples/h265SampleFrames/frame-0585.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7ab7f0ab4b4e3bb22b41aadf06612482ff88e0b2 GIT binary patch literal 1956 zcmV;V2V3|6000330n$PL)I$OTIKf+LngsyBFbo3#z&#QIKu5xVS`JvEN}+==z7G}k z7lq$kLH*Rz^pUTLWM3~g6=Rhv0R~xtX4-;2Xs?BD#sSD29g|@*;0gaS9Ddz;Lkr$= zpb?yyE?44DxIM`GhG(1HhNuBA78{3S8<8$!peN^FC;fhx#O_Tzl{jDY(>ElzUlYsOkI1VqN7 ziROe3;ROi@oIX=fVij2=q3IIU-_KX!|7g9P%g)%tEyugj)*D05#XjhMNLL`a+u;5< zXYTqgq1@=-Ixn-#6IcYs|0gP!4HLybk*(Jxt+o?V0pt$|uUKMWna~zSpgTx+yr8S~ z*tr1P59T4vi8LB(wL1>~OWKpqDP3{E)SG}KIQL^rAE=*$b6dUc8%3)=q@n03*TZOp z%7YT`Fo8=PI0&+@pLkBFB=fwx7+{1x|-ho~UiC{v7X?UOB4q zG{l2!h|%}yZBeD}vrNKb0acT@XFep!eu222TLQ+x{>sNfb7v{2FCUqy_>S>?B)49N zvY?Go;PyHo4URZM6frZeXSTfcJi`)a$XYbvVoOqO=gV@tn%)Uh6Tk2Yx7V0obWSz{$1ssoQo3c6mvPPUKbISdm4Iul)6 z9-)voun|SMWkOQdHK+go|Nqk;@giutx0SDe00oo)0P!Td(lWcmpZ@>Pn^(W)hyC zFpmx2e1A}|mo1n>=PRa<60<;p!7>mwAh(@~V243hm+I&?*voycr10zW?WFGJId`|J zvbG74;|qgUXo5M-wBs$z=$;78?(fT^Tq1qLz;xL=>HrP3m@y1mCNppSKQ#Q3hIO>? zrTPxD#Txz;Q(2|EjDta; zfB-I~M}Nu>ia=|?0G+bgfC2jz1(%4x2gCz!gRcN?z+MdXRsi9EDt$dK09imW?2nYW z-~&Q6j(u&T8OWSatABMg|I`LzH@zu9i*d2Tj+FqwA-Uo$2gQ!ssw38N%RMW;xB>qw z3~(rctOTfHzgFj^W!eFJ8j?tQo+%!Eo69LdV9{nW(jlYCDG+$&K~{@MSvYm&Q%Zj zHGlwcZFNeEP3`snpHS!a%<<5~4LhY{*_3{KEVs{`MPWMT5Fk7kD_qe4GFw6qK=H}` zT%%qdUs|-}a=qkGl8r{3iOb9&%EK+E{^q%P3VY5|Pui_s?G`;hDZ&A4Q%4)s7i3@S z5OYCY=`ki?G-U1fk5_C~-mo04h6fIZ2E3;{k z>1y=8(+?kq4UZ`JK@LEd?UN)HTaVDw{#rLMVz%LSYS5#>_PNg~B$ecO=>#|j z3X%?I`vH9wP} zs=PuMw#iK2S&A($M#wWn|Nmu1I8+^V^!}cX9E7EIrSa(S)Tz#gc_$sMk7^&*)k|HJ qj+JP-H;SFy@drn~9x9_exsayStzA>s)g}NAh(6+gE}#=um;{7{ak`KI literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0586.h265 b/samples/h265SampleFrames/frame-0586.h265 new file mode 100644 index 0000000000000000000000000000000000000000..075a210e2f37e0952a27300c59a7cbef4e8c7be0 GIT binary patch literal 2988 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0587.h265 b/samples/h265SampleFrames/frame-0587.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d4d4708d1d52b015dd81add918b97a12592f37ae GIT binary patch literal 1846 zcmV-62g&#V000330n$D4=J6y*zC8V{~VxEqBID3o>#nz z*YNVa@wG?6DJ_{G>hnO|;{-BO$Dmt)R!Be=;6zvUBV7OfTh&2dcI;yxSSLR3k2uru z^KpBdotBdaJ=m=kq97-JO4m)mT+ycct(CcN7OC6Wr#LA>;x}LH zlM0MH4fde6;u1;2rwsHDnd=T&Ok2DH;pi`5%iiZ;{Yw;p*_?Ap%6iFiuB9Xx}OioJ6dm4={@pdzIgge(nn)=IpN8_Ct zI3Ip)xCLg+!Eq7exh9_h{FwF3I)9s-4t@I{fo(?6RgpemY#6ClS$j>-Cs9nNV;Ml= zTtS&8ap4Fe(g14;}NrdW>I7HM% zMYKySO*{UXIy*Brl?=5p#WEn{$%a)n)Tx5$t!eq4-l~Yx+N9c#$R+{PnnuE_5>oF`a z@nRSp=vWm>S^ED+6TvYcU1NWop9dfhva0!VXzbp#+(^`t4{yio{V(8tkh=?q>i>@Z z%NN=I9)0{R4QZ$V05f0!0P!Tdo830LGa-FM^R@kgk~MDsyLezCfA?r*`1fOkc$rM9 zo1c4A_Ifogk@_wu1|L}b{Za|Xw;ufv50QCD0-YS;Mz*50oiHNI!Yi}NeH}jms~~^> z|JfwISKyplxz<;n4A3(<5)w^S;3y;9zy6lX)nm)`gfLL*k9%5d>W~816s5=>Czo^=rvBHnPI;ONQ|u2AkX(QEC;%g~SWYAC~VHD>%ZJe#iWa!{BhEBnwMP zg^`E(ha@1blvK2z$#(!HCu6o{Z$mV_7Q>7}#MGDt=NAThmUoWyGbXf5m9GF$R35h} zKmY&;=m0LIM}Nu>ia=|?0G+bgfC2jz1(%4x2gCz!gRcN?z+MdXRsi9EDt$dK09imW z?2nSn0W~#_KHIUfEs;l^#@{B;8oA^D_jm{rg;@FINku?ZMXR>2VpW1i<{wr|g>2f_ z@j|~JT~sYG_@ZQ6?IZ%-gz$npQjjilM@{1OmUU)>l1rG1iu1b#XF^o^Q||Cai@$^Z zVv}on?VHw6F1`W;w9FPC zoT{cu|2Q}QF@Y`J!ft_i6|zpM#WzyaKI0KR6^%2Dt`r4cv;_Q=b0W`PrK|pLNVy;f z0=HtBbsxeqr?Q5pCQmauJ}Y1U+oFf|ewa&jOKe_6vv@a&3IYAT)9?*t;Z9n;`!C`P zN<2TH`yl|)S&kI6S~7=Qj_gb5{_k^I3M#a(5Zq^PC}zv~_&#Vo5ZVL3Qz55+WMV_} zSVKD>7=_p1_XIj&2Qe@QE^W;T&bvk=8ai*3;8cF*ZG9DOj1-QD`xb&7Uhpl z0jhiTBrJ=>Cv-K2(09-v1c?kTb9nd1Ih@%bmb_U`;lNz;Cwsc|km&j5nrtAQ5&x+( zulelNrXO_evx)wn#B&oBxR)PT&!djQ!{^bYiuBR@-OKJgdbIcUN`1Gt_8+Im9^mnI zQS(Z7GC}uM^N+efojekZOOP}}v;a%%XfqSmT9By!d>x>CROHzQ1Aj}g0ptD%E4vTq zdO%6@p5h{H>?s$35&2BNj-UXIfIi=lLif-C`&9Ju>Ybr&`*HD7QUI((>-*qcOHo*H z)dME=mQes6m!!+DDV#}|7+%O*Y&I#|SlrG9S2HojKl*(~L1cE6!+}VkaEz&fHB6(4 zY}^cVGiWg;N|K0RCaNDye*t|TruQ_4b|;#_{-z%Shbx@oiIYTp#ZW_ydT^I}V|YOS kbKi-k7gnVK!xp6Ov~~5KalxyC!-X#w5CA)%6IPf6gdI(JbpQYW literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0588.h265 b/samples/h265SampleFrames/frame-0588.h265 new file mode 100644 index 0000000000000000000000000000000000000000..733f709e93c8b7732d8e719f2ae491b8fb3876f9 GIT binary patch literal 2136 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0590.h265 b/samples/h265SampleFrames/frame-0590.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eb1b75f16a2626ce27db0c16f7a1debe141c8134 GIT binary patch literal 1925 zcmV;02YUDb000330n%yz)I$OTIKf*&v;_dbFbo3#z%c6hKu5xVS`JvEN}+==wy&{a zyCWw0;t%eopQMd^OCtGsxT_qgSO_xA3pUgd^F@3selQL|;Y6DWp8!w!kmL62(imRz zl>m(7!E(P6eZlTW+%r7iJ(WNSc(B|%7~F}9YEnIEak{JRr>6rsC7%h?tkX|`z087? zZ%;8aW=?|pkYh%sfBw4_%eDdrEpdPZ`97}q&zQ&$v?C(tF5Z<@KM+JrYAK=SK<*M^ zSOmdhYQqq+>1GZ@n!$d0zY6I!aL@DfT|>FizH^^vm?p3Zjs8wmE*d9_eZI}2H3#ywgNMcb|JgCH^7U5Jw^=N zWQAMb9o)sqAm*8?2-Hpo*@SLDxP({DpM!((K=5LpG0_)hUm6r%5d%@C>(V$;MF{Gz z__8D_d7K0c5t0k6ToCD2JMOquqY)l-ui7I8P%+vOP*UfS@ z>z~0yQiX@tr_&2)0Mz*r;?N~5caNPZqp>0IESUMqz&d^h5gcZM#r_M^-O(}0WrmYe z=P&cxdV*G^2oU#l9h}e-sxnaRpDyhsE~MPDr>w3F-wt~kSG}pjgX$&;QPR; zc9Xz+&^;vP#-D)52%%U;*rC))O67Uuj!pRN*Uu(BbG(*ER7DtT5JhUs(YxcVP|jNj zvqCBYSq8$=`}*1Mwv;kZ${c5N&*(a${ZVk)Q(fv;Wjh((D{J?&ez{ds095mu0SqT| z>h9~afDl3ea~Ci-ws89QP&LA%kXI!t4N)_I*P1HlSf;H$%=BU?CvLi#|! zQWx~tJRtykKmabKM}Nu>ia=|?0G+bgfC2jz1(%4x2gCz!gRcN?z+MdXRsi9EDt$dK z09imW?2nSn0W~#_P1l>qM(?Yk%DBz`!BL1TQl)6Hv(JNNwKNiyC8|WTe49j#g~(BI z3DAVU_0JpHOH8rH=DJbR3DyaB6&3#2d8ll-)b(V06~U$ar?V-GH8Pdg>>%}1b~jKO z&EN|v(g3-l{s+RD4Xt}~|K2r)4?sDfKK0o?yj0(N`oI1r4>RaCq@a?UMJ|XorfBaq zOH6@m2%8k|loG?O#C{+Mue2B;F2}TY_rEX_Ym9oGAw2jKKw2|-wJ-Aq={xUrk+ly* ztgCJiaA^mouq-?Zo&W)9j{&!D9RTZol*R_7J59~ZQSeBOdsK+h;)?$GYg05T(VTWS zYAIxBD9oI{ermb$$xPsbyI5Yc!9AjN9LOE;YJ9n3Ou#bxH zK5Vt6kcVy}FEEm(8W&6>R1QC+o$(FGkZ^LXq3$BcP!2Bwd2SPBZ*ND+_7-?LN3n~} z^7D|3=r(@bwo>7Zdzu3*2MyWuw8Vo@z*<*>m9s@ctJB**4g``>%2Jn4#2!wX6ldZ(_Wq&fxedOP{I&p3KP6p--N-P2PRJ2tTHCG^@9gr1r9FPp1M+A-Wge!|op#`Jds%%F4g$*JW0xH}-6is68)k$Sb^_hoK}Ubu L5FHQ`R+t2Y&StGT literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0591.h265 b/samples/h265SampleFrames/frame-0591.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a4925c6272432585775c92b9cf852a1d03eb3b47 GIT binary patch literal 3287 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 V-3OHqSNzvqTQYbJI1^Tw1cXJEOdJ3J literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0592.h265 b/samples/h265SampleFrames/frame-0592.h265 new file mode 100644 index 0000000000000000000000000000000000000000..db967467ade063368db220e26d7a6a35a52ef4ed GIT binary patch literal 1768 zcmV~Kb`(v4q-p*Rmu1Mg$9-iQ1{`=!FqVdz#q(koxX z%J;^#9}J|nWP$iF0*6TV#G@X?*z7rGLIE}-@Eia6Z&d|-+p&y&V4VBDJmXKt&Bg9+ zc3Mmv_hPhGh=85>D_u7Mb4Hu)wpQi5Vd-yzPf!GeKuSLksPt=goZzJkh~0m(Oe!$& zH`;>Rh)E|7oHNiqPYJ=k6Z_cs2cW%!FNk@{y}e6SmKof0*)Hu8$2+LkTGfOB7^Z;N z%wFRgU5Hv>8W*vRk()8GRwpxMTz=$rgvc$H+KEZM zt@&=xIPqic?f+5bZQ%+>-0)fD;%{c_KD_iF$eRRbWos5t$@uTfXfOGqn+ z-ASDm4CT6rgk>6_aURk-Cl3OJ)oB!e{DF*8g!x-i@5PFfR@{lul6rP4(UXOH^L4;0 zHf3dg8eIbEU<{;N`VKfLMqtyST}I%=b(K6{%z-#qAKT=WheE*)%pqFfVr2&{@14-* zzYR0)zpF*`p~kWCw82709t`BgCmWE?j5)nXP9g68L*slkIUT;ngPPY}PylU~oQNQ?wp*m!Xv z9Pk0pvI4Y}BQl{yoo4IUAnk*}DO_)TRh;AA9dRzHY@Hby1_jVS=~ry#6@qUsxLBDq z;3nIS;`87D2uJ_`@g%$142*b_E-(Lf;J`%x?$FEl?#Br6GMQC3KK7^V^lGgm^juI3 zKC$`wq!W*BJ^COmwG@5qayK+OQHeHXdNjVM=sPVFc77fJv^1rDh9wWiLg04;$^T!G@utmc#U&_leb^9*8GK(Ka5 zQ3tXmZUKs@F$w%n@OT&opZ9;g#0NxWZ(ceyN@MoFZ?=6Z)xuDvBM7iJfD7jXpk?kL z7S58Ad2QS&>;*tRD&g3C@nQpBD^;mi`)Sp& z%1FfBuq0jCJSZkY!^^tD2LYJP`ISy91KV$5U9emE6|iT*#3hp1juA1KttXW(!JMm} z5WvbB0QXdP3D?hhl(fXJ8QN1hu2HVzT|*MwU-Vu#Q&Ug8K;5atK36Hz?`8In zpazOW`wMv*iYF%)KNy)~N0QTxxcmx6l~k=9WO*Bwr0)(J)>9iN@w&$bUX!}3fF~(h zMPpErV6b;rqMo`~0(SCnx_$?!gkEF{4D&cdI0YU$r;^_J{z(IEOuRA7KmOo5J{DCO z5hKXxSCb3s$aV7K8G~OMLIUm?unXmwsfpVbpfa?jNthe)e%MkkI|9`vJz^HtXZ6-! z*xe7Zh1umtforl=t0)(y6m022b^6G7b6URFw25QyN5AcGm2h-LFmjo4+o!L^oSznb zju%jw+Q3)fp7PPg)WzsEmA?{ZV9pRRRd`H0+PZscgNgh_+%pj~FA@6ymNm$N>%Pgk zbU7j9Z5)N()?${dtf5X#l0n0#S7(8jeQA#PctI@_VQx{f(u`- zfK})3x>onNN`oa>-hVAFL;3}ssArs&yaHZY>G`?{gbNf;hvW`ipH@D!tzHOy+9qc8 ziQhnw{{{5TYpo+2I+YIz8mE*hd!i2~Vu*5t|8~~k32`)q?HyHv<=v`yP?f7!B|;FB z$LfDX$3NF+L&{^dtbe5<>{UJd`!co%KaG(7*778Z955on0-IdCr#KXxUVJ2Y5L$qk K12PjM=S`JvEN}+==y=4V> z7>!Wh|G)q4!ZE18`%=Vlx}BfHZ~lE&IG@A#{tdY$^PtcLz_Ne>zhMxz#DsU779dJ$ zT}6s?l>f2hW+D>XwhcCL$mGtK_`?v70M{R~dF>I^fKPNhl0o#140p&v+j)tzrnZHn zmg*GeQ7JM<>TM4tkW?LReNUg`XOWg^f2)6Q734Yw^E;W|k&?l-j>Wd3|Nb9U8v8?! zth@2c0Z%LNL`oHVV|mJegOOmWh=I@aB?sL+&MUl?>rG}P;^zTNQ2r+G`$E3lI4sUU zlyo<8%E$%cjktu=9vj{*XcJ=MtR~(pzemL{`7IHgpZ*2ccD5pRG>(*oKmTLSy%tv2 zovnu3dj?T%M%H^ASMX+-)ZZqk2fPVfN*{um=GikrZsu`_$5VxwOdu(az`C7VkeFYa z`zga1F?_5kRt-=%2nZEhIv1cUMHT1-)(j%^?t;&jHMa7^tUx28QH(_yzrclioC9$zC_RUPN{tC#TkXmh|Jq&uaN;0CjfMe{EDpCaMN;<8%N>bTq zMa149b^u7oiBlT?qfi9^|1MYeiMpgE?D*@{n+HD)x4sm?)~y#M4fv<(OgD$tZ;akK z3oU7Vwl78?C$0iU9}vZ_`}SvJo%jw|A6HB@-6tsSWoQvZJir5B{D!v+7?|9ak zFztW?Z_Dd9l95l)w>j`h`{U>m9r_|uul^546Urev(=jq-0%+~1qHjQ9qXIaQ0k70Q zOqT2f3-{)Z{=+#sl9+wi(u{!vh{WkX^%lcA4$v(!^;@DplAmu5$(!+Hm>$I|GCzH!jnifYajmYWNb95JD?ebT|JT&z(M|8B zICKU6G+eIW6yUxh!+o7WHws6^i0G|M3Ob7Dg{=(`wS`xpLKQcVx}1$CC4zrhV;W_+ zh>2cOQ1PV_r#F7_+7}b+F%jei-5?v}#iDwADr0(Cuj@J-f%>1=GX5d;uErnL7a3f9 zY5X)0QhskZP*S7+xCMKw5*uYo%yJI-n8K(@F^V!d{ex=FP4u|FL2Y!o}EJ5XkQ>h+mh0-6#*v znM@Ij(w~ktE|4GK04}9Rf65PvKx@DNowC`00s9pNmx#az!~<`GuK;eqUJUhC0O5ct zeLXJ#SwJ!DkCMy*H8qY+*64s4Fh2B_rKkybOBrxo@h2~!{H1W?jtm#E&7$2e6~S$j z1~xSS0Fd&Q7LB$x_jTYq8UsXm^PZucTvCTeG_6J0zb7(EYkW)$thXX*Vl5n>ysUlX z+|1Ha0v|gbT{7_6phmAK8j@F<5G7|xG^YkCbxc)oEM2@Dhw(V4a{ArPSfhZa4kU|H z|7pjpaSjf;zMeaEJ!h+GrZnuU0h&Q5o$xiLOWzRiMRPw;9-yXtxI}gCfvje4hZePh z`JAOC96didm(sr=4f)~kw%B3>e7dPsd#Ah3m)*GF;IM(Cm3XjsfJcG>W8^`w4KgUC z6U|dr#Xu`fP;g+A+MOh|4(qgMxr#Ag7TWNN{g>yhRyM}~!Q~nu)An1CQzeEHvTzq~ z^9zzpxa9{K51zU2I2ljlR@DQg13-l8smFteuas>pT2~S>xXTj9D+{U8-8qum3Df!QI|qxbN85`YRleV5>YkC zO?O?DG^?Oc z05>N9W;}`4MY`?)1wdndfhR}<-pKABk)4eJ1apExo=%L|wlUwMt%C`AC9Zd(su9K* zBXte7Xvn@lJW_Q#82lB$a8JFh5w)i`1Tx)K4|0F9Nc2HIROnza)KTk$8yIJ;4w>{S Y2%yHV@CGKF1yMBefF)oPR+s>{fC9lgssI20 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0594.h265 b/samples/h265SampleFrames/frame-0594.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0d125a8eeb512be1db82001a4ed9ddb2e740ae41 GIT binary patch literal 2569 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0595.h265 b/samples/h265SampleFrames/frame-0595.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d351797def25dd55443d9bd55a7316929a566f4 GIT binary patch literal 1714 zcmV;j22J?@000330n(BG)I$OTFu_`is09GPFbo3#z%UNfz(>M=S`JvEN}+==z0se6 zch?Yqbu|4XYvNfK%gx1D;al;5at8-w*i85Wf6Rv;w_cFK_nU)+ zXC@1k_>=Araz5dX=K1WY|C_~H-x$W^OjA;k>jDkX$9DwJ&`B)#PW)M>e1UtJ1t{L0 zQ5P9H3+_P;8kzt4>{l+>2byb#=qJhbcfNeaKz*SZ7ddwHs;T&bB4bfa4>AXEf`o)l z9;mD!%I%h61j%a`=d19qv|i5T@oZt1QR)W!4<$kynT62!7A4;Tl7<$Nj0m>D*=T*0=&`T?~~YMUH~} zy5M5aFKAuXo@qlZD5VUCWXa6*xsGz9yGVf8b(oorY@6rFwNNDESUOJVi{8!M*Q8I zA+=}SB^G(vue3Eb1YVt}GY&sy?q4SJo!jG4QIH20k5U0DLL2ghj=>5e`%?foE_a5@ zfBj%fkgqmq`R4nQayU-=5j_P@uLGGp6YK*Lc{Yy4J94NcU8*{e367Ys7CGXcrBi;;>~zIByB z%aV^*{AT6l_`|gH*#3g;?J*58bkGSG-bWe2z;#%PZd3sJMWG;KmAwYIq|o57v0hm21tbd zH}5W5C(~7>GTo5yhQ(r{kjTFb>(y#=a$k?wl+g2^U>5$Y#~|MaTiH9uWBEP*sw}DS z00O!I0P!TdTlk_8;B$ZeIRDW)B z8WZr^vcZBrkU-1YJjiqR`04h^Sw?jT1udqbU9`@`7kOjux$!!;m5DRKUgG^)MQYG? z0((>$oqr*ul$g+)o%U=@9sSeZlpbORUtY%|Ay4LTQhUoU^@`KRQY=W9;%`sVYs;278bXlhqqly1T}b#q=#gFXC`}}8?qo^T z`s zW0|oUfe;jeOKL!8YL4ij;*z4wudV6nx}o79h|HG{djHvaOfEgkk=6teM@MX%kA zwcC8|I_roK-3!Uo_sTn!mO4h}Kd1fU;k-7p57{50d^)N0K)2=ac-TV;sQ79kd^14~ zsyY|z@K*}%2DQmhG*dGoplrwJFybA5gcWw;@ zhlxWEHn+Y8c3senPg(|CqhX}kW7iLTzM$ksp=b~V2V)8bANk>{OZ^* z21S8OCy;7u57$Ma->yt&xb&gOyx@jWcPR(V=Lj@PUV=>l%JEfn;mTxgD}o_M=eGc; za2qq}qf@K44x{{M80fr|Yz~y6w&pE#^4xv|)sz6Ix8L84Jp}d|+gJC5f^vV4j0DV@ zOp1Zhr<|Rw?$2ZI0E07rTQbPkce==+;}yR#Ra*ohaH-Ea+Gv=+bCCoXoFU^@^RcK! zw^XdPJQ$CuqkhS?rmok85toK(ZSUDBK-#NP9Q0IgNLmF9Zl(a}t};J=6?7F_TLKmn IR+s?8fTc=RFaQ7m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0596.h265 b/samples/h265SampleFrames/frame-0596.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2105268613968da9926f12f6c6c3c67f24fa4d7e GIT binary patch literal 3593 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0597.h265 b/samples/h265SampleFrames/frame-0597.h265 new file mode 100644 index 0000000000000000000000000000000000000000..17ecbde743e1c911260c044c511379a7c77a7d7b GIT binary patch literal 1804 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 D0KkT@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0601.h265 b/samples/h265SampleFrames/frame-0601.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6613bcf9c5587c8f8b6e5c0aa386a00d460fa4f5 GIT binary patch literal 4228 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 a{8`&Rv_UjP{jIEeMwh#fC-H_|zy&lZ1S@F( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0602.h265 b/samples/h265SampleFrames/frame-0602.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d9183045b2b604a29d1dd193fcff1f222f25b0f9 GIT binary patch literal 1753 zcmV;~1}6Cc000330n*9;)I$OTFu_;?NCg1EFbo3#z%UM`z(>M=S`JvEN}-5wWHE3l z^A;-WI8fMevk2*n(ZBE4|MO{=rREfW4U+YzRjRUeUjo-|GyZ?Z^Zoq)E5q|x{|1g@ z{sHIxnqziKMOI2G*_(3rNQggsKZRSlUUahNy=cyb`!<)zmwAo*LB-9iGB5wjdZ;Vz z-Hc@WCg3$3-pM*#rh0%U)zxSC<%x}zZ6(T<-qKHDaGFP8ILX*8r^9m6iBucMVChh$-PHFElL!h!x1M&PzCN8JI1Q4b(Vr zz*WbdWqrQ`YDEB4h zR4#lqZ)m^wffStr38>Hi?suv+G{Y_EDc@@{P=wK8s)i3r$yrYU=)~R@3d`x5w-K zFW`QVy9VI(_{De)%wyQ@0wo+jh^3uSOEwWI-;N}M_j&x@0sdQN_ehD z3d#7LF2)5xSAq)~Tr$Q?_AGMas*nc!5TC^V2Z4ZU0C)SGIO9$@y3!L5?;mUS`)AUv zTqO!pFpC3t0KRZK243O;Z0RW{mfgah!;PyubE4T-?DcRvOJG6SV@Ku)YQCv)Mhux1 zM~EV3{6^_g=Q!@|rsFH%Kngv&stmmc37rr0LXRI*`~qZSn&CcEd-QuDGlISW0IaSz z*p`iO09Zf(E~Q6*$`6V_Yrp`Vve|$E`xOP3h`WbMz5D7575KMW`)_zUz{8j_^}NG^PsODAK*q3YFz zo(&z_QsZ>vl?H@IO!6@ zh{(pBB2-{kZ2Xf|f38vG^>)0EI`8W#x~#|JIF(2TJ_f|!?#&EB5I}jDyoX45mrNkJb$6nR1a)N%)dH{7+cfUCW8D=gfnmEkGO2=S~nNMM*v1W(z4c6d+lZ*xy_4d z`~BE0$&1ae7rO{Y{UEAo1>hx!^?-d@Ar7&T$+|+i#_G(^oQhE2Npw*Oim_#Nu945C zFw51Gm-N!$f2U$9iiN?0C|)xhiJ$`8)dF2H;7s1#f*x?-GY!=2xCTf#O(hLi{hfqe vl@09jh*X`iRoscg4;h`tck|49=nZXO;%p((IY3pFL8>&}WeV=OQ~(u_5}I_r literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0603.h265 b/samples/h265SampleFrames/frame-0603.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0d6731c944ad3b63a92466c70ecba571c9618f54 GIT binary patch literal 2091 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 Td7r*xi}@n}mV0iD#Q+OPW@5Kr literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0605.h265 b/samples/h265SampleFrames/frame-0605.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e71f4b14cf7edfb5537b999879827fb5fa484d40 GIT binary patch literal 2017 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0606.h265 b/samples/h265SampleFrames/frame-0606.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e693416e6f5a5a44706cdc3aac80e6ccfcaab98c GIT binary patch literal 3107 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 xC^z3%M=S`JvEN}+==z7G}~ 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 Pk%nnVkf^CiZ^#E!hFVT; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0609.h265 b/samples/h265SampleFrames/frame-0609.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e0cb71eb83dee40af652d45cac2362ad2e7dddc1 GIT binary patch literal 2823 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0611.h265 b/samples/h265SampleFrames/frame-0611.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8fcb19f55e7471a75c23f25ec3798b6539505dcf GIT binary patch literal 3180 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0613.h265 b/samples/h265SampleFrames/frame-0613.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1293943d451dbe65c55fa62d8c92c47f402c8918 GIT binary patch literal 2124 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 NnlTerxb)p%6wrWNZeRca literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0617.h265 b/samples/h265SampleFrames/frame-0617.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3ae0eb39c3551541067b81ee7353066791d03f19 GIT binary patch literal 1759 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 j{G#2+4d*>bKJ=Dk{om|k7qi8mt|@Kr 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 R7qf2PqCgW?xb)p%6wu1w-L(J! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0621.h265 b/samples/h265SampleFrames/frame-0621.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1ae94c57c7fd913e1a9790af65f9c91067af6b6b GIT binary patch literal 3371 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0623.h265 b/samples/h265SampleFrames/frame-0623.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bc847105cf6f6ebec3a0ac1ee1c1aec0a33413cb GIT binary patch literal 2118 zcmV-M2)XwF000330n>5+)I$OTFu`AwPz3M=S`JvEN}+==z79*k z#A=5B{r~@V5sgmzE{el5P@;VGG1Wa zVQR|3xhLq>F@pbxJ@E#Wa=4=)kZfjoi8{%CtBDP??oHmm|L$WZ9!czb3+r@r3&A@z1n?7%&QVjR^)qPc(k>2n&z)i1@hPeZlJS$$x4wc>;{M0T zAtaG!x-@*7TCvYv04i{9*d=?Eg-DilWPEmMEhr5%DBpr@J&~M-$g%tm#;%>s!`{~A z+QKj!ce`1$@U~M926ntm2bK6vlJhNjw4Iz1m%Mvv!at$KtpPRzF35%$)aZtofS;T zOrdK7X$=l$nf|noaja36-?7`F%5^hGS&k7s&u~2E%g%aC{(4&hJ`9x%YV3K?FcR(N zZ@wz<2lkXJ{ekp1U}E@6PWrJ0P|uR5*tDsfMku2tfeoHwoQwuk@)S^l<7OH;+G*Ip7tfAT+f_z%(ae;7x{{kQPX+x%zaUtj)ze&GHq zdxCkFqaSH~_g*MSURFO_4AksvERB5sUi)JmS++P^{o4giO ze+Gu6(EBDMmr8QdPnW+;&msk0q`^#dxPQq+y1I+w+`nhTf;T4Yos;VI+kXy%Nk0JM z%H?K%M4bEPGg&{Ex4Hi0T)g z;qH%y3cds8z90aoS51be8g$ya&wj%bZ2g6{oIZYzz~KyEm*B?abDE@$mO9-N=6>3x zEr`?$0fIlk=+ltwck5;Fk-XI3F$B~8Df+Me*lX|M*Wg~t1mo`X zrDDfj2gS;`y4~G%f%=!86rJ+ssCetLDK5BJKW|DVfxrG)PNT>Aq6dMEV>Z38R#xg; zjseo@Jxx$+{x8Us{U$&#jJbDmGrE*S9_?xurg^1dOT8uhL+f2@KWHv8xcJlfXdtBN zn?|-XZ-65T_@+oXGt;iUgR_imJTjeGRtf*37;2g$?jL2qLm2(jHUcKJmrQX-UKfU< z9~Y@Xk~lMi1EXFkx_|-GxKU1KD!5lFcS%hn%7FVGI;WpqLpR0D08lc{U7#`n0qzJ$ zVE1cR9mj1ehJNkL3r=rM{-zr5!OwYSP~cr=dCRfmd=XqeF=lov=6e=o)jLsia=|?0G+bgfC2jz1(%4x2gCz!gRcN?z+MdX zRsi9EDt$dK09imW?2nSn6%P3m!aIK1d=2QlfB&_(rG3rdZKp+B@ngA3AY;VD8n;gfnl3-9|mI z`cwF}BA5PgIlLKsvoD8Oo1{tPMmF1c=a5L%zZz1K#-H}_O}|Ag%8)B=Kj&OT`z10v zQZ$zY!AlsnMW2a_ThGqL%$x*U*w7&5N#`ylK6YpT!Z5~$%tIN+)i+QxBd97jcw}UW zT~D**IXbu_oYn3g4Nc3NE==_T<>$WC92gbacvj#>P-Zj@P6U3~1gUR?KK>UA29YMj zlci@p$6D8!6yg`IaS+B!jD3Bn=`egT4iA#1c^t?(ip9)t3I*lE#*ccMm9P2J`JpxR zUUnhyjiw{S;3XSpKpK!Wj!o9+gs}*`xsQ<>zyH7g*Z~j#o$HD6baM>)kS$t1TBzE3 zoP*Gm*gpfsT29OH3m&2O6Nv7C7aRZ_#PB0CVsCf6hgk|~6BR&9rFw9*$V;9OqxZCC zv|>>++fZ*UNDSY024WQCD#k1}V1D9#nNLm=S}33b$GS{yXpA}E03fsug)|*=m6zh= wfOLwXPV_)rPbVs0vj5C-;q#x$w=+&Y^p<4(-|S--vu@vwAQM)&^xa?-&pF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0624.h265 b/samples/h265SampleFrames/frame-0624.h265 new file mode 100644 index 0000000000000000000000000000000000000000..95175565434469bd8cb28542bb9e78658a8cf7bc GIT binary patch literal 2829 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0627.h265 b/samples/h265SampleFrames/frame-0627.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd8b67f3e2ae6b5529886bdbbf488e67f5cd571e GIT binary patch literal 1924 zcmV-~2YdJc000330n?HH)I$OTIKfzAQUw6OFbo4PYgiHnz(>M=S`JvEN}+==mHp*@ zX(<@B+%U!H_-__imOMOd-w5f80Du3OfB&0Iy)Q7R+-#wBFy-<(*V>JL6BK=qp{m@v z>ZcxSaRzFj;(Wsx{1M!H;878e&E^_v0O11f%h+4nV7VcRp=<*=_KtFt#BX$0@8zlS zbjJ=?|M%-^cRit~0vu56x!ae87p$uAW(Gr<5??S@;B7C&3T|&<3=AVuzk-_9PQ@C; zYp76d6kpbpaCS5m39La6Q2hFQzV!||hnc`r7D{x`tM=>U?N30q5_rYDe`*XFMgPyG zDID`g6Y5zy!FDS{(y3HpmchX(oo-+N*uz);Vn$l${FCmwrh$Etn=!FgCo^T_tp5S8 z@PJ$g>XvmYqh}@s$|;U)>ng8t8tB-~$GbhjC={!W0^vnStqwV4w&=Wf%4&X}6RO}; zv9Vn{7sFOjjH?0{WTBccK8U&LRfkOef5jFMXFCC`u*DaBRMmw@@jp1*>GzlB-tq(p zf$IlZsWmYN*{KY@PALd|Rh%q!K$HiNxbW0CVfb0SP03V1w7x+V*f{UtNvRh+ zuCCs#hL!c4a_r55`A{8o@E_h!FGfxW^joe0S+g~ZpC04)leG|F5=m%J`=oIMklo1U z9`MiImnei`cu~E_f~8c?j6USz;5)IAGu}Ijk=xW-7TQU1yW}N!`fKtb8OX9yJgX#? zYXg&jtYDdU=?eUv(C3m8F0bzh?41G$qI;IOS!)K$)14p0# z4s6i52Bs#sGo3w-{u#Zdk(y_+l6s~pNNq+t3JYZC##x!XsAZ{;z;^?WCK*;CQmgI3 zuM`3qT$-YRblDlSC77zmWSVi|xEfO`Z3J(v;5Zf8mc-9gF^2H|M^@u4Ve<5x5)&=?mjGlK)C-oa-y1mqn6$EE@*(qZ~cfd zHRHxG31^NQpC7OEzk&Kf>@FXx{yY0DUuXPz_wTM5E<5l5FW>+G@gsWNa(>9h^81q$ z^(Z6eSN=OT+I~zb{g_j0)?U|2$c-g)=aRTVKe{l`0hEcshUr5Sk^Gke6TT(&*N9?M2EI%d@eS7eg$9z zB9Q8efe)#|$O^t^sX-~?xfm-a;&i(h6$M@hENO7d88g_i%Z{o*8}HJ86Z{?q0jJ!c ze^Q95x^zz!2+h7nxU8&OEa%=B%E(9BzyPeXlm0(-9Oj57la`)verUT6v5N<_9-7RE zF==|?ihb!bb?_@BDgQNvaP#za?S1?_E0p1#iq|NXj}qh zW18VUQ+xD#Av1!$0RXJ7H`tZ$hrlY}04}9Rf65PvKx@DNowC`00s9pNmx#az!~<`G zuK;eqUJUhC0O5cteLXJ&CAxw|Qg|-g|RJz%s}- z_C`dF7?Xj%wyqg@+g-cIXP!X+pDZahD`bnP^ zdYxi?ZW+Oq;0TSdi=4GhJrnFp3(cVw^avl48a6N`$l0D%_Vk(vFJJfJ4)!-M)D-D8vF%=ptG6dH?2nSn3`XGzq#r-eWS5lH`me`g5SKdX zS$qVp&>!>Z>(&hmq$rn@S8tzFXXY#0oIUXW*P{&&s{^h3mz4)Csa!8tZdJCCj7&mF zdHG`KC{9Rl`}X{1$y5I|>Q~@>wx%_kpo&O8dF7-hLoBON#kbnQ9FbNq^@BPz)o9!(Vat| zp7R7RJh#xl8x@+^^JutYMQ&gE8>YzDye#z5yddgCixGg|fpw@zO~KQ(40`s@nuwx* z(%$qh@sb3n6)NnlG_gHr=0(#;w(3W@CE|H9smh75NOxN9)s~Mp{J(ICheF6p+WK^) zC^tgq$HO>D7oekuooG);onKWbOHWWMwfForj!o9+gs}#Hsy_6VWc}alV;8e--=aVh KR=D)tU=+~rs=Av1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0628.h265 b/samples/h265SampleFrames/frame-0628.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c29b98b9919d82dce10b579f723e4f4801708de2 GIT binary patch literal 2210 zcmV;T2wnF8000330n?fP)I$OTFu`AAJ_P{4Fbo4kL|_sIz(>M=S`JvEN}+==t&@l- z*TjY(|NZ~}b`gz62ile+i6BJ|yT9kvV~PAfkKo&qUpfr{Tni`wEA|l!Y({T+u|$NX zrPLozlAwDbmSQ0-yI|8<%IDAKbY-_!Ij}eQ+Zn||MJBv3kWBeZ&e5{jP}O>ANJJU9 zGyDz;4Ow2ehxgx(yKDt(3qg#PbckniZdw);3T{tsPwl2cZuS5Fa~Ux5Ph;OHORBDS zA)SWlC`Q=ca-bmOSSq3*bNvZH_fIp5?jv+W%dwI-sHx_+5x*16v{d2Ll1G>S9uzRT2Ehao+3K~$ z;Eg!HU!;oP0n<40TI|lq_^NBk;mz)iarjtvSMnHtSP*4BgqM8PVVdTjZEJ(f4N(W~ zK-_hlc9AQc4zDhw+&z3@snvKLzx@QtJ(Znr9xD(DkyK+87I{J#dK%0R@NFmqe6kTy zpt8>wo!WrFA*tcE6lRB#Yt6pr52>A0o;eW3jOlJr&?FD>o=^*>Kp`}|BL$NN1h5ub zFQgPF4@1HAoL{NZ+280eT_Ep+^vWY>=f8qnmqYmrX=COcwL2)z1JG>CBY6l#GLy4s z9+Q)VGE_-KGk~utplvv238iRwt9w4VE+mC&V5)5?#*1PLyzVGg^ihL&u^~y)CUb7P z{A*o@^MuAs@^RTC$#EPqHoPCfYB;e&R`yd-+`h>^Nqm#p63d6Ad*3T?p&ogofg_lcvHn!)ReQ z=RK3x94?(Gs;L3WHjE82Vpa>q2682)7nywmwoe#*-9=6~yxqslKJ( z1p>D`dTFlBqY}ho#AIj|R{aWFD}K{KBs3Q0Gg_Y5@hGol(o5Trpkf3!uImLhN+19L zVn6@@@gr+39M7A2GOuRdZ~x!(d|xT|kFAoVRq^)z@3=Vz+F16nFZlmn{}I$5Kf>J~ z3>EwTHSr(?Lb_}n*8m8VPvRe1>sk9jah1o$pTj`~C!6Me zD_a);N7julh8{fn>dfhg_!Jc|x2rAL3t4~jr*zyO`H*?Jiz1F|B+t&%G^B;R7~1N#b4yU!{ImvpiY(F*X$u#p1o6)j+frpmxs>`SgWH z{5#^3Z7Y~`;Jrn$gJ&Iq#A|-DXuBV;%QCHGG6mH#UwFt>XSIL%{Hw1y_nBuukd!vm zH3`#cup@LR-j+n9N^z}fPtEvF2!soPPqGu;1z#iIXWsKc2%0IUBFndFD;mBMXYs6M zM+6xsV=JdX`Aj1FW0AicSZrKDr9=J?l{z{YDigWCYM8Y5*WW)=WyvKa-@YIb+k(wfXFnK^S3F3sRN zguT6eg8}geHbJa{$}lA0Ot3GbKj0t!UMX+&=@VE`2&W5wy-}BD)_Vfo%G;usLQGBy6;!G3<|$%nRl905AO}27jtP^p<4(-|S--vu@v_KoeHD^xa?-(20sQ>;M1& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0629.h265 b/samples/h265SampleFrames/frame-0629.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a3f291089dfc723d97eb2ce297a7b8f55ca49f30 GIT binary patch literal 2461 zcmV;O31apD000330n?%X)I$OTFu`yITL7R80e~7vJdtc^grDr01lY)(g}UF&0^@qT2NH4L;Eo z!u^T&Jgjs%J=&FH>7g+fl5EIdHN z4#^|ZB(Ole^#`xl$w^Gk?>5-ofF`-%@c(Dp|Rfhq4GF zynGb~pb0Z^#0cnv1IwJ*nK>deV<3ZTXA@-+PgY37Mc6N!`0NM}+#J>_gDzt57w+`4 zZ?*-&^}Qn=nqwj!LjU};ZjSqmtUU|8Y=Dra^fU7Rqz%~r~@s;DU7wEWx&QW*#+##b&_SZPQplf2%l9|DWqL$PWRI_MCVJ@+_7ErJy?i49GV z)%cs`9Ka{w+~@P`_)r8CMV+*UbK42`SLOVSxuBew=2*MH)iw+x&oB?)_>=I7 zEbG#0hB{q+y?px`*kg(a(RCPRX3g=$DM@Cx&_4rUI?H6>7MitPTP#1-lXi39Mg(G% zn~r`@D->7=ooO!;e_ec$U~}v5GNqbH?7h{QTK@XZZL3Avy{AVJ07~Ab3KQKpA0Nuz zJZvoNWqpTt?8;=`*0ng1-6Iwo00112008kLPIDmr!DG$}bGZTz|Nj5~>~ionfsDB7 zBg0AEepnOoub)>Mm*eXGwfgjS#4mg2c>WjW|1bb5MN*q^$EtHf1%^?wzQ>}~DX(&I ztp9tQ9s1quPf5J3a!Ckk=PY~T#eQ5|xv6w_#juK?!Q_mtnpBxL=eChM%1Tay8(rq#gsETjf${n4d1Fs3(|2dFrO ze$^N`8Gxk(!X2~fLJ?7VL)2#1OLJAtYCN-htFKj(_5+wCD@^~>)sft;*I7rCE#4__ z7jKZ@!%)0es>bJLGAdh^*Xlj~sN(&ZrAHTkXlU+6S59@{Da>|I@vF~2m%q;F%8$W1 zVIzCo?5C$@HO1)jJEKyP-#eudr}t(EIeS8MLJP~gg@8B|1C0h1J-SASNrx+|pK{X< zMXmduV~QfBdcn~(t^fQO+9KM73ed6&jn5GVx)Z?-e`zLm%ZbV3uq)Q4@nL0_#)gKq zA7Iv1o~04(Hk8C!?=ipezJ;~MYzvi-;zJ=cyx=k@4V#Aygkj*44t!*BI7Ppe9X6mS5BtZ7fZQNE)N~t`7a|`xCq(n9mLR{oX>0&c%LSrIV__8)uF+*jr;4?Lb!U+23s;R z1{skl=H2Tt7p}3;1oR+&L3;n6@z6Yi5WIi^;%oj&AL8OpD?)e(rPU3ELfyiZn|AGS z1Xo(51+ml6(KK3|>K=^{=lOmG*#e+4fSZLN3L!_R+$cF)8j4Zj7j6hYHzmOp2-*Jl zi^#Oq9dFP+-9|w#+7Y02!cm-nEBZ)mCn)1zI8g+*0Iv^b{K!Iy z>UfaplRU9#JNi>nfJWXPZPGYSxJuLkqOXNsi^wDGHWN+6(F_*<*=6`xQa&cWU=H6r zs&j|H4np0i%`P_UftZnicCpz;UhePw;(lG% z>ahJ-D{PJJ0ZF#@W-g#L7ed2KGeOZq!l%}v=wrFg)9^MB$w8B>*iYjt>Nh)!hc4Vs z=DsAKK1CN-O=cejTQ~~`$dsN{wr(eGmQuf$yY&it4HI7Zz=!CHb bfR;Y=mSp|k>|+M=S`JvEN}+==z7Ei5 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0634.h265 b/samples/h265SampleFrames/frame-0634.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b124b7cbe61ea11b9ae49ae8630ab893357cf105 GIT binary patch literal 2958 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 E(EV-0%K!iX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0635.h265 b/samples/h265SampleFrames/frame-0635.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b7616271fd18ac7c2f1a6486c55be706102aef7b GIT binary patch literal 1905 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 Jxb)p%6wuY>I}-o^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0639.h265 b/samples/h265SampleFrames/frame-0639.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a68cb6a3b571ce76d21cb4dbdc667c234ba830ea GIT binary patch literal 3130 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 U-|S--vu@v_KoeHD^xa?-(DxfB$^ZZW literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0640.h265 b/samples/h265SampleFrames/frame-0640.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7340f5ebb1ee5133392cabcbc95f1e5063fc4711 GIT binary patch literal 1854 zcmV-E2f_FN000330n_>a)I$OTIKf*|oCN^L3Md2tAV?Ahz(>M=S`JvEN}+==z0y7P z7lq$kLH*Rz^pUTLWM3~g6=Rhv0R~xtX4-;2Xs?BD#sSD29g|@*;0gaS9Dz-GLk>=I zouQr3E?44DxKn%Vt-@JkH9!e?t6V!S+=R9NTQZt;T^U9VGz&=I8$-vBt&d@MZOV4> zQaq&EGo@u>u7pL)|G-&^-^c|t*E(}ntfuZm<}xbmy4wb<(%6dpL=dU=izL$vZ`fmP z*r7UjylR638?_`2ZUFwF)&Q%3md+F zcp={Mg0I(N*bfpjDz_dvN^cN@=w7l81#2JJq?IlLtN;7x7OQ=InhtM^5JM1EoL!PCMn>n~=`euc%J%%k-Tjr5_#${tl(NA8v zv^`_rn9nxHQg=Y}MvyQo9%pJq{-MGUp^2S)J+bS>MN5QNDe6T&%kU;mEiiWO z9OM!Z6mQO^T7C>XLg*@~j}iaKy8UaY+Z_Mc03MqU;bub8Km2WGZA&c{m8 zr=hIgum}B5XR-ygX5k@eGwSHN=xQ4v0091g008kMyPcb$S9p{E-~aR*6&!B#wU$1U z!vLkMP!#NdhqC-U^U^R#mFfk0h@l+uUIcv;)}}jG4IqJ+w0VQ4@A1>^lC(7H8jIWo z%B?*RPi9yA%GP5?p1-Zv*Ehvm)F#oCxBu<%$1)hguUSTn46JFJC|XOuO&2ufn3@yy z-vVtT&#v46s7HxWl;PCN4tuBE?>G}K> zqH~*jN;$dj)NmGT-9H&UR{?;Y|}3@vU>Pb2b=3dDB`0NQ{6 zE~Q6*$`6V_Yrp`Vve|$E`xOP3h`<*<4n10vg5&$G1pGKvjNE&~6dHaxherN#mQ5@i zI&&)L!V%6@p`woYoF-;>#DtJ# zTL}rL-{EeaYdyht+4|(--_qMKl>u+SV*ct&9#6?G^AoP>C~rn{&%ubKfZ$3$!QFyp zKZN72Jov5@cUzFy_M6)SZ-cJ@{;TJFefvI74M zf0qmqc=3)%+M^etIA6o7WIVb%;nbRef08L8p7Skglm-QBP^4$LPp_H*haDvuz;qu7 z{kGR*z*(5T3%CjDiJ)gkib;maCCz-DrsIBtO-l<(G*biutBQBOx!DQ)QEV3FKt`%U zEKN#nb!#9kbQzB!oiu*NF#xGwwrQ9U8jFA*dL7h9s*qn_Xw&~7j{r=nJ^&Bsd`i3Y z27s16^p<4(-|S--vu@v_KoeHD^xa?-(7{xTXaE2J literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0641.h265 b/samples/h265SampleFrames/frame-0641.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5954fe3644f48fae20e99fc3df594ce70934ef5 GIT binary patch literal 3195 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0643.h265 b/samples/h265SampleFrames/frame-0643.h265 new file mode 100644 index 0000000000000000000000000000000000000000..37efe193a7a55c4750234e7382b9e67c52dcd260 GIT binary patch literal 2224 zcmV;h2v7F_000330n`!y)I$OTIKglz)qtQ3p#U%k0U#s4VkfniW{$e-GpMHsqI1gFG$;lmaP~z&56SJgP>2 znnh)W**ySBrM;f!;U9zvA6E1pC2zMFViDjP8VWs|=yEIlw%2g5E%xsM34YH{appdA!T)2$m zq<{VQG13nPKmTbf5H@drd%-n9Se)2w2fTalJ zYK=-rNMS%v!7Y`q3eD#wOZx=hea(Blwl82=Pz$@=IZKE0rp)t#>F{x*u@3#rzGGAW zn=q9J<0Fb8FaQ|e{TuQI0y*((7q!y&svu2_mb8RAHHV-PFoiJpfgc$}loHTWJliH{ zE!@sA80v7dDTD z4It<5q}?%A7Sh1nJ8E|?oCpv|mPoJ4&SeXx&Lj{sBxkQ80{QU0B%A^_g}Wo&nF$D{jQ*>KWn{=Vo}A6 z0prBPNYH1TO~geFNgMB3s|@h2Lc2h24{-ZM>g6O3U^^4|Zyk!;aUEE*7bR5Lk#uIf z^(on}lxf1Xd6o-AX~!gMnFCSm@y7smS}=<=PwhU_xT1=o_r#L1jTGw)MAVw)m7Q9( z)OiaeNpow@Igg_g{Sr?6ei=8m2Po&;x4m{DSEpXs#PG&aPZ^_B+(#SYK4fDKr-Oga zWyRV^YJvEQaQEJxQeVz*MeaS`GrfT8N_$;~U?mtt=a+eE|D6Aie;xWiPto~5ocxFB zzKTz;536K8qtcjsf(y(HBRI9&M|l(6H~M?^%O`NO_CEj&J(qZsAdo7rr zcLH$bQZ0R)->Lh2=3K~9rD+8x9Yj_LD}j6wTg+u?n!aC_Ag5RH*Na&5cS@8jJv*%pcYjlUD>6<0GFXw=-QspQJEN@Bv^}KSD-L za(HV4RqEBqf+XycLJc7lp`bBs~R9i8y|yLI41MzyJX8B)grbcCTjMZ~x!(d|xT| zkEs)pCwzUsyY0q7ww67tOa4FCzr=M1&hWOy!v$Xd%=|zBP_CN|P^{^-b)Nl&*Exd= zZ8&`W9f86an=iqQ#-}w&8!9!rC#e0kN?eTB(0v$mIfC#<4vIunauVDQg#o(5#_6*H zw3P{C2wJ1$054#t|JT&z!~kJ+jL$Dat-A)`6yUY0!+o7WF&l)(77bd5By|o}EJ5XkQ>h+mh0-6#*vnM@Ij)3A~!|MVx1|NjlI4+~f=_~QT;&;Tx_M}Nu> zia=|?0G+bgfC2jz1(%4x4%PF3{wFa1BVnm zj2C1G9J(lAK^T`zD{3BDV+pSQUJk>?>dOUrk`Ha!=L=SELd-iUO|l}!sp6Kh%eXEd5^~I_=BGQ}O_Q5K+9`rgSq}myJrkzYqA6{q1*&Jnjqa_Shae z9z1kRT&lIi%07R344&1jv$E~6_js>pZAVM?VqM=LDe1s(spuX8r9RX_HH*ipN57+r zqRHXkVcalehS=)`^8W~r*#@U53F3;jZ-@oo!wJG+00BG4gUlDg{7e-f3opNl%G|eh z%Dw=}4_$RC#5yXlc1tofp}YhoK~i-r-kl#a_Gl$MrM~V0@DxI4TojL-wq3}RwX0mN zUGvn>Jaag65Rf-@Js`C-Ix%})jMT{F3&{GpNldxV*ERoRz-9C^OV zA&%}rII+9U!P!VQni)%pabf_)fi?UeZyjPxKzANqe5U~dO(Hq}o*seLXJ$ y*5F&Qz%lHPlFSR`Kr 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 uz%lHPlFSR`M=S`JvEN}+==z0sYB z#b^fVx?AC_?xq|D#8L@Dg$H=q%GdZ*dhSha0_pEQMe>GtSHn?xkN^Mw|HO3Ye$XMW zLxM>r(YfM$|ocwq5evZv|U9T^O>%stVC zdqbDwc!GqkKth5#%9m)G;L_pLg~#`;@j!A6G$aB4{rr2=gOEW3tH@cCd%$n$vPgjq zWl%%9zX5v)43n--sF)3J1g={zwJuIzej}L)pH8(SGFw(d^qZ-Sb|8nSetkY)dWRiD z%-|`DB|2zT`*remr;Y;&nlH()iC zKbyy$Vy*&+P4EQhnuPe(8ZU?UN%2Tr%PZ(`2#NqWEHg?;se5o(mq`z-Uz>z-a9TjC z^h8bkU3uK=)aUh(_)FeD`?mM!mQbqF>=VV5w4?b<=#=Kr;JU5}3*AP0>>pPN1L(EM%m%zj0;r+hvxWs(v)?sG*(DRW;Un7mS+)ADlK zTiZ&Xpibt#&eplA)89WjgtcmIMo=sDWlOCCA`d_#3kk{;yEz`*2`ejXM~E$S)GscI z(x;i=enke~K4D4gk!jEU^(!zJd-Khl5@ggmrBfx@kF(NgW#a=#CHT!*K-s03zyFFfWKD)oAa(AhNs_|j*PxB(I>0+Z zaD{|oAgH_p-PFHUiN!9KVBuipS@*yPY!~o9o!;F0FEelStL9D^Y>g(g-@;OH0fUFj zmH2612@3{OYdOKG8O?I^E8;Z)z}rKRWj?# zUl`NHM|<^xW3i21^`Ld*K9*VWOFRcuek7hrz6R3)-&*B*rZVxk)iB>SuOg$jDF&c3 zdZf!_gJ~BCHsd2wCL~?jlmHnp008kMyPcaknYdcT9i$c5Sr$m{t2Qrq`^! zu9cA*O6SM;7O$}!V#BVpy@*V-aDcSI{1#@in5G6@UL=4+_uG(j|+wDW`WMc8$SuzOMItjL2C8S1E~-j$tS0?63->Iemz3+o|&2i zXbynvOtcmQP_%oOwSn019U@fzGF;QoYXNxn9lZ_2Krx-+^#i{>%sPtVR2GDhLY#a zw&Z4Gw^VEAH?_ixp?APi*n*tb^!eAD=nxHg1`$uwBMzjJBJG*tW;~Tb3pBFH9?QCd zd5Xp5>;}a$KKa?C+Bg*jmx#a)2#hcTZ-cJ@BCcKx^;QDc&d(}+Jud;);9If4G3<|$ p%nRk@OF%V_P1fjyu?B#aKJ=Dk{om|k7qf2PqCgW?xb)p%6wqrGTm1k4 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0648.h265 b/samples/h265SampleFrames/frame-0648.h265 new file mode 100644 index 0000000000000000000000000000000000000000..54af6caf401d95d914e0708df8037744fbd479f8 GIT binary patch literal 2269 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0650.h265 b/samples/h265SampleFrames/frame-0650.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2192ff37b7c661a995bc0b158145874a16aaa4d7 GIT binary patch literal 1795 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 U-|S--vu@v_KoeHD^xa?-&^bC>m;e9( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0653.h265 b/samples/h265SampleFrames/frame-0653.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0d1b03a3bc260a4220fa99e828c7fdf5cbc9e261 GIT binary patch literal 2219 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 lPuc0d#sxb)p%6wr;Mru_f_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0656.h265 b/samples/h265SampleFrames/frame-0656.h265 new file mode 100644 index 0000000000000000000000000000000000000000..96b6443d85da36ab97208af1565417cc045f0233 GIT binary patch literal 3068 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 K0wDbi04reJg6Dq# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0657.h265 b/samples/h265SampleFrames/frame-0657.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3ed3542c2e0bcf88aca0e15469141c29abba1a69 GIT binary patch literal 1740 zcmV;-1~d5p000330n~y2)I$OTFu_;0+692%Fbo3#z$gj=z;B4`J&9L=gii~F94R*E z>tAOodNcE?LN~G5Z$th$K)T^)u=FcFd%dsW<$L35kA_lN zGDMWk19yxN&|1cUh=Edp8V(^5Fn{t>|M_oK1%2DGjD2L>`@TF|Psh#2<8E?vm^tpn zKP?dfJO6g4z+6$L`=cefZy0atl796`=@C{R&RRVh^`|%~LgF`H$`l=VJPrRqwtlVdE`U{{TM#RPXOEkcD;-SI77L1%aBM4XS*2 z5cJ#nMaP_J<1T_)!oaz3K(7nVfcSljD;eQ@Kk+U3_1huHdS z&LAhDHU{l~5N48C((B4p7nji8si3`h{lZ$HtV{^m(Jx!qiiDo+0VA^(S7Z6(ns1TK zimDm>NSqy|5gA1kP|Ii{Zb<~vrJ{$+$wGXrzvci@J0=1-|1v-aDc%6{;mt$Yj3)2- zNa3COs?CKv!}uKBo}4m|6CI-{kflyj=u=ZeCjG@_VO;TpH18bg!t7F+HgzL1Ack#klWBs4js%&KM6~;m&Wt&|NKPT{`dhQHjO12-Y7pM;x%$SoOxDq&QRT8l zxRNj1-FjvhL<}7o$-7KZ&=gYJ{eF5xTl$*vX9SP(Gq~uXR!h|qbL6wXW8)I0Git?; zQMRZNYP9Ylp7BIJpO8nsNTLdP~i120yLQ zxE&dntLId27$^W%m;H)rhGEd4-A9RmLF$jbKeznaVU6Sv$dvVE8Iws##!;kh4?_!& z@$?;>Gu-JB1+?Mreq^0W{T9}S=ShKCfc-1Jvsv_vy_%GAFgWOQ6)*}_h@7j4ptMT_~Kftk~x#A$rvIFtm7&*8fwhhAzm5vVgJBu|2RZ-L$9ee&2lhRjq`fT1GN( zZvYk?4uLVafLl6BN#(b2r?BHSc$W`_D<1lw*~X$O zO;UZrbsSCyOd|X#kY)fRRtgV)Gg{yEqJ{-Ed{ojJWm(K{^Ly<;AAIvqjUgE7g-ET{>cd0H-Q!Le69=gz z@-K^Mv@P^dG3%Sh0HUi_?nFESS2|Kb$jMYht<9(xvTscxw?Xg(r?R=YN5B0pcKPR= zAfNOLg|gv%%|SV57r?4Zm|ii>8DBf0F5V^K#)L&QO_a*ap_wAYB;d?+*v1^FHwu8| zd~P#uH`gK%z8MQJmYEV3tp4T#fuYMtNVH!ud{LNT!B#>5)90Zi@rN@20$rd3H&anU zGo$`#GR@1AdVpCV&>sK*0{{i8$5bXpZ$1D33}Py?J3s&d5i!;f000Ht7VKUC04pFC iNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04rep4NsN; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0658.h265 b/samples/h265SampleFrames/frame-0658.h265 new file mode 100644 index 0000000000000000000000000000000000000000..48b2210698d636a09e383d8b348d88efca1b0385 GIT binary patch literal 2197 zcmV;G2x|8L000330n~~A)I$OTIKgk`833>j0e~^+HBd?Hy}+5-&4 zMV_y^(WW2&|Nr~2jA}4G)Ug~%0w{If7&@yQPvQK32HcYQ&}ahSSwH~0*hDR{8NKGk z5)zu1Pn-jyA4(asSR3;v$rkaoR82mOS8_~eXpXE#ouTBC52ILQ&Ql!|y3LlZ&aw)s zgQS|u{b<4el54AVrAL>pOHj= z!{$Hh?*_TMQ;YVh?ul()cCnXrTsMPMTh&c$t=x>8=iL5CLO6#9PwI8boU@;yZe=hQ z(|6X?ge2!F9)movR}eFj3U@d95q^GFkZ2BFl4hDQ>eV00irs;b9m%{Rd7kwk!+>6} zS{tYBI~Uh`E{$D=oD>8h3R6r9hE{;qI5`TGw)i(BBEZh*99)u}{oMzX-rMKkC4js8 zZU90#L>VUE9TVkZO$6>M`)Ic><@N25*y+L?Bn|k#J=F>m2X5Gc- zCa?^ilMO_@MN%hD6f6CK^fy@}I1-emtU**W;R-M-T3cvtu#WQ|gP8jH#vLwgT1FbW zQ-e6Sy!?iLx(C`XS1BNK0mz@jcSVsdc`BEwzoAYzWOVAT(e_2F3vmtA62hObhw=-t*Tgp}X-I1&45$ z3`AeSjbQP7nUFH#DRX@uZx{zx{OA08`0vqreuv5Y=j0zv^m2WGeM?Z>o-HGY4+HI! zhlBJDE@2d48ww;fg_%xbt8k+H+=q<4o-tZfDX`8kKHW$HyDEPjL0I6A)KN8e*`UAV zZ%uX}Q~%GF-l;;4IclGsQ9vD+p9Yh&ju^V$Mz#R?SjnmM0%n5XE^;EnocY0f`VA z{X`teZkT_7`0gh=c|u7pR$-I@lDBVRbko17vfYu-)uMFogyA^gu?1#pyRPHkze||4 z?S4x7VgJ1r^QJ6V002ioSZRw%GKs*ME&u!eZ;RzV@%18dB=3*6_kFm?HqytniGRoX z_xO&W`Q8@jxL~i}`LBrpDizaVsui6!uCwHzy61mkZKn^Pqq2BI7s2=+xg6%HC*_X2 z#PuJxlej+i1lCb_*;p?GaOk8(MQ&Ln-1`xGJ$N*l!Pyfm(mZF=a znA%Ns<3-Bu0Zt2Auyh@i6A`#fabVS`az{~J5VfJA7O<-H2tueb@KYWN`Lhdw2Q6>?BYz>sqp}rN*k!Hj&lF-E zVRk3aT%rFKgsPfB=54h|%plIF#AV9c&C5P6CTb!UMu_u~>I-vvZdgzH{gWHq`id)5SnYwH1PNVbjeOrRh zYDC07fiOlX>*F!EE%bQghKHw;Q!63_Q`3X6zhh(J)1A40guKQ{Lzcmss>$o^^Ue?t zO9V8BCTh z0F#@qYhtrPR3(Ku+TOlq^DSQac<*kqSay`lVKl!xjg9vS5?y}q?J7Zz-}I=@r8D>% zXf3$`tEAis+C}m19VTJRoByVkcg>^PXRx;}yjwZeqGY9Ky}#o8(Ie<)YFvK1f=*zV zI9CwQ_Ir6Rz6gBgMP7${PmxtE&S>mu6@T;O-Vj7=Q)alv{*X#$oX9Iq^FUFIlIXcp zMX5KB!`DLc+jKY$Sl$EoyMBT?2`_%8jQ%XeW)|ddo9Mvu3ncwBoK7{=w{~Xb z$pQp9^Up|jzrg1e;w5#WRuaFuy(PS zHst?>-D3eS}z!D0HXIT2!e_j@2Lb}Gc_D{GPjSE>twxi7@FYnSCWyUh|iE& zAkZHG00RIL>P*lkMsGd<01RR(vpYZl0TD6Q5C8xL+!pL!001i>7D;*l0KR}1h5`Tr XMjlTH01gNtL?8elU;-fh3;-)&X|yhK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0659.h265 b/samples/h265SampleFrames/frame-0659.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f2fdf3f7fee812cbea50ae8ece1f2f0ff67da2c4 GIT binary patch literal 3069 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 LU;-fh3;-)&VvYUP literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0660.h265 b/samples/h265SampleFrames/frame-0660.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1a3c42454713cba1cb68fbede975bcda363f0d08 GIT binary patch literal 1937 zcmV;C2X6QP000330o0lQ)I$OTFu`$kWdN`a0e~^+HABD5?mx!p4x z{nG302w}rBrh?uo$0}9=46_2wwFG?8Ukcxh1CTgqy5i8n1O8+<{krsWm%QabBZn|t zuf(5lruW$dDFO}9$89|~&`B)#PMv0(1_kb96r*~1iCkpp zFSyc~%H{v{*sfi)C@|=V2ickRcfNeaKz*SWr#W@C<1H8hB4bfR^Fjx3f`o)lA1SCY z3apl46$vUA=d1Alv|i5T=WJn?h;u#7^!Mv=N8T+5H5CKiaB)o4b0423C^#_$^TmMH(5U!$nl+e#XTpk z0VcXH#LUUB{}x1rPd})Ix$?U^zDuIA5dspb`BDkijTb^n z(7T{7x`5EM42tzeVoA9hvKf(~_%Z1`7&dkp{P{N-1fy4y!QBywx->(XnJ~YN=>U?< zQ0Z%H;ypB2%#_t_M8l1!@U1KuE=a7EM^v`!m+IzJ$bvTUzGV-u_ANs~5TS{kdp))1 zspc4yK0?u_3ldtBZ$4X=LrQi$GpKWKY1ZmP#j?|*%V`sJR_+2=_!Vwh^y1D2R;_Gs z{(dEn6R&8AhBg+(;vdC_g^;$#As_L88=l;r&w2->oZ1gk85Gmp9Get6i9dX=+H^DR zY}1U(yIH9`YB3l!U(@riOTd>-6++{80fB1qyhuPCgpYwCvtl6D4u@^IrC>Si9Z`O$ ztQ@J9mk`;2%aAdK$s1_E6wis4v4N7P=htym0!3FRr}G<7MhTxCg{BBSpU7#p)69ln zSq+NCuexmaT6`dKQqv?qMGD@Iw}mOc^;r^!W0j1D1;b5BWfzl=(M0%jx`N?lVLJl| z@q>NRg^eOFd}06BM;}?!*Al{yP9McJc+j}5StS~Bj#teh0V9r*hQ$41sClp28E;`d zoj~xaN(48b!*D{@QT+%HFl?n>qzBjx)&<7t2o1`}9T6mx1)4fkj2~NleeAmW#=@=vi z)B?RkP>y)70zQfBQZMHQkU-1YJjiqR-f8y9S{if}CH8VlX7&u;N+T)rdR1VKQBRUh zB87Mk^wQ8zk~ctK;s5)4$1)hbTC$B44AZ1-5<|*JJsPo2F=46t?}kQ^=htokR36fi z@Zm;q#UC!ZbE#AwmHor`20Hr7_tVpv*WHdtV~c4OZkG&Rc1=cL;r3%4Z*_&Bf>1vW z@)DuHT66#{Y&dW4>ATxVfCFu23_})-eB1v|%|9feoozfRe%M2ys12(bm5nO8djW1-M(|e&bEg&WmL~%cNF@TQpL+j%?}+Q?Ina(5_N@gVXbX3m z3F5G#$ZU?>kFa_30Z?S@I_%`bx>*xWSDHe5kvl8}^zIpMlte(zkSTAkUdBhiob7|v zDFv;=(D0BYFZjFLP(AK&j?|$3c+x)AjO_}Pt9hPt-D=5Bz)4AP0m^aM-F^tvCw5yUhC=65`$RW>^Im%NIHZlMc2A)m6v`Q zUe=nLB6CB&44tjdV$r}F6>tb7D;*l0KR}1h5`Tr XMjlTH01gNtL?8elU;-fh3;-)&6!WEX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0661.h265 b/samples/h265SampleFrames/frame-0661.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c922e91e4a7133ba15e8d295a2c8580d917f2cd4 GIT binary patch literal 3024 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 S4hSJcAOIj>0wDbi04rd5>BoWq literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0662.h265 b/samples/h265SampleFrames/frame-0662.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b3a7c977f8bbcf5229cbb4b1998b49911e924f50 GIT binary patch literal 1618 zcmV-Y2Cex3000330o1Ag)I$OTFu`Br+692%Fbo3#z$gj=z;B4`J&9L;7nY&J9aY_i zw>Or)9)wH(asU7Mv2zqxpTZ*UZL8JDc}(s1?5k{d3Cdptjp790vo7u1aK0t~0ah99 z6eo{wz_a4!2D=esDwHcNO`Gf!*?1k_|G!&Px$IbbV~v!roU@oE>nVmKc<}|IOXdpP zw59G5O~TuC>~8-V1MpY;R6lHO6p1GS>GXse)36G(;LrDtr<7|W&c=;~PXH64zFI!Qi43i$s2ps+Jj;k8e_ z!@l05b~*8exK}0OZsO!)I$;4m18jb&H*X%>lV&fUOM~~24`4pSShfx*hVhzR65Pc@ zT)m(E5%uOT;JVSb*gs1Oe@p85dpsw@R#An!0vBC+8ZLr}x#?A(WM;IpA*rBl#LF8G zteM4U+)q#re_G)@z`A6pRZ>7#+&1vr`a4P9tpla%3qG)EwY{4Opd194zn(d!`6T$N zrLV+^!PrqTlu<)3IKRoGag(t^rxID=YBQ z?1!hAe?G?rDU=#?U8vj`uCk$I`JX1LXIHQSBtFMy_7OB(B|%+EH9R5DV%!)HM?vUG zy-Rq6Z7@)g$A7v=l;dup&&xNe#l$_|Q7WusGb5MS#D(Ve{Pn|>>;SXF*Hk~h0*dQu zLi^CjQlG)9&w{&(WNBc}ZgnX844DUduZ6;@(-2Mrbc5qlX}t;=bI4?B-8GLi&tSaD z@6{?=_!$;h*Igf5J>A&ZHbi82t| zt2iqmbEq|lunSg}UXz^(hnngS;Nc?(oz9|TsB(1ZybfW_=9}YZ|6H>g8}TICaYp)` zjm6}sFzT$7b?wyju}^2G#uU!`hV%C!oN}|a)6+b*vHbu4|NsB$H77%tIji|YKHNE0T`ya9peUI8 z4BeIo^$O#?_u?Oe07Cd2L$Q_|Dk3`WdNk|QGbU}CZyd5e{Q8-aXSaJLc>lh{3929W z{pSDwZ|~2dKO{gf=)#4xb~Ozr(x>dBet#*fOERuw zbaMDwLAhbh0{DcB1v#_%?ig$}rzN6gcx)fB7u{Q5)wI;;3HdMul| z3^8N4c;o;&&(*Ia)Y{7n#V#Afd>U||Lq(`p78ejNFn(LSSghj|ULn&fy{q~zNY^aJ z$^$pzH%gZ|$9HWv8D87~QSH@GW#~9e=zpRVc>0eZ4Xa(gE3HbzPv zaddy}j;|1%j@S*rU#Qk-flv2p*g6GX7PBJe;D~kO<0SDzY!E`i|Nf}hSs>6K00093 z+rDr>CPr^Q000bPDziI4009v()(`*y1>6?wUH||qAQnk_006##7lr}=0!AKB2mlTU QAw(bmAYcL@{R{vrU~jS}l>h($ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0663.h265 b/samples/h265SampleFrames/frame-0663.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ed8196058b2b8464358a4c0387f411b2e8358617 GIT binary patch literal 2046 zcmV^+HA7(d#Q7=!LP zfB&M^XU>1`@zA#68)PFOB$bXQ@cuu8dXoAOXae9_Kq8q;18Qf{>ZEBGT+z-p6VL>j zTm9~C7I;Cj2X8^tJFRzgYOe!-jj}q(`vlxS51EmvQ~WWtA7XIm8H}L}b3^^$3*eXx zzful0h+-jt1Y`5BAUdWFhg&+`2p#19*8S6WumAfk8#@yX=2vfSYC*-!`18O|LBLC^ zY}c~0olKKyRSVQFBYMsQS@kn$>C!F^ch8++-0>-@2$J!W(zm`qQsVx{$T6gmXSy_e zn_98YT>vU@Y;hkH%-58uzM2 zgrKOl0|p!gcH2vbH@Y>);bGZd?$}*mL6r6qUG9a3Ynmcyzr$KB^fH9A<&DE9SeOAR z-XC^}zxpU^7hk^Ud|VT9{@cqEu>g*PrYPvoC3-?149-g3AaO39X3*(SPM36g0N2+g za&Y%tQ~%a$33tH38P!G)7_noXTa+~>!UI#~YI(vn-0$F0uGRDjmqaD5Co>T%I@b&s zjB)I_*>7^CN(-rVbIbvaDPWZdLQPvs190)I?4`N{2wTe|c?d-N6SHR?z!C3jcU5b= z)v`=XOchZ+4X7gc&9vWl%BZOoVgm|N&F|DvPaEv|Nc3Z0X@cDF2q-aHTkVJQ%f?Ld zaoRu0DhhHnpdZF199oE-?51?7r`OIf=}%Hd`_^j1JS&i{%_7&_KGAx)NduT6US*z2 zr5lpy8}hVz5kGiIG^ZI4v;om12L-`X1KDPdK#1&ox%)baY;2y?YNUscDl(wba4cz} zCsi9rRNeAJ-WaI=Z{eS}_|L|^zx@9F!ShV}jWmm0W8MQ9UxRs_ z-`8IJ=b4GnZ^y{7YV&kH++R9uigP4_SsraSZ2;+Fw-NPSa>nsDn6`ujMX$04u9_%Dz2AG;* zM9f!t)e}jF!0INo?t82W!<9(2??L|$t7ZKYVJe?K{}*Yp!g)Da;5T`IbQG~c=F~P5 zi5x8hz1;2JXP8Jgh2w8l4~c#nFm9ihqKLWvpsY`r6&(}c1!&5-XNud28@|zR;esS4 z30%d=RH+5126!Dn@x%yA<}wKAI83~Tknp%_0}SEj5FP7bL*Z{(ahV!wc~-V~#nw(r!F}@~hp7l8V!p#`6kH3VpBM;VQlx6 zL{LqFiI;jHdXGy$FeZ}V@Uuhdk^89N#XV6}$lAJC^v*fzmviezMy=sV&@T&Ax+oY&VCT zW)7xljGc>3O5*}A20kMGO4^nJTk}Q%aNoG>n0D~T|6&&uLZ{vanLImwLY&NNZf(kU zjlfCG+?p|i%7-984)?RoB#L!|9t8Q+Jn||u`l@lUjGr)A3MU`9}E@y|26Rd1wy)PH8|6z)z*9a2%BC9`==Gp z(b+s9iL(3{+>UEPq@R@<-4oP)+EKvw7}AP|MfS&m5)T<9K~pPM2KG8M?Qa*I zdKE&mf}D*f4=g`fV;aV7dtj^E)T#Ue0n|nspx69gr0S5vAQ(nmySW+NN+J)eZc}H< zMhvW&Wd0%buC<@E7a3f9Y5X)0QgqFuTN$^&5ruqHB(f{oPNwrN;$?$CdI3^U6^kxi zwQH{eUIBh{@pl|}l@bI6E9QImHJ`jZSf6AsX0AID4E5@%ROrJGYjp6iC zJ_u&=9bw^_bzTE?(Hl}TT0u73vu^5__fEAVx{vXm(ImC~9C&Pod$k^UDziwpF+A`^ zPzo$nP- zg4TunpO7(QSof}nKxl*hMKw46K00093+rDr>CPr^Q000bPDziI4009v()(`*y1>6?wUH||qAQnk_006## c7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrV1sAc)&Kwi literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0664.h265 b/samples/h265SampleFrames/frame-0664.h265 new file mode 100644 index 0000000000000000000000000000000000000000..86919793b5c4fc4d2767b5cd35c6799611567218 GIT binary patch literal 3035 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0666.h265 b/samples/h265SampleFrames/frame-0666.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1d3f2bce44f9bdaf661db2950b40c64ad19fbf29 GIT binary patch literal 3262 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0667.h265 b/samples/h265SampleFrames/frame-0667.h265 new file mode 100644 index 0000000000000000000000000000000000000000..27176eef9d0cfeb6c2e323478ce5f395a7b4d24e GIT binary patch literal 1750 zcmV;{1}XUf000330o2j|)I$OTFu`=xn}Dzm0e~^+HA9xEFD>%G(S z@Ofb;eZDr^mIB+cpASMP54hj|{MfmQE6?E(cQ)1Pi%XSOj!-ndav8(lSO2yP9(-H=CQHpFJQ~!9&)d5PgP}xcO3RhyF{_h>NVEJ2rJ|J z{(`{GPlnY#_YV7dj-O;^%xqPO%-MM>Kfr7JAQrFsrysTn&n|z|YsIEa&U8vY3!rtD zAdM$C1?;c}l`yAGF%$>1$%-!&VvL@AVy8WC2QDN}4OvDO>Z^jhu{5Vz-$DZLCM; zC{v_xOJ`ycQEZi}Yo)FArf$m*o>m9RA>|H1eKqL_O~C!Ezo8Xn#`pe9zE-3s9Ry;} z>~qo$bYn@>`J*ag6*;%2qp=&IQ$S+=b)q21HD7af=TIi%axdenv6y%ds zmROd6Nt-R&Bq{xCqIQr?R&N3*rc@ZvoyETeq*C3;5WUfZlkY)U0;?zdHtaa^v3D8V zuIm!p1pD>ywXa_`cy}l3l+ym?Nv^sI@L7gPOCqXSu$>th1_jVS=~ry#6@qUsxLBDq z;3nGQm56`<0fM)ayGY27=z^oTL^j4)-fH8wvzbxsW=h1tRVwT%-PqKHU-n4lg! zkHlwWvHIcmI3w~`r)+!o|0Tf7%#G#n8_yGMRUMVB?eGmDr5N4&W<0a1{(hkcHP)Nl zW=fUIx)4`GT_6-&42W%e!J$Mmuiwy-wH4V%vA(tX&RHqg;H|xHwaTqe90HL-9TBBB zP0fFy`T0rp|6pX^M;O?JH3Q{cep`l6p)|+Hb~3`UC9DV_W`(@+_%%ZFW0h7x_@}&u zi~eb01OWJ#Opsd5uh`CJ3QInaX##Hr7f1xn^ENZrbKFKpiFPB5-(0o8mUOf(o8<(L-W;8Dx{^xq@axPalmxcnf1~K5^lP zpX(@rsECsc_dE(h7^db2LC!pP3wknGGL6v!8OwsmAZH-P)(#C7BQh#b0tA$M{hj{1 z%LpUcxM(el;toa7E16jO_#Bvo0TAlfoO?=gj$03XZ%FCQ@)xr@uXH^SrNL z9u5J$U;~~DBcMC$Gy$qzm8>(MSZRw$zXXU8naP(I|GRKtB7gU2W&C$zgm{@us+*sC zQ}%i_R+0KHC}}X8%5U1sNU0>7tyZ0JUuKb0+hJ}#hF>n zC+(nzc~j;X#IS*2?2w`lWJ=rv6;NK2_@ChLFbzKLGgp*FRnww)s77kiJ;h~W*=IiR z##TZ;)&K;{yPfCuBVQFAN@3InjmZH(J|)B7*%R^QgiY}kQiPlPBVPitLwEC7S1Lb8 zqQo_y!i9WEkX1N7JEj1U?`@e|(9JJ0Fyj!go~Qy0=cO}Q)-3%K-;4=n-rc>!2P{Up zpZ^v4|Npj)38?mT-J<{i0|DoNSs>6K00093YvJy|CPr^Q000bPDziI4009v()(`*y s1>6?wUH||qAQnk_006##7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrV0lnnN&o-= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0668.h265 b/samples/h265SampleFrames/frame-0668.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fc6dab72727acc7cf7afce0c13397bb2edc68a06 GIT binary patch literal 2176 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 C6BS(m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0669.h265 b/samples/h265SampleFrames/frame-0669.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f4e2b76e0e98264a51b719ce4a8ebf27c08547a3 GIT binary patch literal 2481 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0670.h265 b/samples/h265SampleFrames/frame-0670.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ccfa00e44b4648ca0732316e4cd160aa06801713 GIT binary patch literal 1900 zcmV-y2b1^!000330o3XL)I$OTIKg(bs(`Q#0e~^+HBfq?=R-0qo; z{^@o0gfQWm(?M?)W0flb23dh-+JZi4uZ3^M0mvHtlm9iFPnmZ89~MOX{r~eJ$UEwY zFy!Yhx!(WL$;P)8q>^^UD8lUdGRju)iZb9yvl#fT#4OTKb4t_RIjiKYm)>p8* zw&iiSsUA@pC8cFziZ0bQ|MlF#03|j-+(4CNCwOtbe8xb1p%$k(b+zLy7y@-e`yYx= zJRqE(1uBcnmZ3lbP7WD9GK!{*YhRcGTznoi1}}M0AVV^~gI6s2&w`ooIz&xW=A6GJKN z!x}rVIA}05!^57*tr|WmU9a-iIB|M014l27bmtFII9h5b4Uf3=*QJAnlF&Wm#%E?h zvbfptcJ!pfU84`M+r1jnPf>{^wI#bmmnF@n&Lv)9R2PT)df!0(m8J-E?zDu_J!PIK`6(>D>r`1Jb+9i#Ml@|A2qSzd!W89$!!M1%46u z2j<_C`~G*{=r7xtjjXFeDn#HPf17s8qnbN}boLzc!yNLCNFzcyX(=M;=b1yR!kaVs zwIK(!z`gbSHS%_V7${z<<0T#Xm583 zoit}h!nA8O6(5q@A3?ELwf9Y)>raGCDz}f(pYWY|tOW9MZ2M-^j=tYo5$i?fa|Deh zQH1txMF>xJOF(tz?T*B!k(eDg>bKju1lIiBP77;;_95Q@S-Wb#deQ0<6!@WWwP@~VSoic_cEWU zd2{<`epC8iL)*b{kbr!m^e(H3ASJ%J9I8S6P4y!|(5WiDm-tDNadi)7<$P5%nNFUISGLwNU;ya>Td0y7#f--Ck<(WwT#(04TY7Agnf zm`kJ~-L01^|8*^!q+_-!UA#6KLYQkJ#VZkbKX-lM-fYa07!mi6Whf+T>I?@IHSvQ` zHeCC6|J>uYHAM1GDSLjs(!q+r05&2Ib#mr7&mBR;6uoydiF6{Fie37vgCwK2nDb|o zix(?+_RY4F20x*E?@#~yrg+u>6@@@Nh+4lUGL@Cmp0yK$$7bTUeB80}*TBgTNx*NJ z=IDXMSZOW(lJ*ZB%ef3fsOupU%J}240JX2|;EKp1%B$_vy=CNy>>avYtdFf&*EFOM z+FyY6TFM=Zd!h&MYue5;T0yQAoM~7`{biBgQ1~;y;fedYEEkH!4+b&L_v1SNM8_Bi z=sjT`S+Z>YCw>F&(r68<3eof5?%zAU(h0eL(ofZx4$n{O+Z0ZzyWeAmW#=@=wR^#Z)wrpZeRs2)$Nf20jS$`YlNQaxh|QDp+K zF_$(8T^|0=Jn1(|wL?Gt_y4}sanhS`a5&uHIMnnnT9Af0;R0_5tc7{R8H<3OJN)iAuZsvJquDT^LG z=Mi}jm;EfPJzI-TZSRwN(C5a|WX-r55io!p#2-_sT{H+BK3O7!LOhHkAcbW7Y3$e5 zX8Qd*byB{wPd)$uCCXVK&>sK*0|0B`?!YESZ$1D33}Py?J3s&d5i!;f000Ht7VKUC m04pFCNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04reEkf^f& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0671.h265 b/samples/h265SampleFrames/frame-0671.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0b2bf0a43327dae88be71791086daa2b8d1fd835 GIT binary patch literal 3548 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 W9#04W4hSJcAOIj>0wDbi04rb<6w?p@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0672.h265 b/samples/h265SampleFrames/frame-0672.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2752ea7cf18006e059d301f708674fbf9301962f GIT binary patch literal 1851 zcmV-B2gLXQ000330o3{b)I$OTFu`_^mVmGh0e~^+H7t_%MW!jo^Q z330H_99rVWvA>IdOb#wy1_i|?9e2vEe5g81#%stVCdp!5!4uXWPKth3L$;t?| zVAA2zH7|Jjg_?S_xbK{Q|1P$tbJ(!<#~UeMIcG3(*uws1LE+4aFPJNEHkY_XH#fTW z1Xy?v%9Vit7!-J2Btu>SPaOzbU+7S@jyS78w&+UI!~mz++VXHfV+-_};Jl_a&dCGb zHY~FJ(kKonp*AK5IzGs#Au*R!^(b~A9L*03fu1plz?cj2FRTTM&LYLK9K6Ec}iXk8)N4b;6m!uAXmc|G#?43{W!Is@<6+*huuk?77XG{K!jnd zeMzp;aT!kniA8P(`=H)Lm}trrsRjdSk=aU5g1dC_XF?E*8r^9lKsx73QXzY=r+CX3F0<9FO0Z!KEs_nNBh6bm3%$;Fu?PSJ zaB|x2U~f$Vj?8}ZPkN$T7xh(e%QcP?^a{zChY2JG+fh09db6u=PH>Gp;I#UkW{Y|m zhS-jxr_@Ld%as!GxYD6?K3R*}rb@+vzyKXGUI6jCbGselk#l73Ql_@0?&E;B!1Ptx zx_cd#{e_0!B!C)^t^qH!Fsaxb;X%9)4Qd*c)mPpb25-R#1JLm1myA;>~ceP_Gbqqwo7`t&AF$LfNz3u|)3Xre|3}Y2C_j)b_ z1VpnHzW1pB40K1vz7QUI2oxpxRzz;LtAhJIjas2W7PhCfmjNe>s`-HqFs8>f?I)sV zbPC#6yNz5r7SU5R6m3LkbE!S&{le!rE{zX%;C?Z5OL^5~V;^)K*jG%rb}|#Hz+|*} zqhid6d#5EBC7Fk%6Xbx~XXSn+g4zu=ot*<~G@-_OIC;yG+y0l%>;;=;>yB#7TWLT0 zy5Sc?A1&A5^_BHfZa!5zn2re@DLM%_I@HiwAVUVlIUkdB2!i6Zl%B(eKHt5iq{38= z=&TOU!S^Ah=mks@*<|UR7E-m#(>wzkh?`ruQnC4PE<1n!_k_V6nw)#3ySVtkstnj{@RRDtkbJ3T4LMO zu9ZAQ4U&(t?L2BEAb}F0J%A8;q!yzI8m*rt!GRKvseN%2f?#m zLhKY#bzvv}@BHpLxU~{baWjTch5WBgkI&;@>qLjPX?!j=`(6!T1RzlAkqa#ya>xlZ zXb&KKSA>ielkqxT-3o%Q1Qs;7WsI5ZSmno6APlqVKZ*Vi0|3+R;`g|K=!~uF$3}@v ze%I~x&!t+pN))7F76$MEeBg8py~G09(o#fm;kz=N{O4`h(l zeNy6#88Rx55Jb)RjnbvgaoyWZ##g|A6nk}48F~&AIv?nT9zLn~1jxrV!hELp==MTq z1$+VlSzK@Pz*80g00RJVKv^Kr9{>OY0Bhmyz$Qj-J^%m=Vk)ycKmY*|G1d?O00rC@ p>|Ou>D^+HA7(d#Q7=!LP zfB&M^XSmOHmO2*PBZCGA1d_4D{vXHiZ&F`63h+1nKHfJ!N3r zlk{s9?S5IF_=8HhXP_h!4ld6zCxKyIaUr$8blvO!{>w(r#KU=&+uNFuadSRA@DtE* z66)JE?5yWgB-&L%^$W<}vw+rpOxikhi-Vo>=U8_DCrLZupg6*&ErD{-|J2>J^X~3DnIh+u=zj6ii@_+ zh!d)FL=~ef?mEg(!YePVB1j_y0thlpjQwLPRR%XvG|1z{_#2Iam{ex+-)xP4#<;E zcMg6XUWQ7(DLk-1`p*%3eRn!Of$nBEfWTQ9bsZQBI;^md0&k!`GB$T=RBC432p-Evl z-uy{U)faXVoCNHR?WSUrAyaMfY6-?COC^4qeSG5%mDQ~WCm@v%_(FxN5$quJw*0PM737Qubk zb%yDQ%&llyBt493Qd`NSylR*K!>v0$ zuXS8T8>{|v{yqG6=)FHfVnm*}>^yjTPbu(_vCi3aa@W0^ zz&3oR;g{(=q|&~pqVH8`K|lr?+XaBPLNf+AU`+EJL3ogyHv?x<@vS8*oOwYp^lShQ z;C%FgI7O!k*Lh6fyZ|ZEe@>5qQ|c?I#q^2>Z)hd7R+w~4?2Yn`X+( z#8`PXZVc{!yQVBod33) zu%vPgQQi?%~Vx1w}YQ4mqNXn&j($Lp9XuGGWj zLjIX{MuT2~;#7GY#eu#i`VC4TEo!z}=TVE)(h@n?>cxG1z zuNFOA+i336Q!ZvsBp`vD`vi>a`55d1DIE2Cz%G$eRqa>1XB&z%n1}j$g1shX{W?>{ zEF^%dbCDplh?UQ6RDt|HZ@qUvGD8{zGs=FZ*K_x)nUcr_85RTAlcDKWoWDDzH<~fwl+gjwTF)Gnx}n4!W^^W5 zjgz=DR8UxHi%7;}H98#+F16nFZlmn{}I$LKf~Q0 z6gB(@&3r%sP_CN|PBiJYb)NlvM%RN2Z8&`W9h1TsnE>V`+fD#*1Lw z0-P7bSZ}kaCgDi=z+ly=dcRR!5Vf2V7O<-H2tue16K00093YvJy|CPr^Q000bPDziI4009v()(`*y1>6?wUH||qAQnk_006## c7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrV6}DW#sB~S literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0674.h265 b/samples/h265SampleFrames/frame-0674.h265 new file mode 100644 index 0000000000000000000000000000000000000000..982ec58b6909b7f1399459c51b6fbadbe21d2a5a GIT binary patch literal 2971 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0675.h265 b/samples/h265SampleFrames/frame-0675.h265 new file mode 100644 index 0000000000000000000000000000000000000000..41d6a030ea5a93eae9e6cbd37674fe84c9c0aa42 GIT binary patch literal 1947 zcmV;M2W0pF000330o4)z)I$OTP{DUxtbm{p0l+W@0KgOifLL)w(H|(b1q$aXAz<^I zjI#dfV(b`}DG}FEA(+aQf-=d$Ae@0h&+q{RI7B*3{Hd^;%m)9MK&s=Q9?r!WOVk3) zMa}Cl=2#H96}5sc4L&jNki#-Qx2$4;D#Hg#d?m#1z%^5sd462v2*H@Tby#NlbE*Gt z5qbVU`?o9y|F6U-)R6x+H0ZpfCD∈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 T01gNtL?8elU;-fh3;-)&G^C@g literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0677.h265 b/samples/h265SampleFrames/frame-0677.h265 new file mode 100644 index 0000000000000000000000000000000000000000..95ef9eab872eeb776c4da74d75084a329ce57785 GIT binary patch literal 1848 zcmV-82gmpT000330o5V@)I$OTIKg(HlmL(p0e~H5i z&6lGy{06_m0kCmF3@t08XC?-OCXX!ZDz9-SN=e3D%2%ZeAD`m7xG71^h4C4Uo%-@B zxJ{ZP+AeQJU_RhF+^eMCTaHK6UE=d5o68%0Z?N1(>Ax{SBWYD#Wy!^wvGFM?I^U%O z2Xt1&%g#@;C`-SZrO@FH$5IhP=bc_I|MUBW8s_>aOG>BNmtl{zBOEsjT`LEL$zzSu zvc-d-{;$qSHlP2>W{Vs^tlecT+7@+Flht~VGMBssRd*%w=P{;Gw+v7jZ&fVHif5vS zqnQYcA972GIp1o}YM(wc6@e&(YMTT(c4ZX7#FRDq?VjZU?VAXDG?qiPpUO(oMnTYkDr* z!$w#w>k(f2!{CmxVqzzDp+$wZwE^uBtaQk6k;AHO{5)YdNGL6jIPSr?->uDOCSU*> zG^A(zWBo<5Wwh4NWW(gzc8n?UM*jpI%0mdDTe*Tlv>v+c`)7K7Axgf9!{A`OQ_S{s z@j#c5lg(}I0cg`gZCo1lqI=T5Lbo;ig>bb9;XMZHPypPVU)B-u$n?!ENX{Err!;-zYqR?SB^Z@6Wa=x`HqwGXLbA;*i&bi4*jw(-)E z38ZR9Pn+56kn!%Z>m^6WoM@YIAtxj(U;ro{oDmv~CST>HVIZuhyl#gQy}y4;rJ&Yx z=$Gws4Cq34khq>}tC#E#o*CZE*(LxJ)7b$7A%wEsZudu)JSgrnt`cV zst-zF_@qqi?$qEQd~|NnpIam|L-X+1P!Si?E;y*58Tjeo5p9@(YvxY_M^6@UH|jPo7i=TuzOMItjL2C8S1E~_>}8k z06K00093HDD%2Z$1D32aGDSJ3s&d5i!;f000Ht7VKUC m04pFCNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04rc(r;vsK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0678.h265 b/samples/h265SampleFrames/frame-0678.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d40056d2b2ee3efe55640f947396c55c58309fb3 GIT binary patch literal 2212 zcmV;V2wV36000330o5u0)I$OTIKg^6)_{->0e~%!1AmRNoKyOqDW?o0|GrZ*v~0FiHC~!j3kGfs{9XMU zUtq=5cCw`P8BDEZjAW~%Lpzgl(6FFWa(i-rY*ER(*Z=*Nj`|@0+~mOB@3 zpl#GYCfHcj!p`Dldr>NBDp~t+P~D`1Xt)K5@H8XYl>xvG1093*DRF;ej=$<`O)_-M1GmW5Zd4VFMj#Yb&h%M!5wjnAei=+7VlSn9yOSc}HOqalNo z?7MqV?75hIt4{x~E!)kkTsSr1<;_g$r19exEOXJb;6`wmd7{f-7(OD(izfd!4T=NS z-KfgPwpT)Mr@3`@w47jb&rcugojKV|9|~~E58(tTF6ca=659mrsqfqSZU90#L>VUE z9TVjw4=L*?&qSIk=~?H$=D4!nU*Jt!gM}GGhv3Sk3->G*D1LmjTwMnzMlX`fbaI7( zMn|>>1aE#XH)@Nz+G0u0i8=8Zu_k@n;PDE{Vm%DLvsLO#HU4Qj%=M~vyd`Uq@|+e! z+&o#c@#*FRspGRaeV&a&&^5xVN^MK@`I z*5MQnUXR^zqNPN~-S^p3vQ7oVa4oIf_RhFje~V--V(^T~;>JV(@IKi%ct1eW<`G5# zu%baV=SRB<7{R6{m{Bto-gQLMVemSMt$Uv90&wM0EqlxNqlRRW;3B0njT%`SVt>)8rTEnVVnRdLGZ5g> zpqTHd02}ykZu-PFL+A9qBxD8ixfLHpUU^G^y8I4FI70Q8;HW!S27S4vBMs>WIopts}CsuuN`NZx%p*6 z58&N=Rx9J&OlDJur4mMLj=KRC`V-rfc8j*>T{9;$FC@cw24zm@cmL?o%q8%DR1KWiKX9sbpwy$Z%PE8*g+)T+Pke`isx zHBZ(ODQtI%yMlddM~;;Aq6`Dsb{qrIEh@@2WG$C z|Kd!J+bbu^v`_T>5?L@&c!HuJK9r|qoU{YwU^!ENqAo7>fb20!+*av}7jQ92z?-Nk!~ggH|FQ&CQH+L9VrH+x_*jp$@8vP= zVqfw8o&G1JUVnwUJ}4{r51IIY0-;?t8lb!9D#N}^giW*d6 zk~UcDbWc(HYLfDfsu>qyj_sQQBpu^aayS8kNa8bA*gGBjbbJvGnm5cp`T)v=qyM?K zqEFY%Kr6dgBN_Z2SnHrCzu$k(s~kqhCFhH++Qxz&I_!cgED}K5P-!A~fsQk(_3D_z zUm{RRDdlnXkOuxes`$Sd#MPo6;o>daz0VKYu6_3B6DDVV9lnP-)|S6GHO{wqlO7k* z*kQ%|R0xR2)`h-k1ND#qWH6zfDSiwT6H^=2`00GB$9-&6%gx*GsKQ(#ruOh$t58bFkezVwb zPBPe#1QB(4N>eo{jGH*mqMe0JQV+Yc+1@C`qTUIm;^O8cDIAy9aVoMQk=|Pnzb^s0 zP#>K#m?Iag(jaYVAtA*0Ss>6K00093HDD%2Z$1D32aGDSJ3s&d5i!;f000Ht7VKUC m04pFCNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04rc$n?X(h literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0679.h265 b/samples/h265SampleFrames/frame-0679.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a0e7610eaa62e1c0cf31ddc4753146eed3742b1c GIT binary patch literal 2306 zcmV+d3H|l}000330o5`8)I$OTIKg*~TY!)b0e~D(f2Cl}? z)I5;KQvmx4sUtex;f(geiVN@bfV_>UzEX42P3r~f2^fnk)=_PGd4`{8is635`<_-h z9G>k;vGmZGi^(~u4{U729o#X{r@X5mqog3w#styhpZvqk%^THn@w|O3H=xw`UHeq) z?WZR-6sA8!Q+Vn2G3S>9^a}!BvpP1N?E@s?gdn=XAlxYY23{M2ep$#MQc9HBoc!}`0pIQGZe81u z;yL00WnEL7hC?E-_!50kR)4!dDleLFmb+UawqhuaTo|g6GUDNcZFav=PHxiV%xFD~ zshesiE4pq86OxO)>gXlL$Hxe#iK6@F#bnaIU3>cRAp?q*YxmelMu34(0Cfw4 zEYfytMEqrcmpQWNarA$qey9n!;F7}9Rg=sMI0QvnAq35HT#PR9Tyoaj_h#Ph5O~1b zqB|p|{v|HmPH%6Cj;w4(Pi(ZS8IEYBwy zcusM8)3OD$Kz+|8ty`eN#A4}?NOww4oqh|$sQ5s_2OzCUycB$Fr)Pi9Jt($2od;7t z1SU>3Q;gMVBX&hNl+5~po!jMgA};QCW{tLcQTx3qV1QA1LQ+lv4HFab@A?RZfc-zSv zuHKVLC63=_9l=wxBBd=;>3=o5W9T_hFh%aaJ(K#BQhi8trb1(e_n4vm=$IUbYi7|FQ8iBb3aQVCn@H8&LIe zb;2+-=lWk!3(5JXjU#e3@PK?D1$F*ir=3rkh5btx+E1!ON?+J}@FSi_h(Af|H13CO z9>!|=1|fh`58w9^U;|)`l$tH zPOWL1vvL0gQQ)m&FeThJsJxOFn5{Zr?~0J^jM=dNG`6R} zOd#UUgj0w9=L3$s;!sqI_?=>jG0A{KkH<3S+K`rf*i@O>m3$Bv@0&2)iUk{+8rvO+ z_%aGIr)J?HX4R8mR=s{infH=>jjfJQbKDp0oo#wLf*yV2ixT@?xa`=GXR%tADtN!! zCT1dBM2VZ`n8y`jM+||!VRQK+?)(i+4g#^V^sf*g5oa*A@(6!&V!|bF*WoB%Jpp)M zrZoZT=iTiwd{>SJjqpZj0Q_*YKgfD-K-TTxwgC*RZdv9~mamZ3SMTu_^$M*^?^c-e zE=Obz&oHI3sfFtobc~+4KnZgI!&6nwru7ATNy)rtg;?)d>M)?Jw^K00Ku`|q^`L8x zgmvEk2R+f>XD_t$st_!-8A#3;-_J>Ny6&5nJkITe|Iyk1gy~pmi2suYXD7Y!oqjV1?e?~7qK`Hkm|b4*v& z6R58gip7z0;37zq<~!t$ElKTrpM<1|eo7SY{^P>+t|`#-PF3GuQk>7)wSK%WT8F@o zR*-aDFRhOU7~g((d*s*}@Z{dAa`1Fg6}>`N|9+y9$+@RlkNe~TYh6P zYML=ti67W$1pMR3R}d)}6N<0>M8dy^$m2!}0=wn_zV%~#+<&VZ!1AE)c|$JIKEh+e zBED6QFsb}oqbdt>bizjWxzs9rCS0H1uN03pu2fz=nY8DWr`6pKVtZyYW>bvAMuheY z#4dRI1Z=t6KY4zj%vncOBeAf0S+l-=qX;Me_0#Fzx9cfFNsi32To$Yeu$9T(r;uVL zyJxVeU_UTEAI6HRt6sBef$gxAN3_~g5of%{|Hk?j*BP)bRzHN4(a2p3bp*3P9Z-M) z>Z+D?REX!rgfBtYtwJi)<3Lc+;;w^GgdBj`-rRR+2@`6Z2@l}d_(tG@*{1=ed!FMu z4I}b_UY35}RI_=BS}dHqy)+UMzp58!j#Fi;3Bs5;CNkgIoeCUXi^vKFJRk#w|Fius zuiA{>d_Lz9Y4tt1{e1^#N5DrPN>lBu+h8$?@z@J(=o=sK*0{}H(CPr^Q000M!DziI4009v()(`*y1>6?wUH||qAQnk_006## c7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrV1K87L;wH) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0680.h265 b/samples/h265SampleFrames/frame-0680.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a8c7cdb7358465d9544653129c0fb5b909d17075 GIT binary patch literal 1948 zcmV;N2V?jE000330o6JG)I$OTIKg*ht$>gY0e~0xs9PT?#(VZ7 z(~W5S+~qDpmpvvlh`tP&7slVyYm*n1x3>t|*}ZxAP&$ z6xXfrFH9fqYV=(YaAj@o)}iGq}E4<0_Y zJ%!!3Db2)a@{iFiD^1Vm_Nc%A&jPu2z(B>WFaVz?-`@H283Fc$WL)Lj(yFK82|fuU z|LCv_5)Pts5Zvssr|8@DG{j_zXLcRUcLr<`DdHI0r6M63IoL0uoc=iDWIhwS6}6RA zETlGuGOSE0ci(52Ca?*O{!Udc8YhZ>BZsa@TWltz1IQi`Ua-W$GoU5*2F63Z+ZkkIh;W1I%T6Q+Xp0Zygx{H*|7xu{V|T*~)#>h{J;+W`DNppt_4fM zHpq=1ewP?l&IbI;0ODOa*udKuYlkHSQ?w<5dtV zvTvrcNvds>@Eef0YsVNLSf-Vnzp=z+?g+O9x*@2+3V>%7NMTY_>zXI^i)`)pkPGOP zp;#rz3vp>wMnt${@Z&fO`tJDD?yZo&xaU}U@~Dy!qvnLh;wTvptRt^|`_x#93e_Kz zR=Q&^P6>o(*+4IS{|$V-pau#Vs<_EVhT2B$NIwn&X&#fcH|&$4&~JPIf{rFJrd2px z+>Z8J=?p)Z;BE|Mb@4FR*xZZ0VKDG`?FS{?IZD^9MhRA;MAfX^BU{6H@RT zq}~})Be`Kd9JZi`Sy&4?-SICd`MgBA$@Ptq_5(=Sb>FYw0v;GQrXyhEIQ;Ai?^XJP zyJ$?&Z8x1-0^B9UlxXNe6ytK?#z~UR8_iJm*n)Rbz}vp{Gn0)>-a2@I0D)eH1UQkd znyvog(4ol=Do}knFaQY5P!M2j$}wCJO%SM0k`KFwO&KWM0_lNp#JWdYq@W>zY-VVYan`C=sivd0nCxw%Pu)d> zr>KzzIMVQCFqOOS>r3l$QX*9-huW|D(LzYyGmqJan>&U)bkznJwms1mgx#gd)qDS0 zL&K2%ivmtNJSasdnee3n@KbF(&dyat~Ky z*R>x(BtxExb2__|s5jh+al&cEy>N_e+}Bxy&nE>8XhbFdv8W+(HP1SZx!uF@h6{4w zYbVJ6gpX-UZx|zV%jA0VFy7<>JR|NSMtOe{5vKSzdIzJ12ceggJDT|8wet|ga~C5N87;pLeW(7-+U5S9by z@V;I5s^KVU!%|Pf2~H-B%#sP*dyGjiNALF%rmw2gSyb+2LH~(T$+gSZRw#!odW_8In)_|No%asN;8~tfv}& z0w14(fT=8o<}`%yy60^=i%f)kMy+Z+lqF?sOjpOM>QI#|qLJmbqKhaXL5vNsO6d0i za;r~76WNvjGPQuoE6Y1hqD(JBO^Kb7dzk0%{D7c{@2;#&0M~CXb9akn%5=x8&D4I0 z@&2J-wl9b&_gGan~$xJP_c{x0f$~uPa(*OFYcmMmE zoJFEP49>#90159{Ss>6K00093HDD%2Z$1D32aGDSJ3s&d5i!;f000Ht7VKUC04pFC iNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04rdvfVPDI literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0681.h265 b/samples/h265SampleFrames/frame-0681.h265 new file mode 100644 index 0000000000000000000000000000000000000000..06603b1aec21aa4c9527483668acf73523861d54 GIT binary patch literal 3010 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 EV9Qpo%>V!Z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0682.h265 b/samples/h265SampleFrames/frame-0682.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ccef04254e0bc2caa7366c54451f62278c43c7f4 GIT binary patch literal 1791 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 XMjlTH01gNtL?8elU;-fh3;-)&FY?mQ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0685.h265 b/samples/h265SampleFrames/frame-0685.h265 new file mode 100644 index 0000000000000000000000000000000000000000..27b61b1e69fc38ccdaa607ee4f881f475b355549 GIT binary patch literal 1950 zcmV;P2VwXC000330o7su)I$OTFu`$EaR7i00e~hpHD?H9ATd|Mc0xc7QGuV{C8lijK}UzD{){2#{*{oh5@JDnTnMfQ1u zYXF$vkLd2Is#=Av#Q6k&LfrXQyFijRb$g~l-?)G zH$I&9uvZiPtE<;iBx0qhi=10N=c+)6w*xhuW@_B@_RjaNSO=w?)`aYccmgMwX?n#y zC$0e|x-Z1c$*<(BN1M3dYBb$?M+zcg9aaApM1@a3sDgJ5M|e>7m^Fs*S>NYLF7e_w zepJ_k-z3*cao0=F*0TDEk54!M%h{M#WYTaur{~jNmL*N|EWPB$XJ$dNwe|6Lt)kvQ zDkq+V`s+>En%KzOa6zao^#&p-dREvLY!ayImfdpwT*{dcM&38fq4oa7sAxhIF*C1c zw!HN`!xCr6S~THeOHys;%W|u1o|q~`f-PEgx{&c~wCM8MMBP=pfR;W5Tb6w|vw@YX zTO2>1iDQK8+9F|%g|T>t@nPX)EwRW){9p#>w{VRK%9#SHfy{rG!dp?6AT|#nq(EN!;VLzBSMz>8GRMTd z_xv^Tc7p{A)m&tw#B3{;XZQoDWr*Kvp|Bjt5bywFgn^Xs#-P$(er19AT2a;@0*c7@1$3rsO%jTyJ;zDsB*q(5)h6$L&hh}J?82R!9u&; zC${bRpspnAi**<;iTgDh4Y+`RUozFthF!pL27Zs^NBn4&ML8Lv_t?9M$WWdO|K{^p z%lUoaOAxz`6az46m?zl6{w{B|GAWi0t(yHFF_%o)PGOCF;{pc}Av7jCiC$>-hVQc`9ehlm9IYNbO`QUwri*q$Q9&ik73q@r)~KrzDa6Q>Qm5Vg__t!ZlL zv>v}qh+BIuuEz&Ep$!SQ3hN$Bg2N|AvG{{<#-7A%K97`B=cKz#D#s@wStV(J&SZ%e z?f7*$;PgG!9a;(ghrAa&-O)Rhd@9e!n|tBLsljfLExB5ziIi zN6|fMMf~8>2pM}vnGSyY%|6*HLr#LE&f<0G^U(zMWq-`AU@}W2wAkWSK=*C8Za9p^ zv)QUQvMu$3KF|0cf~1I5*XlH7XA&zD0Ig5gd@??-KD-Z(;P#Y{hYBu;dCHY_#ATrF zMEFfFQi8bzfR;E1s^O(}^L4^@=SrLN7uTktw50oxRm0x4E*HLU_EQQvj;KH-%`Fz{ z;>M7qlmlMdDZ;Mh?ofYa)0aREX}^@DH~2%YUtk?+EUE{bUq0*9wpuI2D^uE&hswb^ zju+S^r!}`;0%PHwH!H3Xbfnna^Q|}DoY4urx8r3V!lp;DH5AU7z9aBfrMJq`zb_sN z6t%%uhe$k@Z_1_ggb1WCFRfDT?~?;iy^6&epvr!m$XeRC?{f~Rg0Y)_{+ly*xf*6? zWRxbB1h4YGi7-AAV+fnXY^LQbC z)a@?DyT<8yKXtFk1wRq5ianz;_fG-*U-V+hp1vv7VJmA{X8xuI3ORrJZLWEo*3^<5 z^yxDtP}`Hxwe^u{UFgFb4JN+(doj=GbXU{iC(Ej8++-kBR!UJ$2U;j{r7;o4C1veS z`47qrM{JS4vPA*>z`0n^=2&CfNw<6Xa&0^D&)*!`DBz#*6eJ_a8b%@?;>AkZHG0DYg3CPr^Q000M!DziI4009v()(`*y1>6?wUH||q kAQnk_006##7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrU=dTs8UO$Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0686.h265 b/samples/h265SampleFrames/frame-0686.h265 new file mode 100644 index 0000000000000000000000000000000000000000..254689db27b86646c00e514e0ae27bffeeee6277 GIT binary patch literal 3008 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 Ccg{Ni literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0687.h265 b/samples/h265SampleFrames/frame-0687.h265 new file mode 100644 index 0000000000000000000000000000000000000000..038ace66d3a14134e36fdb059262235cfc7e48e3 GIT binary patch literal 1909 zcmV-*2a5Or000330o8H;)I$OTIKgYi4uF6T0e~0yQ9X5y4jAgL z>^S>|I5X_!PUqZz|NjwE=>K;HHdKf9!vRU)C0p3-aO4F75?n0yA#G*vBDMTHzkDrW z@XT9hP#c2)D0Gi}U$N|B?(UXkAQsDQR~$yU|NOVAg1+t8#y+r4ecv8&r{m`0_cuE& zCJuYCS}R0APW+Xwn}E5aP4`HM>r5Qia5Bzu6`g7q+G zKbEfgl;D=(hOc*E$rVn~*$KLfz!4NDeQT0~m2{iSamf0*yk2D1X=87z`y(VGA!iu5 z^44nIdE3O%euIkOG380J?~;HkxQFlHw+{~k7{{Ay;_@r4%h>*WT9DG$2za#7zw`;* z*V(PtVnh;XK{^YXO{<%2eypi<^M9Gv^gzZbLVT^McjCoKt8PT-Nj*Ci=*hyp`MTg0 zn=-P$4KB}md57{^a8j8;jzYSRQHtd1-cOld!>t9N8fTu5IMk>jKPDLUzYVJ;Q$7*7 zCZZf9h7xpAsQpXYVdFUztM8RytMtBV2{&Rt=*9adar^?s?!jnh^j&HurC#$+veqZqT4&qV-{WSGLC1{)_{o;S(LLPhX*Mu#pNphEOl>A9>=f+hbQCkconvl4_F6 z63_`VWxr9?H2Y%xv_QJLRa}qE{9x;ID*>pq<|s8CHi zWrVQ)v^|*UpJXpup2ilIvn#Lan~ba3yBnAmIu<9k1>3fFeXrZ^pGvi`lq*QaP7AOC zlIDtl0u1M=Q(69MKScNA0$I1WZ*al`H12==D_{Tq zQ?y)i;gn1%7sgjV()&-3YewjINnMELS_t;!T{G@T30!C$Xn3-lu_yU1x#_)+{25YhajtvxIr^Dh?4ZQ8V+yaD;+B7j64sfz z+&ImrBdm_L)CTFfMXd>&7@3&TjQYk*5MJ^J0dsCLU#hutZ#xaZatPrgrkj{QU%&oJkW~vc#4pj( zKiQ)cIE8ysJ%xfXzpm%2g++4&S3L6^zs23AAnk~t2_I!@5POp9;Bc86KYfhDU zU?~cg@x(V_qOf1r8#5Xc=$)6Ly@WX@52XAKrC&u(iXb|AMWz3PqR9iP-v~ZOf(=E? z*_*Y)*$PH6D*rOgmo7tEtJRyVhJegukU;(BVL0rKQ`gN?nwLV^3- z2tge2tI~h~SoNS8fEjbCpaH;7!~Z3PRnS==&>sK-SCX(MMsGd<00)dJvpYZl0TD6Q v5C8xL+!pL!001i>7D;*l0KR}1h5`TrMjlTH01gNtL?8elU;-fh3;-)&Yz?Q; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0688.h265 b/samples/h265SampleFrames/frame-0688.h265 new file mode 100644 index 0000000000000000000000000000000000000000..923f4884706e9334431ba21669bbbec6ae52cc0e GIT binary patch literal 2172 zcmV-?2!r4u8$VNa(D;!VZ{C@`ZCG;TB1;Da^MKYKM)X$^UNYXC3qnvCfpb0d$ z``p|t@PlLy-h-W&TJGr8UIzagWOb4D3AlbAGb2)`_+x55#Np608A2H5hx@=6!7v$q zq#SDy#6tiG$LC%^bxa)&wspD?JIVdAM<(xI|Mprob|xFluHM|#gNvE*=YXDrfR|R; zuVrUCnI_Vz7pPuF^_&K?>Soc?q+A^DpE|?2;!{)+CF3WhZ+w8I#r=1meYP)A7&_;o<4CBQpNs{8^d*anz}>9F^-$qz)z1%>ErJ3DWM5 zKpOhxE>0fnihugeVJ`R>BRZ(T;}$G)%W{qztQKl~txI48xy&tDNS8(g%=-q=5~)QF zimqKddga)(Cs?&)-QEqtYe`_o=!F4MeYxme>DI$HQ_eVr_&o8XonF z=29J}4V}&dXJCEDB=0lHstw3-w^pfD@ZVPrG82(B?NbmI;?<2wl5oscHl9&rmZPdLSYIpEh>9hp#s-mO+LPHhfTbA(??mO#1;Qj__b!f;r5Hw%19i+ z7ANrDI~BI#IEMKyX|YFg=!N=VWV{15xbp#{hO(FpE}w>~_aB zsZeOQY{Pi+^~x;Avdo1a{EyxK1N40##u4%VZTvI#{~7q#*Z-g2xMq@WPB^tKy2rc* zGQS4%JHM{I`Oh;Gp>l-q(r}VzB6c_8bKlRr9tT6Qb^_N=0F0*S^&?reP0%XSjHvwK zjRn>JIsYF1JM>+VTrqwe# zqUOO+_c#Z&7gw}BqW&GzRYfrvw`9bZG%apUzUs9#8?oTX*ONH1zyYoZ`;^&lG|A+5 z0;dR4vpuf?1uY!_|FjouP}z$p)ntnGAp8+A000%x zSZRw$#+DfoIk%ht_x#@%%6;SNMC3(ZA8-=;akJf}k82YDkM;2UPe{D)3v66a*YF=R z@c;!vx@CxkIH4T1ZS&TF!MRBLoSQTu5}1Mgr>WfzT= zg78NUibPa$65J4DV|eCqx@^F%M?}==9dbBZ-UoA7rTc_>K>VH%Fzwix&wsq_qC?BUHFfU_;Tb4VH8wGLylh@m>&SP+ddrEHtB*CMLwHm5y;0JrwQ~ z|M`pi@ya~N4k7}Bf(0pNem)=5nbcMnrFtsiug0*7>Jc6HP=`Tox8bYyLQ+6fHU^#Z zE;WuQE1O1c5+Cv*`o@Sh{&GJJ);rh@8BPsbPC^o;0u!JhBov#F8Ei+q*!U+NG7+tx zfe-q**Ew!v5QTEq#QtT%%M;ouV}7PHpK7>r(&eW#QhwIczQZy7|4q)|ZocVq&?Z_!?d-mKSEamp!?3WL4@6M8go4CMhuAyp909xsltluUg`e z-gU$UG;7io>pD^cM_=%7~HbKe7Ui%d$BmyWK^ui_!aR=s)eJ7}o)o%gZxb45F>< zNYa-%G>Wj^2^#r8j5V-;h7E+^SFJobo2!A2FdfA4l~N9b^Alglpt-RVYPD8#Z!w>9 zV9mi<_Z=3rnExRE|Nru3?B!w^bpQ0VJq)8bKv^Kr9{>V&D+ne=Z$1D32aGDSJ3s&d y5i!;f000Ht7VKUC04pFCNqPVPzJM2o0ssO=9#04W4hSJcAOIj>0wDbi04rebU?W%n literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0689.h265 b/samples/h265SampleFrames/frame-0689.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0110486a419507104d7ca42b4713b4d18c994c25 GIT binary patch literal 2818 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 U2mlTUAw(bmAYcL@{R{vrU>G!Zm(7!E(P6 zeZlTW+%r7ha4IGi*V9 z$5V$Zm;cvdxpvT?!=fM`W@pvj`STe8_JmrT<<{4Xv|tE{jYSj92pz%-5)n9jrl7I! zaL@DfT|>FizH^^vm?p3Zjs8wmE*d9_ebI7a1^#ng>*6@uX+GGCC1LliJ z3~T%SC48>mVs$X0?Wp#uS%JZ?(8cJ!l^89@u=XOyk;Jy2$~Og0hf#*8Gpzl%F49zO z)SYr)%7TP6_$Gp}d1y!AZ85@*O-G~r@PQf=qUb2a|`cDjR~Z-0;G^O#$O z8L;Kg-e~Uy%w8Pal2O1=)>-i1kybxYH!&m;h_aQ z0C=;x3>RBnuN8&s0_J;{o@TL2yL2*H<(p^L7j7`AgNOttyk<83s%daU@1q_T*xmN& zyL-5cQ-ni!Ah%R3Dck2<{12E&|8QZ-X|)QbjZsA+69roDU*i`&1vcJkMAz|&x8g5_ z(;kh3 zDg54*SR<5D?2*(y)EC%!lrhvY0Mifu?eNDj7`-{BIi?YnNz&fmBug|uV-O{bn;fv16sLUKb z%ww(Yu(S|L2jSjAR5$BRfCfmzdkA=IB65M>bsD6<5O{=<7UU7WkGd%w?7Pf zjkVCeL2np6tPHi-Z!tN9PQ1#37HjMbf!}YVR6vZaZw?U+a_}pB&7bLOS#8E}2#AL3 zE*xk3%nOQCa12dqR5Yhd_trW3enL;wqPK3)!FMN*=D!m12k))7Ae6xT4m^1Cc>Pu& z{#zG~W8ZfgRWK04R6|(-BlZHw>WiNeLz@q)Xm?UcKcOG zJLFLj5kB#>W!MU^6!#$l0sK$=Bp(`%@IPr13bsJIvT9fxfal|KpB-5u=X$(nJ2zV3 z{D1+prl){2J5ppL#0zjF(SU}kJWi~>udozPr*o$K;l%yL0M|~Rud<)9+mMdh> zz~1K!UVaCZF#SffhW7(~fo1dOzg1Ah&X&d+f)x*EpAU=cF<6KWb@^FJv|HDKi0fYD z00c;BIcruhn3iC)QBEpd89hJ*#k~zqDO~k6e9FHAZH> z>y=uIV8@#sxVf&_twBkPw67WJkF4}elb1hcybKW*m$h+rw8q#`+>8jQ(V=B>lRgI4 z&N0W@pAN&%N;;mmanLRGq9N$B9%_T{x}#^p?h!jRE?y-~JRn>RWaKdA#g zsfC)Td9p$>gU6p&qkwn+d;iq)B8`!GCPr^Q04M|ADziI4009v()(`*y1>6?wUH||q kAQnk_006##7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrV0ea`Bme*a literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0691.h265 b/samples/h265SampleFrames/frame-0691.h265 new file mode 100644 index 0000000000000000000000000000000000000000..06ebb52367ae8aa825b2720d60bb3ae830b6f34a GIT binary patch literal 3263 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0694.h265 b/samples/h265SampleFrames/frame-0694.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4e3fef6f3afa1ce4da8359b2f3f4368b71bd56f6 GIT binary patch literal 2352 zcmV-03D5Qb000330oAGh)I$OTIKgy51Dl`@0e~GT-5qUKwXCLkSFN@=J%cs!b@9_BsxE$wRsfjC~U*Qz-|9=&m*;lv_KW6te+T1GE zTbhkHrsBRm+-tXO#<@S_|9D55FCYKq^`dhuWcMd*DU{>i-z=-*H$epssu)F0oB9e| zzwneJ2uQmJmM__kNEU!fFsFlEnnW5&%xRWme-P+2Gu$JnbUoFgbLafJf*Nqv0F@t@ zK3NW3FnZ>=m%WQNb&X@+H4Fjb@cKAEFab@Kh(b_S01mPW^i`*O!tK4ZLg!+TH1K9JrvTX)(QPCV! zZ9DtIcvw!2`p$TK77}Q zNlL)XJFf*L@OTqNnuY2BmzcGhY1okCDI6+zB{*dF>GlT+=8F49ji6^{yd^4W>m)Kc zu{s3>Sc%_zC{2l=S7Lnid4QNdC%dO;GBoA&VPO;`^~!U~Vy19#Z=rHzd!{o%fCxD1 z4KMvb!$^qWiHhUaFqiW|8+F<&H2ZynWA({*3(8UY=1W8F1(^d@qz2Okh71{O5^jJ>rZ(ytKaPGGZiAxxY%2uqfWC!r1l%e(!nNNu;x ztq|IeTN!#-GZQJ8toA+bT1)6rq7Y-DsD^xEK?4a6$n4W04_gAzl{HZ)i7?2)bYe$1 zw%wS}LJu?eRdbf>`)sQ|%dd1)yNm%d!q2C$eJt%z_gfUyb$;Z-*e?rbeI6zyg4rJX z^S}7D6e{H4_Hf3vRdoz0S;FekWUVO^H`~viiY!ZIiEV)gq62AUazhWNqtR<0Ql+;2 zIOEioqG|f^wzau69&F-<86$g%v|X}Kh(D^+fEhmAga9=OY-$(>j}#MIA^x-?JctP_ zt9Z`)i>d%u0>6DNUy9~SPk&=h*}JT^f`L=fi=Bm?6>i4$v8{XYwW{|DZ1l_Dl;-`a z*&KSi&+nEwZ{T!JSeyd-6xk;R_1-fR><>yFgTUIM@= zhrA^h|6a7H!A5zRe*O}#@vU5n^uIboS2_$Vm?Hs|k01Vad}rkB3gQ?9bV24#SWK88;UMA|7k%d6 z@bxm29cyFA*4hSRAQOjZO`l6~Re9i480j~K5C&M1lRiVG67eqO^Y_&={EjryuUkch zZu)3cc}E;{V=-iZb^x8uk!b(g$cl`)!lbNLHsuf=zP8h+u8tuWHx17pV?@=>y88Se zRZuC_hg^0@ddTp=D!$H6jp%Wc`_X#Z>r!r-8vDzu~Xlhi}r5<$Kq~IOfZ}KXGKC&Wm00ePI>z>ujG}tY4sW{`JN@}r$o8Lf1 zcHU{HAuI1UxtzjC?SM=T5I_=F3e=ug7ZGam)px6ls@OSQp7q7>d?)dAMlm#LQb+x7 zhRyB9tv7pU8HxNQhncnkWa0F6!0$-yi_@LW>AD9+W=X%SvWTOLahk8+17cN5 zeu##R+PZQ~5i#3s)WGG1?MlW3#37op8r)-~loa&OLBbT^A`(`QVO&$9@fj{FWvHN3 z{>CD3XW8LU`)TQm{?j^S91Iew4?W$r8X>>?$}W0DteEBu{Uk<#Nur>IqsPr^YUUhOUh^WGLWnGKPmLbL?!cLDzhH?X6RSzNaR}P0e02FCR#gr-i zyvd!-=Q=#$RN_KrXS)tzUEjjM{F<0m^649c2056i z-_`sskl1w9-iSv22PSqDbOd!VJJPyKgs}zSf3%cn??fVu6KLq%fXrl|1t)j!ba}!K z69d9SN+H?_GI!`u{MWh?{$O_}HFn-~c@meotJB+~2c#oO-?~of&cfH41HpR`J3s&d5i!;f000Ht7VKUC04pFCNqPVPzJM2o0ssO= W9#04W4hSJcAOIj>0wDbi04rc0V}S?& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0695.h265 b/samples/h265SampleFrames/frame-0695.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ebdd327bd0e0a0f445ccfa9d53256ea010487443 GIT binary patch literal 1954 zcmV;T2VM98000330oAep)I$OTFu_`yn-z$gj=z;B50dJ@Gy72a!f%y0Kg zue2eD49=Phc&i+#SO_xA3pUgd^F@3selQL|;il`0LkJJ~kmL62(imRzl>m(7!E(P6 zeZlTW+%r7iJ(WNSc(B|%7~F}9YEnIEak{JRr>6rsC7%h?tkX|`z087?Z%;8aW=?|p zj;9V+FaNH^a_xYDi(Fs0Zdhfjz7*h_W!OH^OM{BY0R^j$-_(Y|zFXP73i z361_vRW2GQihm<{u1Q;LCZq$%9uZ!!#KAM5CQtlWL%rJ>ZCv5-=YiZ-Rh_hwV8;;$ zn$&=#n$P^{PNOygY~_`RKEfwQ>m2Fo9?lSAHu>>C%*9&F{)bm$E3|8NBR zuMdq5pI(OExCN;Ja{1!)yY51Zp!jdj(`t0=$mHBDl>%~Z0QtC}TaA_UDU6hVcIiE8-y z(wJ)!9|FmboUfzd;BgVgXe?jg=5lI2YOS;S%0Re2)c|EE#jkHk{aE-!J|JSa%rA}l zIe~;G!UN$_PvDaVy*s4eI{aUBQHScf34UYiW00V_cqi3{6E#DbJBTghuzC)GJVq<45oTWptBYn|q4)cJ7j;Tyib+8` z$$T5=)aQ&shf_pN*=2oy7By***17SZjOxq0z z^gl0q2-mubqn*`w&0$l2r)K6|i-r7bdTlZ%$NGhYxoqAaRb4cAh-}avHb=t?Eh&k6 zNs&^DAEde(){q!VslMIKb01gX-$TsFS9n^Az)ue1?(cPlpn?uR5Bf3C->yOc7J>up zQF;_*`O(0Mj7axblGV>#;**9;XsrqTy`umk^aSmc%buF*Ozoxhy{rJqV{MdJJsB0O zQs0B>*k$v9$+Osc$*l0t_nlR=r5QxlkI*h^&Qz)OCT|pCym`rBS$v~;V(xY8B!GST z2`2I-FnkS5;H7VR^wBQE$%8Q>3!Z#{00944AkZHGnV?a-817D@Ee-$sjo1wLu0kUo zuRfC=G)sjL0SA?WbPXBHM{If21|Wzi3AFV0;B5A~J#wQ%4jnLemYB&ptzEm286Em*r)?>er-$^_@kph8IWo|$iL(Ht(*-Y(oYoZj&C=w4OR@ML5`U3H@Jn-gW|Z9 zKIlgBvjHYsf5FYW#h^ah@h(doYPG!JMLKC4!W(<4VKiR|YPL*{#%f~Z%nMYBI1A$r?biXKsY9EdJXYQOer z!y5iy9BO*l!--RyX^QJi#MV{V6o4i*Hu1iejq9{qStV!}=!Jw{F4Y2w9!Z=##3DMh ztUT@ytP({&q%t9BRu6Sgqnc`xWW79aSCs8~FBICO7CTf36 z4c3BEC$)W(gi;V@k$10L8j(Oy`WY%ZWV8za1F-$`m*k8xT-LF~*froLMsGd@_WAAp zI#Wi**#0;dAQpn94fyVO0Ut_Qv~pc$TM_Wf#A~v@iQlKThA{T|fF;aAX6ACt(lM~+ zA9z14_60)|m{rwc=c4{Ye2D*P#(|#p-~gtcw0wRypn`xZvpYa6z6?w oUH||qAQnk_006##7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrU>e-8)&Kwi literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0696.h265 b/samples/h265SampleFrames/frame-0696.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4a5f65e3309e7b14fa325badc209741b2bc098df GIT binary patch literal 3588 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 K0wDbi04reB!TLA= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0697.h265 b/samples/h265SampleFrames/frame-0697.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e273196a207c29176106fd4d00b18f591c455a29 GIT binary patch literal 1911 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 bh5`TrMjlTH01gNtL?8elU;-fh3;-)&78q?S literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0699.h265 b/samples/h265SampleFrames/frame-0699.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d6f43a77afd02d162d8760de4e781f4727936bbb GIT binary patch literal 3002 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0700.h265 b/samples/h265SampleFrames/frame-0700.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5dbd1ca4392401b1a6880f94b34e6940919c179 GIT binary patch literal 1873 zcmV-X2d?-4000330oB?6)I$OTIKf(?zy!R4_zVL8z$gj=z;B50dJ2IR3ti^7Ove9o zy8A*HaLnnTw~DdKm4JgRz_V>ZA2e6Ox8nfh4jOK_xK6z9saT@vnmTRtmn|7ATo7tO zgXjTmK6z$7mfz5e8at|X3v-lfMiK>Lh49eZj%Y$ZMlNiR0Vs5)RfPoAzC z^XiR9H*xM_^>NU95pk6j_(GzgE_WRzq8OCsA@}9=kEx`2=pK@DV^6?~gix#_Y*6Yd z6>_}s#{!?2Am8dP(1>D>c(i%{2WyM-%SYStfrZ5JiFa&ouoJS9P3OLXN+SJFch;az zRZ)vx`u-aEdq4~nGgWbtj}f#7cV)l{7v4u1!oYMciY6!l;?CqSU3DF}1TCx!ZLVH< zn#C^d(8urDn{qDsgu}t(v>M{$#!vLo=k;{8NyJtSQ-E~cz1&`@!d=1(r==7YkB2R& zE#4jy&@c(@=@;fw_iY)aD-1+c<%Gpee;FZ)RVk~+g`%PMJ7-nbH}xEP50*PFhyaGnHl$TVEj;opCkc9a8|8bVy>Vk>vFdW!6eRc zcmMzc0d-hui$}u21jZSXPyYY^pxCJ6cvP)hl71MjwPJv$WCT5z;pd)lf<$jnE6u8G zl(X$X@_hm28-xs@Dp^G%)+kB^6ark$Uj+cFD z&;ZF8Z&NIwF6M(mM0x-%By?;(RsV;;IMD7x5c1n3AahI*DChub^0I<-W6l%Z#0EU2BAkZHH zTme!U@FqrYJ}MEhZy9?E;6%G2=t|R0^kYfYK?3Y3dq(QxwwPEoKU>ls-OD7&a~T(A z(vmFZ2CbYK@sQ{LF<*69aD%#fD_ye)7)byC;X{ngix`2WWOFmYx2GFXMpV zWVF4RijkPRXZcco)q)d+`}h$@H@dGGL3inFyA8)KytLzdGSqfy>8JHg#R=(nPEjcJ z1a*34*?xdxmI$JjP}KV+LQHV^--0rtNSM?e#ujnEoe*O!CUKfA;*_k;WDDLjC6GLh z+&;^ePv}lGs=V}|gBi}7paRK+*MDpUVao8BlNTbnR^jTRUo;NrRcGK0l4ox6;3}rN zxG)2z+;>L>10O>dQng2TNf(lFrYKj;lE?#fPEnsY-HoNkA>J8@T|=sYxyrfWvhMMk zf&YFXBtiPkAdh~$E|N?WkfVtMXDTIIxVK#}PIHy|6Gq%NOd%!^RH8U7Rzc{`H*@NS z!yuXpdgmZ1(($N$fSOYgl1Wyn#7so$8yjA|KQ!HIw=h$kXEYuvvovyq_*bg2u-Nq)wxU2laryt^8Kw#J zEoh2h?YJh;62?qJ3;gEw+yGZwd#T&`D|z#O^9snz7k}@YBoOI z=jK8`cY*_@PbYEsB%H5w3WI}fhdG9v35v-Y20Jz8d7D;*l0KR}1h5`TrMjlTH01gNtL?8el LU;-fh3;-)&dY_C% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0701.h265 b/samples/h265SampleFrames/frame-0701.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3c264ada42a742fcba33a58e7e6c0ef8e41ecfb4 GIT binary patch literal 4749 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 bleho`j2y!#02t6CaUcL#zykYUoB&He+3-(I literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0702.h265 b/samples/h265SampleFrames/frame-0702.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f2b6b3fa599e42ff91cb41d4520df9ded84fd32d GIT binary patch literal 1854 zcmV-E2f_FN000330oCdM)I$OTIKf$hS_GAj&<+Ctz$gj=z;B5R%$=9G${#VMBI_QI zJib+)$syD<(Kw%B8GQx5vmLyb%q^svEXmM~@^2Uiugsf+Ln2cPyw1&HkT zc<3mO*Z=?jH{f0QdkcGP7a4Irt$=4f(c{uXIqr)4Otn5MY+>bp|1R}VSKYf9$JR~H zyW_>Q{CwhmdoYy$t7gbx6YsYOqI`1M1L-B-*tMf|CtvBv{A(V>j{7WZpX$ZO`w&Ca zKR%x>-9v}3=3-36lASaw-NE@c)UYjt%vbz6(j)3hX|YlIj+oG#jj$<779(^G>QrR@ z2yd>}SPr3AUx4cG8iGd@?}Yw-E`x7mX3T6?natSrD?h+#>>wLPBH16_Pw}wZ0aj`{ z8P!tA?3@a}*Lbl~vYo4lLD=iA7=7{Nxaatd4dXg3wSDlO6f579BW-xV3L{aYJ+z zkeuc75*lS_g)?kEiR%7!bM-v#WZ-8d`u`Ddv0IascNk zamf)*TzDlOuYvg#8+}26#cn`CQPe?GGM>ZFd(Z_Eqt{}uzv(vPVJ#)<4i-T(e|eec z4u1!`Btu3owzQzfvz8>GlK4m)L6DW>*w5-jXC9S+@~pHLx(-r0vIZ35T*DlV+=?`g zul5a0rdPNmzyI_z0aXg+)eU=p%R+FK%niib1&UKAZ`nq&X2ixi&5GZH zVQ~Fl@!#2E`#nDg|9|Ik&mO3)J;c(XLpk!jHa~xlU#k)>`K9o9+3olhfDnO0szRc)rwbq|_!Ond zr;6lYte=U}?&+8ncp$N*!z^UaV#h8zsQ_=kN&HXnco+tscNwe7BC6@pJX9k!X&&OT zv23%Scw;LeA8P;tl^jCQ9@KhkG9bmJ>xL=*B;Z%TtdOVt z))m9g(de-aXYi@#5@ZBE502@8B`0IHQSU=EyvW0hLd5`Z36YL#g!xVH(d>lI3it#9 zvbf*Q0u2BF0{|l+Ss>6K0bBu68So}XZ$AZ&;Dp?sqk=HJs(*lE^Ts}QL^d*^Ou&!$ zg!?BkEgU@JS9L=|b?h>{iq|IjG&mp$AS=KVgjG~`Qi@0?B0A9yj(GtviE*GjdPCb@ ziF&I`%P_cG0kqEwApGof46l;ws!$4k8=3yDH(u&S6)6zSpajo>hrc)vi=th#5vpDS zYs;59@0)2!mK>+Bw9i)Rg)>t%u&TT)gcF7z5-Rj(8{ylO_!3YmvpYqNv|e0?nc=_v z{=TdE32**NcisJ8QzI7h)@10C=5#)u{!mofgtyXQVn-;OSzK~9Mmy@(4C zS2GL(+G~2J_u~H&l@W^^J%R#gIw-k0!kpD@9T6r`8t*ZUs%mP)h~$CZZH1iYFbn`| zMUuD70YTV**8ZbIZrjqKfU48a7%<>wB^&9E3uKRh5{T_6gU&h7R3x7!=!s2bK|xHC z0aGuhWQx-fPsfzS*G6;T%leI14sNmT9_XY!&181wkzeWI)J$nFkEzYwIH;Ogdx&E~ zgwS@qfVL`6C1EZ7v`zu*qya!XJ|-G?Zs3?*rl^~}gw_N5$T*2m{(Qqpq3aO{kLPRC zISUJP$j4!$EiWxwJDiH_kXo<-ljttHNIk+&az>@)7U*B$=;g~s2(vyV1)13+1t!uI zG1f_2lEoDtu->+O9aKFXzvu{Npx{lPFxPY9CUb9&94fd->a#!XQdBvB=XWz-Fr_AL z!RtG8P}`V=cV;~o*zKcfvH;{II@Yh?!j^Vf> z(UbZANnLH^ODjMN4gdkv6y^xZ=P1iWhiO+#`%XrdBJ2J+34i;yt~9cE3n($x5DC8k s>3|mOUH||qAQnk_006##7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrU^f1XGynhq literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0703.h265 b/samples/h265SampleFrames/frame-0703.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4710eadce19f2f7ac9a5657492e100e4a157194b GIT binary patch literal 1994 zcmV;*2Q~Nr000330oC#U)I$OTFu`AAJOqJ`&&X7`&ENJ?s5LGhrX8-(vSuo2CQ#JL;6|(sl<_*ax zUfAAppdjQ}7{VZP{Qyz-Pcw@R4<_uUU-s9Ru_mb0T*{YvKh)4^>094HDRF;euY%NULZ`0qZo=a$!3S7%z?#`yy(+(fI?_2W5wro zpfC||^<{-wrMQFpVpJK@81;ao=TTfhG0=@TEcQq!jW#S&g6^ShF}Rfgw_ptyQihVj z%gMJ=sg9&o`>dyFw<;iwKtdlt7Zxa}-E1wTkC>E*mQkDt5J;9r^UR86CuYvGXR~y( zpI19+j+PBSyPN%kuf$MvPQD5AYHa^vG@tMkq(0&)hkPiD?u6kh&d>|23Uvdeu8#61B+rOzbWWLI=iD zAv;}&o@Jg&r5lpy8}hVz5kK95VxMHbk;?e2>|)=tpSW1KfiHp*8;aUan+Velp?tx8 zCDK(Tg%xhUe%H-($OCsonYE+;k^8^EevhO0!ahIkzlMI_<3Aeu|MUCz3+Mu6{fIJA z?9(plOtmHZn8^Cqwu5bZHi<+Z5SOrr!eu`|gW3Y$xiUT4N;Ic-R+#0LB$y@TZHb+Z z3Jyst8r}8r^pfcdYHk}-P<8R8&AnO-7sr=uU&1(o@>Z_JSF{l*g<`IR+37ryX5Dx#J;zzS|y<>i7hi+ zRh#3Dm=3zXmQ4BVh6=%}BNlZ#DQ*H;!cW1Lxv-vBT}X;^FgV!8uR=uc^zTo1~cG&=>g8Y#V@6 zg4V1Y_H_i@Ckc)$8nq5c`o;+=(sK6a3E5jXytU;Z8@-~hrO?>MG|R?Fmo|)q6ecAF z5tAd)z=!^~b|p({WSaaz6zfCg%gg_VMxK6^@ruu_4!3xd9vZS0X~q0h2ACPo$wqxEM@mk*C!lPDrNV*~+W?ortxr%|05%Qk)*d>J`DNQmKzZnP`&QwcCV zfaQgDZkX*JnPjg8z?0oJPrFIAs(a{az@P&JZ&Zij%Tj{&0~6O5d(DL=r%j2wgBP9U z$fa5d^#6DOD_$4{P1F7o(X}O&@|*;M%sbNSV244vSg}1`64=#PSa*KlbPRy~cF_nd zMZf4-FmVPevCJ&Ll)-Sc!|_zf=One5*)|wWOHhhWo9j@~w#R=GwO^Fbg&d#lZEE`O zqOyQlP$=Pjaz9%!c(EB1gK`q*-t-GCt~p*o>`i3Lr61VK3fVYt$Gx+g7F?5RKtim% z)PFEK@&w7R53gd4b^nxyP1QKrQBjX6$%7nU?)>v>1*+RKUN$TZZEe&%5jL-ZAdb#w zGTPE86sgpVV80S*#ftWlR53R}tk3Hqfpnxq(Bt<_bfbYA2TWao!i?Y>$cII`&c0rB zQC@TgnRT)L6+dO1BV)a1!6cQSGT;DiVzo4700L?;)({BL0lOCLUH||qAQnk_006## c7lr}=0!AKB2mlTUAw(bmAYcL@{R{vrU~5*>n*aa+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0704.h265 b/samples/h265SampleFrames/frame-0704.h265 new file mode 100644 index 0000000000000000000000000000000000000000..397cc2adde32191764aad0208fa49d2e7a9d5094 GIT binary patch literal 2505 zcmV;)2{!fs000330oD2c)I$OTFu`A~Yy^Q7*bV~#z$gj=z;B50cw3bXP9XpNsj{l= zB?phHob;AGD^C0?_~Y2Tgx*dc2%ew;QVkY+V-Z7t_l^J~zjX!8y(6Dh*9h4JYXVLg zj8&zlA_xx;E#3|O7#cjGp+G=E-tfdS&N9X0QpDM-+%W?RJe1rkhgdZwz}48=8i$e? z>R=yXRU~Iy+%cZmjS66m*0dIKY}bbN`rmytfsIm&ooP7oB0NDN4Q6J&~}s zFo`ji!U0TpL&X`TlauRRM(xnKOc_PfAGw#_?2hG5KOy{dRZ9;LFsw32^p6Ypt_4G5 z_3}E?OFL_wu*{A-H@99xj>I-TL{ z%6SFiv(Uz*h0x9DtWbDnKFm_FtEWUqeE9aDX$>a_3#9I8G+bS+l)VF}=H3NZmjLzl zNR!vtEBgFVntzwV#I*2ohBaBZ4%9thaIgUgXU!0_#8!T0@_h5)4;_RQx{!)7edP4QP4A$_d*ZG4|-3dO$_z zf!+W2fsFWn3bh3Gk8Ff+1;gP=^I|wi$Fv}yO}LIgbUVFbe2U-U;W)y2t|41HhZ^~Ff zw6&C!AI|2vI zFo6Z@->sRBzP-U1Qzr6&FLsM!>xf13?#S?gV?Ps*vPT?^K?fysDD;A_eGb|^jMelE zLHv70@zBqJ00Qb*X^8)m25DNm5b)QI-~Ye=`y9Ltp`0!{bzr{dUyQ-|SI?`BOY!%A zT77yuVh_FZynhSxpO^p@BB@QepVc{`g2N-}Ut`f~l-Ir}*!R884*g~JC#2q1xg>-& zbCx~vV!th(T-3Td;@D08V|n9T(-rkZ>MO+}v1DBM2$CfEj`<^tQhQ$K;VB|tl7&0} zxbVGeigY~Fm3Ptn&jH{KY%@@x%wabZ?Rcsi@n-k~f1 zzj;mkVn$Ee5^lQ5cR4T`ifvpEg33T^)0>`1;}SNN;tIFc=J)HYb(4n1JgG?rQ@bIH<`><#-Xz)_)FiAOkUvs0@Vl{}#?O ziT20ul65}nRFkRTDYaRr8?}QAwbFnQUoM9jRQ@f|l?AJG!Vvoz)J5nR*lG^9)kxMR zVOabCg)}|xz=B`4Ub#g1AeDI)!qL`HK}=N3`!06VH9&U(a*z^T<6!n2&y#&d5KsT> zr_;S})>4F%9hqdfDjMxxqBeWc1)Fsgccilx%ET)}T2lgYnKLv}q! zTlako$ke@>>cA6sf?n%4IO(@1X0}p%o!9peShZS3#c_#2d`- zZacIDiM2JPhwuvgBXB`%)*{%{&vBgwk^q!bh5vDHxxB=!7EWE>oA}{pjJvbR5!%&d zrcDx)8E?aF!ZOIUdY;_gzJs%);3JQvDfZTFuo%Sn z>;<;;4U-zik)Giv!XQ@<2aa2T(aLiiW-pWN$cMnte!AJ7)RX088u$u(WsO@0a6+8CPr^QTt8w26e_bj zb4IaiT2Dw{>)QVR|Nq+Qf5cbO=LRK`yQaq@##J)Sv#NHiW1c)PqT3*3($gB1N)kX1 z$)TL1;Otg|=GDi9(sPzjP$tq0tmRcqB(`~2Q>aP|H$*(Ql z6=xsTlQ?0iH0R>2I$qLntk^XI0Ins`4P`JRxRlRG0V+BnMm8;zY}%V z^l!@~G8nMrMtAMd!c_deX8Q!@sa$34mbVOGHYR%zIfgw3%sk)BaoB$8P82*}B|T{U zs#`{jyUKTcf%a$Q-+)91NGiu>sK#{Y+-ASx3`{aW*KNgm!BLb#`Fz^lwtgWZ@|=hA z^WK}!Y9b& zX!t2H5#O-w{oK*_U@!)uhKU!a<#||WwnP@&2RZY0$dJaRhI3~WkQkYY(mT-RHLsq` z>Qd&vWv&={fRI#j+z|AKjdBLJ8!%YX*|!>TY`&)Sic3KQoXjA*6v}nM3X@HJd>`b; zdt&E`sQM6T0x#~^*7rv%kyPF&3CF)v-^kC>65zu;RYGJ>eBn1_vXkQo|2*Qyl`?co zX)$u@!->cSZ)>xRpgU!zJhWC<1p|fIm@xa@r#5FC${U6;tS+%unWWg={!N#h7=zap z?EEu?A~hcbfPI&^#{2s*IUhaAcku11Fiyqt*yZQ3@A<2SEGeTgb+4-7D;*l0KR}1h5`TrMjlTH T01gNtL?8elU;-fh3;-)&KN0fevXvk9*h5g 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 I{R{vrV2o$eB>(^b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0707.h265 b/samples/h265SampleFrames/frame-0707.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a141271204210facb97693f653b7012d77779a69 GIT binary patch literal 1777 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 Z00KrHPY3`G2q8ou03cujApHygD`2zjCnx{_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0709.h265 b/samples/h265SampleFrames/frame-0709.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d60f9ff3fdb3fe95606e39e44d8342b6e7875a21 GIT binary patch literal 2902 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 A&j0`b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0711.h265 b/samples/h265SampleFrames/frame-0711.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bc375b6d6286e6dfc61e5ccf877343a87a302e08 GIT binary patch literal 3091 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 W9#04W4hSJcAOIj>0wDbi04relK3!M< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0713.h265 b/samples/h265SampleFrames/frame-0713.h265 new file mode 100644 index 0000000000000000000000000000000000000000..354ab80b2dd99118b45b0e50076fbcca3536b633 GIT binary patch literal 2139 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 R2q8ou03cujApHygD`0!rCf)!5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0714.h265 b/samples/h265SampleFrames/frame-0714.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ef0c15e795d69bf2e6a6b6dbd39f96df88704ff0 GIT binary patch literal 2997 zcmV;m3rh3=000330oFxA5(@)XA>mEC|yk`zIK1`Tw-H;9GH~h>0I)C54=q){wFK;20azi2R7wT+D#JAREou?O?C9cu*f60QS6}$+nw(DhW&fw~adIgqF zT^Co1!5l=c(3tX>t3#`@Aacn@Q0rv(8eaY@(jf2=8R^U60mPlzS1z78u~_1y428HC zL#-te3Cl-h*RIY?J&eCt!PR3tsf zKAkK3>)|V@)Y;A~)Z3)A$4e41uc`IFG1ljnpDy<1EJ3P~T6H6S}Q0$z(IHwCw>AymBZt&-b6+`qSxW+?L0&T>|ak>x0}X20&ix~QmYingvX8CD$$@nI)HuzBqDIf3roPA58o?@6#se=u|sqEgDW#$Z(=HjY} z`vYq)qK0#UF?Q!~=EBHbffSmN;)f!bxz;o9Xp%2K?i((-BnfoZ*|!ae1;c{+EXH^C zh9MtPviBC>Mr<85rH_-8Np;)-K~hkDH#$Lme6P~zMfSklC}a%=39oovRLId+UR$^m z>I!^&AD&Qlx_xS+DrdN~XEU`ygm+=pz56`#=mv$7f|1RMm}-t@0Q~*vQWG*cYCS&S zn7!o0Nl97&@stburw=^xAw($`*`nwGZQ<%9obvi~k&Vgbyj0q$-c{@Q7d*bi#8fpZ zJ*hB&Y~c1p|C6hUd2@_QnMMYbLPBANfB+Z}SZIINtGA4$zyE*#_)U5iQ?B4R9ap&9oY@Ey{l=yQu}`>_z}&pi~sWZ^gPgL8_99IsMgpqka*r+)~L`e=bV4oR3=_CEi)`8g99?&dpUv zn9T0R+n_fuZ|6M6&RRr3KDE!|RM*vuVdZMJ>Guj-iwX)Lp_9&mCS*#{LtE8vcti?P?1T zPXlC1tMPp3RHk%7G^)JVMj9KHi~ZsKg%N(4g5Pyrizg;#fZ7;%1C~m$oHz!hDsU`L zBcYG>@DC?cZ`ATG8x%#>&aLg>F&ev|fZ*rNT*;MrtgT|^S}wIrGcPAJuOM2)8Xec8 z*{`k<3~sM1z+m*=7t|w`@w++CneKT&bY>EM@7Pnz=_J{nh)UY0LLd0lg_7tmTLDeb zr9fhDss{BJHuw1P>)%3GYO+=*kVhU7!hCZmX6z}!-v<^rQL+==VsLEJS5V?#r&GHf zSrfJ@zuqCwh(%q=v*@PlO_D$Lk-~;4}9j9k>Dj0u=lZM9`ms8>SzM|JJ|i zALc)h{px>v^DpDSwfb%k=KnJuqHNEkE+4=CglYB`@N?%qodj-Tfp1>3dQ2Y$bbcW@ zv)c^TjZJF_03n(?61{5QH24Pyb3XlgT?+_J5!NB0Y@>`5cjTt2P_us z0Y)B&a-{TB4qdORU;q5ba`;)Eq{SzgNhU~iR36>G5rLb?V1Jj?j01a1sJf2oXc77x z9Q-%}$LFr}$p@_c<=qrrh_&VhlYYa8=HS!;Cc7Ceu`(IE@n6Yq)!beP)U$_QK0WMc2Zk!x>69!`8C5k-W6`tYtAk`w z<0cSv$MMDfX-U8UEi8O5<#0?;%G1YKxKJKS!@Y3)Rl^|RKf+=QSQMc=DNWF8*)YUn zZa;g{#haq$@7a^nf?iQ5)A{KVWfmm>^vK0q&o(?=R z_Js2-^3I|{HIRkO+<|sqk51DL`zv>9`Z-@%6CI~QjxYLAW>3WEet+wQnPDSxHh4~0 zD|AtJ9HOm*(x2z+-lY!mlAH7K@1k%Ct|A4s%wOVS*_4ZMEmqw9JHVQd_62&;7b%n! zF}nJFyhz?uA1@3R2nuoNc|01gNtL?8elU;-fh3;-)&%eUqS literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0715.h265 b/samples/h265SampleFrames/frame-0715.h265 new file mode 100644 index 0000000000000000000000000000000000000000..03bf55bc27b0eae5dbb74963b3fb8da3d6adccf0 GIT binary patch literal 1960 zcmV;Z2Uqw2000330oGCf)I$OTIKf*orUZciI1Wrd05A#yz;B50dJ?yL&2E{E{^@o0 zgfQWm(?M?)W0flb23dh-+JZi4uZ3^M0mvLQ-EnAP0sk@_flY9O4o-5Np`4g5SK?2& zQ+w>La#_8VKl6GETss)tiHd4cJzuW6811K~`UxeU3Dd08V8Ff1f|PGhF)NIn1@|3J z9IjvgU5e$~0RtAezyf@qS9|BoWCz+2k#m=CN~)iTA|^Ey(DNX72{9}JV6in}h*@;A z2O>>izdc`teWLbvFFRulw;XRrRqYO+5BspF``-ve7jkbn|1bXC`JPDZf>kfigZSZ} z=jghJbEACcKF=^sU=thsoT^+jPZa(}w_K98*iA?WkUS#2VTpogKunXh|G^IS>lJ>v z#BVw!a}LKJP)bpTuf6pX2Hi^!xSjt~dS$Q^XCCZBt`UK!)J8ITj2XDe3b(#Hxr`s; z^GaO$tX;KHXm-7?W(4^2{E=}E7&FBy=ck){zSTP?1j*+l*8L8HT+K%X%I{an7VeAL z$pMbPm-1K2?e+$GSdn_o{q6WT%k5=Su`Z`-D_+o`f)Wm!a^jfhR%>Sb5UAhhDv^;} z_5L5K!^m>VgEb2~uiLJBV|{r62IUI^QVlG>bB^j){U-z_LmY(wGKI+narq(w$-5mb zs(*7qLdK@;@lh?*)92#*`D46%=}jGp4}oOI&Q<}_@HmL$G!`%LUVJD-op!o+*@c2W za|llq>;)|DhFlBh%E~UA@cBK>7n0^ys*wA(?Pry$Y>)wGOA8NJZy53DeSY*Xp`yiF@z(Yvk<)3Ky!l$w!H=ljX`BCxAAtbjZXdDn9ZM zTmTBr$x;6|_1~DseAwWEJ@tzKwbT`tq$2I1BC%`kn=l&ih4(Pb|K~SL`%jVNO_2b+ z6nCwfOfUp*!;KT$+{{$|b-?gGVI%~EYgM)D#-OZ~;PJ?#+0968*BO}Akp^PSM%A2) z-SE0&(a+BWi+O61u(K_mr8c)jL6NG=;xsDJc?g!~a7J%J2cvV|hrM=gpj6wQmnI?r zK5+D7e57L%VzT-TWJsMwHTeJl0|54bSZRw$#%bL=36uZ7|L8UK_jOm?msK?5&n^9N7gqR|7t0nqb>Hjlf$piwv*Zr<=)<^%Gf4H zj4lmYA_(U;(~P$>qIe@WyT2}tjYNF3>oWQ)Am#U<0Y^0GNgI9~76HbGau{;9*&!c@ zMGAw>d0gWizePsUJLGu1`sxXT6W}Ax&I(c$f$HH86}n{GXNRns&5o+c#o7GCj{lzr z6=d7&?t?XVhFa|#d(Y5S6pD(mygdM+WZflGH&UR{?;Y|}3vHfGPb2b=v1>+N%mAB! zSs>6K0bBu68So}XZ$4ZE(mP+cSGSQ+UBQJzf68u6RKi6^ zr`2r$Ln9aCn~CI7Oj(7*V%qxM5qjlPmk5{i>NhXQ?Q5rpRi&JCjeIeAJUzFD@_kT_ z0osu&i~zn)CJ5G;CtgQNX~=ALe-Nk(xA;H$FaWQB7D)7L?2yYEQJ@zW(y<;usUMRI z9RPqgXZ@uAxE&w1azwDK`91EMy(ikXo~rn!GO||^)`>B0C;tq&1@+z8;fejJDHm|< zXO9tlDuQ{(>)2$;pARACO3!k2 zkhnLDY_R!Xk5)_h z*|+6p6{J(Hf_R`i$)w_3(t?(ue_Jz*9&;p6t$Ie;2_Z~jrc^GLb zFr8r}&>MiOh?NvhG`40CT0(-g5iT8VE-F8%L+7R>^(=MFovH>qk+~YhIDvldo_$6B z9gKj?A*W6wI}(C^&5&OL6Lwla<~q9rxIPSii9mdS1t))U_ea4Nmb?&>z*6a(Wzdfu zW^ZaBZ6&N)msODAtsGEuo-XJ@%g3tjAnuox9I@DQflm=EePUmgc&vZRS%6)Oz%`me z1#;@iGv~3WXrO&MJ5EF(JX)v8EQopJp`@wL)8!i^W_HQAd0wDbi04rdI1iVQA literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0716.h265 b/samples/h265SampleFrames/frame-0716.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2782253b115c2849184afa9684fbc1508020a2d9 GIT binary patch literal 3295 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0717.h265 b/samples/h265SampleFrames/frame-0717.h265 new file mode 100644 index 0000000000000000000000000000000000000000..21599799fe7e560bf8bb43ce932f46edf6e0ec4e GIT binary patch literal 1801 zcmV+k2ln^?000330oGyv)I$OTFu_;?Yy^P-I1U5NpfCyoz;B50dKY6+Jz>W`^ubM_ zTkUW0l1y_@gGyQ{5p|^x&$E?6KdXQL|28gSiu3qHUCp(6xec8jee8By(EpB5DA5`O zJkJWgBDMTHuY7G$@JdT&NJ1+|xw+YCFmv6C(OMz`cjT>f+y-t3|H}V?{2$cLzohv~D)}1n^>qGJ4|yPm zsD6DuUwU~RU(CcQiy^viRr`GMXsqB{3MtR-MtxCAFaCWgNava|gdF?w=Us~q#*TH= zn`H#E2m&!p0k4?7#x}bUw7@hkS9~M^R1?R`RezJ^e=HK6z&_MaLB-8eb#*HE(B$&b zRc?^b1OF&%n=plX>IqzeLrA%F%tZn1GGdFx7^5ej7^%-&!OMp?!&Xs+y8;(odKxZ* zh`H%i?j1 zYQkY{{EjvIu_j#T+QPIXa(|ngvTY^S82~)LQEyEGDV&JC~5YM#7f8A%jVVO zRCeVc)CmhznQV}3`5tQ7$X_@O@w5N{3%FQmi%B~KujeLQU;gdEfQkRzp_lR9juGNz zGOBKU?N8b0)mlgBxS$w)WApV$Cm!5;^gs=x{QAv|ayK+OQHe}AAgyMW{s5zvJV%TK zQhIjGlQJgglw=tLh+Ox)uR*jM;N{Tj1J`kd&sT>L-)vW6MpAZ^CHH?NYl(Y{eX7Fs zOkCpli~`kq+IRRdZv*yMG!9h#3D>K8F}|jOuHrXfNNb`k5jx$h0Sx&=4wL>Osu7R@you@BRYzw6Uc4_VK7OQ>EGFw9tX6Ki zIuEa-*56l?<#bo{6s1a&Q$Yd{o$c3L)g6GS*jP_CB;JTX<$u?>seI7SspG}(LJeuv zF{cX}s%|ThVA;zqtvZR$8M<=&TdbE+eSlh z7vinYQtCk>vX=__S3}zN+Po}nOv(qjV4F;e(YIkk|NS)7KqLFHc0mM*lo31)7WmBp zn5=!kn#XA3*e%PijrC^MCvi11E&~`|uYQYyG!k(e9-L*%fwt+%&wV zfMN2_*=!I9?$SyJ${YmyN=0I&t=&!U%==vN4fS1Y-a8=l}qcfF4f>01gNtL?8elU;-fh3;-)&HiL5R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0718.h265 b/samples/h265SampleFrames/frame-0718.h265 new file mode 100644 index 0000000000000000000000000000000000000000..17797e4c3facc205431f3a04e9ac440668d41565 GIT binary patch literal 2068 zcmV+v2%6XUM&fB$8pzKB3KIWRYQ8YW*s z5^(|OSe_=l?5-**Jh;?f!?s1OYp-&Jx*hjCd@s_F!Wh`pKqN13Hy56IR`<|KTwmDv z1SFCy_ePJCYgReypao71=p*8nE@#maN>;< zJ`eYS9|p)Nmc5`k`0@oQowE#)?=f$DT}VPWhX+sUb;_IrJvk8>kQV7Dl&OE9I0J=+ zL{GiTX=eEgQnHL6u&5sBd_qWB=wsFblx0P60q743bUMph=Y1@5+Y=Z&2B)@(IvhLK4!ZBq*f&cLT4Q$ZUq^ZFx(< zZ8rp1iE&eC;(c*$`uO@ubf2~d4VV5coX6uf`qlc~%p9u_G zuppH!bFjR(&A(MBWI^Y1yJU`E@_1iyU&(vCush2T4^gtUpMd)szf#$U-N<>c5gCu} zDHIKifB*qESZRw$#$z=)AWFagf6eiHr`|rKPDGvY_Wtj;83x)|_OUPc|6acj)E_&; z+ZPNKd;c}@00lz2Y&Al&rq$Mblo*?5>@Bq6^YnHH2x4r%1~(&|)g)}O*65z2_R@C; zxW<%JIxn_A=#Y1t*nfywu+@1k?U0o?raFQ6FMajQgS}v=y`|n_k!}D`*YJ z0DyHKrl&-LSGMJ&Xw}mb+T25sO*)g#EffJR(n)D^3HqZ?^L}rJM&+_42TCdNh$ZoE zfLmT04S)l~Q)UY>7;QyHcCuxn?kmUsLFGqkD^SVOt9~q)2Kb*_!yY9>q5(?!>=a4V zL*n%)I7b*LRVaiEtzZB$1tLq8m&C{BQM^9z`Y9g-GkFfM@XUIyxw`0$sTr*xn;W@0 zjbII{Vtz4(0pM}e0~u>sztqEB_&M(^${Y)<&pCEHZ-Og_#w^aoe9vOcnx|?jdd=w1 z|NeyW|Nr5(LZ9t4Aab+t0%BPp&>sO@0a6+8CPr^QTt8w26e_bjQ;|RcM={nA_pX2k zEEepwx<~* z?G)lD_x#~D{8}}^M(2I^hmq%C$=2){Pi75ie=)Ric%Dhc*`>hbvAR|n!l+uMNTy3OHC)* zHj+?eP7wBX<%U)&oJ0r)WFvH|fvm-!;?ydIu^U$&x;fQ&?0>s7l|XmN+iI_=;h5?% yB>y(izQvFg(oc}cMBo5rOW9(3KoE2r70dw<9#|v*16CnKAOIj>0wDbi04reByy}nu literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0719.h265 b/samples/h265SampleFrames/frame-0719.h265 new file mode 100644 index 0000000000000000000000000000000000000000..99b0cb324a0cf87fa737638dbb66c14c07192317 GIT binary patch literal 2632 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0720.h265 b/samples/h265SampleFrames/frame-0720.h265 new file mode 100644 index 0000000000000000000000000000000000000000..016894d6686b44e4667fcf993bfab61193c44fff GIT binary patch literal 1883 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⋙̸MxbAP3O`H1 z-eHSmC*akaJjm{QHW*4^TKy}0a;fYNE2erl%AtT}OzF}I9WAuIf5J2sytH#$Kd#}-qC|MAtJ00093{c_GCC>}k)0(8TaLF}5_z41yL z%PU6{*L^OvPS2xFga@EQC_+RW$K1cR8WG11Bm$+nkx;+>1xyUqTkHWERqJ^fGsd)y z$)S|B5D-^7F!??U`*HJe1sX{4R;@Y|hHRYQ;a!A43+1fK61QP(6w(w6XMD(eXV1Z( zBL;JpX$uV=^KAi4?F*NVD+|UJII*0_-`q1Ek+_ECOR~$joUV{-{x&}@k=ID42=x`9 ze#cwpi$-5zXrXsB9S*tB0#vRWL>{@9UjS9c* z5aE|^Ic3k|(c>VF4glvIx)9(C1snh%g!7>zZ_crF5CH%L3|S!19{>OY05xDHMsGd< z00)dJvpYZl0TD6Q5C8xL+!pL!001i>7D;*l0KR}1fJgPZ-I68hzFEzmLmdC3`>{GL zArZHlxdd3b)8W_RNcno$O4%KS&DR%ngTKEQT8z-}KmYe8s$0#K57&+nhXIeaA9eER5jc+DwWReiKcOQg(4mZS?Rl9Sa8Ox3-2EM2 z;r7u{S{?G9Vww~(-#X3{Mw+~JgB6|`&78GWLsk3B#q1Mh^{?~ ZzzJv`S0n%g3?W1y03cujApHygD_}*5l`sGR literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0722.h265 b/samples/h265SampleFrames/frame-0722.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0f57645a1f6095659127fd3a5ffd9ee90ae96d2e GIT binary patch literal 1967 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0725.h265 b/samples/h265SampleFrames/frame-0725.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2ec721d667edff8608896fd28d494b3d6d06f915 GIT binary patch literal 1950 zcmV;P2VwXC000330oI}a)I$OTSixHIq6C28Kn?={!)!zXz;Q+7@~8=}Em~YY1&mK; z^Nb~%8dpw+A>=xNgsgR!nPA|$P5@_4ax$-g0P|D72h68J50B65wP;tuO$ z*j?LXoxD_mDK?2|BCTKEmN9?%;9D&eyS&-^krW+4O0(P-lMY+Tw7{~IyAs)ByYfGM zHi69`e3Y0IGK4t%4M=iVo(cv1O&HbVFa)^xSLzI2@}fY6iG3n2T831(uOPm^D^LG= zi27oB3DkGx85({2CRyM{{@~zq1Fyon_~lnTm)_11TQtzVIJUCwh24TnS-J-j*s|C`_A&{^~&X`M^z;felnTvv1 z`8VpQ$wR|BzgU#E?{bnbvy#B7+9gM1Q$Mx#|14r6yIQ<{v3==SJkQ>N=_fWc)P_Yg z_Xj4$4x&%rE6*JfLuV4>Jgd0M+LZexy~x$7CCw&6$&VmI3)|dF+PSi-v#7-n2g>Ok zy)f11>usXplc04)`l8{oro7*91_LfYy!Dy?E0xo{0l_O#mAL36DWA`V0A80%0x3*9 zC_7a-y%%qPz})|JP0G?-pV0{wi(hovfY*c~NWI6e;GL|z*jftVh)GiJHN$31$_3-n zU=h=GKV6>=cTij`tS4Ywk-~K%c*%YTNo=+5Tmly3mKp2ip71nM_xFA1rczO-DA!V1 zvZ8wJy68@}!*W)^4ioD&8~U7EjU8dMI|>#VW1A{|t9=>)=#Xr7@jx`-0@<+xIHs1>Y?xvu;z(H6=1Hj(GofU+_~eK?<`Wb-D+>sk$FQgCw30@XyoQP2R>>cFvn zvLE*NxTD@r_v?Tgp*e}8FthM6Wr|W7w3}@3^^;l=aO1lPM8eLe?$hh0IVqLLwfQr?_ z`COyDkMVH1fG+I)t2hz{R?~v;H5C3QT zk!ipFQCTYapgvTSdZZ3l(zK0w^oZVC!VA)&i>gA#`a%la{`W<*zbv7p2s)x3FaEkoDjs;Phk!?2L?$2iNo6BXBGZW?YPYIu#z;)n72OjB8`+|H8^?ZI-}}3<+GA@)PHetwWCRK%<_<%XB&Lb zbw&U3O;fQ6WA#6jmA0s0frV(oz5zKSK61AD4oyRT1lZAc19LQYd6r6F!ZZ@~*qxz% kv0tS();7w@v1(ZIQgFgTBmnq;Am$VR3}^x=m}~$pARN%ar~m)} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0726.h265 b/samples/h265SampleFrames/frame-0726.h265 new file mode 100644 index 0000000000000000000000000000000000000000..110edac0c55390ae234edfd4f245d48a3938a3b1 GIT binary patch literal 4074 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0730.h265 b/samples/h265SampleFrames/frame-0730.h265 new file mode 100644 index 0000000000000000000000000000000000000000..13e0f6212b7f8d8ec9adc495420fa200dff78ec8 GIT binary patch literal 1927 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 fAI5j`vxe*yW$0oDKj(|`qxGuQ-77j3-_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0732.h265 b/samples/h265SampleFrames/frame-0732.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2943c4e07729917a49a4601ab76de2ec124d51d1 GIT binary patch literal 1715 zcmV;k22A+?000330oK|7)I$OTSix8NTm*pNKn?={z$mQfz;Q+4xNx!iTuM&G0xn@7 z4W>pg8%>b>uoR{V!m8!;KFZ$ zjc;@_&`U?!Q~JM?@x(l8gBN~uV4why@Xz{?^D~<}kNwuCQ#;*GPptak)QPpn6=)XS z30g1#T0c8pSSpk_{*zo7HpUnwsyk7Q{ndKoh}M!m1D(u5l2LAcPD7}CS+>?Hc;x2DAGf0r+s-U zy+3fF;r_p#IhMH`*s7tQ#EHS!Q8AQJMGUrrCj)SKfBpOF)^XG)$5T_CR$gk7wz~4< zd7U1N5~rEqenke~M_{-+m3&(q>Dl-dIh0&sAB|R@os0AvXCPN;38Iv}n!`O7*q`Bw zxDEYvLhwlbwcnRLWnYBWn%mWjshWAe`RF~tONfy$Oo+4vQHW*I|0Hz7W=~QI_kJ`B zPe@d(qajlW{^xVMazuh3MQtVFg6ZB&i*SkjDX-a^bCx9TP^fNmQZD;xymnE#Suv^9 z;X2_tf50|`7zpQ7yrH+0+T_&fvgc7_<6kka%s4$Rb+qkmh@mDJMX`D$O+`>hps{;~ zvb!ZmkM*O{UTbJF0S=A8=*+!eI-`Bni-HXplveGehr^x(vAGB}A`3{RyO1G(4J3N7 zo!5j@n9AFT5RpuH)#Q<+jT+PAiYzrVvEa3MjS^>S%g0#cu?5(iV8tv@>-xb{n-e;^ z_$;ga`||qLAwo$jSSn85U;ClhE&u=-@K_!m&-fqMk`c%~FbL*OH3I*%NZ=wL`13N= z_hG2^k6iSplv%C6uqiB~_Kt*+E(s={@NZ5?EIFK&Hf%3g))S?-B_E$ z32p*B1eK5T`M1qkcc1_NfF?iK&GdAW?36@_=?8sZ)BAh&noz3zo!U?E4wgzlqE~xf z8>;RpE%CSey}r3nl}XMQQG|_k5hL(xqub}q7xpaT0&6XQSBZ<0w@9c^A^1>$gim5_cnF-f* zp93~A`Mt8{CC?;5kAgOD%^JfTxf`CkhP5Ep$7*p=d}_*5NAC~n$Po5`X|2_ z63xB4dxjD66a)YO0{}}vSgzwf000936R;)GiKYMm1>7ntjsO4y0NQ{tPkjIY0|WdP zKJownA|MsBFaQAWfEM&R00HkNl8p2WF`hj1Q{wZ{hq)Rb@ZsP)GoYgu@5RjgI*R~C zbCMTUwmQXyHPj}&-o@FA8ddI>T0AI@YNU2J{5byFM69|stcDakCf29tj~lZ~eiq;W zdB73_VQk(lGG#>w-G;^hGi=T{MJk)B$p`!&(4kJWw{|6k?Bm}CYv-#p? zA>FspKt_TK12ow{h$odk+mocVPiA4EpR~jO_-5Y$AzC%Y`22? zdQtlg%+t*$8kLdFuVA~V({nf2cjgbUUs}rdHpFnomkWATm|++`7MXEmfT8vS)EG$* zez&>O%tx*Rg7wdTqr*fv01^T{=C)0`h2ISTPfq};Gur>*F&$h=jc`cxXKBaff4~77 z9P8V~@?pB6=C>Buenx~@I`gpOf>GgTsU{|2_@tZrSO+(>h$YL=Dgc7q4a|ST@4?i@ zE*qRcNn@{D_12TvMHa?EYBltMRvbeo3gnF-W+c=85O`_e01#Qg78*kTyQiIvZCzsI z0|NoeiA`YH+ZOozd>$wz+sG-1xeZ|#*pR{RMM6_zBeWyppBYz7mmhs4s7y_#@Bl(U J22Y(J2`I&*NoD{5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0733.h265 b/samples/h265SampleFrames/frame-0733.h265 new file mode 100644 index 0000000000000000000000000000000000000000..abc549148021b87a2f1ef3e4d2e06c907b467a07 GIT binary patch literal 2125 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 Fb-?+X+$R74 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0737.h265 b/samples/h265SampleFrames/frame-0737.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7abba321476fbed867e405055eaada27681e1121 GIT binary patch literal 1804 zcmV+n2lMy<000330oMWl)I$OTFu_++SOkFJFbo3#z$gnKKyQfgdJ?fj_21RPhi>x` z_HrTb)vy2lY+Tr-ngja)emlK#9#cX$vDt4!{y9Lp;b*Y)D?WR@ui@c);cAbDQdu%W zK4=>5Fhf7X8U?roWP|8mCk~u5 z&^}KIzU_zirKcpyFaCWgNava~8xI+3xA+100;hj@e1t2og1$e$=qwD>_-#|~aPPON z6l{#yjf$~3n=d72_zi!A0#c%aSz+K1&Wykw5aPJgoepibB5UH>#cTdEy;MwpM<<^Y zH5M=jlz65lEfQ#B`Rk1yiiNE_HDwrEupxEVp`z$0i=LHTQ5CF=bgal~lv}X{A3N(N zaH#hcOi?RZ@{gjE#s@5KbGltQPlvhA(dvjRt;@-8pBAJvxN06Z(O7_-S<9 zk9ZkFhe{m)R67SYEFBNXwK8F~otU3J+a;!+(jrPskww?BzThxB(RX;9;-j5pe_nU< zk19*@I$w5p&o^?}?oCeQt-#x#xVdim^p-e(X3Adrp1^!|AhP1J#~TqdCVm9Y3IVL8 zr^;Gry|cDaW!TjZ2YUHIbR5ebEq~w*;xaqNVkKkaZQ#Yvw@jPi3Z0mZ?)O>yF>P9R z5dv1pc*%dipZuo|_14Z}v*_|W{EQ>*!1<(k;Hw%oQwI`I*Xy=>ln1tKA?(swHN|Z@ z+jP_Ocg&={AGYu!i>9qdrEb&mvZ`vfNc&o*Bz8B2-9m*MNvpgOM0N2?A4fe0 zfB;88SZRw$zi9hAys8ktK#gD~reF1rnTdb>+8KWx*x?=~Q!1wC-qih`jZ=001_SQG zF^dh9o#Q!Nql5(kR1QY1$lTEBMkORE4lLm!yF91S)9@Ow*Z=SQ?m7AR#}VvkO!N?^ z=MN%6NvgaB1bdhN(%E{fd490lvR8Xv8?Np-E%CSey}r4#v3Gt5(JY2^sUQwf<;P>= z?(_D9NbpDs(0@6<>aBaKRAe=Qhz^L#-n?{Zl<)0+-)#C-tAwFSMiF3lfEUgOK+D`f zEuAGK^4qvm*Qy|VRm0!e6Y=GQQq)=^gt!1J3Hh8VUpB{S6y)b3#5JG7r<`lB5co#J zV*r4h3S+I~nceXK2V1NQ|DY4${I`W!Chq{OOnOCDgI`~4GD7R-AOHX>AXy;L9{>OY z05xDHMsGd<00)dJvpYZl0TD6Q5C8xL+!pL!001i>7D;*l0KR}1h5`TrMjlTH01gOZ zhLjf0%!6Vl@H`DXlCl!79_DUp8Z7HxKmz@aJbe@uGM*cI_M#`Fa)HDKVlp2m1FuHj zb!3EL_b+vu=utNdX&0Jk8tCNgl9X!U^1z++(Ez=|qpr&z(A5bOxEH&1cb^8jdOcu1 zL|%mW#;^NLf^ITw>^i_h#t5)8X4RhY(pWNx*2{das#8gH zZS|Tg7ID$WC=i^wB>)rxlGc!F(6Mu7sxvwUIKQUiKT_zcHaC4D2uEa}tQalTz=t`t zGYPf7n^$goibW;(b>q_L$0inK$$j19+RJYt&6bjuiLl8Jc5i+Mv=`$A=7{y zbs4u(cthiyOk{;3O_3+3=OQ%pkoU&&7oM_VF2HF!MH>J4w<0^%=&2H%!%)UmwyRl8 zr{LK|lygLV20tJ6DHqIIKz92S@O;~5n6dlzj=%aoi~!i0fW*0WyIsj`_6LvtN` z6dW)z2q~z zmH-4C2`-O&{2hTNk@04x=2PkQFnjWFqbJ4-A}i<)gLC3;EIvR>9U&$#RYc|dPaS~6 uC}-BOAg{^`;cx6AXh82Yr4^h-hE}mY?vB5y&jC&-osN)RiB;&}0G@!GSZ;Cv literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0738.h265 b/samples/h265SampleFrames/frame-0738.h265 new file mode 100644 index 0000000000000000000000000000000000000000..651f12270bae2741665f09264d47859231cd42e6 GIT binary patch literal 2070 zcmV+x2WQamBP{1~(eIBYtk#)@+<7&MCNu|Hu z=HX|A8z6S{9NiMnSw*JtLLbOo!FUe{f4@sTTAMf$mrDQtsIR@A^18LcA6U@o`9BVi zpovqxe})WxY<{}a3zMy#ZiEii9ov_ zYrGX_tU@>kj|fX5n;tSXf0ZYCv5lz#loQ(Ec+wy{m@zoDD@5&{>VYa19QgR`Lhh4$ zI?x)zDa&kEp%{qo%NM#@vbdBH+xC7Qggwb{4%~{q+6?hs@Q_cRcadfG0y1#4IaxCd@q9 zq)E61OFdi)%NGXI6wBy_JzyzDR95T^feI@I$%+z8XVq9Nfpa5d z4B6kfK>MTz9#-qjd_#XBQdApvT*Y$~G=(CHXlV*-h~5}WqWj%|w3QI2uh$HPf39wZ z>gi{Kz8>OySgV~>`t1+bj^@kA95VE^ zkxFWkhjwlH1DDYWAxtSHHnchtzqU)A*;;8VkC}dY^v1c6H6MX>divlPn6|I}zwG-y z0X_e7dVUhmm(FjK&}e|`o^m?}usL33lmv3G(9}YN5=b@ApCwpq9!Y`Fc?09TdAV{- zxZ;Z1vQJQ*1uEgV?rjo?J|Qn*5BU^+a`5y&0~EDjwSi4U-=V?Aa68vp6UwsvdXlVH zlLBMz`|PRNCjcS0>elZ2W~?m0b+SUS9o5A~V|Fla-@Ocv>l$DQiM=%{C8x3s$Zee)?qq5poT0csyO|!8;@M zn%$%|o*n-KR3wE&Mg0wBXBoFBzu$b@+1^I9Q0D8b! zA3P2Y(3aF8Pf!29;&gzx<7U}x`XWM9(BN$5_zG8bFZTLReJ?(ISzwM+qPfxBzgyGl z1p{6BG{syR4rLLhk$wvCh{p*S?*oF9bwbXJ^7L*1=sO}rRU&cLXM`@<&2jFt;X<7D z^eMVXf~Hoi4#$(WZ7hrfLMd4zcX-fKSkBL#fB#9Mf{F%W>B52a0vllrP!*nt5i1r5 z&%L6`^4EC$&&cbd7PEpv)xRcn<&6r?3UV~ays-UcjC7U2$KmWb1X-thulIt;PXgq1 z+UXA{rG3v%%|!KKRvl&vwLI^9?5M$yA=d8_W5W773^>1vfe{$`(7A@|lz->}UG+>7 z9D$t4ha~OOeQfSwHkJ|!0-C^%)~}`17!i%qRX2`^*ORY2!Rt5hNj2F|Mxi$}Uj?k^ zevc)91O5&N0H$48?cs@9X@h(utJ=HP*dLG!dTWdu|BN&C3@E+zORwEofg<1n8Dcx| z@X`o3^kum*a<8m6+eiO_b(!Zb$BpnsaQLgu*sq!FS(8-lMrJ`*s(vbf1pHX8<30cY z0{|1SCDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_& z00;P))eXg9)czjD|1zRyZ|g@M#flck?V9IsUCA2%x?BGZwH zqWK)}tvk&Cy=vugSu-C+ zwi|{JtcP}U|H~7SK01{n2Gr;M-fZeq;9U>nHwZT3B>DbsnbU{`hJAvE+*}|eVy3rb zc^c7ENSLBXjEaG{*X=&;Q0R+GMOT2wi{2i#9>$@}kc}WzXqWo?C3KGPN6Av)oEbm) z7aEV1Sg;gJ6FKK}kr%IjU2w&A@?N2nZh~PWY;0uYPlvRe^D#N6gie(r@~5W=5#%R_ zMTl7KLEvr(aj3H(^h{RxD}uAeby{bb(61W@73#{moRxWYkUKzJevzgh!s8|OvKa_j zDW^Z5I?k1BS}hYJN)NlGpVda4rau`~{f5*UwlcZ7S5w@J$>-udqbA;4?K@p= zFd_b|r{J#;p-|7H1c?X3XGl~VsC6qY&^l<;+W%zpLAh(G3j$8WJ{AU#u@ogSg2cO; z7utl*zd^ET!r=!JWRA{$s2oPowOU`bZ)#>$XV?kWf7eq;K_4=Z;hV5vXdq~_2YNdGAkrLCD zxVC%ka%UrAQdmF$g|wtPl6aU=>-NUQ+pj4Y0gpG^hOSgB%1S2DzYH*Dns5MmKvnzc AdH?_b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0739.h265 b/samples/h265SampleFrames/frame-0739.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fb1b7388eb0eb084bee4602d434ff9c268ed0bc3 GIT binary patch literal 3062 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 EuzXAgP5=M^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0740.h265 b/samples/h265SampleFrames/frame-0740.h265 new file mode 100644 index 0000000000000000000000000000000000000000..13ddcee004e2db1316d908d47f5f8e6eb9552df3 GIT binary patch literal 1910 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0743.h265 b/samples/h265SampleFrames/frame-0743.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0775cfba489c722cc9a8df0427b9c7e0f3b20325 GIT binary patch literal 2021 zcmVtb~^IbyUiE9kwPEHQ{AW>k@CqF>3Da*_sXk;pNSSlcdC4ZgHD9D z&$mfROidRso{WW_1m{Ud$1kzprA5(58!exb{PUm-q)y}i_i_a%_XaUPy z!f)^8R^&maNph`3thk6}mrTP7fNWT5D9vl(-F9ut6L%(LRMw5f&Cg2S`Uy*m`yU{L zl0}~A(eiC-$31iauG@M;1lKX2QxuaDe<{a2u)?c_hK4VH`g+usXqV5Do9MNc2xi%h z8lviCpJN{q6j?$+^7%22Iuy?~$(jpyGmJ($oGi*=0ZeuU)au-Xwx#Y3M-BA>y2z<_ z5$R#SB`d#ZYBXMhJpGPQgO9OS0`w93|1|wGM{^#>R^iQqT+5$q*I9_!v_$+ONI)BzIej6L# zi_O}i?zWhcbD~asMr=u+cKBN5=jSOifcO@7#f>)+);Qly#btB*lg`l$4Uc5;g`b=C z(-Zh_9g5p=9ays$B~;#YT=VH$Chpt?!-hk)WX~m6zBjFqy5qr!jFeLi`UQ9S_h)ur zN`HzxIv9~)sg`A*j2u3Z?%?d`T1r08-5T0%&|kvy5H$FzX7k{sc&0()4K7Hc*(7ef zAkp}e;*}>IvciezyBe^B7ZVMCQwZxhlnl-nZdED)nh+$0?GfuS+6Hgb##yq@)as!F zkpDG*&VR?hj{P5}==`6~ena%%MJLyX)wRDkA*gtLm{4*@&3Bf@)ld9O=gBg#vnkB~ zZWLde<@qrKU&3GU@&HNRAFzGZv;bh%w!*Hjw(~18(9lk%oMLu-7eiA`JBQrO75lp-%0PK=g*5Q5z0VUIxd&% zMtT6CYrjUAtAjzzq8xHBzt}Mt;UgX3V-jwTt5;-GLOPCCs(;n}yk6UwM; z2_Z3^M6)n20bTW52LYR6ko`aeTnvG63zNDMVm35?fB8A<@Btr*-g{hucc;@h5=@Ak zaY^Fk>f-e`;Ek+TGpWW1^`zzP&8-5dE-7oh05^L@U$vVNjCB{n&815+Wqu9S@#f*K z18o~u-2W6pMnQ5td>Md%0f5R{`e*%yIA0+d)f#`B^c-7v1(7H^QSXsKFVH#LuW@(R zfHqOiEwvMEi0)v%GGian)_M>Uwzak%<*px#e?`D@{s!}DS-LTn%ZfZz5USF}LA=p$ z%|eDS-_a0;00fe=qiOkMREs1`k`7wm`bPdkk4I!Gt?IDb_zzN-&QZ;_?AyAf{nM>T z?xXx?v`H<0NA)3yv=~BK0xr(+;yEv@;#FirBfPdDeqIA~pg%fgFh*x<7zuMJ^Z*pF zSgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neEWm5w2y?GobvifOrd z`P)k&kghW8nk(hmj{ zk3Cg~_rj_jL1`p*Y;DYLl2pFW9VNF{Y-*8yCGxWvRa0RSPcFrr7>YkBbtvFC$zV=d z<4kN^bU%L*<~ib&kqPN7gY~GpFJuxaG;M8An@(WUNDDYpr+FcOjghldYrm6Eu2wDc z`p^j6B2DQHNf!}p{* z(D4B$N%`%?z|yhi@@NdJvm+69fJecY+UdN0SWIvaGDIpaEDd6Z7Xflt!kMWGU`}T= ziT9IVbYvSGrEZ95LJ!AAta2l|e^JaCV%sm|+vH#N_X2yC5O(DP*nhgJV&4hQxKYws zBIMw7v@K?X^K$vS(>yJfoK-O2ww=Uux<;8!toKIxc1WMuyM^Z)KA8)x10ULcKBwYwhA!rifL(8_1M4w00RNZ D_Zs2# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0744.h265 b/samples/h265SampleFrames/frame-0744.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8827ce8e87ee57f343061c274f461480c833ed53 GIT binary patch literal 2538 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 A>;M1& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0745.h265 b/samples/h265SampleFrames/frame-0745.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cca5a2dbc57cc1eb8f1365f3693580b561d47cef GIT binary patch literal 1946 zcmV;L2W9vG000330oOtQ)I$OTSixG#s00AuKn?={z$gl=z;Q*}`x+p;<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_F03&H3-SaO!9GePTpTGWUrK^aQ=hi*r zr^)LO8MmXv)NJfrCMghy@;WB&kD?2N?#e4SE#+EZSxQ}rY_Z+>AHJJF=8!&0 zObMAn9DW9*IV;Zv0{*6qYVnu?Tzo6_1}}M0AVS2xkrypPEDS5heL4vR|Ku_aXMm(7 z(0OX>{IQw8RbG(WH5Xq$2?FjpRnH~&vxIo+k#H&Q1kKC&4uyJ>5Jk2QJD>h%%*G3XH;K#|- za=*!IS{vO0k-?&oTi-e`6nBm--kefamS^&H#U!zy^aMl^{-l&v{eOb$u=2dJpv^+b z>!zEs*xz5r-j+;AqJ3RilVXcZ2FuhHH~89563GK`F1NOu^}N_8z_aWL)ySpi9f9R<8<1-F4g`d)G9ex{-P~apY*%oU4 zW|`vRoDaXMv6h!yyRR>kjjZbElTLG_HGHZDI{xP1<*m8W?t!7!_^HJ~+B(;M!gquz zwOKIwFB|4rRTt`t!TWW|ONea1Wylq%IElP$00@&32I&g;drXIHBmvyzZ-6@BS@nQ; zSZ`e@{-)YNP7kUVle!afF8PGR!Q-?X!1kGkrzi7KW3q{-+Lu$#8XGkjf1p#b?-_c# zGo#!ILKEB<;1RtPE74EcK^vo8Q?OhF8ea&l01=Q_A9R~U`xCv||ND#nuAWOQP{7|^SzaG3Yo#pMR(m_e1A}`^DUdiTB^p660<;l z>7dglVMs#TcFXYBUHu6bw8+)eM|&55b`t1z^|LvD`sVjim@0+ZI<6k|v2eZd$FSLosaLoe`k0`5qi~?NV>=%k#F&Jf%avLt;5~Hhd?=IL^EhDx>wBU7laKxq&B-uQdqv zD<5dsn~Au$>qlxa<>FTh2jK9c1NiCv@tl0m35t%3%y5r{@mEWvUyPHs|J_7ss8&`X zP_|&AWUz~CM8P~Rt74Km@bFZ$%wLx))J(FzBT0aNx(s?r$SnjYLEvu;FLilLnvl@} zb=ruE``Y9J5$ljl9X@~tKY$3*mOZ6GQ9QbnYb3QJF@@fzwUp`3%oWpF+tSIo)$c}h zor}zACz1Gp)c~9W3N^-)!)>Qf*kedQ$AJedoTO4F48*aq&%XiiojFiEF_bY}PqV)} zh&K)GFww1a-6i*C>%eV84!0xa-GKB8&`t~*7oIlh9dUM6VI}I%+PA~8exvS39mVhx zS+cU!xSk)po78BW>np-ias0qNm{!Mj@r(8V3^i8%4F`!-w=@0!eaZuTq6^IW(O3IXAmzmGMpT*i z7rG_CVhDaA3?@IVDWeN=dd0`vk0xBvE9!QjtvT@g{1CgjBj;1};J<=G>i+{vkS@Hp zliNZ_NmFCt3g{3v@z6=C|H+ z{1P~HjkdS#R;f?!u$WpPTbNX8W;U3ClsVZUU~WtAP;UO}_4pzUV-LC|%l};^1CE)4 g@V=;NMMW_Zg2nZ=VVqKRQsJ_EHkXI4_T2ylY!0%;mjD0& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0746.h265 b/samples/h265SampleFrames/frame-0746.h265 new file mode 100644 index 0000000000000000000000000000000000000000..531239038bec911e42545f404485ca8b526fa905 GIT binary patch literal 3572 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0747.h265 b/samples/h265SampleFrames/frame-0747.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5bf12cae8446a7a51e0060ba125570394659ea21 GIT binary patch literal 1862 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 BIrabm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0749.h265 b/samples/h265SampleFrames/frame-0749.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bf1bd8846c1fbdcb9e207e2ce78210c446c2e711 GIT binary patch literal 2948 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0750.h265 b/samples/h265SampleFrames/frame-0750.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3994823cbbcb5830b64d7793d1cda54f179c6e53 GIT binary patch literal 1754 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0755.h265 b/samples/h265SampleFrames/frame-0755.h265 new file mode 100644 index 0000000000000000000000000000000000000000..babb1c8abb2d99f55848e9549fa7a7308c50284d GIT binary patch literal 1829 zcmV+=2io`m000330oRfL)I$OS(7{*2gaZJeC;= z`>CR8O?Q-vmZNq$RRXU5LMsg7NKa){?H8x7E=kkWv?vn(6=};;~LnXpUM)GHi&A88o#&{=1Ym z)3wFH!GNH({BZh^fP&E9ls^qe4u5O)CtK44HT~09*q}$E&FCH_<9(d4CuvZ z<_Ea z8@WN?*qGjd`hGE#O7xPMj#blI^=~yJNAa;x8YMPvQ+2sgN-!=NRM)&F^KR!`c`-D= zKOF8)!DBR3*Od}Px$5d$-@&%h3C}a$r$IzOiSYH1q|8P{hF`CgE@2AQF9uLalSwb0 zZN~_Um_Zgg`ig zV6vB|B_7L!8bg3xn*5i4Xz5K_|N$ZR{#?isOM}>|hG4+6x=39&(pzZMI6Z>{s9-}FO`Zl#jgX9Xr(P*0o{49G9!hyORWRdT-= zeT`Yt+Z98)N8{Y+?8ej|*6!b{UwWzQ7ivNRqNYynLX}MB^_XpA_Af#)$K3({Cm<5w z>moLV&QqOPy?ciV*AM^zC}0mj26h1Q{WPRM|L$Mw>%5rEUoa?W{dkBCpcO=bhq8L` z#~3;|)?j4DLXYU0FCsmwNZCQsP%GV9W+8)C^5ABj zXrTgqpm=WH1RCZO-cc*d0w~{e9Cpj;e#yS@rn7FxW0;YwkL#IfyQS-5_gFagK~b;1 z##-uf8{~~^NMoVQp0{=YIk{C{S8*}FP|k1C?Ht+`mOgdMBkjrpX|ldN3o$PcWUQY2 zg^BM?vSBCtk2(P2z>kTBzwbExkN|B!9rxe? zDIl`o1NtL5Km~j&1fUS`Wp`nYKu^Ax76JiQq{(DE7Zrz0o;&V%g_;=;a}2Y$Y2Z?` z{ecip2`%y75%aMdU~{jK4ZE%CpZ& zX-#Um1=U3CQss#gW3;PY!L+6J&tmp+jek7Cmmv@lL>Y;0rknmcGMA-HisGU7Ak1Cg zwZ~-jP1wF2lFxi)wRudLA4`TyIhdwQg^Scc-7+NGmRv#<#uBF@0P)f6mFdO;9Jt7Z zY`>&Em-!|`LAIT~FkH!)?<_mghJ`j~tf;&tRv+f4o-&BMMTx zm2BJPLPTNhGmS*ZMy{?Pfj^7NH^{Ou9Zc$q(LB}Bu?$yASPy*w_}?PR^l)b<%JC6a zhoeaKR)$aRutvK-f*g!4+Am^%7(-fDcMYfoyAY55&9gAZwcrP##2-KM5j;zzo9KN7 z-=?7Q#C@vEqw5D_OO^3WFEHGiTX`z6-l>m!0MT907&8F<{-jc>1qduKdR-4vhmyS8 T$l7(SemhMd6_5$N7683~hBSm4 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0756.h265 b/samples/h265SampleFrames/frame-0756.h265 new file mode 100644 index 0000000000000000000000000000000000000000..41cfa89b8a22cc52809cf09b73acd9d3ac1715b8 GIT binary patch literal 2757 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 LPQU|EI)DOR6xkEm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0758.h265 b/samples/h265SampleFrames/frame-0758.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d29382ad946f5fe603020c0965a32bda4ff56825 GIT binary patch literal 1985 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0760.h265 b/samples/h265SampleFrames/frame-0760.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bb875c75e265bdaf92ffa82645da4a6867ffe709 GIT binary patch literal 1701 zcmV;W23q+5000330oS?z)I$OS(7{*wi~|6mC0g_^u z`>CR8O%W!U!zTi??Gcsd1Eu14G&V&?QWCT;Aee^#DIMpEi1&ANU?hl)vilwW%lLn4 z(fiTUWS+x)J|0jLh#vPu6mMq&d8iVs3vxI^JAqPFOHU;yh7t@?RIr$ZV2wTh{&*7i zbUbFvIbabzYpL-ZIi9-w1gjjoxj};FozQPFt4?WRPLJ|i>IcedvQ=d1)~f5~9#9nw zrAQW+FdwFQeDf10n6Do={dWN(j4*;#A>ieARB_LuUKfe|Tq;|x2pQx<5iY~bzJI0- z4u7e|-CyF>b5m9Esq{sXqtg!yDX7kf?3sj{kBw#5P2ATggpG#)kqelJzNvFaE=Zsf z9@kvG-Sf1ra_12NZJZA26(r8>#$cyo=Z>1*(`2CE*-_UVuga}ep8Yp>>YVYjgXG{1 zL`ua+nbC`**Gaa0_P)bDEX=8Mgo_X@N!Eia{X|!7vPT2f_m4O28vU~B$0Rd!MjJEQ z4XkuFD&@}bD0q?;@)p9+WUcLWBENCDqu%N+G` z4Uxvma1R9TjccV344T(M7`rh)!DAX7OBt7ngvqNzY-XyG8PQ%?>Z!3CZYla{y!4D5 zMVMc^2^bO7)0xf}>M&v?&%FfUgS%QqRaF@{**SBLLie4U84->eXXYw!2IYKw1O~70 z_URk5ZTHo^^~%S30J*RC=eIFik6Z8nGE&!h2nB$+@FMI;8V~;nPZrC=0#VCf5e$+- zoT5l5P&WPW`GI9I3zaZ56ghH`K!khdDK%a5ldPw$sT*F3yLqwFs(8)J;NZf;9>P4V zK?UqZKYrxc=`L{L;cQm?@(1e6gN8wm*HJn(SRQf2j~G>J-1r}JtQibBzM6J^rY*BI zfElG*a0cg?h01lU*O8!cSpl8VfB*mr7!N=Ob|{}z)>W~QZpYy^!kQcZ@yGB1P5B)s z-JaJc%y$estt${A*?st9j2z%qm>Rc_Bl>QOz@KW;HeLXhbziPGI5dm|wvF_x$Qxg41Y-HWmTPSKbIV5P*j#!0{BrUYb9!WEiGT+R ze!Jbn7h)IVD%|oZ)|HSKh#dLx`AOY7n-NqAB%G`07iLVG+edl0gT+S{FB(PNdZ0>y z6)`f=?UIO)l)GsQJd z1-|6=W0t>iEt8J$doIxFQF8i{9VD!`eLQI@7x6(KMsxn07<|TH$(s- z;1_q00Bt}W_uv63AhO^C`Xf0&1$-+6pb+qwi5f7MP|xHqAzm4O!qP?_WdD;@Vq40- zc^3crVxVS$eBkr1>}(10qtEW{+FVc37H>nWoiQ-N7Zs?@b9#EF7n(XX7aCKI~?oCil)k)^c{!J#CuyYvIfqNp#& z-~VQd>?@VDR>TC=9dSe%nSP$i&qx2P9mOcns0^VLL~s>sf>@Kx9o$otjFXqXB|#io zZT=eSvH=90r1y>-H;Dji2b&#T|;W@rWt%f27~}1^%MrHfq(3MK(QEj z+2%~zKn9nB003s382`SZ5@Q7xu=AFYf(?r%$-~HYENNPTaj!V~sE!yzKDP2QyWBR% zKQX6wKaK76@T^;MoWz)bJ#a6T%s4m}0F0GLmRmt2bms+=nnpB7t;v@oos3qf96~D- vj>?6CkTju_up9dZUf2&hOaKAxcv*$`vn?b|XaQp@mQ^TA5DO>?;SK?vD%>>l literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0761.h265 b/samples/h265SampleFrames/frame-0761.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dffe0f60923b7170bcde26cedc9f8dc1388b50c7 GIT binary patch literal 2851 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 R0nc2!l6y1)ZVBgz0U_AQD3JgF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0763.h265 b/samples/h265SampleFrames/frame-0763.h265 new file mode 100644 index 0000000000000000000000000000000000000000..83c4f076e8e491840aa608a32fd1bd54aa4e9b79 GIT binary patch literal 1949 zcmV;O2V(dD000330oT$0)I$OS*uh*Y6axUDCK}~D6U5e(PF+?yYoA6$ z_fPt#gY|}^{wuJ1qnRx1-;?I)g>20W*MEWdXULWsX=6GQSw|_B>|ZrO0=tNdgDjXI zf5WbGsIei9x^IMEhEMZpFb@BvIYjwZ?bpIKQ>lLv0 zgZc@0>>t)0o(AqHXd&Q=_5+Z7c?;5?p0YBW)#K8K@+Dmm;|%WGsKyytL0EL0;c%i# z;lxTBhSQ4n3e|E1lz!gw{;W@%aj}V-y9}c1>2OHWlQdxQ^w{Srx2P%+gXkSp)Cqgb zJ3tIPJ<>VzqRbK@%41W{E*(SP97h`(UE?Qv{)P9Z$Mts!Z_+&M`5bK|XEei7TQJ5* zSNQqhKhdT(-3rPLF*rsCYVR-vzLZ`4LJ)qRr#JEmeuOURD{j51N9_pYO7)Ep#Qa|# zryVybr>Jzr7H4{Iq0UE75%2bV*o!vj{1pV+3@V~?yR8`sg%C!?bEW7vUMF%Uw8WlK z|6AXUNB+OZ{KvPW=nLljPv?IX<^31Je}VsxSYW3@9IrEd&1P1Ii=SVZrK)H)5{(@Z zLAw27@Fw*3DVG9;nvLjLTwe~oM-9st8K(8+I7Fuossh#i|N7t5{0CP*pX+@;yY4sP zLDfZ46OJ8-IlOAI94Y^;zcmWPXas6D?(lP6s%Z>w;IRC=VD-a!`$$y=2;dGlBlu7K3*k&) zV{M-rKq8AeTGjEE=WsTc`mB1yyJ=!fWir)oN&1GWVr~TC0QjEW!yijm^3a*-NQ1UDSR~jhk-ZR#gv20NH>5 z0EK`LKn8Xcx{y#5+ra^X(b863Jsfb-#X8g9=#J}Nu`TN{q@w&9ZvDA8> z8Sa1;_ej#(Q++S(kQF=wnQ?km*}LP%)x0`frLHK`{)mT&{SwEwo3oh?VQ7|Bc;vWh zj2@yy6SqF#L@JBmVWW8VD%+HtBZcxaAReTD_%t#}yH9^W`Ztj}kK~z|1U@x3S{+as z{0*#Hci9oq4;yYIs)|A15TZLMKpG*1keD<^o@4h@klk$yE|yiQu6)T#A*b~7R8 z@JBR!s+r;B+wUO^^t3#v-ZXjJ`>hVQcNXrBx<+|a^1M+_RyQzUVdjpk09Sodrph%Z zixPfApnlZ&DOT9@ma72BL|wG6D=;Nn$vmxPm6{!TZC;AQWIG2o3Py~>KSw5v006G; z$HWI-Os~2C-MRAce`%oLIm}*LS_!~(0wi^Ltw74aGYp9SMkuInGHp;_EfTCoKJ2B4 z^mi-N`>i5G%C>5;E#<+~_7I-x7;4S%%*=B9CT3H}2v|Q3jsO5jz!Nt_03qNPcaQ*W zKppqs0VyD|-~;+2IY0$`l24?NW!p3|8twmb_{IvV;=;Ri&Yj5+L*!&V1$<0IE#DN! z23?~_XqgDGbcR+GvQu;GgH^_R(J(mtq7g4ka_+pJt%RE+bm`R9SlkmM-`2L~(K8#3 ziF{xMqTSoSQ5nW7ZmiE3hJ^A}0HG!;t6&aSZZV}nOAJy8xA?`k1i@4431%_F1E>w) z)r;bEoE#{F6&t>nJJ~nTzd}v~?+OkliaGkI zrhke}g9VkK0^<>LGt%PEigd+5F{lU@{kFrt{o$-E%ewwTH{%OjXpDs{B&UBF%A;bEFCeya|;7b6JVb)Eqk6>HTvrfR*yT z!H^PtFQJ52MM|H714Yu)h)~V79F}MjgF++pCrm;gQ1K^(Kpfs{o^{63No;+^lpe<) z8`tQ*b`slWYuozOTOfTu2lE=s=zgP$=rZ8WJX46s<0}soYXETco?XAj$aQ#0z}6g^ zO_OcObMUAQzm9yB|HM$#DPN&aXzXr68#-fXDD8%( zo^9^UHa<2TM*+MO+yM3yI=#k2Q}9v8H6ChdjPeYfH`g_JPn|n)m?s|Zk^4q9hAhfU jI>isJ*ObsLV!j;Zk(S0lj({*(B^a03OF#&;WEdQ<)VsXN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0764.h265 b/samples/h265SampleFrames/frame-0764.h265 new file mode 100644 index 0000000000000000000000000000000000000000..91388f3c694b3020acfab419c4b068c322eec91f GIT binary patch literal 2777 zcmV;~3MTac000330oU38)I$OS*uisMhk#%T0YD%G0ESS8fM_>xe=f@S9b8d9fGz+1 z)>82zQ9(u(&+8sLm9FCZZ(Mv9(Wd}OBZeQx!x`o?yVh|BNM~<&7I(cxwt+n_j~fCBHLfrJY+v8?1(cox9vObVl)6IrP+=*E_yI$(;1)|FA5I(n+fq25CoP?4 zclkzTVt|tQp^kV{rt$wx_@e?sUWJ2uxGN_-4?}y|muSqAmEm#sL^1JzOzX|{N()Q- z6mQosZTS`q6o-%fTLHy0<8gXHcv53go1X3F5x{XDf-ye6OJNzY_4T;1J1UXIwd7=a z8D}OTr1F+dI%X2bE8PRHbLTLUH2eMjnSu}dT`5g~Y{VKRdWt&_vo z*{(bJaz*=NcQF>;C5t&oy)V8YiFk_>Oj%;~0Q9Bu0@G`#<99s7HhW-0zn zV1~pmDes2s+AU5-k3H8ne3#T1;Dbl#Z1@;X`KQ_K-ejQ$ms(3)OBGTXn=4nc>K@a| zfkHLp6Y}+Tf;EXJG2@F#;TdIYCeHP;X3RiWI_x0091hdft@E&S4XGtgK+-+o=?HM- zaT0Gaosn-qgkK!x$ux2s^qWCQ#f|c!s|6blXz`fdyyT85dV0g&ChN&<*F(6!*V_1W z56=yrL|Eik^yh%2*r$V2-Os?ofYCyQAjQK8k3ieqf&g|e z4GZopl$YVkMR!v)=t#F>If&;jy46q>`i*u{dS<8_-Ud`h*zI2eWrO^@lsJsaOcv=Y zY%I|EY24AO8J}~o$o{Rt0f#a;H5c>@>S+DYM6tU^LJT@uMoLs}zbzlHWPWR6ydX$> z2m;bJg}ppUF$rcyHaq$=hn~|m_NRGC61m3cYE|zv>B0C2IIjOIN7ovd7tR*BV@{{K z0{qYUTF3z12oC8?x$Am%K1 z{`sFDjo@uM&OFP{~m%FjmMUPzi{JYRbCO?j7b zw-(uat)EFI@^0k9HP6AG2LM_axWwmw{$D;zT4anMyM-md=hErZCw78+*>`AnW&;%| zZiSyZmMf4_2Hod?x;KO_={-6+NbL^X?!8BAUtDm`slT+|V+&D_>@^g4=}%3O;Zyd%zFR9Dr@ZpuEoH*)@Mc#O03m>j?0w+_M7M$B_bCH3) z774=~s5Uw@esoLw)K;(abnbudMfVpUfLM+kpsHo_D1QakEhR+Bej93wJ@^T3zY&q8 zWA!3U%5XE{T?j0yWbDrrXg*}A^tmQ}%up_Zu z$`uh*Bq3SW#m#$MX_r||SZMu6RPYzgmDEJyV;=?#&CLrHax^44T45&b5pXMDLynAQ zGJ!ns9u4*%REyf}mda5J>`K6tdil;$^n$eP$J88WQ2Hq8M)vMiErBv1KGNqoI) zdpwThNAwiI2iD8U42R@dRxXtkC?~}THg@pY-Z7GZr+_~WjsO5jz!Nt_03qNPcaQ*W zKppqs0VyD|-~;+2IY0$`m*>8pmX^nCJo!h5vu{VgI{P<6bfoC>pn(q^LsB!1VdhU8W z`@+`#i1$pBxO&0m>%brVnq|U!)kf^Gpo4apD1GX4+Sd+FkSvI=43Qy*fkfT&@BNzh zd)}`t&0lu0|Glf~08p=S9E-$kh8Eq90uQpG3 zi`fD+Mozp&I2LyZ`d3o@hk*(odCSt&%Gi$1*3V{mnnOFxqPp37C3;|`xb!XRaU=+c z;8!gArNE^3-+Bjq|HtCjmn!Q4u+DGtLv^D`$~EU3gXju|CpS7_g3IHzU?J1M zELu!uBF(E{R|2Kqc<@}zy=%WX7@GUeHyZ5=OJU%BmF%il27inv26k^;=i1d-Lew+fSi3TRNX}zw&LY%+MXsm^`Df* zUsmUer(M?8l<0g9GyuWW%fqQZ(^q4m89|`{`RY6{lPDnH$*$fE znj!1wvTQB4wUo(b%7e0?6m8%DYu{~+NWg#AWgcVDp~|Psnwc3H9?*l?KLHsp*pi#1 f`CGjjclnzJ|9<8!*aaLdQH-J11EvV$F96hl|G-|^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0765.h265 b/samples/h265SampleFrames/frame-0765.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2071c91e598c6ee1a3b42c8fc3b56fe888770521 GIT binary patch literal 1732 zcmV;#20Qrx000330oURG)I$OS(7{+jjspOoCCR8O%Mtx!zTi@16k(+6&X>8aM>Zs^X4ug)?#|!l#cHe58!w@I1$7szu#lO+dmKN z+CO$WYnRt|r^CttzF2#@AftQ?L90?#fo?|;=W$wHscRWz@WMfgN|a>p8B&QfbG=4?x&TM}xUG>e%>kV#_`}O?UZ0(XZU%QXrPsub=W}~?6j79n zhlzkKwx9g`21|Sy)wl}RYDH{Nb~FLr#CYArslQ^yFG1DPg(u*I>R7~pqL$8zTRn#= zv)~lNzf|Y093QCwY9dG|{jxDr@E-2cE>I=`&Pilzl3Jc%Ez~@~sDJ88fY{mKDY=Yd z#2eKA$f9~t$Csm>upF-^gct~kCfVEY)VWFzJg)2lu2y7qmE;l?(eLrg&)#vA@*-#9=1Ytg&o)p~)}ZS9slIQmL91({a76Cp&OzJcP7~a}}UuyiouS!S3Q!PZ_zM zloz^WDZiBLZ*=NS5ghb`!Vg&v**pQ6uOcHb2KTCiuRXC69H;ZHe+WEK5&buBB0Z@{*+6HM9`@^p5>&nm z_nM|(H6BoYsiWU;I}Tq3Z@%0w_QFjy0DVslUk!i>=sy2Ul@{ycsmePH#lU-{|1bb%jNAC^IIP2ny9q zKw5&^^v3(22e zUHLF@=08GWzB^yub;#(z8(8_s7Ra+r61YB$tXeRq@jePoX|K1vrw0;ZLN%NVj>7cDR=gUAB_eohqUU{Bs9kX)YTcwGj7 zciPl=+8YZ7HGrafeHdr&-*EXvo;@;rui$u&nZ{I!CHB-_xovr9KfB9d(2=}Aj65C$ z3Pp+AaK+P2I9ku&@Z-#Rlhr|~G=jryO}7h--HIpLAQtKGFIH8!AFv}3Vt@hj5MF*Y zPb#u-C9GvjW$!edAJmm#tsJS^bEMVGG7&TYmGO0|fVm^8F(0O>-aq9Pq2A<5jU$*w z3g+K`1!$u9Sdqb@io8EaVwK4K`(Z!IXg=KiPbj0%l)|$ox81x9$y9%-viOMpHE7_Sh3tiy*JE2&MWc+xZ zqiu||F3ruM7TsY%}U^Oi55v&T2Va&lP+HbsruktgS5qZ3a6052dd as@iKr3Ugur70^QW?6G(V=nNoxe=f@S9fF(@K$(jr z8~=a*@$r2XjP8~`0s8{_Xj-pI(D@ zDoPgepn^KAbK&)U;tgr^pl44+s)EPI+n(4R@Z5OS^4%2pS`mr$C*%5)l7hH8NK{@A zKGD-<#78MDtD-NZ*jS{GvLE@pI9xuGPG76cy~fsxZp8Hi$WoVw6Qj{k$@(HIZ9 z&@_cSd`Z@!c_$`F<%vW+#$$_B@8935`5CY~A-2nrvQGeCn~w0fqSZZmJRi#-TGI&A0?cLDQ@4_)9;6?AZZFTV*p2DQ`ouc>>U2y$cPfNn#PApt>KR#5Riirr8irEFopzJX3-*rr~0UZlI zkT_SZ)1I>I4pVw~xvFSNgdAKe5c-1IbKB9;<|bz)0g2h;q?>&zc`n`Q=$>;;se`6I zT-}v*+7*PI`;}C}j-UqBuje1(bh|V4M2fxD?n)L|ib%E#3c6@CuKg*>-<8MV2BEX) zQ9ANFzaw!Hmn|-#-{Orcz;Aj+kC_~L7mcG1kyQrXR)2Mh3uJPn;&e>o4>KY$DU+66 z+EtQk<-1+C761}q2k-0&bRpC8DTezmcNmYeIhSp#s*D* zz)RISaK0(eZT_e9em!5IdmgAh%iu)9FM%odnUs^77{^=Rm~qw-vLx6m3v(9T*8_#k zYS}yB8hq3Y#43S;4SvHpdG_$fu2fXI@)#Z-`<<|ed)<)IEnWi_0UuM~{JvEX*^B`Q zthpBL8?52y$p_m?mKYMRg0k^wCqT%II!2;qygb<6GRDdxns8SW;*f(bD5h0^-$N-V zUFu%BdWO)oSR-KTgKtR1>RMwiOm0^R7qer~%XR+PQkz6?^aR5I_(g=m2K3mR+=;*G`RIEOR@x?z zM0h8M$%|l3xLuV#w?s1gzFbfqLI72!b60QK&Ymc7ama2xV+{neNh8vl@Ota#L4WfJ=`nh0jF9UcVxMuTzt zm8YnAq!GcBQICRR!u|4^!<=UPUE3p7IK&7M$_APzTM_x3JCdXn%^Z?6u#%>#{tC*v zK%`)oepfJ(?$GS+P!{=14p_RtrGMq_6jVsLX*)GNocMU;)m!qpe^dtY3`MAW$`ac? zQmDJZkd)C)bYr@Ad3VHs_dGov@?o-)C3xr8GVb0P^Blyl{^qg|#~4Jr3)X;SIy;`i z<}vj0P73`LDG>atZJwAMsLsCF$dQG%O63g2#1xOhDkj4uB!Hi^gD=Dl2au1+c~VVT9%8@Ahr<_V!{doHWxNaWAD5mkfNtxSe=9`NA>~=K0VD6A;yLI&pq~ zFTm(OT4=DwNe2Krpz2F%i6$iM_Nrm?OW!+P2szXTo3nZ~r422!ow+LW-YPMY7OCpF z(h2abBk=m_mHd5$W-(hJDe&Qh7kr0kJtaDGWVHW9#u~Jh6s`gcAeKj0L^f?wTIG*_ zp}@=$Z+NH;aHMKH(Y$h+KQzLU0fB!|{66;K?3!i=0x3L6_VUO99bMf3j%AY%x;gq0 z7l2qwWotT9YYU(qgUoXncB*Bd2-bN)TonAV>xA+1R|g)FT~Up)3X`|-c+HVO3|KgG zjEpEY`Zlf_i2DmRk=*g{qYozO-upO>-#c7~wD3zDXFe0cqp1$C19N5Iu>O_Qe9V^s z_XB_Wp*{B~z8}GXWQ>(q`r^kiGZauB^`%c}=R58@U}*$dvNflcf%X0PWnu;1CsYTo zNZiqkCCb62C#mtG8o?WlCndQfIp;}~MhIyI+}(|{T6~oPZLOD6p5HC5-T z7=n7mkVXT`;U}Va_$$Z%)U!`J4)>q@t;jlIqeDazX>65-w@=tYQcX(S?YC<~_%Mz8 z^T|`@$p9*USMZ7y>d)V;*$}=xWOtQ&q}IFux_R? z^yNUux1@wYrx6ZhfJa^a0OgrijAkwRupZDq4vqi-Nx%~~L;xY+7k7{VZ9pCO-~lNh zvfu;yBRN0?d|q4y0hQ{Sc4Oua`(F7yfYq$eaSJQG`Hm(O6am2a5;ewQV^=tJd_#&2 z5QEA*9RCEI?EUXWW;DOuf_y*~m(SaM;6LtEB5R;8AO2w>U>VnSSMz~ZFW*- z4Z`Zs#7;$k(X?DK!EM#(Y#FnmQ+Ay6{SYzYd*!pQy{K)n{7$Q~DOL+d%ehD7M!su!YwHF+Xhm}Y<8b6m&X)TwC zYaRa6217St5K@KXv7a>lD*6?`>Q?$gaao-&&Go$=`b6Z-g0%^A=3ZUzorwt-f;TUG zBVc7T1~tXJhN)xWb_w7=J`Aezx;&7Atj+5aZ2hQ!)JH_AN?=c>nx!2EIl>X?uBX44 ztKb_!Axz~VW>NYlhX0o;MW&z?yVUdwtW_MPlF4n=|Lz@D(*p;-VcvZH+w)ygx|r3z zg^FsuDh%MW&_8Uf$RWkRaWy7c>ZbrO0<)sPm|w@t7k) zBb2%mf>AKH5GQ|o|Fc{Eez?T6EOXhM7j|+6bK0{yvqI-e{_)9^Vp0eJ-}8n`+IXX3 z#J3?1Gh%fFG4^txI}t}*PjRtosT+qHsLZv)XB?1YZ2p@cw8F=Kq5;GrBDGZZmVlqo zJ>*ihyW?_~NpE&2wF;g>*VS6(btq|GDD`klkvjUdLfW)I$OS*uhoWL<0bzC!z{($=Cw{4EikT1V&r&%GbV=1F_2j?M*0N(pdboI$5E?~(W8|NOZ1GuEf= z+UtGuq`Q;*SZ)SRL9V#FX_?lN`=p*d0lW%Bkbh@cOCca9V()Mopu9W^kV2;U$pkzP zy572QE;e=Of%6vk9Xz-6JQnU4~qn#x7zpf^WWT2?LSNigKAW zJ;eJeGGHi}bfy!0zZ#$YD)kQjoZg8!X4Kz|t;RGHaS)GFmbvr^(U&SbAZU3Hx?+UX zZ-l;+yg16Ss*@-FIT;v6a!ld~p|YGRf^EIN`&BGwr8`|lapA`tRb&x+VV}JYUZxl{j zx8nb*&8w?^3~;>@tR=M9 zFTWv6N3OWzeUy=1pIBDHiq(dAlItzyy((>Yg##+SyNAk0U+bw4!;a=xF(<=c!&!dR zYw#p&;(cj87GU)A;Nwff6#h6KX3hgAFIgybWTO#s;s|&IrDrHkNT|y zZVrKD00095h7Ujnb}4oPY;*~3Izd&*V9Gd zS+r`~o<((BW9plnGy$JB%~=cHtchmV%3Z z0Vi}nh?cK6jHSE!j7H&rHlrm#erH*!YmmkNC~KflSjmgBn}9B$KMsxn07<|TH$(s- z;1_q00Bt}W_uv63AhO^C`Yi1?o!7h!b{g6|5lrU}HKoU}T_|oqNNwgdzM}vC^+-TC z;WQbn5XKEDroqDa1NvE`+@ThKL>DwraKeZHoCRs^*PD`Jbx)P4YTH zJ$wkhq;DyPzx$I@H5n6D$E|1)DE`fk!SW z28g3VN&~G0)_G2=lbvwBT)5oz;WTq0+Ks>uj!N_aL;x3)0M5!jW*g@^iku7}hbI$` zD76t(&j;Hq000330oVEe)I$OS(7{|I6axUDCWyMnt}CNPh{jT z(Qs7uM@Bc{|M}y~>0b}fLMx9L(r1(s=vt#jrRy+2&P+TrS?n(sfnX)i=o(yU< zfWz}`Y^&2PI8acddcjPwA5t5T--k zZGMn~@G)EL%SC%jqvdWMcy45zdj(FF(xmpC_W)l9Wjd(-#q}?oJsX=HoB0I4LKk$Ew_ZbRMRnc-MxfP73hkJ81Q6b4;Nox{%2(OiX=0@#l%P6fgw+N0@I)O}VPY z5JKUtNyfmOwni!5yCbs)Nx6$h-%LwT!oKLLz(4eiC7V`GG>O$%!9Pk)T;K?=5~}P& z@((b!6>mle%}oVY(-y$VM_a7Ew~?hKAN> zQ^o24d6Oxj9RM5ao+|DuD3^b|yqScJTYPjzJRLCzx}zqQF@4OTm>#B`qxZ5QfnU%r zQPxlTqO|j<+fKYV0Un)?(k?Ns4~^<~D(dl3K(hB4==ZaO0T=a*e9FP53ts`W^?(2X zZom&f26hzZ%g6QzK=q&h@A&+_4w(hbAmJ-LmZl+FDVy@!YZCv3^XKnzhsNvC2DeY@ z{BODdSKT8^X{+SFwm?+y4rR?CD(gGs6E^Vaa+b@ZP&`A#eu-n-&pv%;Ftkf5ymDMM zMh-bq$bV77f(oMe7--%-%C_Yn2;qEe$_GOK`aN_b8h10aLPmPlGQPV9uJTzrS1aH8 zFGe0u9!Q4a!^Yc)CYo?pM5&625CV8%U?wRePci$c$ZocUmrLX`<uv378Cs+ z)d((5Jp&bSsl!Ktg{1%L`*9M#wwLh_ob(`fkI=hiyatlbGCCIn4>WS10=w#!Hc_cE z7MVl7T3V3GD1nXBfMcu+IHMa7!~#{klgidvS)tdaTaK&(lY!vscLW6UvWNt*07n<) z{!^cl6y#mD-1&Gvw9s!T<}nqm1%TU{TffXu*jU{rldIPxYrcC#uNmm)nrWovQz@*L zG9FWVD9DjAt(vS$d2n?-geSU&8nb*eGaSD3u>iw?2|o^w002qA6E{QvA>bExkN|B! z9rxe?DIl`o1NsnNeSF|sv6qZ!{%ODZNAM-klON5F6hTADH!q@weTWMaauh`7J*gUP zYo&O7a&Ot54h0k02U*qcJVTn0nP-g98GIQ^FrpJay(-RP=t0F{NPmN{**)0e0FuT3 zq3O!8;u4g=rjY_!KCnxHtjgL|{oq?~MGtO2%7J(Q&n!{Zbs4ryMZV zBqJobw;Wt|hv6g;2C6t8ZzV z!}#{qr-77(Gky>e*yP1`Kk)LxqD*1L8S$o*tzmk}=WL0uY6_~u49z@nKw_X2voe%d zfmuaf>68lE!!I4+hb#m!__|^Cy3#OMAz2kPW4f?& z(o!yc6X6Da#!RwUX~7#4vf{bO6dZVEHf}00RH1X91hK06D9%VV{WxBbh&Fs@mZ%3*2E|%{HlQ+6$1wl^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0769.h265 b/samples/h265SampleFrames/frame-0769.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5ba1ef59eb219af27847cf25172aa76909d0c4f9 GIT binary patch literal 2439 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 F1cYG0!vz2U literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0770.h265 b/samples/h265SampleFrames/frame-0770.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4c38804520fc545575bb8caff90fb1b7593d1d3a GIT binary patch literal 1809 zcmV+s2k!U)000330niEm)I$OS*uhuYfCB)aC

iKtK)yKsRuIF3R`^OJd$>0g_^u z`>CR8O%Mtx!zTi@16k(+6&X>8aM>Zs^X4ug)?#|!l#cVoM0^hJj0ABCFZbB*_Rqun zR*&9}n&kD}>G1LZZEVcP&pR9a7N8-duLLK;jO`c|E}c? zxf6C)YCIo?_rcwihl;f?T3gOU=d>|g)4C1jHEGQ(cM<&I*T$huKdC~UI@Mi#)e97P zl!k)R)WrzP^LyY`k+6pd5mFuwa)Ugq1Zrq#pVh*py5NDHL@^TVJj=L}+LTF?A__D8 z&;mc%rBfD~x?{W_e*M|gm=;y#s4r_;r1-fng8gh}H7N=hD&1J-2(Xy|C&kKik_%qIo zRhO%5wcn>#5%FKU7IDv`j2mJlN#ysOqgpY#21jz%c#HA4dbDKeVbK_D)Q=fggA&k( zp_DvEXsvi4)tk1dN37B{2$Zr8dollLRvGlVg_g^#I}5uniYEMJ5j(ldDD8VpM-)Mu5kh zb@~PQg38e9W#*m+tYH75U0P0&A%IKoSz9zU09@uiQW1|lF-;p<-_4nj% z_H4IY!U;FDJbz#@EvEY$Isag4$|1F%5%;fG>f=M=H!I`bsx^Oyo-aE%g_s6?deMLd zi0}bE(0r3g;Q#@F6~4cVOMm>UdsofWfBI)*d?ledhj<3NZ*Elzc0@g>MJw%ZGD>2WFtM#I^DQz7v$X)p$zcmrkrd{5*2 zQVXZnC73zv@%yP21`E}*U;qFHTn|77b`ONd7^njnr~iNd#FZlEnrIuGE}d}pO5l}5 zfQPL2^PnvFe8O3W%E)KZ|JyP{B#jR0#$n! z>raLRAA>BFC)}h@0(+=`zb*BYOlUQvoXC^+_~qoO-KmJ7ox&VXkMp`Gupx^F4!>ku z8lE)~L&J8hpx68DLlpXs#$t1G4V#?-#@&| zvxJuGaGIuJ*_43!j2wZ(VlVxRZ$`B8>F8E*`%KX{SoV|7QwFYh|EjdU>Iqrc(D}op zCW%VAMvRFDU)rt`lOeb0ttI$QUDFJJ{z9&8L*hRUjsO5jz!Nt_03qNPcaQ*WKppqs z0VyD|-~;*)T?mZ!Pu*n4_gORSrxP;x{u<%KhD^=AGhDx}tixR)P7ItP?TDj9) zjY$A3T~SvbkX40auJV{N`4~^*<*zO^N29B=)cG<&b}7!?T;n&^N^T#szml5wnhk-{ zr^)or4Ndsuo^wZVCUqbO|BNRQdvgVi9mGomS%b9y`phFAf#+ukxA{a1VtG-?P_D`8h5Z>y9bo|R7}C;v#3}Z_~pO>)@ON#5a#4-J}AF4 z)J=H8o6oxQu|*2kRdJXgeeh!Jb!o8-DqsGwN;(F1_;m90y@oz};m&1YrdzIFcRSzA zKnxwZmnPZZ1k&C-?q_s=wa)gJ^r5TjBHzwxJIONQIKPh%p78i#BVc=Nf8K4NViNSM zVZMuoS$_C32lF{QMPf9Vo0m(2VG$kL2U%uQt;8iCi}OxeA=YQx##VF-x>hec`|6%toBvU5Yj{rOCy#&0Z5cZb5O&__i zUmxx&i;6V0Ma0&KfvEOO%Go{>9}A1+p8U(coHr2{B{-&WPXJ`v#wDmJrd(|4V%5L~ z{nY>@9Zw(X=bJo6T(#7|FQ8Ihb;&Q~iUAKdBYZmX6a&UN`_)7Mj(`X5H-I*v>p6)R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0771.h265 b/samples/h265SampleFrames/frame-0771.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a9ffabe6f8c8058a82fbff0545ef9b20d0297d01 GIT binary patch literal 3142 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0772.h265 b/samples/h265SampleFrames/frame-0772.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b3c687288b459a84b131ffafe93b423d562ffe94 GIT binary patch literal 1741 zcmV;;1~T~o000330ni!$)I$OS*uhqkDgywZCnPNZULO8G;`Nx`qx&A>94e_3wT0v#+p-ns>R$<-e!{>}XwZcQ)0DGZ~{q zLvvR65EnU-Az2kdpBXXU!9Ab^pRfP=lGwQdT})7cfBZ8HqebiadDn){Oc!Z4cHlBg@=v6>?W@ISwlld;Yf+3o?

-5e3bH$3*vR#fWlJW$DmL4bHKMN6yWsZ5=UYpJU~*WSC$G)B?g%5UN5kJik0~D$|7FaPNy$@>_}qJ2 zN>sHGf%A|U4EiAATzShAbN}2j&Ff13+sXL&(d!=HsR!1D^l-xd(_Z|Z4Te_oxhp^_ zH-6;RuL3*TJn~z4iv2w)+0;*XP#5QH2z5)cK3q4b5dz`oX^kpMd&_-y2}u$ke@0uJT=$GzJ0A=oFMKg?s$ zusp=e9I?=eh|!@eANnl~($$5m<!sVh+`-U-vt-CY_-}8OZQUMZn9fTcV_ijMY*| z)*~vNKmULGY6@WL$uVl*EV(I4kz?=R*XO{8o+!Guuh8kB0GN6mP>RvFA@UouA304z z&qj6VU(xzYLZCu*?hzR@2h0J3-e6JAExO=nn;bpj;ryk?XMhKBL}o{~3vm>YEhx*- zwZqJi0pnDq-ljNm=}ruXOZX}x%J^5PY--%rCwR9Jn~Y)8s#YZWpbTP7uxkJTpPtgi zIrGR~o#VwlxsV4{aYc0Yyx8JEM-Fr(_yot`4?aSqr8qQ0xrV&Nt%tlMNXS=QK%u|~M2_QYT1mEd;e~9AN6*!g z>sbHg++HO%4^&{s+|wK65=LlDediSJ(aa*J5_cvWCo_-i$2ow-pG+USoWXus!q?0j zmq_oS0t0<}<@6XGN#2DE50D}Lg*WL-IJgY?i%B9>gz8209+qxPWGw^AzN}*$gHUmg zW~gx7a+Y4C5F_i=F9j%~M-=sW1zsVl0|?;HQ1N@ULz7!a=usIc3Np2oymiSCt>Hh<6 jy1*ddT@`|x8(=!%FuTs>l|UsRIDAKJ0UZijwE%5E9wT2K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0773.h265 b/samples/h265SampleFrames/frame-0773.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f8f4ab93c419b3eb3961d062db5880139ad4e638 GIT binary patch literal 2116 zcmV-K2)p+H000330nj1;)I$OS*uh`376SmFCk8&_du~s zNV52$$UG{Mt^B93cmKZs|NouVJQL&sIy1MeuEs6|FEWTXb#Y$9q|r}Lvl!4Ls=olLY;*3?wr0aVz-RD; zexq#_d0-GF&;R5hxhfy)2@mG8 z^{vc{R6Z8R=VG!1qh|^%CPG9C`DzYh7Njb{Qna~-Uam=LO4Ok;P<#+1`VNW_+q!?J zUw`h_aIB)4m<1<@A~pop(-&O8I`1EEH$W5mA;wCeMthfdjgYeY1btYAFa$ES*S z-l6~COM{(A=88asnz26;(zO$gbQW1VtsaE{;Apy>y4^$FI~c(+8wE8;?W*B0QlKBm z$JGjM?t^Y8k3{~0{{PE`sq|(&aV`+Yr6Kl8x*@t-4I2NG6EFf&lQ0&+ufnIwTS|}= z<5SBT>$Pk781V+tmFjf4PfEktCLXg_<@=@&A5D*f#`A)q7(Rj3Ou3i4(MDmMb1maE zMNy@%M+{-SS(vQ{x=bx*@jAlJxZz0bkA>C1yz?Gn;ywiZ?wFLchqj0tL)T zw%STiX_!#1XSZHw7>WG6!amx4wB%Di|Nf&w1)ZJK1`b1>DN-;QJLch+EJ!xZhk$x!SBzToMH9Eugr57y#hiDr&H+v60{S_gg! zt5=_OB^nkFiP1oIFsCZV;7;Rkw;<%X=44#J20Aw?gkz}|m}lhlv+wYj9vYB@jUGY+ zB#FtBRI`q(GmTmJ7XO&a&J!uh{}8BaA3cCl`g+&1_mbgQJ`+=Gl*9dZPj%1e`Yp69 zJ2#inqdgaI@H|xSpP36T{9adV#la3H?^rP3lJ0ar${{4K71V*CU_(iCvM0m-%ysJ# zxOB<$FB(+{PX@+);HDgSG)YR7jw-Lkj^iX^}j~?w|xubp4;W(0#)5 zT+)y(WE8>r!?S~N=}65Zwak)Xm204W{O=>v-H~l4@eiRCAb6M1yJdNUl8-Vv7XuGR z1T+EY0`xxAi8TS{OXvOi83W;8gk{xcflL8@PvI~l6=eo)0D{~Mt3UuE2}S%5YdHMe4+(+GTU1~VcRRE81+}Ezfgz-Id96WsWf#|&8^q0z$`rm_ zv3eJPRXG`L>#B6HkS_}p*JMiU%F;3S&oedm2mY@;et4UANj26yb7X|FSjLfb+kxW& z9~nTFo@WHaE`E6V^ppypW#jf`;gi>+Jc78Cz#ek`3zy(u_$gYIO2oL6 z&l_j?$!AE5g}Zn$qCLiOL*?K>P%U~tmPrLQa+cHJ{u}W(=L|!%^|S|`Tm2)2n{0rb z71aq|(^nx{IyDjmpAV}&8vzj0m6Q0yVDn)s_6RKvg^vlH8}0*WjUu(YlE0+Gay$4y7P8Qr8I1N)nyG zJ14cTc!VJ+c+vBIU^P`ZBY)yF>mP2TdG<9wjeB5TZUYrxnLg(^P=JAv$8Goq>{d4< zcN_PS*1=GxwAqKk9&sj(#Li_r`~OPHS8l+c3{6HXX!SH@_6)Cbrni-BJ&Z4iq)8Og zcIL+Jl^=I7rtl3c7{k6`DTiVS%ZJ^%${>kVieVTeBdhU{f06cV$VKZ_(0oR`Zc~hC zxt%oS37Max!01t{b{amC3>CH6NW%-E@o literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0774.h265 b/samples/h265SampleFrames/frame-0774.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4acab01fd8c9995a8ab6a6fec28bdd428c839e5d GIT binary patch literal 2730 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 C(22_c literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0776.h265 b/samples/h265SampleFrames/frame-0776.h265 new file mode 100644 index 0000000000000000000000000000000000000000..244d62b34895bad1edec5acf4ac9f63b6290a128 GIT binary patch literal 3583 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 FZ9oq|)iVG9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0777.h265 b/samples/h265SampleFrames/frame-0777.h265 new file mode 100644 index 0000000000000000000000000000000000000000..49aadaad3c58dc73dfacb32fcd88898a21dedff9 GIT binary patch literal 1371 zcmV-h1*G}_000330nkDJ)I$OS*uhp>QUd^>DH=e4;5ZHfz&CJzF3Sq7#Ej!KQq{QN zx?zKdMx&0r1Ohs$*5Q?f&tuUdXnbJ-pxDl?QL$(Le!u_1<1Y+4;a_8L(ZwI096+_( zjQ?MwkIFyM#p==Wjd^}UpW%}P0qxJ<=J1@zXfA8yucUso+w}9T&C7ysrt+?_+@jT%cEUonh*jYEpzhgXv|+MT@OWL z<*Q(JcNAl{j-23`Elu-w-?$4Lh9!W#@Q7kM&AC`=1r&PZ5<9^6wmdOs*sZK%R#7iIPO1D|DXl%w4l^(gityg2A z94murAs*mpL%|WP^!N@_6}}Mh!XNuZYq_iO<~>>U$$=>lFinKfzNotu5xx(g8PSWp zDjggO3M+1)R_(q7RC`h}s@^ZWhvsfnPkB^%zAZBFXB)d{Q>EnXqIkTSu=07b!^{76 zIcx;4F}&lLO(Wnu!)4wHd4m4iV=%B5LNkq5xzuvCJh{qr=}e27xDYw|-Xdg#zu@!? z1qn7oRoHbosM3fg0F)>iAm#5w{q!wB!>J_v!(C(&dyJRwo!}vx^E|0H@dPO~2I5H`FWpIicn?m zbboBx>5|;{nYdQxY<-N3MJQ6y>#jK8Why%qs8+$r{VHyfkm=uq2TTp1A5F1mq35yYxQ-A;e|Lv$LgR3OPqi-_=UVBPUwWsw~&7t8O0}Ylm%I=&sw$H^3 zzbG#IaL3yJ4LgXzg)}$D?LDW(Z+oB5IY##AIL_Ge7e?Iu<3nL!n_X`RG4rrZM`J)z zMFE)meq7w1cmE`NOoEDyKsP+!!K|2ktn&H(7e|lAv&QFwWMlR~Wx0eYIS^o&`JG6e z8bR=_L}<#ZOp%&0BngqNR_={0(s0lR3Z&a0^;awj9Z<*(O#1-ZjFkcToo1!33>W;N zu7N>ZOpz1e0MURy4vqi-Nx%~~L;xY+7k7{VZ9pA?2azg6p?$Ms{KwBZDvcIR0jOkw z7R%a)eJ5Ek`nsJhTCI+orY{N$&~!nJ@cU#yQa~(V=~0gWIbdCd dO2*HC^nfuJQVEKHDBw7JM{EHd3R<-QZ9uJ0p>Y5J literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0778.h265 b/samples/h265SampleFrames/frame-0778.h265 new file mode 100644 index 0000000000000000000000000000000000000000..08e1ed388c74b8ae7ff9a4717551da154df69bd0 GIT binary patch literal 2122 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0780.h265 b/samples/h265SampleFrames/frame-0780.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fa11e58d745269e0e0783a5fb193a11509db8bce GIT binary patch literal 1802 zcmV+l2le;>000330nl0h)I$OS*uhw`wgUj5EOG;Y;5ZHfz&CJzF3R`^OLc&00g_NJ z{nXd-si#O)al~Gduu73% z*k&7PcuX_C!4$RBXxdV2UhhyyNSYZKe!359%0|iUk@LN1rM%{t+INf?SRN@#Cx*lY z|NAeLHM5v~hZ*K1x(UNai&MMXjs>zR2P5+n5I#&MPzt&6i|sTm&(qFCXl4!idcg&v^YU>*Gga)=#sJ-ie9fOv2<)8b2O zS?w0N4N@R-j}PP{sQD?SOCHL8`A;*rIB(v=)=EA&yJCj>WmO4?^_C%X5f|ZxZ6Kb3 zf51r(Zm{L`G&C=+fkSL($sujb23Pov%+qs_oh*!z=3b59L2wBY3mWyKv2GUsgr)E{ zOhs$d#6~6QU#mFJj4=yqck*k`EG36r|cx0*{Nh+=-JqEb&ja z2A(=24bH|E2Sea=QEqD@aTXX0-|ix_cT&>;qd%)QEd9L(D+^vTFA^{0@SaOY;9m|a zBVaXsxYj^x-quM3TX{xLoNSDP$Q3i`cEs7)9JLz71?DOY!&EoIe}Z>RhQwE^w|#jQm#;>K`WVRGkDz2QC4b{U0VrSp{U6O2c`=y2M_$qT@emxQE$l#tvU>5yC^|USU@lvb zqxx=($d78$Hc%NJEA_o+2Hjdp(Y}lsI!55Gst4%91@LDXP6u1C>5l?cxpoM{KB&fY z9-;pHx7Ja{|AO6%z)U^TCTRl;bXG&7hd6!l{O-bB2ZE&Iue}xIm+Ktd`SJNl-20mu zlnEuAqV)rTV|&il2^8L;9Sr2^#eOp+1Y2yRQp&h{XRY`ULhpxYNF_n!mA5fI2pYK90dL^bO>t>>i@dfV{5(Y^~(<6yjTZbscMgdEF`6z%dah~4!^=4z`2v8s`*)Pr~WFlTU&E2BGF2Pb{x3vmp%5W3c)J1qK{Biw|G0s{#U zLT2jGGQ=ZTLoDTntgW7DOGU1p`2bB;?WId^k2{bkjNkn}Gwc>n?C=-Sju z+H;~rf!rVGw?Ww^;o}TK))FM?F6SC4U#n)`OW9O&*lcU`p z6$Z>_YhoM%up^f7m$CCmJaECAR?pjbmve`zK6U4dM1Vva07|3@N@pXOx7UT?adI2Y z!TUZh#43MtA=4NcO4=uGbwdgmZVn+qtjh%%0ev@RP-`U1$&Whzl2_{jc@V{7CQ^y1 zZC2A6VYe$eigETy0;mi2ILmX-!R@`mfW2v@>ED$jlw7GoPxmZlnS#x|Lk-v zSjmW*_1+&{@oZ9F7<4)w4GJaEfXq`vh($ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0781.h265 b/samples/h265SampleFrames/frame-0781.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3450394552adf05a6ef523814808463109ac9c3f GIT binary patch literal 2781 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 J3R<-QZ9sgZ!zTa$ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0784.h265 b/samples/h265SampleFrames/frame-0784.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b0a736fedfd7e3c7cc48031d5c40eebd7447504 GIT binary patch literal 2814 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0786.h265 b/samples/h265SampleFrames/frame-0786.h265 new file mode 100644 index 0000000000000000000000000000000000000000..667803e4fcebcff480b734f0be9dc54c058da1c8 GIT binary patch literal 2768 zcmV;>3NQ5l000330nmy6)I$OS(7|_|F92e8Jb*X{0N@-0fLJ$he=f@S9TjM&vSk15 zXZ)Nj*fyFJ+bm(;-Xt4+fY;as^eVBTz*{RE$~-K?vk0B(dp^6?4&dGaG6ud^k79;S z(h?dv{B*nHz9VjvraSe-?kX{X{NvH;uJ_+IfZ7raXCKTf2F)^K^J5@bxAKN{J#UD7 zkT@b9riLvw;%$J}I5!su_H4N;RR4AIyoAD#ggoo<(jQp@BWa{l2dP|D~>c01yk zMZGwg<)s;cw^44l!fq-#*X3dae(Ejf6P`h?I@btFuqw;ty$6Ea@ccN|MBp2AwG-9-mD%rOcUTK+9zolJXDKfP`k8vrsY(} zyG}eJo2E)V1g_KbXWd}iGN+4?oTIXmY3KM94m!Xb5^v0GJ$3_=F`4)M8qe_qhvUY9 z{gfYwzW}#d`DdyBQ`{p}5H{gNWikK|TwgEUmxmfWoNxi!Y%$RF!>%Mk=d8#qrmKnk zCYL&uQRL}a;x9bwqhOPC>|RO>T27i%ISPY=DXvA5ho}|pE@j4Ku{isgd0i3K2k>j- zBvE&0LX-I{HVfO>KeP6DEYGgJE_CfirkV7OmPoTs}= zCHahxORs`(A09O0EN-!u1=bUe4D7u)z`5Jo?GxU=MFyW}VCU06jnAq?yhtF|4G$?b zx%^A(dABj8P~?cv5IAQ|t7ov&(p>Q!mY$blZjOOFp7J76Y99J2hjB?(*G^EiuWWvM ztw;&=317K8;IO>xR$7T8|83-LP0O5wKPc7dl6XW$nl+}u5@WyOt%W-}_X{7RXPiZD6X}5PvxPZxpZ?@Zb|Nqv(2@ev@a#hycyt5r$i0tLZcmg4{8|wHl2nl7i4L!SE!=RC;Vjnek^I-j9HOYw0tnMMY3s^{h{s*Hr5}Tl&F_gy~jBbr966lzB~N* zW7W7YN@usm$*|bM1M^qyykj4wA%)Y;Fy4*GF4LU_a6QIig$n$@H5}GyAGp3D8raNP z1OhaugFz85V2?WRHqfjAa;J$*Ii> zp$l;Klry;gh*_Ck!sdvd1*sGLIVyuXW84O0vqfIo7bpZYxBQ4?q9_KVT0)27llRY>W1! zr<;Sp+yLn$i6sq%h&htFOdwf1GVw0vin$ZP#yfzQkq;gf)t&5?R~%j2IF#p}$->YF#c!Lw--I)T+G8 z%zP~V^x=O#g5Z}hI6WG%Vtbp`Z{$a z$MSmW@e0mo7W#Np@j8%%;&zaS-cD472f{O{HD6%W|_&((U`KQC{{`(bUF z-ygk^Vf8&-QrX&$UTt;y!4c^gbV2D3;#}sb#B+gau>)Zq3mF6DRWNP@m_RBqLSO(h zRlXS$EMNditc#^$cmM|v$F9As{Lpa>lXtVPIO6f3~O4XEad9qP=zOzhPq~>4(NzhUIA`>D5hO8B(QhVYyr6T+17CZ zXst{7Hf)FD;kcgEcjKzlQ;1ZAusi}5)Jm8&cTZpciKt5=7&g!yR%W<*?;UGck2|4L zM6&!{xlGkE!ZucDE9zF*O9Rj?iRyoqZ)@_YJ< zQ(HqtM|ljjsT&rU_$J8Hsql2>57qpGJ;%lKBiRuWA2oZ%tG-(dk>cJ1)K)wn?hUP7 z{>Ok@2>BDC5PQ!u)0U%F3aMmQu7)U@LVJZs5by3^Q$u@1UG~xRIjUWZ$HML_%xAwI z_0XpYpJN?b9OWsssq2I>uDn0T-OG5~biYQsJtTpDDgdv57lk#n-xd0cr`eCl#zXH> zCXV&!legSDwsEzIAjvqblY&S z3Sy|KWU;>*c-m;WtjN{ym!Rg!`V)e<;YkFDCxNctT(@imVE$9N6HbB9;2Ld}s#A_v z^nF@jb`|poIeST#@?&RmJa)8ojqbi7ItthH$Dq2oEXw#}-+R^X<2%$t+~&i7ORA9VChkh06Ab?g-XWHfb@Vd W7g7m|fGFTNd`D~n9ST~t0Bt~0kXdK| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0787.h265 b/samples/h265SampleFrames/frame-0787.h265 new file mode 100644 index 0000000000000000000000000000000000000000..03699f7ad79db4fa91b9fdb341a19190c58149a7 GIT binary patch literal 1741 zcmV;;1~T~o000330nm~E)I$OS*uhmgLIXtP2o3{);5ZHfz&CJzF3R`^N{cIw3#J|X z8eBOFO!gz6Ns@8s+&lGe|Nr@s8Ne&`(%ax_uDj>!(zrNPL) z>2c%*X;$nuEkk%J5Dh>K$$O`=>#n^6gV!yIXR6x0=v@p)Z(aElLxI#O#%v&s&RB2~ z{#_143&vqu+>I+{xh{tK0kX!IRql@;Vck@Js?{a!d`I3w^IPQ}-|g~WfDrPLx0M{a zby(g%J+;nG&wjdy?_-Zh0yjXN8FHh-28j6krYKED`2X~H^QhE9x4c}^!+srZ=k;go z^7%^e^3e5q%{4s>TAQIRRtfBiQn|mF+mQ2}p}<>)68$Il(t5UuvDC%^6AtH^TPq0) zg>G%kyxq%M4{-XsZMf_#)9p*X4{UE0w7SLzC4R~4^KSY)NUN-E&p+&9EDw|m7Z9-f zkkup?(2JFCN(|i+dl1lJ;*s2Nx2q;WOE2ZSXUVP2T|^VcD4c%naSdk7DBh4wqd{&1 z3A`S1{-y=O2kLbHn>uv~gpe#!GM*H-5${&OWXWN53$iHE=SK&U9_Ys5C1+vnQ>x>! z4FHT$<!w`hZh9VfQY_0Msh+380? ztj)po{iVAPT+e^e?|`0L$7rbG!_a;wefeNx--i`SJ#+o(fZJVM84${@x`LKZO z62<0O$5g^YnpJH8qv(>s%qS;gZ)^xuSugp zHzP8)@m8SyvEUWdlLZwP3LVN*d2xlQ4&T!ts>gg;N_W)RFzMGH; z{3OLyQv*u3cgNL!N4NP;KrY}v4vqi-Nx%~|-XeMq7j5bhUG!SFZdD|WKzyjE=+!)u zBcsJtAhM|A|F?18Mg!uQwr}-S;o#^A%qO~xHpO5=)r0MIz>E&oCz|a>;#T;K%ekcp zNQjuhwl8`;VsD;R-e&^!N>5o~C2ku70N4odcU=Yhm+m#x7CtLOhJ&JU7n|B)n=S00 zfO#)ICz}uz7-I=)8;@5sxI{yIB}?~MP_vR;p!8$ofG8E9&^61FvmnDKjD>P2<-hz0 zv!oeQrtZ}9T*a{?%qm|DOw?0-wlf%1(uc2q(83BL52WjuOihOc_?w*K$dJ#=1t3$PZ&8av@m`Txv{N&F654H-t8HckFt#tsC6MRH+<%Q2P)@)P)3zP%J~~!}bxq|} z45oPUW`d1mXGtyF%--cUa~GH8%gT)8Dy-{|no0bonsb0O>Pw=N&aW#V^R_GNK|PjN1H7X+-7KW2c$) zWG3nw=x}$i)PKcthjeoxJyr4oOC+tCd*VRxI~*yA8rU74?K8F%(~r*WUUKxY7vGqFeMu}QDHI?AXm#!Z7MN2MT(NG4l>iloyGT79y0K`rIMoy z9)-UnDYdR^psWv`sHdysrWO}WaRfZ>=n39#B-e4oX+%B*URv`kQ@8zCv+LAVauwHs zf9QqlKy1)gPmvl)|e^?4yujSb4TYHjYcHMjCrS0T%B~3s zdjgPls2D0)M8;c<_LId(3lmY|Sk32)t7p(F=Oar~n?rq__m;O*Xnnfzs?Y8O$liiz z5T-c;Dam$UM`LN#R;` zk^}|Xy!;5!`KbcU)#&@`h2_iPcbleq67ZpTS4lS`SN{pDfSYsj@H>AqB)+P^YPqNN zwQ{4Q|6k+&W82a6B=deJ^S_Gn{)^#1!2idt2@PJy=f$yf>2Tw~yvuS8qI~UKx8vg= zCRlM39pd}HEL$9FW`=)oy8jx^DbE)#az(=3I!OA(1ep4NZOv9x zqR$@il}5mvwni!5yCbs({jdv0SmV_an09)nBs~?O%ni+Qil|VgKQbIGv`(6{K@8+k z91r$HGp_7C0Dr`!XMX@_Iz z^?ozm04wg1rL$Q2U)vxmPDe80^sBRX$S13Kbf!yX(Wm_qKVAOik8eO{G91FuEUbK$ za7v+GOnNF3(yZI_*4ii(kcCM=8NR-fLYHhW|D=YJF{sp)+EE&pVnxN+J$I7H(z#y@ zA^I@#en9dK@UDjTx|A%{9zFkyAf~GSQH^2EHD2oOpa114yIHvh&$*3)xm@UQo9kY^ zAK89Jw7QTSYpFy*$>8jaIKEPy)l8qnK7>$#;$K4Tmhc`*Jjm!=3_ThGpa>t)0ru*x z%t`qUf%{Z28yGm?A(HB_WX5&l00IJ3-fauXrYD4!$n{v!{b-T=B4kWHAo;dT01>GP zzbV=o3VeOsBK)OpXb6Fn4>=jvP%<+{qJN0Gkc2EqDl%(si|j6ttGA+nH|w3Otg$BF zq%w|WTOyoI;Emo;;TOT!zU9-QXt+p51UfDk?e3L8LqI04twLsj!eZ54~!*3w}DyID=c_4Z?eAOerf}D%ly_H`mroHDyo| zjip5tyAe_69d)$nI^T=mjQDa*L?vWkMgO&b*UH^z^MClrYsJ+YU&n(iF;ssLf)F(D zlWZlK0+0Bv2(YXI00RC-d_P==@g{~;18NtAW?lLH$N;E-9yX%Ntw0MHB47~3-#`~I nEMVzTj{rGfU4=@<&w%uRF&9z^ihwBKIDAKJ0UZijwE%5EnAo)K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0789.h265 b/samples/h265SampleFrames/frame-0789.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0b84df652ac3f141e361d9801eed944cb1db114b GIT binary patch literal 2638 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0791.h265 b/samples/h265SampleFrames/frame-0791.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a8b3b13ff05b648e9597c9d3af50e93b987d2e49 GIT binary patch literal 3048 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0792.h265 b/samples/h265SampleFrames/frame-0792.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5b9d24a40d877429220814862e52bf9d4df197ad GIT binary patch literal 1610 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0794.h265 b/samples/h265SampleFrames/frame-0794.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f13a589ece2b47470c61e3beb6eba46222e381e5 GIT binary patch literal 2151 zcmV-t2$=T(000330no|+)I$OS*uipK_Lr~{0l+v10N@-0fLJ$he=f@n*(}Z|pC}#w z>}wu(A#l`IM>pUrIR8)G@9;R|%j4_l>)bp-9FO$;e^!4FgIAB6ucL4}Lpyun&Q@ZD zP2Wgnrt2rH_Ogy_Vk17t3m_)~!7RVR-F1_)He5B_i1L_g6Qc{ZuJ9!A3VLB#p zPiN!#K#|T06BaDDwac6lR>=m6LCa%j>1dj$ zk^cAyhXa4pz+n{hvF1{GMqK&arbRdYWr;jC>7=}K=f|M!k|tON%>}G~nB40)&`p>W z_cZ5kIV@z-GU<2d7bnr(*jIAluE}-ZQckKxJ{g{z5LIbzP?I(@zr3sAsgAhr_k*Ic zp1GFpbGMV(U2DLwcv=@hq<}T=0C7ypMI3lIuM6O5T?1Vpj^}Y&Mkv-pz=~0leKbTz zJOAhjNICO+Hx)NsoLienq|{-nYiH0D&s;=s(2PTHDyREi=yqya@7(bR){IRIF>{`0 z8>1RwbINxSb5fH%RCTs!Sd6b<1+t(LMSv0k2^9Holyz zbK$Nyv`5>*qyjwxpuuw=h6K^Tl+7Wz4vV7y5lVREpVV|a?}*P)25eKk$x+e&J{)Ig>)I8(xQ43I3|&s}Kw%Vjp(XL6gw2-* z-l?p+Nr^VGy@%oL>0^OnKkrf{;Sdw5Ka7%bF9w#lkZ8owA88~E*<#~x>F`(b95Xqn z?3-3#QX!rvHG?(dTmaaXBhdON_tjwR-m_7>ta4Le%0?xAl{RF1D36`&=W8X&?=*FPiR&S;vbpLL66oOplNq0lrvM03 zQs~Z}ho&UJp=R$2Q6#qLnrrK~_3Av0q`zz_=e!>S3=g484R4S~+nKVtO?J>$A*_Bu zVvX3a$hlI;4|;)@b|*fq=Nf|!0xZBC{b8s_P8e4w{ePcsRtsQFUBQLT+B1Q74B)&7 zXw9;r0L^vsGGh6*13%s9Vf~0#E4teGn#3HBB_fb438JCeb6|h4fQ?m4#8SQHSMVSi z+4UfI`yd~1gRoIK^tX()bpOa zp6NU_FhHO53IInriTVz)sB()8>za$!U(Mjzh&|r*gA>#CIIag6GS#rZGCJeHTtY%R zVD+SE!8tRIGCkn>diJ+V5|#V@pU&&;azpT5zm4zs;P&qtQ7Zqmm=cDNxJ4aMa-0z+9t#nBUz zDTe9Xe1Gb+L-|6eQS6w2?GR?fJYBai11s_W*vgWF``??#TyKYZ!GUrWNpH~1Kx0;A z03J>?#CfuIC$b4X(O;*es3GvlHah_RDF!8u9`mz0`xf8i%`U2{Pops2Fz{OIxg~2| zqFP__Pff3*(g8RPup|WuU8lCQQ1;x$TrBa6?%@ORE2QV2e~-vP!`tYSMssV+hAwMt z-Oagy+UHRsQ9OXwqeRc`CatY6sX+7WhRKMs_nZF*wpu0>4FW#ZCY$jqcEP8qA)(AY*}1~T!;^EkR~*xN5JVEe$Pj- z8G?9+@>(6s`0Q*O!SN56iw?)5e`rteI%mds$s>Ih+YO;CY!AUiO$Ja)pk~q#lhubO zHxi21uqE|tb-FC<)-109fu#Ntpse(3UYDMuBgi^M;QXi+( z;uWn#GqeKKXyfxzATsgXEB?F5yfoREfBew4(=!nCha;q0>}qS%Ar@;BH8b4_piOK$ z|Ius^jJ5%j6FF~twf5M|2fP=BW?ird0?HmXqROp63m76`5XIj>7ceYf=~0gWIbdCd dO2*HC^nfuJQVEKHDBw7JM{EHd3R<-QZ9v%%I#mDw literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0795.h265 b/samples/h265SampleFrames/frame-0795.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0f0c5f83287f4731149c421148b0e7c543bdf3d1 GIT binary patch literal 1814 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 Z^nfuJQVEKHDBw7JM{EHd3R<-QZ9uTaepCPe literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0798.h265 b/samples/h265SampleFrames/frame-0798.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8a56c52813e976940ff9c9b9d905a2fa4497613f GIT binary patch literal 2052 zcmV+f2>bT{000330nq9H)I$OS*uh-a@CAV&I1U4V;5ZHfz&CJzF3R`^N@(abffn5_ z+;9K>cUbUdL5wK&)jm%&(5lB1^7;5*7LE#X2?ltBj`(DMhstvz6mq*)P}9c_^V5N_ zjJeR}{O)xw+_!$1bo---1llvbrOMN^f}zxIJI5r#dqQ$KGBrACm-1i1MVP_7bj^LQ zhAspvDnuX(xUXT2XqZBWa5ao=_Z$^7)W3 ziNDWKLutA+Bh5z&;asTW5vbD7(QQU>6{A~4rnYTDFvsMne*oe6gUw2umY1&Z{k9_y zvUeR8w7X}m>#GkLcwE%&QH75};m8pe&ljK@5`I&C-+QJ5$hCACn7tDO znTsPK{NsqQ6Sy)pn#3k_YSf?*Lh_kgDfLpHUPA2Lum4HcD zOcGj0kfRK?x#%wn+O*&9>zlA10(I*bzU!#dTtp*H7H7V)6jI)Ap<_$W@>Bt#fUh@& z@S1f}k~mB)b~ZgL$Rj1Q%!@B5*o22WM zGSdsPuUp```Tk#mxU12h$V@=kYoFEV|JV5cnD+F20es(y{O{ttzoPh0@I&$YrBWg= zB;XNzBm76qu~Kiw)9`GpRw@7&R2G*NOkw22Sb^aD;xz;v@T)9?-JR@c+1X-y$ttOG zYm0Zw{`GfvGaMR>d+%`a{4ZIJ$o4i*EbueU+N0wU=BA+n!Ii}JhC3@ip;+J%2Y4w0 zCGsj)l+v&!wArvtanA}`Z@WN7BfoqK2j{^}sZ@zq}ji{a)r172%-Qikd`5bjleAt{<>GZDm3ySv$Ct!3)bzY zHqz)bHV^Gx5abpmK}&V&n%`VA4Ib1uUH)Up=Cb}joTaT_UVmdwITIM9n$) zBk&SRya{4{%u+y3ML#)F4x)4b00ROx4?qTg;AIgseIWzZfB(PZ^7uMr7c_%}toB-% zg>0s8%WbSn{uj@my~ZCGt3(>zN2~Fk=mB4JjV-2y(*D^2Q@}auw1BIu?~fl=@ab}v z%cD>{L&ScGW82V)%!e?vODeo_Ts1}xIZ?=eQNctNMes1uyn7XG%1!~o`4^B6Qa}6> znIxg7zo2}j#7?BD2BvNiO>v_Dy7M%EYP!U+5ombZaV1nz4%h_|(INoR3@il6qBQd# zx`16hkb-Igck%V~Y@@JbwDw|JfbdIi#)vOclozQ#g#NdoYg~Ed1JRMt-L^-SN)~Jho|{joGhdn z_hz%(b##;4L=%LjJh_d6G|Kl&h9|9q>vn4pO4!kK7eI`Vj#Ys4J5_1F z8H4h`H!Lx*Qc$3B#<-6$ge#z=XqNik0L$@&@ZyQQQ4rR5Q{~N8ara0bas54>?cU>} z^`|s?l=t}etDVBuVW@%tf1RE!@7$$0hTe2Ea5q#v`EF)J6gvOb=eZ|@h*jd5DFATH z#&NBX241I2^Ry>4sT%Uy+|bMMQDGKAY9LgA1m=#FVgic2;t{Ku^7>Tl>oBL(?aU8o zIdGrAatt1A%V5isu2+|?cXk8_;F?R40Q(OP(|LTF_P!}Z*H=5?G5hvaI5IfRuyt{c zp@MaoSAu^_R?kZ`7py_6Fkrqsyt?|;RyJ4 z3>|t$)cWX;`3iM=&|eTUS2=j%rCSlMk3*Rsy6@7@gOd@yfv&(xcdh_GkuW5o z%|8y3dg2r{a+qiY>=QX}d$sn9pd?@yg=Sr_2m;C;HloU{KnoZmU=YRMKo>A9VChkh i06Ab?g-XWHfb@Vd7g7m|fGFTNd`D~n9ST~t0Bt~lN%Cp{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0799.h265 b/samples/h265SampleFrames/frame-0799.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e14481534b75721d6b77ec213dbb1885b6532e61 GIT binary patch literal 2710 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0800.h265 b/samples/h265SampleFrames/frame-0800.h265 new file mode 100644 index 0000000000000000000000000000000000000000..359e0de3e4e56678362d5e376092c9ab772a4b68 GIT binary patch literal 1813 zcmV+w2kQ6$000330nqvX)I$OS*uhw5Fa-f1I1U4V;5ZHfz&CJzF3R`^OJXW%0g_^u z`>CR8O%MtxKiR$D>d7h)c4lXWg zM2p}Rsf4xzf}+&c|N8bx-nUtijk6hK%-2)mH@`iBI0;rccXEP{H?$<~Q?=fbmH;o* z_Z^J*F1Et|$35!ri2yuZMtyoGOMT2l;#+EOxx?9hxUN2rIupVFb=I_*>5*R{t_!5=MD@c*wfwbr-jt8wz+g)i#t@1i1U{zP_}8 zh`+jKaRk7R$MBD9u3ql>+E+PrDJEc3;OS=pap{=p*qqLc5Ms@7(@TmBny^wP!xP)N zo)m16+BQ)@S>QzP{{RL%yjn$o`_{~IZ!d4dWyRWc62uspLd@s09aM>N!J^*sg#Dr( zvYlI8bWsoY8pSz6${3!meAh~P!3#a%Jf;o4Y9&i7WDfp~wDjUu+6&94mrXHp6d40Z zM$eVB){N-ACqAwo`o*`B&&-VY=W@Y|8KS1VhSDX^S5n^e?H=7rD!S0wtfc82cmR>v z8U>2UnCw&PS7(2U?@YNKNoGKRL6-Cm=|75E11MJIMm9Mj4vOFV3&$n%PD>(QF|5W4d*C02%`7PlzcmV?LcZw6dP?8yWj2ZEMmTaxnrUi_ zfN#>0r`IUI5j($k<|62FvH`OHJ}2@1DFxH(63iU!-~a#v0YeW!27lmX5og(^_wQBj zGF1VxNoe7Tr$ko|73lQE)&Kwh{(sr>WHu97Rg8r2eRLl#_8>#qJ^15{9UwKJ57DM@ z7u{+$by=c@B*1Kx9`?P55>&nfaIq-CNh%fSGWtc8gY3jD2_fSN&0!3IQ{|gCglY9|2v|40pO`RtYWT%KgJ|cO*&q((QQq4 zN+xDR+ybPe$|Osro+B9xd>}afP4+I}iUWi#v^wu~gNsBJ8vE=co+lx`igKqDnox8z zuVsK&hh0&Guk&Sc+_;jZ34Y<5XbTEPRBmK`UT6>a8!jf>yj_N?#ZQH2;JXkwy{WY%-;s z4s+$Gi|f?-1Lr`bYI#QAg768%(6V%mQmMDVnK1H_QoSnTZ~y%{|IG)ZArZ#nfqbPv zowTfjb8ugMP~J%L6$6I=EWoAgwTJjLzs~)?p~rUPPg} zM0)@P(ZmJIJ}LV!+8oOO)mxpC|9=C?-6E^#u`di}8_ARUXT&tC=m=r#*3b-7dE(u* z%7}rx0?-6L3IG58G(imMm4f-x!%lcv*{cgdPIfT>-LdJA7OAO?+!SwtrxZ#A50K;o z2zj%`sa>6CinP~)55VOnaWjg20uz15-AlN8*7Op3fcI?+kv|Y7&Y%KJz6g29@pa1)PGgX7**O705 zHVW$cUr&sXCfJ;$tU;?_=r~z!52DB9eFxp z?2s9{*XsYs<0Oe)qafJsxy*SyTM>xQSJd;+pDtf~rVwUSeDJdzQq}yBK67GkfIA&7 z49}QJu`BUoGVW3CVk4k}6scGiN!l4lVY=ZCVtDkYT`nZ-6Mjtf<{qC2d;k=?@Couf zswG(EE0Hg*A=H32GL$rXY#+Wd+*{jZdBBUyg|_r*(-R(^8AlG7?No;rsgvLHS$Aax zj{o~Tp5lmLU+i{(0HxQ_xDzlt-ogW$`QcWTFv9GpyIZnw>4R@4rI>{&+Z7nkA=(uW z$zfY%6$d(U!sA%w-QoNi!H;&-__=^T4w8D}6fU?xg@6+|Z+o@&i=ZT67lmeBum}Rm z9yX%Ntw0MHB47~3-#`~IEMVzTj{rGfU4=@<&w%uRF&9z^ihwBKIDAKJ0UZijwE%5E D#Xf$m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0801.h265 b/samples/h265SampleFrames/frame-0801.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fef85d04e74dd74374fd37d75211a8db0574eb7a GIT binary patch literal 3870 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 HYyd7GE{&cQ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0805.h265 b/samples/h265SampleFrames/frame-0805.h265 new file mode 100644 index 0000000000000000000000000000000000000000..44eeb174c8a330b4f5010f6b0bc35b24b7a5d687 GIT binary patch literal 1973 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 HYyd7GN+raM literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0806.h265 b/samples/h265SampleFrames/frame-0806.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b72b548dbd6559024b9e93e82f875e4112f061a0 GIT binary patch literal 3065 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0808.h265 b/samples/h265SampleFrames/frame-0808.h265 new file mode 100644 index 0000000000000000000000000000000000000000..91b549ef8117c5410768b9c9457bd6c54ef934e8 GIT binary patch literal 2171 zcmV->2!!_l000330ns`C)I$OTSiyPV%z%In0suG$0KgOifLL)w+zm{B<(DI$S6An% z_plV(L%aX~|NA{;%<{k__?6#hW_lL ziANJJD0%AFq%SJBA`LoAm1-qr#6v8)W*AfhWW!MG?A{&MY&ZzFa%LF~XxppY^sVoZ z6u7^!@(4*JS?Z1*7S^nD);IcXx1a~`p>q&%FJos^k$?*fOyH*W3@`qbX&8BurA`K; z>UIT&Ew;N0erL^A5wT(SD#LaIv}>gyO!I7+pto~4#AB(#%(L(m!=ZILw;?U;+f_1^ zqS4-G5+NC_q*UE?b!J|L9_uTd;`yirs;!)&aT;FVQAfu6>y5jOq*f zg{CBFS9aSivvTPLeTX=;ctF+dk^PN(gP>m7T{#*v3{2pBEv1i`c-D4OZUN|0C6T=I zBAHDD1h1|-m`Cp{2|4HO^A{qUaZY{5G7HD|GU$KJS}I5}&oJ8Oz511wHIcH^)&@jo zm8y*MzU)7oCNgJ}p>ju)a5!XX2OlLV@yLH#K4c&5XSM)8S4QAbMh^PCm;y9jAPh82 zTAME*aLdmvMJaPAdEVckIeie4Jm%i`h8rp8r2Ey|YG*PVr^Wdd;qg8i| z+C5mAY=gJK$6QrfE_S$Lq_uD7!axgl?z3*S%S+g0t;?;LAml{VC7HH)6#b4u6JJV_ zxWX!xik3dQzvn;W-^YH7)AT-1=RY9&Z=;j!1L|OK&lv9dR-Vc8jk9&0FySpzK zi%O&eDASrqs3j)rKG-^*1Ar0S|4Z?0ig*Kv{me1S+{0jjk0kl0yJrQ_3ye7~wuy;l zv|J7Z__|I&HBra5I+a$!w!04;*un(KjlEcw<@jjBJRg^gQ!in*+)tHH5)DC=}b<>*cwxv@9u43e=>@qz*qP;hCPvdQp_sd(x2x;)uzhdn|MNWx$LvcW%yhUFp zLd@e6+x6P@?$(rewp<~4^T4->C_APMeDDd+2ue10BfqOs5!B)4T9exQ%BId0HscS} zD3>N@_%R)p-?E6bCZuQM_%5-;FX1-AMyNoy7;%=dN zf4lexGd>!f{E=vLxK29bR7kwc`<(2%aMSIahvOTCxjQRfrIb*?ZQjHyzCI1}+ZuiW zl{<=HDRD$WjFiXV9~qy%A#0K;E%qeTvG~#Z?xcB!x!I z1;80)0`Ti)+MkFo+w@$j`IitP*3>MVd9r}mje z%(Um#f5c-4w5|dNA0TsDKL$&dWU;V;JubGnDLwQ~s=z#VCLA*~+AZ!Y_xI&P71AZ= zJ&cv-VCNM$)k`b90>}Ui*ouX!Dh2TGbT*m}z*l{RvV;qqhbM44P@|K0LDRtP0epQ= z47`MvL=h#;nj?>CqBTpSG7JVz+wEd@Z|qp2S_XtzA9q^~`#aJ9_xw(f7aVNcEuTE7 zN}3!EyI%oH?xp_UN$;iS&xd#XAyN2yvDcXB>=Ksuw4mf&s>F`C22Z}ZA(0etmZ z9~xe3Rw3Mf_cqk2U!)mB378`p{FbE5$u4_zs;VqPT8S#>!S8mA5rREwIeT+zY^qC& zTJn$$-qBam=xk#g$GXd1HiHiATfJ=`F0FTN5e?)0KL>s~vp)3e16q?clF{DsboG15 zehVSi?;bkx3>!|4GV{T3b1 zjn#cYOQi+ud7&bUKo0rK0|5JkeIL?jMYzrp&;2?Sm;ekBi%w6t2SXQFIMf?dp>UgR zQVM%{8v5^H+pW`Uxf|P)k-fu1H?;~JukAP1@XK29lL>gE5{q~ymy3&-k;HOeS;VTy zhDUj9Lj1f2=|FyT%3zES0jy(2g`dy}m{_gI7C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{t xPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+7{zFhu|W literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0809.h265 b/samples/h265SampleFrames/frame-0809.h265 new file mode 100644 index 0000000000000000000000000000000000000000..09d1a1f0547fc4e5c27bb1c7ce65a38e763a032b GIT binary patch literal 2859 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 JDVS^kE+8E)b>9F0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0810.h265 b/samples/h265SampleFrames/frame-0810.h265 new file mode 100644 index 0000000000000000000000000000000000000000..91c87ea949dcf4df96cf5becac484ddac8ae57c5 GIT binary patch literal 2018 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0813.h265 b/samples/h265SampleFrames/frame-0813.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a46c88e1822a47aae8c760009bd70db6aab47596 GIT binary patch literal 2085 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0817.h265 b/samples/h265SampleFrames/frame-0817.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ecb340a4833a25b829e2aaf74abdec6e2dcc45c8 GIT binary patch literal 1898 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 JDVS^kE+DZ6=h^@O literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0820.h265 b/samples/h265SampleFrames/frame-0820.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e82cade4af0eef0863d1436a0292d4b794ecd4d GIT binary patch literal 1942 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0822.h265 b/samples/h265SampleFrames/frame-0822.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6e7963de275f3bfdefc3ccf49ac3cb2d0772001a GIT binary patch literal 1835 zcmV+`2h{ig000330nw@d)I$OTP{DRsl>m?q0suG$0KgOifLL)w)p2TsnW86Wnz5>M z^0W&Y$&d39!)$JnJr9_`51^QppWlGb@2g*5KVUk20bCv#cOFk-zYkdUWW&8DG4|zA zB}zyC|NsB|QZl8yn3p zZ{9P6xa|khdR$M%atrAQNA)m|Q_aUxZ#p0VeGo7i-ZB2PyzFPj@(eA<7TwI1O5T1O zHH~)h#aacoLROX_1wPK#lY#>nU!>OsBu_phka=RWde4Z0E*-p52$DRQ?v8!U1rStYv+k z0SxHN??A(=kB!Hc+hBY-9z3lX?DVvJ-03NCEM=Yk1hu9Mj*t-?B!uSlY^YB0c@x7{ zQH8q#7hQT9E`o@;=~c$`5tEaql=MQ_n7_o@k_LaB5Tn2;xxTc;`T z_x;*ER0yr_r!7;WJ(>aW-dOEAv-#tiZ<0@nC>i`o9vy`f8ATLO%V?x;g*Uc{7;d3d zWSYqiKOea~n%8A`7|hM$f${Qc9?W4kg6ZRM;|hzVn5>i4$*ep7+DMdypBNwH)K&LA zqQ|_hrbjy>E#pU+% znPKrB-L3t=^Pg@qJSvds{jBSFk=2PH!)0UfpSqR4WB2!8DSyuqxqRl<+e71T&3XCs zb9_(qeErbcjZOHZ6@eMVDFA)OKB6dBaX_x=k!uWs%wSqWK?($;{mt7RJ4?(fH!m>= zB8?Pdfj`YHjC47Qm;-Y@Cw5UcqbAX=k6O-BaxpQI!Ug~UGieU51Su?56m?`-W(dAQ z(%VjaD^7U)0WEmeT=vxPdd zf~j~LQ}BHywM(aj266pWBdIKUvY@Rh`=0lzr=tjLDA|9FXg|DBtf97Mle8daGukviH%s7%qH{KaK7@$JJ?I4U64jp-+=Cb9;X^;!b6i3ec#E z7DM*nHH$~<AVushQIN&_VC~-=Aq0MTO@%|Mf z@f@tK`D`kCgn0#p^STwqRT&r2e74_|Xzv$(R6AMLIhrKDtwR*|l#CaC7Gptk(B!s< z`{~z4?!s;^URzd6hHd0Xs_KX{-?rrf6EI~l2FxrD{NguCNdaT29NWxW4+y`^d{zan z9->~ZW099?aQMKBl>cl`5ks?}lB_8K)Mh&|?%lik*VF?xQ|6w%M+PeuNmnqe2mR#b zTUpfbO6VcEv^d6k{OBBb7!yNRm}`#!4()Oyw?4X~wRFtr2GNyRxG90=c@77PAoa44)O_hZ3%npY zmB`*PuX$5}=?4IEeOq;WnK!)O^*Xp_P%*#W^CYL-(MNhvye#qwxfyen4v+RVl3>w5 zfGDB7tjFSC^;Oyy(EHL~{yyb{CP`;}_t_>F7QeOf@$r|K#+fHGx9$>qRhgvDWHT%} z$*`O8Q8cz~ascrL7ed%_nYffH6<_kna)3Re_0ogKl1onF?G&TGMGg)%*M46xc>o^k zSgzwf000936R;)GiKYMm1>7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R Z00HkEoR|Oy_#myQ03cujDVS^kE+G0QgLeP` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0823.h265 b/samples/h265SampleFrames/frame-0823.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2fc320fceb9abd4052f33b7631dff3710a2c4c71 GIT binary patch literal 2169 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 Y0!AKB2mlTUAw(bmAYcL@{R{vrV8n7vumAu6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0827.h265 b/samples/h265SampleFrames/frame-0827.h265 new file mode 100644 index 0000000000000000000000000000000000000000..beb980563ea47fd4b761eb94e3fc497e1e3b0332 GIT binary patch literal 1869 zcmV-T2eSA8000330nyR_)I$OTP{D8=ZGeyt0suG$0KgOifLL)w{hDnB3BBGrqBC9qQmYXM?`QCSAAaQ=JWwSeU6x?xEfo;&0rHB={3pM26sX+(xnjE*5I^MZYRku%ncHKz$Ld&Te z8*jIyixC3iS_E6)7WD~5s2*d-k6102ajs^P3`75!Y8FlH-gIX^FxLv?yiMF(jAu+B zC%|loi*vH|CWyuDr>0LdLAdXqE-15lDyt$H6|L5nXTid98Zbe)u_McoP5%_|PGF(A zOEP%ee;ev&AI>0qL$6{3!?tiep_dg2Q zZALd{#mGSoD@6JJm~{wk6EE@|-AYf2-9w&8evgAEaRon`p{zNz$q8OQn*4}Hap@F~ zD#sDZz~v*W67r8BxI~1J;%$I8R#FI6{{9oJ;62>rfBo$%1a6R*bB;)-!sTE{1RQI2WD>riXHVNMCAMs_#libvwg>+ zqMh}JN1lmWPCP;_PHar->)^7l_wUQ=RD}sJ{q$*Uxq^2%S9ah5>sK43-WnpUp5na# zLeN1X(k?Aa(BJ2OoaXHM5=?`p4R$ty=h`u_cTf@Lu$Xl7tS7Ah3M zR0<#c4q_Qg2n>TH42iEX{d*~fJxXXCYWin)^;3o#ODzkJHs(5Uu8|!g*OJtexJ4>+ zB+nk}Unj+<%b^*w+`|*$=lCAoXe|KT<}CbMF;G|@L-YVNI`DdtECcG?x)a?HRx)86?wotzkD|=k%P`s5MFo^e&kV(EbQMo2E^y1I2XO z5jEcQQmDGH!~gH};|08OU_cISrJBqVR8NM4>YS6!xgYj`5iC>E)y){3O7BtQx^3f^ z50Agx?)3tg)O_hY{k$G}mB`*PuX$5}=?4IEeOq;WmmLgG@OT&tpXe@nz07764q8~; z;W4oR+D|Cn;&I#|a&0}B0zYBd$6o8ouwO|VV!9I%^qX+7n)?MN5mSuh+Zd~oyS7UW ztNgZq`gd3hz18d5il^hg+GvUPa(PzcxB}2Nppzh!Ds*z>_5ocIuK>E`;Uj+%)L=P= z&f~uMs2UoQzV_L?;UG!lvWC@N#Im&}cmtgrLfW38e+8IEZh7ncS_}mSX-@|WSU?!1I?Q!J-I@}N;x_fIqO1Ua4IP0ySW|H@PH%=om=3$yiZ@({gLrV;ysP`b! zd_JJaS>t&Veh3ke042AI6Ax=K_Z*y?q{NUa;HZPear}RBER79wwbqSH$JoNZ=ck`_Hq|Zf!H{Ep1U%*(d<30cY0|Vq-CDDnd000Ht zDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(a HYyd7GuY!;1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0828.h265 b/samples/h265SampleFrames/frame-0828.h265 new file mode 100644 index 0000000000000000000000000000000000000000..676d56cfd205c2f088d9db8ccec2b08bdb71ad2a GIT binary patch literal 2234 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0830.h265 b/samples/h265SampleFrames/frame-0830.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c0078ca4ab4ccea195af26a8be112e8e72c2a45a GIT binary patch literal 2038 zcmV6AE-~E& zeNmY+R!fup)XVgkOL-!xgiW}|Dpmpvvk)^4au{ItDxwT2h*IYKSl!?g{%WPLxRvM8 z4dbVFm=Iblpw+F4fwj5uj+v{CLOCm0yqDZwPdDTX(??JD#KPlT?n}IuU^c{Gl6^YV zwgqBT|F?*}4CpQGWnBOH)UsRf^jRFi-3gO{7PH(JlMY+Qz`(H*gm$6>yYfG4uSv}y ze3Y0IGn)q=EW7eo!6|v&O&Hd{Fa)^xJZcPH@}fY7Wqk&&T7w139`bHqm8bu`N6j%k z1nN8S%#A+%lPvHfe{gU)f!E<)0`jY#OYdh0@zo;WQ``xgm+`sy6b^5Y>^o92>oUx$ z+<4_Fyheqx5+$<~^+iR1*s*r>>7cr>Q=Tna2b+o!c+X2zq+7+@#e6hWRpc0#d4d$M zKGSY$rJ5wXArxG3ZegLOZhBV?LU2r;a!qg1Fg487D5S3Sd*=%c=I;x~ZeO2QG_ad6 zD{?O*glPR6!>xZaV8YY3i`Y^kInVzh&hPC8GbP^vT?@2^y(}|KnPhz?9Mz-^mB!DF zFKrz2pFB^it1@g+X@J>$Ho5^HJE}gkm#q>V6J(yJQ(CWAQ_)@J$-n{6_@%b-gxIL) zcV@_IA@@l|o_1^TeUyP0r)mttkJ;yj@a;02xm9_wxYWV(j7u*VYcIx!7GfJ@A?Mk6 zC9o|u=gM9K?zZ|#tExzDei1Q2_YBpZTpnTCi$4ZcVh?E3Z_oRYG;c4YfN=-SFs}>xvmsgz3&+6&|$|VLFfx zvlb!ztw=RN`A}^k!e3?$7t%J>PylqVw4+BMm)$L}pTHR5AZ0u<4JYbFzuI%0JMA#V zw2S${-pJbDlMnv?|DjmY{~M7px^`UvTy;!=YmgB8n0xcjIKdz{s2Q-7 zZx$&Vet@370su4$;a&Fc~1syeqgVK`>&Jz|NdYXj3K*m0T3}p zCV~wzW)o`C#_V;^lSBF^He1zY;TD=O`cU5j#N+w-@Sltl#DInPN5m1%ZG2_9oO8h$ zz1>uFYIuBP5syExALsy4&0;iRoCLvO9B6E@UabAAKuOKGy#YIAGUqO4fg%Qasco{a z?Ua<{CcFjq!oa@jhL63L+wb0=4Dk;IiSPlD|HC6x6TC^c)a?%*iYTR4YO`ar-^7;?F9pCAA`OI5IJliEw9H!{i-jZy-ike=A_ zF_EmwyRl2S=X}Wm&#W={YEM=H899oWEYlX+{|sRYke~pk!?O&ZcsLH?ssBtc8>sNkZd z0aSsgeXm0nferCfK|DT+dhZcgN{)C5Y@<~?-=C#neC)|HqtZ_VWmhL%ZfwAdIHvdHp_|)`3{mGpJQM%){C4F z7Z*xd5{>_U1a&W-?+vs4X)zW9V$64bSFQJFKwhC}L5@yBPNifrWLg8w&L-_O&tL!7 zH>ujp&1)o@CgSKNNCQ<%wl4A{M^B!7r)#vBn`X&sjbYlL^T+pFFVX;yz2$j>K?O5s z-zFo-K+F?tqL*$-2{fF(9l5Jp7ZoYA26U_5(1v4S9U5Q5&>zOs^2#2zp`f( zHzLDSXiBBd4Ker7mUsb5CRJ=~&f)r3;5-o*ZZB$1ok~84PaVNXPmIOSDH;TYmJ1Ow zPN2EgA#K?BSNGs&D2v!`Ox}UJS$Ut>M)O{!Wa;Z8cw_o1xWkF`4FUl?f*fdYSgptw zKmY>Xa3#@+rT_p1+$t-M00093+JG@neER literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0831.h265 b/samples/h265SampleFrames/frame-0831.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d450e982359fe6b0fe3faba5d7e05bbc642b9e3c GIT binary patch literal 2986 zcmV;b3sv+0000330nzdQ)I$OTSiyO^MFjv30suG$0KgOifLL)w<-|2X?Z6L_ET(D+ zRicjwMrX0(uOrG+nY>U!z{E==e(YN*17Fn@ofzk8xE^gpW$mGHiZr%WrvNht%Buhb zk;&vT7W8uKl5q#^fVz%@s=!ZYRwd|uWHav017RTR2y+!@(~Gj1b~%G7{HZ~({Zyd} z2I2>vm-TPq{T?|{Ykxku_-Lg>lOlh9kW1zDXAJpzSEG=Zx`iLxOQupkwUtt;V_{L@ zo@~bwJ-Thq1%7DTwV{(nj%^ngeaQ#V;zE*{^*8|sSx?;Qt7xEvEk$ia17Z-&jnKkF zK`R-o%|*_2>0+9U9=u&9#K4LKWU+a)m5MLN)IvsIo{3r+X4bC`vfE*uE5#?(tsnSd zBkkEqpipicXrD;8bQW)9B_cTrFqbu9prWw2D3qlPUuA>-YB}XW|Df;q?XhSamlHka zjrYw}W~WwS+lcggkxk(7!A*sRO#dvQcM@8fS{&D5LcE;_AimDK<<`M)V*DC+4T9{=@9v^`OpwomvKa|b~H&D2m$FR`hc=|vX1Gd}kD z7{6waV{0uQ1VrYz8`Hp1hn3q8G({&y%?z{Kvu6$I#Lq%kM-!L9Qfn$aS`GK*6&=%Y zMtn3&^xe@NWf3TqC;a#E7mx09eBYq7czyog%Ki(nZ=|pDP9$;3)#A*dSIiB}of(_L z<|Vn(sZ1eM&xxhDA+ggRh?YACJx&#EX_fa@s8hF?V~`Q#d=s*m6H|D7{OTZx* zrxOJkYY~cauX6V90i)1}NgE;sh;P!Hl)|#rJKd$eHmt|xu8JlO1Q4D{c=fP9)&E)i zH@$|R;5`UCe8x}V{Z*(6G&Xj61)!IAr^~$rU>FS4z!yv({g7$4oZTGeO3^v815Zd` z2><}_cUKZtf&y1=O{cUnG~@K``c`%W4AOExa4%3K=bu*h-`8yPOMAc02D<+w>NP%2RK{?;-Zs>dZG2K0NSJEPqeEJFC-9U2+?;uNo|uRBUPb4tc;^VJ-~zHf>a@@ zQEsDZLwsy##fifBodyM%Uz&;xSBn;>zDlxD=yu*&6(lLxv60ulCs2T;%VPZHnP4IN z4}dSAQl%Xfekh&@wj;EB0^v5EDQsdeO1vg%Nd|8C+v#=q^S9N6i_GyhQ3I4Rxz&0^T#;N)-NOQca8qngT_hV1+oN zIo!GQ_b9vB%kW1v1Ll`SAdt;KeKIrnvjqP>ng`upbX6e@_%BR#j%TyYoL{+zB_s>s z*aLI?P??p6Q~m4F9b*W_JO{nrpUsM0ew8wx+|D)CpmmcOI!o{Cg#f3IJUWsGVAkfq zbQ0L)VCQmTwT!(FEtQ_!tKKo)_!0#o(!EGU4@`^A9NbIH(Y2gcR*uuSfunGR8!vUL zNx(88pR}w5IuMU&4y;WRyBzkCF)2j91C9Gi`_8KeK97d?KbSaMdNd%2N&Ew$pAm^g zD<87By<0U4t1&@&Zl_fYwI7|f5fmpUq{Hhw&)km)31KVo%XpOG76A^A_hCFPJwDYF z_3YVrC4yuFfRsT$A^Z$m(;3>}h3cR(l%(nl#N6|1D%VTl%yqPaY_UeuRau0Prc7Iv z<7F(No56PMJBnX5KZq#VP3p{wlh70C>P<#6&w8!5NNZ31oo>Q1`nl@w*{t?H;Cv<- z+!@>*`Y4mtdd*f{9_a{*Ijy-GFIqvm?QO{YfSRmaM$VtJqh*nj6Q;H&c_`IlHoV>v z_(M&y3D$@OcTt=9EquQea>T9Ur~humcx?dM{9nsblkRYGPG$~50BaDb)G%831(t@v z>N-uTx+@|gN!Ro|5R$BI+k2^@(M!IU{~rQFwUj5rP1xbMkylruv@oHH|6-hJIQ4MN zqSN4+=~;fA$orAb(3KE6@y1x+psVk4+zIx4jf<_mjSqW-QLor_(=dDi86!EgS927= zo3u3~Q@}HJuaPhbRZ7ZgvA_TW_E;Y}{92M9`ak~v|KWfe3Vti$1ycoH+AobQ)HQZ1 zUHu&N^})iOvhuejRG0wUG@D$o_A$!DJYu~LB(||2cKdde@yz;$tA^5KZShZdpl%_l z6ay0Xs;dwqa!M2_cB!$IeGAvvH;-67?l!-lk<7vf9to*HJgQ`|4Z~^a%F^dj3c)Yg z6_Pn!x+huer;U3oez3y-26_f6WO$c7c)<}~9K3}A2h3}En7>|MT!w!BeDipbw%)X> zvEP*syPv3cQ`4MEL>qFs;jIRuY99g_0MmxrHV_I!>lG{rcNrEY8^%CSFaOV6qR%ZD zk@@v->Q~Ea>RM&>PTspG=1n=s1$F&-<~rxN+0-y6n>5Yz_2&>Lp6t{u7!}&O%$W}r zFytmPIlCVz_0u)uZt#-eDZA3=f}{H_CD=crOmogT$by7oC7ef~yC#?^Z$#2gypsk`x=|j^&o&>9YuPUmW+WmjV-yUfG<_)=W7-Z(g zBRfo?-)(;BX250m$e3rLR>`27sC#K_63OhOYZNeJggWhqew$i>Hk1w`G=!qb;Enr#X%LS3|0H|Shm&wV;~&=1<;*1*kvA6cWLjyN;*VgOX-=WoA#nTwSF^u$`e5Blp7$O0eo4Llci)#YO9 zbLrFszf;se4c0jvSpqJbzyb}WV}mNcs*BT~Vpcj=eF9j1dq(nuPO4&Qzug`&*W3@_IkJL#uY50_KhyDr|yi0eKCQVHc!oC2FgW$o#k1 z%49}IR*bE8s^avVU~q4+afv4 z*-RtP#{zI7gO;HFj6fk`-$Q_TpAOjiT+rqoV2_6U;@gdNcQZ0^r+*YKjXP(pyL25b zmic`^fV1HOGrodi;WZO`s1&CQUg_BtNE2Ve9~dOQO)7Yz#cLn2KjW6vJ}-lp_J%F5 zG8X5+n_hiM#hlTCHl1PL`>z;qz2qFD7`%Wc*ewx>y+wwE=kT_jnqoaB{RaMyMYcsO zl$`e$a=KI!mOkN{Lv^Ocxr2%@7IGdj$C{;Qr=fySMB&fqOP}}uE%*i>VJyt1xRlS? zU46lhsU$l<*$xv{$^XU2hOx}qI%6MG!F9aqA3+cw`Q9Dtnbb1|7RqqyP_x-Exys?!|0QOA7Z!7t<(j^OD8|<1L(11c z)#VI_lSetF7V;0zmzF%1AR(lHzZXo4BRD`gwsFpUIHmSp&fL$$Id8b&OD9s@?acxA zh*;r?cDqcladLCxQ;pv@6C^@_$KkM38e#;3A+za4!Gt;T9&fBDSgzwf00095Le4N# zdX4q?5#;y{noUBY>+z0}fc8|6-I6}1O^FfT@ME3@xUmb>UIdh22CGs5NGS+Tv^PAu zM6jJbqln?yG8o*;6fH9>;3d(CrT_px!YV6{00093+JG@neEV!Z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0832.h265 b/samples/h265SampleFrames/frame-0832.h265 new file mode 100644 index 0000000000000000000000000000000000000000..57b25d17784f6faf6a838a0ca53c885fd3b2ee9c GIT binary patch literal 1867 zcmV-R2ekMA000330nz#Y)I$OTSix7VXrO@LKn?={z$gj=z;Q*~4T_2$70>VsZ7riE zw4x`BR#qRQ_gI^Pd7O*CB-Q~JM?@x(l8gBN~uV4why@Xz{?^D~<}kNwuCQ#;*GPptak)QPpn6=)XS30g1# zT0c8pSSpk_{*zo7HpUnwsykDS{nd$Y@)^3 z8A^FCh}H?;QxPp!_$Pv`g;XFnT;d@fK?oQF%1(mScyg|jbB)+9QFoV%BG4#|v62?S z8)+&^G>a2YE=PBOmkAE2A!THao4(lsi(10%Johs`Ovu&(Y@yX4QKW|1PWtjydVb+U z!~K6eb1iZ?u~kDqi4%jcqGKqciWzMLPAAm$0r3E{)F;PNQ=N>dG>BV8Q?p)kSETZ4 zMLZA4pxfzu1sQPXxksn=*;o{SnHL#Mx&(UvATdSmhoXOCQNo7;ZVT(En|oL1R)MN2 z7O9363amWCM{HTN?qS-OvO~slDOcYr!B^>g)ybJ{?9ysYfu{D&IMr*0nU~{P=!3qa zxJ+8KKo5r*;Oae+>iIA2`I$e_+cKL@kLw2KkjH%>Ytj&$kLr4zp!22A1ig5-m4$$Q zRhD&Uy|3WXp?M!w%&9D?nah(fUn6S`+0anH-j^(=XS<&X*ZM594P;5& zohN`j_fVGUPO z2p+r+@|5>BG?ql+&hEfVvTV;w^$-9KrUZZ|=|KpqJsBAW1<*k0S8V1Lf^RRl zSeZ27Cfg=nk;`rX03T3TA9e^Yz~4wCnK;x7{?Q|Vh=1eE%U9ioquM=l(w?itC!EWo(clji(`Z8rO|U+H{r{i|jt*x0 zuPOFQB0{kP3`VbrA(57lPGryltDvo)AcNO9C9dO^=i z3{VOoX&a*M+nPF4Tqsc!eBbptxMol>z}4|G^BS53ajq5@YS9rl^zS@-mW1dc8H%(`&Y?1S$B{I)vn(a)}>-7J32}S)w#IH%`ze5+Cdp358=*v z8v%5NG$RSNEq?7Oi24Ty>0xMBl}(uI2bkt;klAElRQ}w4E4Ix~6A=y3!(Ch5H-Q#G zpfaj(06bFBpuXT;(G)1Z>taDOGSB!L9W5hvIL{yG!?U<_vKYu zC)?R5e<)BXA#V`t^A8QF2i;NzY0m|8*?CT&c9lD8Pyq1ofZ=)ccRe8dv#v^LS7cYn z>{f>TPLL|gHXwT_T40b{?aF;YxhYTjIfkC8%T6{b9pO=l3MB@5 zrz@IQH6A+I2)ucFz2o?2kp^&=d|tiJNGScU;swtlIqAI7D)QB~auVmV`?zGZ6IRcY zXU+onKf4;ZI{nmjH+{Rbc4Ye8< z$o?LLX`#2HTyBm1E==}T`E-~@L9-pHoyoONG>wl4(ra2V@LqTvP&e}ZT~ZUg$UoQM zac}R}PmQJyfCOrU6W+a?Dt>iA9H&_;kkn%o*4#kI0t`8@fbnd1yKVk9?=jTMbdyrB(EMw2>K^nAX(Am^T3V=>f&C%n&7 zBEgI4tBaFGG++H?EW{d2)svl>)3`np#N+Z1nq>U7NpWjXz(N{GzX9g-0o7YWpMrZ5 z(_TAMCltwOc7%iIL_Sy$Jl`D*zu~}&bY`w8lBE_%cv=)b>z!ToWq>8oiKYMmMk^{S zjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^k FE+8FyeRTi; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0833.h265 b/samples/h265SampleFrames/frame-0833.h265 new file mode 100644 index 0000000000000000000000000000000000000000..adc78019c13a074847ff486beaf7a84da6e6edec GIT binary patch literal 2075 zcmV+$2;}zw000330n!2g)I$OTSixT{1gU`FKn?={z$gj=z;Q*~4NQ(oZMe_>zyIrn z=qq1JjVNHOOe&=&)ptZV2R!LHteLx4%A^vqL?8;24{py2GR0UN(Bo3J13r1r>nXeM|NAX2OIp`9=x2{{J)DDLQpTP_ZVz1( z;M{T*vbB%J!e}l25$t5I?1&PMA0LkL)zJz%p}-tcQ%289-uVGbi~AoSgpx&`sNvCV zYR5fef2P}cpBoR;B2yMc^4(I_wFwGt_a-E05T?5*F9#V2^At0=jYezaB&F7s$j%p3 zrDeG;BM73PrGUt(kDRC`lyp!5SM$<+<9TWW_T{G-p8h*rs9!JX{spH00!r{mB3tH~ zZrcvqwa^qwQ;Y`>!0Nv>MJGON|1#9g9n5cmV5P?}|ab)hzp;zl2B$+8jFlhL2lE~%@KV&zEph_j`!Rk=y;#D4{ zErwonM`N!`#C+kLFej7sjVp<_y^4R!x(_Hsx6eCjd-nd@fFW*C21&Q&sUgBW*LdPs z`CkTplCX7}v01ckNC?}^4A%9C^?a4Ev#Bi6(D<>MxK zIPD+gxP?Lb&+A7LjxDwi2@@1TuSQLoS$SY4-nl?S@2CRE*8QzRS!|v#v-5poB7XOd z#%;KctXYeax~;1cVX)$o=2oKS$C0VILp%-@`v|@t=)-fBF6UhH|%Ir6Cog=srBbs043+ ztxuR#n*C_mc*>fY2{Qx2kJa1xNov$VRu!7apLaPK@KT&tobIDQn;4sHW?aG2upY1Z z&-nN8-=g&W50m-N$Ud9s8}P5khUA(#)d%d5WPlQI&{-`A0P9g#W`9Tx*svWT;!t8^>f3q zNPqw*;x@&4umO3Ba;!nEBF3u;y?_xyYy*t zSe2a0QimoEE!b2NdpDC8*1_t;cC9O_IUh6c15@S8`}sA(;qIv8<{iHh?{&lA#XZtQ z6SqFG;AJsD_z?xpN~0yjEKS*qMb6O0|JUm5%9lat`g|1Usluy`18P~=iPdbnE?FqW z2qQ+j&EQX{5_Q%QYdG2`*_F<4*`r=3D41F zLa;mllc8gx|E~Hk7{Te)MTm?uqfhgGgNAP9vLy#fDe@-fd;=s;RDcS1LM$BjnHCx? zayFEB)cYjd2K511TA<6pUJYiH>;?J1hqz#^K>$c?`Z?K7~Y9oa(AV)v+=u%(+ zH){71rciw^d}^R3uRb;8SN}o#wFq$I?+EgMdX&C$j$_4ly}zCv8eiq8qWn$4JjXqO z9a$Ql#nYUtj!{OD$$e)Mt0Ea4<*^I$@EfH8`O_(aFgymajT#n62|OzZzo)81E%E7b zn39L^hhr-N z{u|DhpgH}zz|^O%z0|cREsHuurJxg@jo}kjS;8gaUWszy>$O}o z=4KjZY)#NO9rWge$%PMXRd2AaypRaHMEK%kMb6H1209lMPg4aB@c#)(>!z#EtiwLq zh!{BKY_HS@@?KZsD#%!^$QD2V20)5Tyy}y3L>ua5cI()LfER9|QlM!W;cKIni&y7L z4bROZKdpK(pO3DpWgX&~=`x&~)^g-KNHi(~^f{M-qHEGOKeMg&mi~k6?Fc$|HfgT8 zSKzBiiZI@X0m@B0S=aI635?x#xwbBU^d$evf!6ON5Vwy0dxURD?NS%*B(sN%Nn`xtpmSD6ZBl*JadI!KjzPn`y z;BOw!IJP`-Vp5OeU0YkJlJJ%*ZG`;>)@vei#md)JzMT3#_;PniT?k-tz<$d9`6iofc(nbtZ351=A+oy0fN^`s zS1(vt8YE|brr{he6Zi+wG&+}YPTRkcLRnOAmztam-a5~n)UIw~ueBx7iKYMmMk^{S zjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^k FE+82o0F&YFwc$4QADvoDo9;SA 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0835.h265 b/samples/h265SampleFrames/frame-0835.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ed6c6a962da4c6cea4b7305b21a091ddb9feebed GIT binary patch literal 1883 zcmV-h2c-A_000330n!ow)I$OTSixHwnDmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLOx31i;Y9GNZ!qRI_g z+s+}H6{tHJ<5D6^J80GSe3Q-j0`$`6)0a zWe9Qj8j$3#JQNH1nlY=!U2$5e}fPjDt~U&w<%GBTFqAO<0y40dq-VIJU< zL8mU9Ac`Db%+I23&?gAjYY`-X1)70bh;}=_6)j*$QL--wXLa zrD$Z9Eezu4kYV-0QLG;j~0B)@uB#Ze4mK71lc2GR|HyL&)*21ubBZO{^0|M=F zr|TP;M{>(H$&N5? zB7hIG79sqtNKq|(y%w8M$ticl&#w110F0amyBzV_YPXyu01q|(A9!2;~ z^#o6&n<4WF3d3yr!tKTtFmV8gg;w#GE&e07TOd*^Pw464>YZG55ATB?iABj-zhZS{ zNuPkj`>Xc)hHe%5mRuF|Pwku?i%F!-WG@hsY!c9d>a7YRj{M;C@Vb)Cvx)1rjX0E= z&Jjy8S3^-F;X$m)O7{L_dbR;sy2|rSuhXPSz&Mg=x*2Q$Dd2M0^8|UJ257VPmI&9^ z?2Pi?|8O*ed*LT&oga6IAOHZ0fLI@Nn?(B)y?a0R|NL23bT(86g!F^K>fNYc$^8I_ z%)bv!GmE4O^#fhATOfa+#v7FYI*yRmP?an8k?R$rizpR=;uAaP%2Z?h?$23$-If0` zwSB0Lv&_u#-YEyo}A9U>~d2J?K#Ku^Wg*Wf=G}MzX={pq@+N1 z8I3tEssXOsM@P_8V24OfgqA?SYNaQwm%K%#SMD0vX};pbGAkf_1h#*B--ksN#`={Tal?4{)_WmLqxxhP?S9G8}RP4q|VVf|n1Jatlp!cl(952TaX>Gk~MN%d__p0FC$iA;vom^UU1Ns0QA1&n3l}DXUB3H3HD9T^}t@k^T5#aP5f5aX)LMA20F9 zC0%DjA6VPTJp;*>0E9hZP#a&N?q7#Mj&klGnH38n`L5!qaEdgcSkH+SXB!KDa3_Y{(-EV9?bew0~fXR3`QOg^0muq3%z7D+yhdUWb zpAOQRmcXKf7<&vM5*j~EaocM_arJO&6zl^%Da-6u2qOznDa z-geb($byRwf&)0|lBGC9f=8oJBiO!P3xGCttVvAfU>Lw6(7=;d2awo(e!l_m(Rcj) zxRD8Hjo>BGiKYMm7k(-$jsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkE VoR|Oy_#myQ03cujDVS^kE+EV%nSTHP literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0836.h265 b/samples/h265SampleFrames/frame-0836.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7777937c64962d08ddae750884f8ecb13e7b4cac GIT binary patch literal 2984 zcmV;Z3s>|2000330n!=&)I$OTP{Dc?JtS}r0suG$0KgOifLL)w)p2~*lSLE%_ZR=H zWhzV_z4j&8ZaBw|oK=&1k4z?0eF^GSI${;Eog)RFMIJ!FC(URK9%_F}#9(VJ4P?NBN=OF$nwVs^0t~%7q1_|%^IPgaKW*IJNMG$N z(>*fqiS!ey+Oc@c;^!YyJMumM#@9Ges@I~QEEMMH;2B87n@j;i=$t^{GpI@z3aOFF zn!$BMGxE4K88efXAug%kb2f0-I_Pm2B%8+9TQquP?bIFEAXF97dgtA{K4+jF`H_~*nH(j zr!-Zq0^}Lr(c!_SR7^G8BZNM`j0i^yFV?QTj6;0Z!<7Q{Y|IRa!42`cZRv+6k7n`{ zPcp%_k(JlXWx}a*)kiqYrdtsaS$`d|4-d!&>c@#(T=zs3CgkThQGM%Xcwl>lq%K=q zwrkW^72w4aoc;vA^TYGI>f!3|FF#J3uT>LRX4=Tp6h0v*gLBeKc7Mx?t@qMD>h4lB?F*L*)ule{0rXt20-I*>DD;@sz> z1R=cL-&hj7tmn+r_J6% zMEP%bfUiDnc*f!`CqZlR62tHFCHp1?jGlrJX%pXkB}#?k4Sr`~Tuj%}YHj+R)=Ao= zU#1`<^1okq4{0pNAS@aWqoQr}@Y*}Pf0XyEJ zZGW$G+gRfUj?uAqUuEUFomow9^FD-FuwnYmn7)nA47)9Em<|S5-2d1ewC@^(CaP3iWNI<%f)c#;P`YJTt zRFds7IQqq4)^gyefm=l| zor(W!fYE4ERK~NA@>6UwTXnHBbpBfKZmW^9d;H$-;~o||C=k3ccFUcl4E&*kANZ6L zB&`?I@};gEg`E`Auujr;&WXKsIH(bg${2HyWMNbZe2;tYJ{%4bjMk9yuYD7Qp58BF zk28W|W~>iRq^|qfVeY2B5mR&#*;JIykZdN3lyc)*f z?gRgGKG2?FwpG~jesr-6_6F9k?QU?01mY}50UzCoM%mt;J0YXQdjdk942ht>C)MmL zZ5IGhHRsw}xu*ZT+_WjkTCv4GLz#q>Qa)mIrkx-4_z0_e?k5dXZv3%84sqze$ek}a zlFVL@u=C=x!=k}1e7B|M-0B-exVTo%?xy}`C!v<`33y3!ad`-!=V+WlK}Rku--wn+ zGW`*kdD4&l^19c%LI|+~C7R{#A4IT3C{z*Glct9?0N((YU}b70ZIP4Ngl#2rNTee- zkZ{`bW!YBdEd*?1AU&?H!PW;YkbR9(W>0l|5*2WD&@q)Q$X;CL(mRBl;OzjDQAg}C z3eEExLzf?X@L&uC_FuOtaWDWIrbx+!#Q+0PktnGcGP|?_yrpx32SyC+@6V zx=(4S#$i!_C&T?O-+o6y7n5VT=LOzA#PF=kadubNNnf7D>7vh9F@=NIZz-YIXTy?y zkT9e%E=xBkV)D`~7kXRjO#g)#y)bsw5pg9W8Yu}IhMs?#~iTejcjeAbnn%JmhF`J)dX&?imzTTdOIJo0i z{(w4Z$qS2dCPbe^n^763Lc~$STj|n3Au_p402XU7fYp!wuH!xc00RKEiRYd-QgBCAD}n!R2 zhl+!}?}DsQ)9U;R${~64%%sjzW8+8O^mUqU#6H~H2fk6ifda@< zJ_^a)#fTLLl7rTK6CsaG_8)K};! zC_7$JOQyhv=f5ZLAXcTc;pijJH2;b;A&gN+aV??FZ+CPw)1XIG3wa?>+W=^D1hahS zl`bWvkpa+|2}L5KVqg@H6gDHJ*fO_NG3GOP2ZhoqLh>HLx@sVHIrE}7O2{U6-sw-)Ou{|)IEHcIsgIh9h{f|2lybZr~n{f0x6hm04^Z*4A6=I literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0837.h265 b/samples/h265SampleFrames/frame-0837.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e9971225619b5d5ab86b59099296150c352b99b2 GIT binary patch literal 1938 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0839.h265 b/samples/h265SampleFrames/frame-0839.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f484e86201289396aa8fadc938e20a57a5abd4ae GIT binary patch literal 3050 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0840.h265 b/samples/h265SampleFrames/frame-0840.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e627a27fd3b8f18f9f7ea05ad3bb8df806901d6 GIT binary patch literal 1918 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%0DqCu`x=#JvmyPTl zBx~AsT^yqUwef_pv!DSDph6MaT(}EC|J8C}$@)hcA2;x$kZIt%wy!G}QN)o@4m#~7 z02w%{X9NPcFu(&~gQ_W$3ym(I02**uuH!xc00RIMuqDxnrT_pei2Yl!LI8Ldu0_49 z^wCUit*;Ot8X=nK?3y>sbq^|xVqekmy(-sCfy|tggp)qJ0>!d6&FU39NTS6M(6wzd zQxxR_DxGk=#F`t!Hauk0EJAz{AS&jzX)7`An>wUv-mQ$@yIdnRzJ{v-N1u01as zyq_%_e5!rIk~|Iy2OJZqGuo)Cw2mpCif6dXsxeak2)H%*@bfA5o`Bz=cS`;uO?~ko z*X1=W7$pM1NTMD&5W2+Q04;j{qEDl$fg>$!gu4wrB1Vv`$(;(RK6xC`LoFgMad?3o zSQqm$-)#mvORHb&_G|^5O zha%sd57}91G8pNC-Bw5ozBYwaSf0`QtAr-!Ae@d0G^#ZR|Nrr;D;;eW?BFDCNLxIt zr%U33x~WaQEA9O_Hprwm$D&z#kSGpp?EYHZQBM-9Iw6{Vi;>!jB9e6H47+?J3US8x1N;#n)cQNu(XBWO$?YM$To zOgdOSKvv@naEXEP4h17YtQdh468nh=>Gf?h>acV-p>Ay^xl~CDHf{#=Cj$V`_|O71 zM14X)Dl3iv00RRQFfmVk00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JX LU;-(aYyd7GQvM0v literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0842.h265 b/samples/h265SampleFrames/frame-0842.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b8298f158bd55c37c3a7f5c731a8ff79cb195bcf GIT binary patch literal 1575 zcmV+?2H5!k000330n$nT)I$OTSix6{as(bFm<$5|z$gj=z;Q*~4RnPe2p1<)lD6%F zEFJNvjIYeYn+)?g6kfxB|MQ2A4;BH50NrNScBljr@g%Dwd&5=taOTSM5iwYNQCj{U zSH3l<_+=%Nq)>d&H+aDe{|smr;1!Y&`7(@2wEz3{wwMmFUoJK6$v44A3c4BS7yD1N zU5U+ER2ot3a|1mPZWsdx1OMfJ!2S>FXJ68MrImb*d3w5kDhYcKL)1S$pD(>Uj<4oo z6vdF;H>&-o!^JVmUn7PGWD2y(CQ0|_s>H3AW^fYuQ)+OM@Q($ZZhkP9R9 zFWY?daP;Rx5!w3pP$G7FwX!+@v`(Zvrmj=57}WT=qaS%!*1f*43oXVza3#GtL0j0l zzJA^V&dMYV5OUn!GZc_Yi>J&H4iT4@dZ?`j8f8$%lfpu9EirXSp`t6(U#UpCm|U}` zR*Q>|-Id$-CVNr^sS7%6c3l=Qs0(5i&Ha-;CjpV@C8QH|XFqC~XHwXMt(+ewA!OG0 z29n9Ip=s8B|J7#1ryl@#v&odZzXWKOLpoHD2PpF6 zvGMnL`$8mmBn49t-EZ|exMol>z}4|G^BS53ajq5@YS9rl^zS-vS!k z{UE|dpA@E==$@haN-aXTu(*MFgYwpSLzZDZp zX4fDO5MgvJhbfzhLZMavERjqC^NWK$%R9$<8IxKjO4bA@Di4nN^EdoR#VY?2jj4Q} z|Exrj<4ke9Z@@qtFj%d~7C-<1Kfoo?iKYMm8zz^@LZe6-#4(V$tD#k&6b&wC=0i zvNhiaDvz|guT@N5U~qL@(wcBO@^KFYd;$x1bd|h({2(YEd8>zCo!fECvE(VE&F z;y$~Ml^IAJ2+RGKF??`IHyV3#vvKWysyEs>%9M^}T04ol633enc;Z(#JrAhQx}b4{ z8td;MDl3iv00RR|+ShJjyOjRxD=0I|IFW4a{}6}{6Ui%&;(rYOuz5ZX6A9378cUxJ z$&`QG!b<=Csi!m#_&(M%ROZ5lYH`5a(O9Smafu=cBv>jn|NgSvN}yue03woPy@qZm zl;}-E&iA9Jyjv9Wn#`#R-XFfqIw*papv4#pxb=q)#2~MMnm*#n2;Gdq$!R|UfgkgY zS;g@;uY#Fee#DzPL2Smu(g0l4E39Y5wbps)F;9H}00s#bKJownA|MsBFaQAWfEM&R Z00HkEoR|Oy_#myQ03cujDVS^kE+Ai5>gxai literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0843.h265 b/samples/h265SampleFrames/frame-0843.h265 new file mode 100644 index 0000000000000000000000000000000000000000..590e53a0f0d25087039ee50b33b1d52500a41a79 GIT binary patch literal 2210 zcmV;T2wnF8000330n$xJkmUrLQAVRcL@v9{HBL^uaL=xMB(y6?)M%VdZ^6(%0tryhA5sijCb;hX`z07<32 zp620agc~1L^c)lsr0(R9zH-vl00(&pF}S)K0ta|NAX2OIx_Eb?=M-EtQjEQsQ1f z`>NZi7jHo#h$&`4O0#p#&&^XL8Fv@&!rh2zj&uDN;W5~kZ7A{tqoG`uRzNQlg@h)c z@ZRxjK${m8VK=i3xDV2P#wc+4d04C98IG&8qKyZ}%GbddPR`E*0k zMqyHUkz+@z99hZA=WbTPFEZDgN!h_Ed&gM%9vU4M+tV>8EdNi*RiyXn<}m@M$~AYu zE2)I^A80fX znBl6?F!6+`P;=AIGg0&S2(Wt7TH#F;)_#d z#4SYNdG+=o|91dKWIg4xMOOXzO^fQX@Ct1}ajKOZ)Y*7hHHT5t52wzd*5% ze%rNX$oz4!+=D@3XV}G;7vhQDl{*JAQFOo9!+Oqjbkzl zfgl@E3P^6R`Oo*>!wFLc*~2uNDTfV0tpJBy!6zU&XCGNiGcAEuKgNft|ezOl>~r03%j`=JE3VJ33b(A?=hOg$8Yn>Y6I-`T5TF$YgQrLfA==jsb8aDLkXJ)8T?5( zkYmc%3AzEZSp9(&3@A8$i7{OewVVW{qEN1d>Q<0?M=uhh`W0?0@Yo@oM+$zVd zOXb!E?wLyyDL2hNvFEqXm z{=mp~K-dX2y~Mh>$<0yW(A!iZe;q;dTtt%c>sD>j;3TtHbA$-hBSOvEwwb7+VVz7I zq6TH)Ra$I$3=*-R*PGaGQ#6BER^^KZ*avyG819XwoC6i63Jxz9T3BNjY(eI2W3VOs z%`e4UQGzD;FA>nwZqU7E`unoiKV(ei8p+&uS`;#mu6xbhxJe#xvW30VHM@oRh=_j% zs8siY0JH~ZAlvxf2)ohid9bTsat`G{+^=0>EMnE{T5%cx74+!^6Vgyvy48nDafP^+ zdpq^OZ&I)-D~AzrYDXCg*{N5>o#%Nm#CEmA7B2f+Y*S=}eE zrb_iOnamlI(&{Q4I5Kdz=XSU~$QCha%EG)i31Gbib4ts%3HqQhPkjIY1_>5E@&EuL kAQiJP008fR7W6s*0q-50m;eX(Ag!nXAYcM1m}~$pAWd&Fn*aa+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0844.h265 b/samples/h265SampleFrames/frame-0844.h265 new file mode 100644 index 0000000000000000000000000000000000000000..63a3e2568cddabc75ac974d3f51a3ab1bb1f1d6a GIT binary patch literal 2710 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 QAg!nXAYcM1m}~$pATRwl$p8QV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0845.h265 b/samples/h265SampleFrames/frame-0845.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ea97c383a144b9a89e20561bcdde4fc89a828bda GIT binary patch literal 1902 zcmV-!2a)&y000330n%ar)I$OTP{CTVqyzx-Fbo3#z$gj=z;Q*}`xO*C<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_F03&H3-SaO!9GePTpTGWUrLefEaFGq; ztofCA8MmXv)L*`hM{M_klTpOow=_r~o!LcZ{DFFC>Hhel5kr#U@w7a6`qh>Z{TlW}@ro;UHbdD!Jso_Hd6KQZ5BOz?r#!8*m)C-2CU4{B>vS+r|h- z(vOo0$lJi(htyF*I;;LHi1D6glkp>)Cw2Ax`o}23a4ZVK z2+JjvhJ@;F1;xJjW#IFBUqZ0!p@5*>O+3t_O}AwCmK~cR-z>ayRi5dI2H6@D@6y_u z*}zzl6wq(i2jb52>T2^!Bjt|qMruM?kZ2WNJjzJ^MIoyyT9TrW&ps!Nv2i*s9!~TN zv~)YOWHpfcq@vF|HTb^DK#SA024TnS@+yb(Hv<#z6DVIoFP5kbtICIxLZ{#ZFK@oU zF$*{Rczf;(80UhN+I5*_2TUTMaWrt6_pX7bj69dFH@M&U2mEXE|4rfL^*=CI;U9p0 zZ}~sKdEa`=eHNHeBp;>5qh9yW|Degvca8#y=bVn3x?-1_(g=Bv6hnM!EygHR4!+rU zW3DQq{ZVk)M!6+A8LUBW@hA+#fbkQ3Dj*Qp2105gPAB#LE}#R&oycIi>N{`3vUHZ%2C*oqEmyXf@Qjl*Y_Zbb7i;R$ z6XDBh3x$V-u#3OuQdpel+;CQz&{ax@oN~hdlWzS7tBf4|oW>35m!^55ODjjxrKOUd zWI}%%_m?db>iEoEjSxtSl{D8mM5UQZ$Cd+H4;Wv9Sz2>w2@xwM`7mX}Z>(Zu(V)eb zb#QAF;RJzRfNQpE zWESJ4f$rofYqh);u$OJe^Yh_97$u1T3-FfLy28)29DW_-W1+uV zV}LCs3J2VWrS?EN163(NEWChWHa}X>Yci9I7HDSaL#+d|SMs82DHEe*mi0o(an0Fu z25yArCgcwsfk6}lXLBR_-uyZ!t~f3Dj;%hpRuGOXOy!PBWpVi*32*66`#fGft#tn@j)z0|66Qt;iNY002M0CDDnd000Ht zDl3iv00RN=d!{}veGqSasI1?jKU~d%+?_oe00l9K%Hv)d(yL1Z34i4Sb=>q=lrRt+ zEUHoDErf#!O!y662G5xSL=?Kdmsk7Pv$bO<99;+zINo=#EYk<$4Pe45#0jblTnA2b zz^q_7_T^e~ukCh>H|U~RqTr)fSTcHSus0!Ig1Y7eK9{~B;JK-8^k$hDuYSd^Cxb&f zsxGuAvpl<-ky#-AR7WiP>q*zv1ec{JXVQ{noJIci0(nbs49 zHSflIk2=TR?S3V~TupCdb&O)FJ=&k9>XY~33BUx6^T~T9PC$cn)3}p2lM6l8G;(T! zmt#z0H)-3$POg{-xLF1O?>Uy39oUppLtZyfKl5e)G(8%LG4^>F;T00~F10@L$-$&NTNPkjIY1_>5E o@&EuLAQiJP008fR7W6s*0q-50m;eX(Ag!nXAYcM1m}~$pAks*ll>h($ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0846.h265 b/samples/h265SampleFrames/frame-0846.h265 new file mode 100644 index 0000000000000000000000000000000000000000..277b0b777764446645a4f506fd946fad741a4711 GIT binary patch literal 3540 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0847.h265 b/samples/h265SampleFrames/frame-0847.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3874d572d6ec925d3640ab7e10e5bbc288f80b6d GIT binary patch literal 1771 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0849.h265 b/samples/h265SampleFrames/frame-0849.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2df3be73ef14b2350540486d1efd0acf42918217 GIT binary patch literal 2957 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0851.h265 b/samples/h265SampleFrames/frame-0851.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a84ebd1abc71ad1ed8ad5df82ba120895e4c8214 GIT binary patch literal 4201 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0852.h265 b/samples/h265SampleFrames/frame-0852.h265 new file mode 100644 index 0000000000000000000000000000000000000000..99c66842cb15cc42e90b01bf86795b0bc875247b GIT binary patch literal 1731 zcmV;!20Zxy000330n(ZO)I$OTSixBWN(6x5K_uW}oUwEBZtnJbJ~oEvqwjDj8I{pCz2tAOG`?q0US5G$qrW zZb7BI>&vdc^5Z|}{9ixc&GNh-H;?dG=0D&bf7vFM>NN*@ru3SwUbkrho}cZ22mi+vXcpZGT3CTwfU{uM3Y0khlQWj` z#<~Phj(K~m{sM9Eg_lw`Hs5bcBfqV{)f*o3Jb!+%*Vw6{mLcb?MMTL#%*ghZyPT$Y zZWSKL&6wD$6PdE|R)2uk_&_DcN1-U=^IYr^SS6R1c^Ky~I;DmbfH8T!Yu&QRzbhQ> z&*&^`9MvTVrh`>1x+z1zmz+d#hWKjAF_mCK>#svb2hkTjD!1kPFmp_o2b$kF*@89> z{i~K;*4(ZI4&fTLv{9BSlr@axa-D;~pH=DM>5<`kWhX~&gdX-uiC%6_+F;B;nO z-&_?LuZe~-;K~$d*iqtHm@S1w08u9teuu0v*0Np2>dc^i7vh01zM4| z1tBi9;g<^uudq^K6*$gKv5L4e^_lTgQABdH6So5@go^7PZ*m<|CVj9B9|z%T0Dd}F z3_ZY-M%_oA?C<$kz$QjHt`p@qzelnYI4j@~3d-YuA#emh0015^Sgzwf000936R;)G ziKYMm1>7ntjsO4y0NQ{tPkjIY2>BpPr??(KR}y%GZ&d?0s>r@~Gr4=Vk96gKnTegZ z4LX{82FA;9t94147^1H*E)KzHLB!5+1Z>7f`JvbrEGf zEu>=x);}Ab-r()CqU^V&`z##&EHxZKx^%(MWidgHpEtzzhs)V6%@-=R0EfGqNvcIz zf^FZ6?0k9_KJownH-%~c_y7M1IV8x#*SQS_1;RN>E7-04xsi>448pFi#OkO@0l-j$ z+z=ftf@FX(XBp+#GODkIL*5<*v9gep1fJvoix)u*=CtJx;vh<26fYLAVB4K75S|u+KxI`n6SZqC{E#75T7hwe~3V!E7rE z3<~Gw8YhJaf1)4W51P>oU1zl8dt%$(-E9Ynzg1KE6k(g@chip@7U<2n#gFP6V{ScZh5S-SyI8=a23$8q~8!G;;V8j+d>T3c}4dJexBGj_n++`H*3;%zQN6x#7 zAT(y6g>|w7ORJgY>(YWc44xyresg0QooXVh?S4|~ODkwRbmFQW{+WyUCic;wb!)3V znMVnKo3t0((5H_p5eAq?oase`>t1dm*{@SJj)BajudFaQBvKo;~m Z00HkEoR|Oy_#myQ03cujDVS^kE+8QQQ+NOX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0853.h265 b/samples/h265SampleFrames/frame-0853.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68fb5ac4d8265c7e260bb9d4b1637aa245bcfec8 GIT binary patch literal 2059 zcmV+m2=w;=000330n(xW)I$OTP{ChwJ_G>ZKotxCz$gj=z;Q+Cg>dl2+tyNIOX>gj z|NU^i1#9V1r3@8`g;b>4uIPsV=ba}tlQ(MlRDxDWgaJ}v?b>nG(Yl#9gN_-!-=GOP zTm9~C7I;Cj2X8@PL;#)J%CFuQCpm4j)&B`2zjLl(HgC9g)tN86W>c5e- zPV6^(Y9HIouzFU*87k=z&c`7@RwyaCJ-K#u`)J!=KmI^2qe%1NKweU;kzW(r^`3vX zcHs5VJ`KkJn=4rSOU8oV;U4}YXch_ap$x#s9@nJW)R3pRD@fV2hmzSe�nJjFLI* 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 jBD(X_%0L$MIsgK3mck+yMC!%4VRI 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 G04^YyJr5}W literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0859.h265 b/samples/h265SampleFrames/frame-0859.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0d4019f5cb6c052de05abe57961c607aacf6aa03 GIT binary patch literal 3046 zcmV%01D#oZASd3OIIYUv`-_pC7;#xRNa=U`y%u#oD)uAS2Ij3%jqVz$cj0;kWjaZwoA4DSBA|#51r8~wA@y{G6 z-GBdc7JDgsTkFT0sxr>`|BmRP9S#dKQ@q*{o5A+EO?bC7yCc5XbeRCnbbZ(@ zr126@_}(n4=12E6Y>hXr&{6@(^x;7H0Cc*2*Pzj%e!HER;!XFx?nqj2rL~bPo13?} z%YK#r|LD=}8(E6~!egA$FUlI|=}(v-Mw<5!A$Y+-BKEx`1R(gFo50a$g`yKqLQGWU zO+IcK3b0|!*Q#;H_@CfEGw*pFpPBOb5B&?w`@g}tex3b`1xUZTe8z6vqLGW+LHwy| zV@L!a3<T*1=knL+jVr=Ui1#0jD(65PHm$)HQ%*{6TZ*?`e{yyb()56ZiWH~V6us=0o-zWj z`zV0*kI?W|LUR4#73a0+GAK%ndhV2K;e@FBU!HS3(x@enx7$536G%RFM0Q0Pnwbxb zJV)m+18Mvn90Cy1;ua%^`6ya9I9SYel_A>3W3`b&04mSa(QY>x4Bb7?jIH2!KmY!X zbBv5NqIq`9=6QR%9l(61;^)CJh^Bsu(R>~$HMcWxC`wca2+25$8fErw^=e&zx`vJ?qi zM{=iwNcsQW{NIo7B-r`opwU!Hh)#^J3JRWvd`tydd-cw>vvR4kzI% zk~At$2)zS@Vqf8CSd$!%d$QaXgS>EH44O2d8C)39g$N}aX&-ToHrsuj+ja4o-IMT; z>0)3Tan3m^i@IE^`AkKiKN8K$!=jSk7#zhTbBNAM#o4@f(5Xb+|;~sLy2YCFM=5UO4DtgtpXzUXyWnDKKdUe+ z(k*7O0k=ne9fRrAJ&Z;(V9AYNPB+W|Sib4a#dE*^$j5Lp60OWTh1L3s*&PRnz(iXA?mrQD(G)F9J|yhe4= z=z^r}v5h^)4ZetGV_Ew5J}vg={v@UPO><*?BLDo?9q0GvGv;3U^85W%pqq-EKl1-s z{g>qVJ`8`9{;BwP%y_;J^_^%JFfbd<+?+&3E4H^0G1%f)No<%$znLC z`qaA3%|p7SR2HtKM}$~(>eH5;JSEZPyD}3UuP#K--{&KVQ~D7sm7WiGfzqLqLP6!jkI;qHZl7w~K`2;XAKNrLGoJDc^&hvppfYvEQPLXJ~# z?LCS&fEL!{0k{SSU}^%7$11@@q8_baW`;PPSg}XZq396BH0m^~OjEtSb=<%GSN)zTaRU?BhrOdT2!C6nQX{3`>J`}Yrpbv3GEs_IWJRu z8AL^zpVL_ta(UZduLG>b23zZUw72yAD+K`Vk|Za7?Py3|eS(Gb=8hE)Dr&lv7!+W& zgA#%OZc6390{!a%>i|@o6|L)_ZPpyd9e&g8#hsPim*KMaB%;N$R~!3$eErvM$?JO( zDxz90K|3e}GR0ek)z}W(LPj)g0e|o3fDC}6bceW8! zHEsoT-q;kY(fd9dwerM%5-mpN`X~q z0CaiO>}23U6*7!YSmO+n9O`-adAWq@MU>jp1u%d&BU0w z_{XIbayb)}R>g*IrmkrjgYgd@(vn`=eLHQSC7IQR-U~bRtY)0(fgq_n|9d5=!?HEs@%BXQ*Y(Nb&B^S z-V-_6v(wMR8CnvFn*Er~GKeGM?0vS7iJ#!@_}ok|Gy_&@IGq?K*hBLW?I4;2Z|BwL z>oM$6YhhAtB`3kOvyjbtFiQg;x!bV|-V4&V3RKI!uN&IMB1{Uru>fc+AJ-VO;K&L} z2C9v&ZB3;7;eQJF|J-R%b0Jl)kXUYp0|6pbTLt-(E0UI1+NJ4LCfmVvL~q~+U!k6Q zBw7pbz0ct0JI_u~&Vzw}o3qQHNLfG@^f~|pA&b9Cj+wdMt^7?ST0Cz%Qk13CS*6v8 zm|m5XcTcTjwYg0E^O7Zodr+otq@xyfGyJVBAjcK zpK-5tuOqHFg@TN`A-y4WSO6(nj$Yk8>MQomEJayyodgeZa+jr=>6Qu;9J*QOR9=KI o$Z%hBHoHwtKF}D_{P(n>abO*sm;eguAg!nXAYcM1m}~$pAifLw0{{R3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0860.h265 b/samples/h265SampleFrames/frame-0860.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b87cd742498cd863b3e5a9dddddc5a03c30c080 GIT binary patch literal 1884 zcmV-i2c!4^000330n*w3)I$OTSixF?s00AuKn?>aNWcmLz;Q*}`pO`@<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLOvy%63o9GO>zqRI_g z!2k`d1&nk6G+lAYTFvCX;_1K|C!qF)!KiJ7G&(ZAHlxRnt&d@MZIW|w8a$-hC8UbA ziut>e2FqtBV^p92&jQ(KrQPPw+=!s+3;PYhc`)U?t4s?iOR+7MJHI3M(`X#h2gyl+ zGblrkz|@B&dElU5)X|MzGXP7Eg?^yL?#o1c0zw!wNHBJ8T@#DY?0239#M|P*qp;rIYtRl~H zcF8xu55m-EY0$zp^0VrE!%@L9dC4`uL!j3)QNeP%)$!p)k}W6_-hY8tm-ln$N=u(l zsl!9FJ#g))pe}bUNke67avNVuV0qY!)`)u?Q)2A2z2~!1#6FZ$X^adb%J%>9_@Bk) zHYD{;H_ILI!nh}_r>ep!t^mfD=@Zt$SKG);BMf^HBQCOYqhGB4klO3%TI5AsAqp6o z*R$JRdY)m4GvqBAaIqz+HuL4VY}7xQuQ$!q2pGXXM;mdAXDNpXLhuBk&K+|0nnS z@4aT095z#NM8gP^;itri`EfFHb5$!pDD&k-yAPo+YeioB z{u}u_LxP5Ct};>KxU=hKPIv)+#W8(d1Shzja)ba+&!EAfWh)}qVV~RpcQ#RU=rc~swW!4H5 z;Z2Ki$(%_kk_;oq(;bH!`uUAnlgTy+hrP;Fd{R?hBgst%-}xXOC?q8~r^Y1xDp5sR zkv)V~l*@KNaB~%XNecb^v|8jR;P}SZ~C?|NsBQG|$4UzV(7k2)h9R>(jhLnU3q7aAC`Coj~kuGL$9$ zO}>k)sFwT2$X+c2((KqZIi2`yNx^9NlE#27Ro=9~Q6H4O}{ucH?u> zEsZkDL!u{0#5uZT|C+b6{JO}zZ2Jkl&(1X`e|lo+6~>ZkL4BgHgC78B83dfOtk|9< zl-K053B~eN(s&fp)q3z^)3IN=DFDHNi2q6-X-K`XoY$zH7@pNHfN%_H=A)!$_eyIg zK>YuD)h0{%n|lHedS#tq*V*#DiH^W+1_<>atAiPA5v=xCcjA~n(E+_cf8mL)69oLS z`-Vb}d0=*6#=ocPw*07O{UwCXnAv0AHhKttoA=h%woc26_nHh$4*1zm*(i96{ZKVPAcDVW$Dv#fz>7x9wnr9q+l_q%Z|1b--6T-)59a zPf~--X6AE1VIZPY+iOdAq+DA(BTrx#zcDPNcQbv3E?7NZQ&BZFqI@M5>3`GeM$l|} zI5{^n&+exlg)rr;JGtm!+tGmA%yY(NcRCCVvIJKvKu>+qGPcO5py_%iF%sMyi?oQR zyn%PoM%^X}9>HW9^~*2Nv@CcII(F_c>i!4eUSjKc)j W9h{f|3hE%Or~n{f0x6hm04^ZGiIeaE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0861.h265 b/samples/h265SampleFrames/frame-0861.h265 new file mode 100644 index 0000000000000000000000000000000000000000..53b22277a29ef92ddc39ad4266eaca1085f71a4e GIT binary patch literal 2975 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 VoR|O;*&wZ`03cujDVS^kE+8X)!HWO@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0862.h265 b/samples/h265SampleFrames/frame-0862.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d64061a2ca54a449c6041b2af3fd83d2b5ffb5c6 GIT binary patch literal 1686 zcmV;H25I>K000330n+LJ)I$OTSix6fRs;axKn?={(AWwBz;Q*~4UI()HM_GIW}2G{n~~N6oMQ%X+tJZTrS>mmQ-mUrTrwkU_Sck(J><<5&pA)#9uLGx5Q*7{)5{HaCT-oJpK@Um%`h2@}4j#XmP*WB| zbl#|T>*Uc^R<;?pb)TP*FmapVZ*_ZX08bjj!=DCy!Y>fuXC67(-4&KwJa3Xs3Owzt zvYl&(hAVX%FM{_R@c3NFrsyCIiU2LFMYkg8LrRCen$u&U9@Swn(li6THhzTNiwKeW z!~SorwMcJ9X>OLN+!6;|^vYg1a-Gi!!W1}2Y?nPuCKRr8L0Lv-4GsYnr0_gLi2zOezDJ8{9Y3|2R^mH!RMlXwiZmy& zH`?D{gO!mRB~ahz+p$WT>zl{ksA|fos@Ws#L`G)~r&zF<90f;tZS8o!mY{O`R{LNoSelO(&3n^%!h+mwS)BrQ^9vO%-td8=n3eoa9? z@?GZko_OFt1vZFu{XFW=q&+}3GC%+gH&Aq#Oh7s5`dPF1u1GZSL$QD2V z06)Mb(TS!200rDCD~VHT%nBN$tV2h2E7oWe*RW-jc*q zj>G0g&&a4KM_1oTB#bygD{SAZbp7$Zp{?1x=dTV0CYC#i|oyCdj%Lz#1=s~EQ z$AdP-DvDoMub4%uj-}h-6vDv;TI-_rEHUOH&&50dngYZ?={FDtL;_P2%LDb5J)-ow zP-3%mgYAp;&5t09F#n653gjf*1)v%Um@Cn3uJw~<{s8HFa7p|kBC+FR?pz>rd)@}6 zyFslU%3kbjMsji!QLSKf6?8cZ`Jh8dSW#M!d*Px# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0863.h265 b/samples/h265SampleFrames/frame-0863.h265 new file mode 100644 index 0000000000000000000000000000000000000000..306d0bc2e9f6a3961cccc751bfaeee205964926b GIT binary patch literal 2149 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 bqTvp=9h{f|6M}#st*8JXU;-(aYyd7GeIXr; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0864.h265 b/samples/h265SampleFrames/frame-0864.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da609e46e09d880cae912859671d6fe61a709f77 GIT binary patch literal 2953 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0865.h265 b/samples/h265SampleFrames/frame-0865.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bcca1c23890e2b89e7945b069bbfe62a7b05c03f GIT binary patch literal 1951 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0867.h265 b/samples/h265SampleFrames/frame-0867.h265 new file mode 100644 index 0000000000000000000000000000000000000000..42995b6795043926099f37ca88bf33e64e79cc22 GIT binary patch literal 1699 zcmV;U23+|7000330n-ux)I$OTP{CKCYy<${Kn?={z)T_nz;Q*}ZK(^g2Apd}wSpFIR{#<-K3x*2GA&AJ3cLfrU zWNrux)S5?kbq0;}qR~)d)x(cc0Fxm9`CsrqgZi1*^q(nZUn5>#uAj<+GQ<$|56`E| z?@uGE`Iv<_&|FzDKWaTP$FO5F8R<@Q?*iPaiE+{!f+suu69T`&vCTZa+27!4-mh*=LcG-vg-> zm}ZqBQ`*cSCm1l#t=s_mF=WNQ6$M!DN@p6etPJ?`C<0UC43!(Gs_0 z#1CEi1nxfU?Q5E%2{ZGet8FIL&0N1$RJyOE{&HQ8p*_o#>Si|$W&b_zN%uiE_0Y*0 zp(=Dmpj#ZP{UR#{rRe15nMKIT=4#(E{b&Phw+c7mJYA>+YMR!R;KUYbN_4G<*i8UQ zZ{%xPHv`I5?gNa540Fx@%_Z&md}sv0G64`3Mj@9={E}A%vU-qKyX*1STp^peHK0Dm zSLC})X+YqLw%2Q{yvaZzTJMG;gK@g$|(H6NQQ zzT6UPiz!`Y>II;|QfQfUPnActZN?&P+NNO#Mq>1%5hwX%q0`W$kiuEumCQ^_*iuyQ zmT>7(K~?ksh=TF+XRaPR?=~<4&zwlRHIKZ_Sg3;1DQ@HlT?oTe03VsdCzlvsdpXu( z04G}W>q$2Um96NzZwo}DM(?;;^bgbmC-5twsSjY*5l1Leof#Ph1<*k0S8V1Lf^RRl zSeZ27CfkygoP>Y?0XbM7b_r9!-$)~wIMfUN(IbF}f8)%{SKWrA+C6j9o>6AD{=lTN zkJ>sCM7SiHSl?HnE6x2UiNNPzQLcQczm+m6bqpBKBq0{*=Y7RCj#S$OAOGL~08D?e zo9O8$)2xXMh>GGhd_iwYPJk^?%JKgPr?1HH88}IyW)O#tpDbMZB<4WFB$B+0XE02a zmYin{`7%r5xWiy5W5xwB2Ks@u>bD?Ik{s-BnuhAUc8 zPfmWqUjW&P8~sXt!Hne zw2TA*kW?25DwmkU1ic>vQY46gAkKP~HJ|3A^iO^;C7XM8_Y5G<0+;{)X=cuTj$;Zt zML+HKPBh1i6UG1xh*+)27C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdPKJown zA|MsBFaQAWfEM&R00riYR0m)koR|P14b2>fd-gVS>LgnX8wEs8iUh)b$Eea_x;?Zv zhyNN)v&i`+3MNZ;)1L=aR{@ipQV5vH913Ricp4A$`;Sd2MIaN>(GeZGxw)x^UP=!LuaHgnLvWqhD^ES+KR(IVu09tVY z59J*xlRrC5C{5~fG4WipJ_ZrV6zz%s>`&T=-Jhoq#+sYZd9K+-wF=q{pN|4$tyP6~ zK_UN_xidl;))NA)YmtK~-+>$?Zl`!hWQShdyo%LaVLczq_^qYXhN-&WO;`)i1(bKr zLd~1WW0T&dLG;xjIOFfywU_jxJ%wFVq6Pm0+<>4Q4@6`C>n+t?-J$AGj-cWjSySL1 zkFDxI?Rf3DXeo_H2hp|`1Yns*9!yD`;GgR95_q2?O#4W+)4G!G+W5^sh;d#Q-tF;8 tG-iN!5lTeL5Re$>=}|Mx0IGlpKmSsG00{LtX&|kr07)nUDVS^kE+B%9EZYD8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0868.h265 b/samples/h265SampleFrames/frame-0868.h265 new file mode 100644 index 0000000000000000000000000000000000000000..74d79d89fb1fb95082eb532b0da48616060ed091 GIT binary patch literal 2227 zcmV;k2u$|?000330n-`()I$OTSixTlJOlvXKn?={z%8Hxz;Q*}+5wTtO}82U_y7HH zy#;IOQKbwntp<48ZC7+dfOF21n#r5Be5ye!BtihGF!t>@^T^#zDnZ8#;0@>kO)c#A zHw!!<*#rNnn4pbUcb?Zp2!C`>c8v(9&9VESy_Eu6mdj(nYOOK9>+u+ydr|r~lRe$a z1%s7imcxwXV^E1i4e01IVg*p#@JkUr|R z>P6eoNTLc^kW#GN^Kd)~+$t}E5KyBc8;y>c`Fkr& zl~wfdIcE&qQvahM6gK;WvX!@%C1L>`5{zOf&nMP|yM&tSk`2ouS6>T4cIR6Np&{`< zK`ZWuv3elz-!o5HMZ@pH!^Wvq|3#psoU+1j?=IV2OJ zZMf1$Nyx|)XAQabS~iK$=rxJ|j%1h&dA{-zDgw=NfKYVWKR|O~upctQ75>2b4KOi$ zB`Hlznek5q0z2mW) zZX>G}V&tx?&X<0L2Ru)`K|2*5&@7h~`|RUu;Dm!@&C7mszUDF5Vs@9-a^=>9N|kNa=opSSqW#=gJ&{{6!FCYsReb#;$;3}t=|=68Qx zd-I-VCq%{mU(8RlChN7J6jrp#2r=IJ+|)F=c}o9rkFyiBa%(sL#Nv65JxoEVuVxKdGKjF zIN=<$)N5c5k`1b&M0>ZD+N^&j$m=kE0uQ(DeSoZAw_ptN2q_xP&U6-`(lt_H1)1%5 z02yZF5DucdVuuXLCaWY@sRzJJ1guU{1*k}=(Ju&YC=@Id6{Au>Jp8FL6eUoq8DkVG zE4K9x66Md=HCOyTgNveU`tc@7(@g~<+=?6@RhI@z#qZ~Dje*{P015b5A9e{s2-^+& zJJJ95{7#S;9BkVypF~JXnj8(B-vLVQrT*VZ@1^I@i!2e!Kvz00m+MA)0HABXMwqLE zLCm5YaxcHwF&N<^9pGaUZjP>W)HN zfw(}%YY!d2&ndf)v(;#PXy6@KeS80_Mz)$Gw~^yE>!LDv(H;dO)HOD|$Lrx04?_Wh zmr!D8c-wMnTW&YGMwB9HAOGc)>b`%fFt`}zJ=R+3u8bFA-Rn~Mb!)q(QphBE8?rd` z9gj`PN+8o^|6Mn!yOLix`^)hUt#&Z|pqI+@V^Cp)qLeyN0_gV@gTND-E|e*)E2Z`x z)Ux;>nol`exgR z3mb(E6g6v2a&{xX=E4bYnr^24?FNQE*sXF8QkTwA&GdyiXqNC$r&q6ab(-y0?`r&1 zq`W?@zqj4*&0~yDJP}j^iyK)iXkMOJ7P3j2|1&QXo=&IXMI^ugDxg@c$QD2V06)Mb z(TS!200rDCD~HcIsgIh9h{f|Ar09s z-w%Y#+UG3P{DBmV!)v6ZbQ?0NF!H4E)D$HT_;_ZlobSI%}Mnht+_&Kaxx?Z85 zgLTYkb`5Mxbz#(g(hZ5iVXm#2)`1mJ!ih{bI7^wQC411PN?Iv`7Ewbg?p?z5q7KZcD=UuIenvsnCUcX@o3CKNzRmcW+q(Iwc0V6NmI zz{`fcm&Sa#@$0}TyDTEt;Dd@Mj4{AVI{6;ar2gsJ+GZ_eO(F$<&cJ3f4}&0;-HeP)gdAzsXvjUgK{mMg{j~Y}|=G6uO>lrbqA^~e|PB#Z0{oS2^?KE3X@@{`? z0F|KOH>lq%kar=vqqE-%fV*5Hb0)sk(5y13cn-_ezT1jAgtY(eEan0bMK)gSjQKTN zKs_y5O{vJIO?@E%J5_$kO=gxw3LUwB2Nn(RNhea6Kv#M3F%dNC z5?hlX5T`S~WKmCc0%XEIXABC&yRaleK?wO(7I84w%2Mc`vjtyDy;D>+Qh%%>yzHq? zx9l&k%^`Ket{ySM>KaU%+}AxKe&yhH(YeZc_F$?#^# zwH9()hm>Id92p-)W*%gjxWhLcxD1e@Kcca2p@0AWhI)SJU1Z=+lqdyXTdAM{lx}dY zY z4`vUb64?5>e4NHE4X)Y^Zb$b7x;<9@V#YJIEa1Kc%1P8Ph9Iq|07)nUDVS^kE+9Tq BHy8i_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0869.h265 b/samples/h265SampleFrames/frame-0869.h265 new file mode 100644 index 0000000000000000000000000000000000000000..52504223c3baf0d106a9b44d9a6ca6c79003a654 GIT binary patch literal 2451 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 HYyd7GP$~5P literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0871.h265 b/samples/h265SampleFrames/frame-0871.h265 new file mode 100644 index 0000000000000000000000000000000000000000..230c68858d0f75c71948b265e5dc05a395c4ffe5 GIT binary patch literal 3448 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 a$=?C$3kmyyCLKBg@B9mZ0x6hm04^XULzW2u literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0872.h265 b/samples/h265SampleFrames/frame-0872.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4530529407641e14b8fdf80f8608c07ca2a8b17e GIT binary patch literal 1958 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 RXqVNUer84jDVS^kE+BhlMfv~$ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0874.h265 b/samples/h265SampleFrames/frame-0874.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ca9407c8920077faa1b8fde7623a6e65f44914b9 GIT binary patch literal 2986 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0875.h265 b/samples/h265SampleFrames/frame-0875.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ce79055487528d5b0d1dbc78e1c6804d0a759676 GIT binary patch literal 1855 zcmV-F2f+9M000330n<_c)I$OTSixGtpacNmKn?={z$gnDz;Q*}+5}NU&NA{c%loO9 z>ptJtBqtFz;~bWVAhuJeEaVCne}B+JkuIIDkBHKkU5C3K1y>ya_J5lmUY4rSMzVue zy+fg=Oj}S?Xw)N;wVhpk#sWV0#cq-4RH7Atmi+Qr@S7Wkn+690Qq-f1xrw7PbQ(AX zxs6eO{Q0NuU-^;>LQ~(tfI_VI1?0n)@$fJ#M4=t1fbRT{+UwGDNFOC81kC2a$ICAK zmGDYlcT+|+ugn21J`Wm$7rdyDA(>x6tCpa?t-W+?8BT8%$WZ2?Jc~jv1~EzGGuYD3 z)v7Gg{cGeg3VyiIjD_{`D z8ziGqGo*vg5w6p=Q-}_>`zFpk^iLijuA9Re(8Ege08fk+C@_1to@I5ycax<8ZB~3!JhAnk2a9rv-!77Rwl(=1M(fFAhAUH({D{FvUj!rf^dlD&w64O2$!*J zyG5(x=SpF$NPG(>K61W~hk?XL8KAL$gPSh=mI`*%1ZjJC6bB>n-VKC)%lA9Qw;jom z(Ur1Kioc6%-#S`$X=r7Yb)T5OGKz+tE;PoUzf{1F(4_b&XI=lb_V)68*1z0+sQ*Cz z&~HE3{=ZPbs=PQD1Z^UG^3aQt7@uOvOXwuPama18rhi!J(Se2T$O!Nz<-1H8a*kYu z)-$(cH$eL_Vjs%XgH#`t2GSfk<`v)KFx+qex`4b0FGuGI{xomE6LreN$0=YHZ=Lft zM>?D82%kqbL*^1I3y~Lm!eQcWx1in@*Dyc6-w7h9+LB7p+l(RuXq7l56bjemkaB9I>(tbYGE9Ntfbe~2*M|OOX%>VEI__D6(Y_^XWX$OU~$5;Q8`T-AR_<84?V38Zt z4R+0Jg5Ds;8>lLDk+A9MYb79;PsK@)=p0fM9EB<9`M0$=Y%}9l> zIqu!AP7~(;|8Islh{fvElqjIgy0;hXOd_Q@QM=_*a8Hl*3hi>)ygqWeXz>u)qttwf zIg>0GWZ(CztEn*k0S+0#dRx>eC0uY;x_{e`=jXzHAW0Ge7vU$#l$40sxXfyYUfm;1 zw9|uw=xC)fYC+!icoZN5@JIrZQzw}=KU&ahGLwUrXcnp_0*-(NpH>Bn^^pI!#l=I3 zwy5ZN=P&F1)a^e57FeYrt4X%c4_P&v7cP=1@wkB}$LK-Ho^9`wd(h{`(qzrJ8ph9g zIABr{r^3w;HcGB3Yl5#1kd18Ll}qUZ0Z3uwId0z5=mY9lt;iNY002M0CDDnd000Ht zDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8Pfoos$4 z^h2T-pYQEW+YW#cuie^5{$1|AF)l$_gL3T@x>Fdl(l&?Ci^?W{tUem%O9}}YU*%Ob z;kvCi_hNpt_Yx^+=T^H%&b_-`c~kc+#_5w7OTp}=-oB>PF0Th%4ld_S8@nJ>mnSFF zwzp!btYqlIj$D)8=#Qy)dgs7#XoY@+^;6K+fTRl@0g(n;`Ud33_t?-SKY zy%|15MmH8tuaH@spm~Dz+Fi2lBaY|aVL?w;ZaR3DPfEL5q}mFn$xe!1We8H+^GY^N z2QgLhNE^(9Cm604pWH#ac+4R_yRy~HT9jZhCk8n|@q)ps{HfV3-@*#I&NW=87D+gE zgRgaK9sf?q>tDgk`P=foWrZSGOcud5csM{52JO*xPtf#ry&gyJGo91U*ta*P5(5l6&qn=^gT}S!1=kKJv@)F8^Q`fO#M`X-GdzTWYroZ=9S$#fi zC%-}u$?{irIk;;-Vh(LLsoBr^;@3nXN tcx?^G?A?jOl|M$C{yLKppg~RdoetY|DA~98LXqLB^cuhdDVS^kE+DJlk+lE- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0876.h265 b/samples/h265SampleFrames/frame-0876.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ab32590354e65cc139756a76bccefeabf9eed218 GIT binary patch literal 4404 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0877.h265 b/samples/h265SampleFrames/frame-0877.h265 new file mode 100644 index 0000000000000000000000000000000000000000..45b67d3f7ff0b3d7f6b67b200e8a7dd75f550b05 GIT binary patch literal 1845 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 ER1;%RX#fBK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0879.h265 b/samples/h265SampleFrames/frame-0879.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a967cd9d7fb01c1d5a12c1bed73817b4c0135daf GIT binary patch literal 2364 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0880.h265 b/samples/h265SampleFrames/frame-0880.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c071f40c412d9b36adefc088e1a0e6654bb2e4f GIT binary patch literal 1841 zcmV-12hR8a000330n>T^)I$OTSixGFo&*5kKn?={z$gl~KygLf4T_gs|`b*K;nIUyuv}C~hf51v<}gUQ9V}D$@eWQtV4*kr*rR(F$;D z_acdpPt-`S;Bc6|(p~7+zU(`i?hM!>Q^Ya1N<>05bFg1SIs9?Jen#eUEUiEN>Q-rq z=qFL%jAUu|?3rhQ8~cNS%nrW_@8gwR@?U#6M~DK`0*{CHS4X zY%9Sz2%|b#lwyyoy`xALi+5lQw9>oBx1UA%^x`eo;^pbUbNTXZ!wE*V6@yNj6Le^Y z7i)2UHoL51eO+0TVv9@$%jc(augrt9-?6~Cv%lTtbq zmamVUDTc8j@GO}5%KAPY2N4`*g2ny~`=d^(jENI4X$IV0{|$rn9)ht9?w)9rO1y8R zi$|m9u+%aRUF6Oc568x+uYNf3VqJvTUq}oVJVBEt(b#{vR1)$+Eq$i1`p2NAGod4T zs~Kkf!Zz;-BQB5g1s4;4`NO8N@42a&;YJ+f^Rwb={eEQc5uRel5hWs~@NBuHzGczz z1m%Davlbl1`#s?;e7zQ%RFl4uwr<1%pUnt;{1Lt2!hhHRl*pq{yPxSv@~F5b`VHTU zGIBDUw>VykDW>dZ19&a)D+R)O4Rd)v^hmu9dVU6ByYAdL`tLl4Yg`y%@mc}{o$?)t zG-6@~75gO|_9WpJu85AYAQO;Hdc&`1_JKDOinKlODv$o!b$2|Jy0B zPF`fa9Tj16cK~R7WkH?FH}e`~yBnE*)SknI+kuevV9P9aUJ%MYG5c`z)dTE>>kQ>kp z*h)8wJ>=JVd9(-t&5z>HJuc0D)0y#x&72kgjzgDxGIHZi7)PPe|FCYD@g=U*YNxwB z=~RGd(kTD_-tokSEmx$YMF%U(+}+>`r7_{v=ITS#{da~&k>}Lr08}I5=AbCeAeK<9 z0PH^pRaEN~6jq$L{`z`iV_$wbA%*$4!!8c;{I?hni}l$(ih?=KuZ*`dj(8(CyQ+?j zPgg+OeS}US9AHDFr1i4$3iPV|!&?m<4L_p-Y>T~T#hU&UQ(Jqxm&6f}(KB1FGD+{B zY2BoikRpUr5POmR?|vN=S^@uf8iI~s!vu9~#`>Z*=_a_S=2mC;Mq~bO^S?fm7~r&? zM@m5Y&D5wgd&heS!rNz)lq>wB-;o=H8D;>nfLN`_7C-<1Kfoo?iKYMm1>7ntjsO4y z0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ1jz|GJ$u{HBxmp6 z|I6o&G;AUB%M7{6!=n*FS}if^Mz2!;rGW?d%bkb6y$eFOL)3+d>*p5M)hMX~T=Ozw zn=ngQ+C=q|sK}u)5-Ft=)?}?-{z$8zw%{J=qljIM}dJkA$Z0skE3Ej%K2(h1|cN6FRt-?lAwL0+g90c z8_QCP@no{0d`_-)1FB&WE(9#Zih{Fwgc&{g)>3i&{Tt zYm(27_G1}oE?J1aqn>b^!r{t}sB4To3|Y2l5t{ilwr85w7~jL|B&yT9cOTCmsbLj`1NGmZ>*m6+WXG*wtxaDm}~fH*S_40Coj3}q7R-M>n99=3gIxew8lO_%XN2g(o;56#Qv4`iFJsew}zkKpQ77x fAv*)ntOJyQq5ilt$isq-Wrwy=y9bSOj6f`4llzlr literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0881.h265 b/samples/h265SampleFrames/frame-0881.h265 new file mode 100644 index 0000000000000000000000000000000000000000..341ae032782b58077fe34e49dc0aaa3737e23757 GIT binary patch literal 3068 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 l%1c%LQ|lO|1Slm`P}`eufii=Nnb%0!=Oc z_cseXAlU=Apv0NA8LH?YTu7l0)6l?q4T}v!v$J@2U9jLH-N~3_HKT5^)6%!TKvLrV$H*Zhk!Pwn zbX!`n&sg8-w%(_o!i@JebS2g3c!5R*u7a_k=v@ExF)7wm-3;juIdesned?XE&XLXi zp*8{fA_)>y5MfxrBR;D&Db70POe5=7?N0*jaP|HExJgGMv1*;h;~G26;zT1fbdH~s z74t|E#Y)U&gP<_+Vt#7R?MF}ZPt!DaILvi!9N1AzvUa_6n2tMsJAdZ6X#JIGS*3bO z&V+1YpL6}gZS-x)y4F1y^=gmhMQ*^y)B)8qzCSWWyf3nJo6+H;eX>-NN3dNY_yNit zEkQ9DWFu8kM(qBR6@ED1ERbBBk6PH4N*nQ?)i`etvA4!=9EFy&!CM!SwI~UJ_@c1B z9nK=t*;TAoHpfJqQ9ip)h(ZrHK9*8x77ZKuul&*AeCxd!_RamF4$5J!nDPyvhoKEyz*pH zmokT)?fL_k(Fr5YAms^hh127@RBeLy28nxL#e*06*$b{b7>LP5FyEk9$G>j&?bsYJ z7r<7KkV6P6#YcTKoUH2AuA|6VB1@ZIdCYwnpXicz2P`)j$rC=jM z-vr3d#b`h!`sY-?Y=g(%i&9Ido6H;Cwy^D{c$6kBKkWvx;ocgF0LV9*cN%8YiD?Zc zKJUKDosw_@8-A^B@3v~f%m-T}D-v9CB!-^52laAepDj2_-I8s9>GS@nuR1;3sKyO3 zHgd2y%a6|8UY7|9I_LGM8&1g(vBXQ@RQg5bmCY6h8$0m~L4Y0M+r+Al-^pT?Y*06J zK*h#vkl%Rv{FDDeLP(v!O{s>dB;`jk-_ariUfY~oybmqG( zKNmc=j9#EXMra%2>**mXMIT6C6pr;tW!}O-EJbp|APm5=uQP;OWb$scA0cZ4bhhg8 zmoQDS`3Y4RrA1A%Qua1;6g1I8w2KypRFmLER9|vIGa8yGHgcZwFwVw|)&Kwl0Bpcm zA9q^~`#aJ9_xw(f7aVNcEuTE7N}3!EyI%oH?xp_UN$;iS&xd#XAyN2yvDcXB>= zKsuw4mf&s>F`C22Z}{amaK3u24~;K1s}Sx#`8l6j=tW&-dCRfmd=XqeD)V+L=6e=o)jLsC>niMM(6T@R?pUqJ7C-<1 zKfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy z_#myQ3oqG@)-5x;DsS$^|NSuQyT|e4TNWKv!f6n=KoJ#m??A=~p&Xm;0gq$UlNm?S zG{1%RM%|P~!5OmIi1*1;V|pFgGVDA51SZ8F?f4hFIP&xTa}Y34U*;(?#|My>>Su(Q zDTSXwbG(l>m#C^Y$IF3u`T#fKGiPq9>eP9FUlkE}ER{$>;9Z>_1=(i#Xcfxfko@o) z(I~DBW~V>e=gDy$grlY$D2O9E&H$K{K80#jpl)@tCS*A*M$RUp(Dk?}v;wO+ntQjb zJel!BaNl^c%!n|&?pcmU*7E<&r@US*z7(ES;tJf25E^H&u@R}B@9MMX% zTBGlWR{k?3gu z!GBhcKhRa~QyPcAprbY+P8Gy%UP3_t=H~?@lEqk0`%2%{o96iVJ-VeUUffyF=y3w&NeXG+_7 z`b|b4LI$AXLf!7?)lX1rhA;d^wGTi~02eIdrDbLI9qy0cG+63c)KE7r39*V9gDg0@ Mh`OnmUJlD6fG~|0$p8QV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0884.h265 b/samples/h265SampleFrames/frame-0884.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b8a2e871c183f97ecaf614b10f38a7d91cb8fcd8 GIT binary patch literal 2903 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 BhC=`V literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0885.h265 b/samples/h265SampleFrames/frame-0885.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4b51a9221c05d80f4739d1ffbc975e3b0bba6078 GIT binary patch literal 1898 zcmV-w2bK5$000330n?%X)I$OTP{CVLq67foKn?={z$gl(z;Q*}`x+p;<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLSp31i;Y9GO>zqRI_g z+CUAh1&nk6G+m@gXKfn3;_`XFAYKxhf4(SPkowYH%p=?q zXf)R>_8tD0v>={R^>zD3oi_#5f}G|ec=|b}K^cuxf4oU}@B+Vj+HKWV+9FDF{sG54 z%)Ml{CgjbDAi?FaH0QbP9iF}*=RAtMKTt&KeQyZT9i~6)3ci`pyA!hYli;;#cZNfW z)3kN*RrtOpBU;Ll;=H z#MTHcb1q9C*vbe$l}!okQDENGZNHrVpsnXOR|2g1yc~g|y?Zp6aE}&0DE%1W&OZ@0 zy)c6`vEDv)8XCwaz_tT(D*);E8(eXj(HQ0rsp)5SuFX}p-S1U3)8Wwf5-%qgh4GT) zu(ya9t}_d${*GWn$*_H2Y76~14`S|8PMvS4)P|!CsDx}&w5BDm9UPwiSD1ec;&hwK@6t;<(n$V3kz zoQsew`vt0mPF{(92)}S$ng6)a2`Mbl=Rf zRmk+UV5frr`NzTDW9C2Lh8y*{&8aObzyJhPSRZx*&cyFt&;9@Z7FFF1meJz=p!f8* zG3WAsKq2!l!_Q3N1c6?FYqo1-7USx;;-E2{tMO$CQpzbFTZJgHf&>`Ln+|-R)o|*p zL0{xR4sUhOjMcoUdW+@|@a`$$k04d~gDbET{|p=ikvHUdslqyi0d^)OeVwc8;)^mC zF+M-2SWA}7A@h~fM~PXWTVR<88xU58uaEB_tI<7h62urT`h^6)ogQ@n-$O10g83bB zf3Nplli~Ne!q7nnABTAu>37#501HU*T|7F-2XL2wn;ykkrlS0Jf9d(BW{E!<_6^*!h1T~UYfw?cChativOadkP-(3v*b;p--|#CL{r@W?qL4tS00 z16RpRu0JE;E&ub$Csp%jyqqv82-D{0I2$HH6t%%uhe$@YaRi0*fqVc2| zk$_mO$QD2V06)Mb(TS!200rDCD~Hc zIsgIh9h{f|2lybZs0%OI#*f-({*!5idQFnchY^|lNQz3s)1DZml3C(H|zemgb zdz{UkwkmP$pPLOb#RZ$Cc)3t|(C0P&SNgPgbhu&4$;e2-7SZ$2(eZDg;Phg7 zT0$a&<|Pge{SF^5&*bv_UDTBEIv-E2;Lz)j{RIQD$fqLcBuz*dsT1KKCjm}g^&T<) zK*Z0s1DO7Lpr2AQe&kXZbw~F2?~{1U$|&Ng(|vskCG+&D3@_-^8|PEtU1fEkm4EXa zEMn_Nf{|#8ZK&7qwxvWRMx}Q?sejzedho%aY~D1=I%`VZ>-}_YC1^i=ITma0*o(+l zW#)+?DwMfQZobw~$yO%RAI2XF@Q_m9EH#Z{8h`>Rm}~{;XVmRUT1?{q^l=7c*sTQ? zeohJLIw8)(h@B4ASw)$76&SvoI@jQKKwaJYL_Hi1m+#o%gO~mb_F~ggVK9QDMm^$? zh;Cl$?;tT^Y;q)-ttr3B+b-sflUm3z&*P0e?z474UOPUFcYXuBECR3*w@`F#3?>@< zC%~@S5rnC^F zlE3)olBgKK8))>WfXy~a2d1~UI`BXPHF9y?G~Qjrml>9^iz{!LGj8D12)5PV-zNYd knx~qH>wI%Wn~b~=$N-(yHJ8wNaYD?1sG)(IAw<}kkg9C3^#A|> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0886.h265 b/samples/h265SampleFrames/frame-0886.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c49ce3e53fb7f6f77d004209251d2327d52634fc GIT binary patch literal 2950 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0888.h265 b/samples/h265SampleFrames/frame-0888.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c112b394ca74fe2cc65453dcb5fbee2e9d0a959a GIT binary patch literal 2190 zcmV;92yyoS000330n@qv)I$OTSixTdG6VqNKn?={z$gmVz;Q*}+5wTtO}82BH~;@j zJ0^e5=j}y@S5c0qfL_rK0na*4YffFPwNeRLA`pyJFb%1nN2-yeU2{h`+OI$oX>a$r zxLM%_$Q`{01q5olx&u8oeq7?$i02{ln1q zLYx zcY>_-h-V@}PO1&+DtWEMZ^ZL06*zSyk!SzbDXKMTj0!w4)*-24c=wCEV0wCUbCiTJ zN5P?-kCZxI9Ny^HABBfye<6qUfd*69Nq5aw8Lnx}%@cd8qFfjH5~2!ZmEp2-BGAXy z9fM==0+C&8q4xpbxr`(s97BVr)Vk$PSJnV{0;$#Gx4&$hk@NNy`>I&33MHii%rbL~E|4+%c1vsehS z(nK7xwW-ttu6fAp9>C>!mQeJ{ze7<90vZF;vP0EjutIM8;p6%@mn!T_R48T{lU)O? zigoZSBaIt-NK{xNQa*Km&VR?h zj{O&>=zO2fenIr#M<>_^)Wv1%%8hHh&#-kCE`pXQTS0!+RcY6! zJyp+L)8jAyF%DOw{z^ug+c+2qq%mNHAb-;U!0I4TgkLB<|hcys^&Prz6ob_io+p$d9` z{r?lB1;-mVMQ6_{5~h|zZr8w4yQzP-(tGFG^W!rfa-B)ei>3PBo`5JC@6o0z;#PAg zjb&Ikw~R(ONXK{>#G9%XbZ3{Na0fxz5+bP@F0)X$djPyoE?;RPU$>!6(nJ+9wO!5z zPT91wFbxVXXQ&0@d`*;iDs}(<7-|YA8H=Y12h<2{gfT!?dLB@X7$a)CMbu@k>FXbn z*F-I61cj@9OzX=U6`U00X_0yq1?w2;D}j&0*mK1qhIe1>Nsyie$m_NtL;Xtoo_T-a z>cX+(#@7o^3GSv$81fx%@g^j1qpH*D_^1)i&@l^`Zn;PPfEC|V!6C>Q%$Rac-8a_G z<`ZdQAfPF%2<>Y6T|t2u-6d0a=#6(4{)%K^ne4}SgptwKmY(gz$MX%rT_p1 z+$t-M00093+JG@neEnafp{tV|?AWz|G}=TzhFxB1IRW^WU+e(`j+ZXqQ&hO}GN|d% zx&2;6!c}sEok=qmn6-WcdI`5yCGNSn!j)Niu_*v-kr=DDt%3B0WHszUL)-I^AWa0s z(N3{LG6DJsNkqQ}hHdt37KS_g5K6u3jp5asCDWw?jrC|?Eg281I z<5+Lc@#JkbzNM=(2Ba$WjHNg>k-rGXYga$WMhTaT%T$X={#_%{TP<|6!*wTK_WiST zz@)#OM?5x75Vw5}HJK(pFxQNmy!Cm7`2!$?IxCQ@ie_k1cP)VC{5JXrw4C%Dj~&k1 zPTgO;onHbem~0D((Y2&fUWNP$UIFnFN06UkZ?3?^sNCQ`UNcHNdO;SRzMO+-n+WhihR}ex?8+A*| zj;=l|3(6@^D^+8Ky#rLa+&jPUmsj6oO2A@&|IR_OuV5<}&M|NwP&1UXM=xA7D>@%g Q_h3*shAF;CO9E^)aY{HH!~g&Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0889.h265 b/samples/h265SampleFrames/frame-0889.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6158738f1eac670ca18d356d523dbc28d5a06062 GIT binary patch literal 2950 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 S7Af&H<0lZ$XLU=yVAIMK7J|3{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0891.h265 b/samples/h265SampleFrames/frame-0891.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5a772267aaabdab940aebff33889311d2ed9dc48 GIT binary patch literal 3264 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0892.h265 b/samples/h265SampleFrames/frame-0892.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ccd55daaea08e976e4333d5d1905e03b9e0968b5 GIT binary patch literal 1746 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 X{`}@_l6oa?&tNB@0x6hm4ldS!x<4g6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0894.h265 b/samples/h265SampleFrames/frame-0894.h265 new file mode 100644 index 0000000000000000000000000000000000000000..67a2d333aaad316947a218bbe065c016b3f3fb5f GIT binary patch literal 2596 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 G6<$`z8V$Dq literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0895.h265 b/samples/h265SampleFrames/frame-0895.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d95daa883b80e46388c9c63bfac5c6726358f76d GIT binary patch literal 1851 zcmV-B2gLXQ000330n_pS)I$OTSixGVrUU@sKn?={z$gnBz;Q*}`xN}V<1ZsDzq*-z zlL>DmRWOOS80AYKAhusBK(oUogy)7?xk$nlHWVua7x}7|!s1eISogJuCRN~xjHf;j zHiO|5`eSGRaeRv;VH?B*MmI0BL~_IT#J5pH#zr9pOsP|WVx_J`2#Tq7CPeN9>Bc}U z%xa7O=TgaU!_j1O2XrP*1X|ma|5aHTT^ln#C|@q{5=GM9Y&D4Ai<=k1M&nIcrbPvN z{B|)wGDMH7{#bcaZQR9Gvto2hin6_LS-kiw8>jKPepa9U^&d%$s=QJjFgGY@J*VRtKIElC8P>J5Oaov2mAKyyx(c%T`r^FNdS6?=Jck9j~7n; zlms17al=$?MJfM4??a6b04w{7O^Q}4^HG$(x%?DGC|G@ZeK59w4Ns9CEhiFyRLnP- zNF#+&ugt=+I?KER#z%FQH_jzEG4(*j4Ih)AtR6b)n~6pO%gpaD^G-qpDDX-5r$|H0 z0L}43LnRrpDY<{-R%>-q?y{@ROaJJL?Bn};-uHW zl6jtKCdjW$DHP}-mAv)b$%!s@8UmvlYRBzvoOmlZ<(W?@0t#F)<{RvNrp(au@tdFvg2WW1 z!YO7VX_QFp%2(O-Nb2t$=UgR58TZ79d)H>^flal^a$+C^URRX!r7ma}ipYL)I!;64 zdAEQ70HT0cA9V4phQ#k)&;9@Z7FFF1meJ!4An>%P>*w-+Kq2!d!_!S61c_dNYqo1- z5A+zg;-E2{sZC`GQpzbFtR*P2fmj&Jn)v*sR4a=Xb_rY`U;lgm-)c8S7h4;;Kx`++ zDOW>5k>}z5n^Rs1sGGk<#F~G$rxfJdkdzfRQpe807w*1K{7?Ca{y8T91t8xA7^T)D z_w&9=Q>KvIm-pRo+%>vW=;`9XVl*^u)>P+ph^Dg;u&DbGk zZiMD00Ly?_t;iNY002M0CDDnd000Ht zDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*GLuz<*+u z`Zt1Mg@9Y-`{DFFn&foU<-pYAOLis8wIAl~c-!g`hb3w>%L&7Z-U|R(UJAm^QAQn6 zL2n5Y3zrbBE{(R6RArpA-~` zZr^Emzo`Mt4SS=3L-SF)LW9?Fgv$pgO*JY3{q+293{l&H@sdq=-#^iKzH@ZbYE_K<}8n7jL~hR2^=#RtqT@#C0x0@^o;iAl@= zXpiU-frMZ%RU;l}3H0B-P;$^|QwE3)t#$Rd6p^3f#;g(v4-?L4i;i6Fj z^2pWukv#N-%sr*}D#J+Ky>3z*|h%tzUzb|#S)^S znogkMMBQd_^3!5HsVPJjOgZ|x(XhvC*pjTHX8*cYcS0t%++O+@Zx%Oz!Q#;ar&#fA p-jOM2NM4}qRhg+rFL)h&pB?K#hU0p6(@|nmz-2%JDVS^kE+BlYffWD% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0896.h265 b/samples/h265SampleFrames/frame-0896.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ab61dc06007ef85738447b1fb98ffc351bee7ff3 GIT binary patch literal 3552 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 a5Mg-GvCV;we*Xp$4>iiT0x6hm04^X#?(!M{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0897.h265 b/samples/h265SampleFrames/frame-0897.h265 new file mode 100644 index 0000000000000000000000000000000000000000..47ace68fed8a8efdf89abcda2848f98161745738 GIT binary patch literal 1901 zcmV-z2a@;z000330n`Ei)I$OTSixC3QUn0tKn?={z$t?Mz;Q*}`x-brFn>_s`>%<; zu%3$``&_iPd)+Kbp*tw3?xw-K&NRS(&yYpIo*Rl3VAKEq|Nrqw%6>_Sa^*=y^)6Do z7szNo{UxjXf291I`JPvu_g|tCpW)9-?H8=R2xO+1HA~jfg|q}Qm#hP{l=x7x)!mf+ z?wWOzE(!43G|g#)0-ewBBUQ?8K{O-||NHl=cBbFFX9;oI52W{sfRhn! z_6U#P@d3#|ox4K3PWDvFnSUaIgd-Z?hzZU_4XVPz;7*F^`p<-`J>@F^=BXFS?zL)b zG5oe0h)>q0r9wBGlD42Bdb}Yb&4w<=GoL8e&)@Hx-teBG${70@EG_ro>;vLJ+6nye z%{R#A#Z?UcB##c#$&8|kC}E@#I3aP#vgu8b&rqe}O-;3t+R}^jWH@Gq^7`XsjZl?3 zBG4_4RsN9;WnG%ZQy#85T4u;r`L#jT$?cI=b(lt-QvA2*TzrBbD|B1mGS1X1K&&dH zooe@iB-*^QVF3_?9VgVik{&aRO38ey1y!Z&kOJl_D31RX5v0_G+q?$^3^ zA`UlA9tQc=Six-pSDJLoKy#t%qcRW8=Q@wpZHZZ0LRMKL@Csdbl+CWVZ~qr-O{Q~&@Na9AI92|@_z2qT#|)C>O6BY=p1%c9ZX4;9mBLkm=0SegI#{(vSI-=+N2 z&aXd3tU%Bk)qMF>1>QHWmPg0-gZ&Y5kfg{9n6KbMt2@%zd*mLrQW}q)C!e)IcBOaI5d9b*;`YCScX5Mt8x!xaA#^BB`4=63zUPinI?naqY|hgmig zekvxG&8|QmAj0Td4pTQ0g+i*evs%T3ypvPQ&i!|5kU_5;hHQB)D9N4p(C0-5p!DI zV_AFDCp=_Hn4PpKt!IlFyL-0C!q=-t+!uCb4Rw#RHkg5(i~IuA1V4hTdN_`L52C0_ zHOE1c+a-=dkPss(`7kGxZc)q4ZicL4#sM6kPOok<+kAN!C^JxRavX~DjzwxKRY4}- zAPv02a&)Ywe(0ie1}bL8_Gve6CJ6E0%S+V<)S3<3?F!;As2Fe{t*8}NMe#&6L}E%} zFOD8uu!NAi@n#|H{h(VCiXikltS?Q~2Qg%2wgxsRVPIhseRFNt3pSaKN|nBW#-D?5;ZiuQy{PjS+VE@CNUu`zqjb_1g~j>(BKC$Q zQ_n_gwcd$8h40`0MO<2}I|^?75%>?g)l~rAEzSTAi`XoH!}|3Q9Jm)cQkY)U_a9~i zyk=Zo?TWnE(N0g#CT1cr#Eh+WI1=!(0~u~Kgg-QJ!ntbeG8Bp{rq9?aWrAwZ+Dqih z3m_0=f+Igs)ZSEUQtYG64Fd`Fp$IoRQP}L{HIMedJF@e;-P(){h(OgHg^lYKeQ&Mr z{fOcd(^g5mTTE7%2ZjXZ+`WDhM;r0Ft4sWD6M&*|EYwtjAu)A`8$WiwTDrprj8yqm zEAjB(P)7Xe9`tj~4I%s7CJFG0M>#bOIVD-=Fj~%+P%;U{BU488=Qk{^1wo-8@n2P#p zNE741E39mBBpCk9^1*iO`NW&+R(%xK`}L#RpD*zI1Mrjlv|ir@I4TWi6x%`Hoc7$< n)B_%C{eKxSqQwG`|KjmCUwl)Lc6ydgZyz@<-~uU_Yyc53G5W3s literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0898.h265 b/samples/h265SampleFrames/frame-0898.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c7ece1f7ca2437dc8814def7e3199b6757f99787 GIT binary patch literal 2157 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 K0x6hm04^YjM~86$ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0901.h265 b/samples/h265SampleFrames/frame-0901.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7183cfb2beeb34d8e4616ce63b7edd4fe7210861 GIT binary patch literal 4439 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 dwG@1tn2cPz7 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 Ui--iwAg!xl3|Imwm}~$pAnWKZ(EtDd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0904.h265 b/samples/h265SampleFrames/frame-0904.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b581afe56b239a90b543a4f393c24611f1f02e4a GIT binary patch literal 2447 zcmV;A32^oR000330n|DF)I$OTSixV_Xas=ZKn?={$5So>z;Q*@acY$nww?d?7A0f0 zJ3a?u0)b-=6{mg_{E_TlLT?`rgg;OKp@xe|c*IcO{o{gw@Q_qyQzcE!Fg7xlH}p9U zy&wcu_<|$D%VLTyef%&QJ;NfJfbAlc^@FnXxsE808t!Q^%qn?x9_kvWPbM_DvV0W@ z;#N8SQG`e|t({TC%Q6CS-sIjKT;LBXbIJ}t`|j3)Dl>u#b+_+^d8Jil>rWoPFL5c* zD(ji^3B!KE#xKv!STP5840I{)D#$452sCklG<%ZeF!;XEXJ|3C2XmzLREGijWhtvV zB$z`;oDI`FWWNLUy=>*#=U;bYS;|AGEpQ<_hd@PyH1=$(Vy&DtoE?To%f6XiPs{tB z;S5^hTrH;K!sxd1iMFm=?E}8i>2OFl3Xb{J=N3%~+=$hYvxny4O*h!U>w4RlcH}sY zcz{_~WbWy}T2&pejWIyyEg+@LkaX(COpj3_pL$9RG4AWw6H|eg>s};)`aV(RTE-&- zqLC$b90r$nZSBh+;2GJA?%atf+(0<*sJ~a_1A(rE4e#6uOC9Md5ekWw2y~u4gQfqZii4v=afHX@Vngc{!I&mFhoy8Y+gk#O2+}L3@+So z!a5+p^5-_g4Yq?g-j=2ww{Vj?$>4Z#cfPNAGLwHRARk ziS+UC8f~qQoti`N-g^gY$Z5#C_o32ewQ0kVUsaNBlHZq~iyT~00{#y#;l#trDmo@u z2JWF6LN4lT5yjFi-=F>O&G`QSlH=#{@qDk+b5}oU;%f`c_i!D;pFwm8r*xJJ56pZo z;~N)HA!qxs#pyBsI+XOO;e`oQN&!hkL$Ps@I_M9dl|hi!W8~VlH5GI$#|AZ??n&{* zqptVCxmL)s8*`JD)i293m@o_XA(Cwlu=Iyo9sL9v$NS#mFJ@Zt*}c$Gw&Zic_nu?) zt{wjV62u`>%GKQ)sYfdO?>VfXHs=ziu7bIoT@dtAjw2g%9FEjVLg|xHNLbcM3@D2n zdoGf5@p02z9&nAdEvvkHv5L%mMSg?ekvvlUWz_x9E;Zu!P-HSU-CYY|a$6Asx39-jt>@P2? zwPs{CkfB4+B)bR*W~$k*sS`_$jfHdlg4BnhUEJj;@e@092F1Dgr|x%yeE>(P@kaFx ziY3$ky+Nkn{PyYSnu{vM-fG=|W?c4V+^uVo2d!Ajo~--N(U6~R_BQTt?uowa_io!X zr|J+F{6PFmL5*_(m(H{S!R1k6JlBgh^a*xmY5p*1gggz=3CX0 z|BGiC#QS6S$vU5PDoNDv6xyuQjoQJ5+UY`x6Z1oigl%vv1GmOR3~~BZ$(|WQrccK< zX=>^70Z8(an)lr1#! z2vh&-yma(;G-d=J4w5>(`iga zp7R_38|YhHX27{v{vzRxdJuH=f0G*0QC9A~sZcA2rN@@3{=c(_mhI8l=w+^X=N)h;t0r4meeH0yc*&Ww z1uck(6xa-Tx{33USi(aKs5vjMD{XF{=n#43KD*!t6j-j~J^%m%028n!(TS!200rDC zD~HcKX0#9Vt&9H~NCE(;|ND*vBLa8lYUH%yN17J=+PIe5fN6Dj=1iBXtVhldtum!| zQ9CsxmgY3#8q;{5l#uEn^#-!H{wt_*oLz>#p)=m!{MSCL zlA@Jxsok%C{}xl!eFhiu<6FTlp&Z3wGo7wehw%+itdRQ6GMV5Q#L=h-fRTvz!hT0S zqFlPQ?NFV!S|vYl)k_aEX}#jw3bUP9UXhV5Cg1Om3^8KGiTjgkpnUa#pN-q4fYf2f zf-@QmXdRrW@&9;+DE*gJvBSbin*|Vaz~t1oY7Y?bd3#HY-0=zx+}ZFwA!rhnW&4M_ z#x+x6GssX#-v$-NjNyo@Nv~T>yph-xNd4Z? z=2Ic`aN#5&2X)Uw;X@dl#+v zx_oWw$l3sCnTHblof_=$mltmy)HYgR#KY%eOtE*3D@zYGyMdXI3(zv9u&?_9eju&2 NBn4CgDVS^kE+C`jz%l>; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0905.h265 b/samples/h265SampleFrames/frame-0905.h265 new file mode 100644 index 0000000000000000000000000000000000000000..91be3eae0cfa1ffd900e15bd619028b950642fe7 GIT binary patch literal 2034 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0907.h265 b/samples/h265SampleFrames/frame-0907.h265 new file mode 100644 index 0000000000000000000000000000000000000000..41ee6b0ca82001913a4a9b3a56fde48028e7df6e GIT binary patch literal 1828 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 Pt*8JXU;-(aYyd7Gv;1tc literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0910.h265 b/samples/h265SampleFrames/frame-0910.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ded84590dde1ea64263f4a5b67ebee125015c4d8 GIT binary patch literal 2027 zcmVd%a95Jz;Q*}`xN}V<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLOx2@u}a9GO>zqRI_g z+s=laJ*YbYqf#PEJ80GS7n9BT0`QZa{qaKVu9lMTC6_M5Uy^+~tTTOLRRCSYUVo4W zeBH>&l)gQ&s!#vtfo!x}fdZlTWOEvV{=;xyOgV2K0|LZK5!#3j@5ueGy(ct*@={<- z&TJffvhT@X1f}KmG-F!)z!Kx&@u)F-%83FQmGm09Y76WD^`G#OKdT69x?Cg||B%Qv zo&u1ULFKEj^2TQUReD2g)Lnf1Bn!BNc@JtM>iF_G<5|6+x|FB2QFz-KY+e^$eKsaAfAVs2Deo9LB zK%)Ffc0s!DmamVUDTc8j@GO}5%KAPY2N4`*g2nz0Y`gR(s@)GF7mG}$)r~hgK4${y z_nHcC(JJx2k|eH=p2JYc!2X+z7QfFZ?8%8L5)=3d;p8C>VYE~7I-qaT ztU^)~Hdg%}o5bVR)L7h+F=Elolu_|pTnA{IokvdED{~tkOtU@htYxgPyaDKz({FA+g2$vDHk2bw6F;O{97BoRAdYaVpRhWN=F;P|%)aa8*;m3n5x+{IFh^lM1I-x;-v>uMD^n z3#61^mpVse_E|ELz=6c3HAAlv4R+c(4)}+tI4Vj7B{%^#J&LnULkLZe*0dVRwczEJ zS=5k_QP2R>>cFvnvO`Pjdo-xN9sMdMh^&6@^eh;%))O_ySqQdK0680$GM7}ELcy7j z+oGuz2V&XGv({9Eh%oDvISwt);Nn>Aj2iLMIB(#0PNM3IJIPCz3L;^n+Ae`>MtVz* zxBx3)SgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neEHgd@vY%mUL%cOQrY%0W0ph-^4T0!U$(CfyAJ-}R9rFW8G zf(4lZb#$lQjHdyh1*Hz%fjGICqKtjP%42c;^?m1C~jDrp?gmDYJV85&)C%bFT^t4!pqa069 z1l-11!-84F+$` zH9Axi8%l}(>f$zvMRz&KP6Dhfmn+HjnPwn_?ouYe4w7W7DQRpl3N8BhPe`fokcu5Dv! zBibKNtr@e#7wCL&z&Oz6!;wHrAdWOx=oFbr1;Au~0M*h+{4zXj?^hj0CaM)i8^7sQ zgBrXT00r}kF?dXQKd0l@n7C&nqXj6dSMK~;su?;6vBt)n8bFs|Qco)LXCe@Qp9peD z89`1d!m*i;N=lWOZF9&U?3m~OdPOhrj`M6zr<8y}YEf#(B>-7lQ(rcU{&c_Xe1=1VA>YS&c z+iW7krC_z~{sKy73;5#M5W^PbklpIZ*T18!@%=s?u63N@0DyoUoUmX64j`?l03cuj JDVS^kE+D>F%UA#a literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0911.h265 b/samples/h265SampleFrames/frame-0911.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b5600e2a9f8ee4a12d6d100093585fb9f391cb2b GIT binary patch literal 3213 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0912.h265 b/samples/h265SampleFrames/frame-0912.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ef743b46a86c31cc91bd4c71be4d50efd61da0f6 GIT binary patch literal 1869 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0914.h265 b/samples/h265SampleFrames/frame-0914.h265 new file mode 100644 index 0000000000000000000000000000000000000000..33e36753d627f17fb66627d04bcab056d650b69c GIT binary patch literal 3041 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0915.h265 b/samples/h265SampleFrames/frame-0915.h265 new file mode 100644 index 0000000000000000000000000000000000000000..72d81d4cda8fa36a6bbc8bde35e769b5deed481a GIT binary patch literal 1940 zcmV;F2W$8M000330o0NI)I$OTP{CUwpacNmKn~y-Krjjdz;Q+8#9mS9g0qagjI#df zW%^7dypdGGCfs9{D**;sh#7{t3^02YQ3e#mDh8>rp;!d}nyG9qB_{MkC|Gi3UKWce zHEU@AHn%=8)?IPh$1)2ylKYFN0BD|r+7||)w*|6D%J|wIJbi3!3%hPpn~IU;AEH`T zt645%RA2u(mP>t@i!@lhlfG~w)_a2TVas_|m=;o(Vp}YCen;=7&^e?O3$|eF*0YiF z-A^TTe5oze(T!d+085X9#-PRT9ApSsm(Xh0=u0`j`*wUiaP+%51qkQQwqgY4_}zXMr30gMrKrzY6c;m0a>)dpJjqsTTsC;7r`Vkf|r{1aB-_ zrgxZ0o5O6%t*9KOGH8Pb87$6fE;#L4W`+liun}c=KTiF}a$cnI1cMr;|9jH$;01X7 zZ8qwwZ4o7DivZ)EWhhP82n-p49s1rS<|qP9v61RnVa|CKczvp$?E2mhygNv*+Nz_S zQYL10?Jji3Eq|-9uU6hM4z{vox@aN1dEA2HYUzCNZiRodl_XPFVJ?8+y>OtdCdZ#9 z+&;w`*j5cJs14Dg9L&k|{WuhupI267*rL+`vh-CPIzpa7+T6Kez|J%zjj2`Dv@M+J zlemsGC<+Q_d#l%2Y8ILpnbs}aUV5Hki8k zCf$ek!LPL#SmQ|n&@%|V_xv~Vc7zxyUaF%l9wZ_s?S?(AzCb`Tula9qH3y!4qTma& zVVs%9ZX2YmHF?1{a`VjADR*v$KYqa5k$21{9uFO$-Hafrzs@P4BNwP9>E!?s@egub zs6HPR_Yg)LO05Y@p$YEC@D9GC4d|!rppDV*t>`WS4KKx3Vmhz%dQTL1`4mQ2G4XI@PGyquq z^B)A@f_6N9erx{H&W;tA0009328382cU_+(b3gn4{w%Ay8!7|F8bRS~@nV7#1$!}7 zVQ7gY9O8@pfeDK5RRw;3d_Me5*Xxg@5Hj|UG93N>I(@QMQJp#Re;>^{@P&Vo06D$a zJ~LMGvEH$vfW{*ps6B=GXEbBS!~Hg7@J&Rx@-r0IvsdKf_I8saYd1OmU8(x-fi|Wm z*MgB~X!7U);c63-EexD$$Ii8Mv3(bn5we4=xyA&% znMp{1?lT&4T~q^IwvLc+eGN)$1-iJgq!?ELHa&{7O+{ZW|I_nN$tY)APYPeQ5bKxN z2U<%if#()unt*?*hk^|XWAG`n2owg zt|~c|nf?)&wE{gL)@pgws#O@Zg=AH#=14t;iNY z002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g0?|iYf-^n^Qewts|D2>6{U`<;% zJ7l!6+}56`I8fp?gLdHWIMog@VT^Pc7{W zg@eVmytrAogh^r2LEuDO*qaBZ*{1vxp)knSC7t6BV8_xTzQX58qS$a3JuWD6m76DK zVA1H{0k%T{gdHO0EhkNjZegT0J}u^-%LmO~vLFX9Wn!wv6yu>LIgK$R_e{L4$I&^1 z_4`Ndv48x9t8%sTpJkEK0=cgwj1kRjsezRe{|p=NM_O#%may$^oS1{fbpdjs8tBTN&R!l` z5@0+eQk5#Rr?=X>UzH9aF1)Lk;pEhWr#PnBU(}WtC(ACjd?_(_EZpxZoT%lqo%3I< zr=h^(sC$;$yCH<8q#6%8|Jo+?2Nw&PD3H8Psf$QX{>%cvF8>WrWR?+gcA;CuiNPH6 z6-d&10(jie4EPnYx;OGAB0c|q|FeILLW|$3*u{Ywpuz{It+N7U$K@L>2hy z#?-+ivK+E?YhBN4Kre)kNzDK1u(6;10Q6PAU$P>wjksAl(z~t?K9&%ehnebg3DJeK z9#0XQ5XLAJS~?>-;cOZ8N_)p)0oiB$LZ;r}n3=fzDNHhdCdBl1|MA}oafJ>=wx=;7 zO$J+W-Ft#v6g>__t>H6t`w6;H87uh@fx9pP_eblmxjefuZj~4Ye aKma|U9h{f|2lybZr~n{f0x6hm04^Z92&d)% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0916.h265 b/samples/h265SampleFrames/frame-0916.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d8f810593b36e2228f6201a20786569136b57127 GIT binary patch literal 3279 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 N03cujDVS^kE+D{4N6!EN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0917.h265 b/samples/h265SampleFrames/frame-0917.h265 new file mode 100644 index 0000000000000000000000000000000000000000..67e2a1b301eba1a8ab5d54e1fc093e40eebcc86f GIT binary patch literal 1846 zcmV-62g&#V000330o0-Y)I$OTSixB$a0CG0Ko2{Bz$gj=z;Q*@W+FsQllnn)k}T@s zjKJe8B8B-uL`rKV- z+vk&gOIp~Y5`TGdY4C-YQZ_c`3cm6i5#+7tKDZW7wBA-vOPd< zzWz)DsL^~ExaWt$=0!I_0BleJxo$G#5p*G?L*C78P0){PBpB%w^>wB*@cB1oppGWc zO_<xg2-O6NxqF9Hsq;R@*U&jxOAWC?7HyuCx7#(e@K~kW3JSd1a8AnRub$%t7sz5%4N zYv@{apm`j?A?^VNXRSoUJ?Sh6{14nV>dMj*vdJGMP((t|T(oqkDrN={)pa4_PqZDX ze=8ibsZ7=?hW+&9LuctFnIMm^Ag{>ipoYd!vuBB{xgQ91D}lgE_PEE{Cza4L@3MPN zyXXiU00093DIi!MfTcB|4$u+5kBjF2Kutbof8(=lzvRNN*@ZT}W$kpVh|*j|AGBux zoMe+t+O>q;ho91TvOw_b@^YIQDYG=tLZwOKN3d+k{FH!x8UO#k(~KC|i}R6Kl6y~d z#FXc%VA4Z(cdDo2vc6CmYnY=LoJ#LY$8}xDCEhmwcemG5%3a@rG)p0!Do6uTy^YxT z`@HQj5<3e5sfcd3`kh=eC>7v;SebjDYz1+y78uxo?Jh)baXARrpl|<}0np^h-h3FT zAa!g0%H>-cB0=@*AY8SfW7GiN%NwoLSj51*H@CqgFcROsc&>;k$X^Z^EQ)TylhH6NmT@qsMc+qbx31|Cd5|Laq8I@}oENjH91 z|K+@BEiu*w_yMa}t;iNY002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g0>N`jq z4e~dxq)4w_GxO85hzJ?u*!)kJ$EpcJWUh0HIT+CxEprC~Egkt~^lP?qtsX`NZwYu| zElE}LY)KX>EPp8oWiyr|;CCW|vNad9ypfg)#9uB`)25dbphZ(R12k-RsOaPIUGUz+ zz7KTs+MwGlyhUAlMJ_RSE%n3DR*4xe5w@^Hd}7iF`7{DoKae` z8yC1vBI>6&12))Os2Z3+AY&)bffjr;fWqASMiyD3;jcN*&WjT<%-V|qdIcYd_%#(+ zkeOzwJt$Y0;zgGGtyL_IH%@`BzpjfZ08+nLV%rznPJvc*{f(Z|+$>X3HVt_nLW4Vp_uZF6LbA5{&=LW&}CHKG?&xigQfr$}~ z;R%gtD!KCdZ1m29#4XTq_{Z-SZ-B_x1fKgr*E+PgGqn^C`aOFDc0yJUwid_LUO3gW zfyqq!v+^8C5T5w`JX|pxm;H>Ri)9~jyXEnpQ4FS_b3hN_t!EQdr?I@uek~ z@{4^;+hT^?uL2c~BXvQL7u1S|t_K8QUiA74xA=5l(^=J=Tev5BSo*UV*5<%91HlM* z6+NC(1W4ACZKHtLr)Ad*5}Nznu55I^n-&*IRW*>Cqe&dxXFBYw23uz@QY5T!71~wM zy{RI?$_F8Jy8R~7vKDa$IIE}0b76k)D2fA>O*ittFP;y&*~TJmHy^X>2+2qxsnh@w k5EZl>002cm7W6s*0q-50m;eX(Ag!nXAYcM1m}~$pAY}=H@&Et; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0918.h265 b/samples/h265SampleFrames/frame-0918.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e1acb1764aa40de3034ddaabd6c0c6a35a862d66 GIT binary patch literal 1987 zcmV;!2R!%y000330o1Ag)I$OTSixUQIs^dVK}4T`z$gj=z;Q*}`o#Ra<1r=l|NH;` zxL$&_^r+H?7gmEjZMLhrA;3B3NzG)<+P+mFm69OfS*c1MxwYwv`c$j&fALuub>e*Sp(d_63yy zyS>wtxPLlq&^1ljKZQ8>3KEqj_3!pU-^6^`Ux_^b+bHyOxU69?yz@_MGI606$4tK- zxyTGse~C&+Bp|=-;6{B`YEztb%$CqJt=gLv+TrW_{cw_zH1;AEzj)K`Z3<*B7sC9e zbdFQTuvp|B!>BM4ioLO9IN@_hLO6#9Q@M4@oU@;wjys~M=?vc90mxnshCwd;A@IPPU~Y=VX!-f3b+L`0nIeAuy&Kfpy6JU=xhXIDEY!~ zThArglx_eIa&EK50{Uz2Ujs}TWLGvods*#(57nyEN`<0X!d#dEtF#1z*IsrjBzQmHOJ%=_9WsCb0EU2A zA9e{s2_bU*o#_Aj{wGKajy7$U&!QwHO%4XmZ-AwDQvYwH_s_HE#g;tfIxC$QOZB}y z08lmGqfAx7pyp8;X)tkb7>sa{j_^1sH&mAC1TRM54ui5JMN%gnW}vBd&TEf#p9&P` zx1mkaL=`f%UdqZAKRQ_$18_#f$^!lHtn&h&I{*HZHUx|e#nXiZVj?!e7@#X$Pbfx= z5w%~I%JSEB6wk=(q877)Le>>n@d#B4&I=?zyp{?5WsG!{z{lb6AmWijLZA17$X}2H zuv%V$d)%Jz#fi390T3`$1Eq$e2t6E-nJ?lWTI*T+L2;GG#-GDM1t@f&1<~&-ngCaQ zQv`%Hc(?U0?ALP^A>inr6?AzYIKuXZ1^5v_!E;73W`v3`kE7o?S=#r~#X-E!zsbG~ zVZWjw3;+jy*Q({dqV9|{`H$7-#=MIE=s$L$4jhn7IPe~&FPx*8+||%E?2E^l^nW-( zSF)d*)&!Fbpr<6M>QB_pPETEvC?YxJX3|?-&M<9e9T_p3bUPR=tY$1V#^3-b;8?B5 z7C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{tPInmwL`WM0vM%HO-n(@}$1s-QSOUN>YqY5o`1T@yUMW+MV$4%8yM1hk`m^{}iC-;38?i+3B_<^S(Y zHTi-0$ZCv>ZIE6F3eDs;C9|Z7?F0YnOv*me zd>E?_07~9vk{tM2$Knuq&YqV5#C$N|=FtKxCf(I4VhWIT+sm!8eMH z%wl+cb&%c_=eV7dfWTA#n{z3DXMC7k{^|YhgS;E-d&BSk^t?&5e7N(=H2kJmEJ&Ks zw_BW>oSHA3Kl&vxa29@;`nR?qmYauwW%CGVbxNou1Z?TRNWc}iF8}}?5Ek@000HkE VoR|Oy_#myQ03cujDVS^kE+DhI+He2> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0919.h265 b/samples/h265SampleFrames/frame-0919.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b470edeeace0416d85e06cd7a3e24b923f80e6d GIT binary patch literal 2568 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0922.h265 b/samples/h265SampleFrames/frame-0922.h265 new file mode 100644 index 0000000000000000000000000000000000000000..85df03c2e2120dfa0d1d1736101bc232ddade031 GIT binary patch literal 1972 zcmV;l2TS+>000330o2L=)I$OTSixArPy_(zOdw{VU|# z?s-7-zU%Zc(fm8<{i1bY;S8jc+K0<(qX7{a471Fq(S>_F_u~$NgswnBfo93WXtiL{ z;-~~p42OZf)E4P7Ccza19<`mDVbK^5 z*dZu@>i1yN$vcW8g#n;$mY{Ujmx(_!lpHHdpl{+Mu^Kbx`5%+JA7O$T@OJ-#1xAbE z{nC6=7c$EF90DSM3tjZk74{~Q`sJjX*6QQ;BdjJsmWfcnEHMc*F~XKQNI(DqB?eWr zQB@j=)%wJXF^=+C$`G5m5H_m|3xPT-r|UivtoM|xLnuQ7=NeHRZz-l;J_~!50*I+| zNwpbQFV&SUsVe21;Q@ctD9KY(ZDe+|qWswo8KJzsxCfsOY97pCH-E}U4Do%?NA)Wf zOJs1vNmPp^^cz{zE@buMi81-vaz&4t@rts>!DA?a`*+p{U+GNqnCH5D;iE5H9Ch_C zWUq|l60%<^!BuG7)ybJ{;?j*o3PBG=@*uhMGC$($;ZO{ULcjmLrCAA_RS~7<`QZ-E zU>k|5^-cpm>r?;nZrvNWOLD|J& z#j2kB`~WJ(%?*l)2)GWM(dGhY93xE~7o4}A2VHm`QX3DGu;>c9?6EBWcQ#w@ok2rm zA8t}>tvwh5a$_cs4x1H~Q&qA@;r+|A*hd6WMsVg4;Mwzdmh7bX|Lx~g1amMN)SpGhL#GP*qPPW!DV0X-19n&+ zb_qfX2+$F~kBjF2Kutbof8(=lzvRNN*@ZT}W$kpVh|*j|AGBuxoMe+t+O>q;ho91T z_(2`p@^YIQDYG=tLZwOKN3d+k{FH%r^K<|H|4uMscEq>PIFOatFiBB98)3BKPmf6f zC;&veze=z)VsR_I&xYxDwk5Ld-c1513f5dOA*nf63kfGBM3?pDDfiJ&>8fUjTqsR~!83j!+qJ02B~dt;iNY002M0CDDnd000Ht zDlU}8VCVnbU;eR_sW5)KL+N3-;~qM3-cC5PR`J4M23)`nwiUoc8ZqL%oD~kjmlG4` zbI#?LgoNjCsG)6L3H*KOiC>`r338J?WgVSRW&;0tUklLTdN?hL{A6iJ%tS{F48rSz z7~iD%-qYMaiBwH}Wc)cGV!=4qiA7<$u)t-}ev!{7GMKwuhx+dTRuZC;hd3uW-3X=e zV2<);;gmBgCdJleIRw;Z@$Aop>KFt=mYP_^Qw8jrJcJ6gANWwpz|R86n;!i zgwmz}1Nt#VWG1Dq-s*zS|G)qH2~tL=#M+1&X&m_Hcl>bmRlfUfo0}2>`E|=uF8QYu ztLDV$;1f;(j7LHV=E@BOi&tA0Cy6*`bTD0~Ps;fA>t>G^|HSWeLw!zE`L&*0pVw87E;Uk*_n_?UpYR_h0&R=NqYT&czpZHEdEa&TEX z*wy9__0WHs_t(eVilzX#@-eIyu|491a`870&sQf*yB8!ipxmhs&IPdp_HSWM=$rkt zPGk+C7e7G4i3H1yG+5v|c=ykc6~GS4kBXhcJzotRv^4X1wac*s?M^EEh9How?V^&> zypXp-ZuZ=3pi)!N;xd|3Atv}FJnqXn~Jm8J~yGh?)&xIbt1 z7-ZpdcB(KWi&IPk3ZI7#0d7E-cePsRWG5`#x?$I69_c{I}Po_IAEjjENV;X zBYY0rFF(9nMr0EwS>Z%DDZwjB3|M>MeFm}QAt>TmF3z%xu~!Fi?0$DJ0y3YTun5tm z&1Z9kgng2PX31Pda{u1I^tVcR#js{l&vB~}Nfg$(xQWG81GQASmX1yNvn<>Yl$Is0122CvoHVv?|>HcIsgIh9h{f|2lybZr~n{f0x6hm G04^YfjLa_p literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0923.h265 b/samples/h265SampleFrames/frame-0923.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3a0248c2c287cd0cb5ae1d0a0889a28917f85c1b GIT binary patch literal 2250 zcmV;*2sQTr000330o2j|)I$OTP{Ci5Py_($vcLlXz$gj=z;Q*}`k5S*+i{=&fB)AD z&{?}m`i2)&$ns1jS9C*wbIy~R$(yx&szECxLKx4XKH6`q9nG8jMA^)y`A0-PC}$+K zm*)OLgYGN*=n~g?Rk7%y59B1i)DB4l?hvDKd@fUIa<}97lk08qg3`un3w#uFVT;%; zryGc?G+luj`Dv`q7zEXyv__LUh@C`#GspS%GA@pa)x|J!FV0KE2= zP7}dm7%|_Jj0g7Z$-!;UEP_DY^cj!JY;O#1YI+aBZUTOTrfBGPHUSJ6=CP^v;@!dm zQPADXDyo}|GlwI{Y*-E?)ZG}vH(-iqn`F%eyP3u#9ZnWypMa(v3#rw)32jTo z4+cCT>$CJCEz*%M|8&c5sc)c|d@lllr0I`G>)W$ToxHIt5D4fxVvdaRSlA>0_$g!q z_|Nd>{5D;^sCHb;KD!r3^V$kGiolX-DDqOKe&7t<~91&MTuvN6MHxkND$}@o-$r8xk zd67)1{y=Q=?r*?TH(O(#f{r^m@UntoJLj_`9gUAQNR?y%WLuo{d^_Ev<;kPt9OQs5 z`CQ%c8^_xZ=a-9qE910(wqg|IZFoO|d^ng8q+r<6v9gN#?9ays$C3RiEMcX~W%G=jPE)4JfI?!Q=AwGO53&ZPqy-kS@2k4*4ar5q%}ET8bH+o0Y7UUK7$vo9VrvX37{q9mtkFg z^}?G(?pzO}hX=>2{&W64{CDWRKSSjHbMgV$7NlLv_ty z(I8YX+PYAZ%wos;m2jj8KPHY#WrMvDFfeMOFQw$PCSyDL2RNZgx2@IR~ zE~nW+aFvRgbw=ofJ8Y-KUh$ip_5HI8MR5_&nfB9DMJXA%`?6lto9T%7l_{W}34jA< z=kNZ~uqNw^8Nn_V+={nk=k0mGq>O?#v6! zKM09IP{>jxd7dX>WQ@OOdO!aE|Lte?Qo|um|i%PtV{ks*RRBN2hZ^L zN5chP|IK_r0hZT(jV?*duU|s^d>b83I6RbK}7z1$_6v_hq@T~I!q;>!OC~OEQ8H=Y12*e0& zxM=jx_AFA9CL`B5Fc4;^+v71s$MO(-;xJO9TS)q3|-VQ?|jUkf&sETp#| z%Gbx6hXHn5aU}KoW+R`Du3Q4tP(+`E8BeYca!X*4<1fTMwb;Y@qT?&l5kZ!cicd@Y z!P0&F0Vtu$7K(R-D|Obx((G<}D$(Otp;pvj^D|!ktrr2y_#4foX6VLSE-3Mn39gX`%Q^=qH zu6cj|`2l!%%0B6=QW5|NXjrYt7C-<1Kfoo?iKYMm1>7nk2q?1^ft8)aLqGQlX)-3^ zQD|@)6%00HGY#`|)Jv69hJ-TL6b6V#u$G%_EX|UK$QU+n*6kb3tBLEjdK0vtEY)tD z07M)6a`Khr=hW5nz1P+N_S1{LXxbM|vG?|rt}>vm2o5VeF?%g~cT^x_7`Pn^t%_=? z3mZ-%pHxJS8M7XnT!Jt{_j|>@lWlMp>G(b>JgnKWgocH;W-nKV&ESU1quGX}x~ADh zBd?RbKmk=OG{3etAXlXpz+5{&;H}gEZ1ytlDj0zxI=)`OvQ0(MY4!k$Ntj0|(;_(K zVfZ5uWkjr!u31Xi@Mvf9vdp!EJBhBDR&9R5-j7Qto~k#HK$gKY@T za<`I^<5d@|k+-_GqNk6RzW4G2P78iMgc~PcIR~R1A9&9z3OkiAY8odqZPMlkg1W`X zLo9P<;Sv+e^ZO}bf>t&qa|g~`Mg-INgQ53~e>#mjxG+<{%qW=I+``sY)_HsrjUiUtpdtNWBk+I~ybSKRkFq%KdjwNq>b2Ny z@?1Xg#jIRi-b_%f|BMGp&OdbN^j|^(bP0V_+-EQUz1VB+5kFt*ljh@y<6f40)WGx# zAe1BOSco?x@QL?4Ww#^1>t>lG`ddYCGcbEA?AcHNgn$-OqJRJim=&`y008fR7W6s* Y0q-50m;eX(Ag!nXAYcM1m}~$pAcWmlVE_OC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0924.h265 b/samples/h265SampleFrames/frame-0924.h265 new file mode 100644 index 0000000000000000000000000000000000000000..366ca1b9fe9ebd7d83161a8e6136401684d1c5e7 GIT binary patch literal 2608 zcmV-03eWWb000330o2+5)I$OTSiyI#J^+voNP<`f0KgOifLL)w)p2T+vH|DY|M&m< zLF*t%_LT8Y`lO^BN=_^Mzdw&WYBlkM2t816fE~!!nRHR~5b-5vGl$y$EI1w+08Ngx zg;ooIj@aax^e4H36*&UT7xINFD)t-*J2UMVa!hy$*(j%f^JeV|S`g@g%jtiQ%~c{9 z2>mJ6lZ6yq4R;H770OwfVH<&9lJR_Ok=&ExCg6^q(#&iFNm=E9L!+scB3H(u7 ze-LJ4mtH=T$)XVGji3rg;lUz9GVI!pCLu=9982}goHJ;E;`u}mAB z-E4>wW>zlmsNIZmy)y^*R3uYg_hIHMnBIzK0@a*%&SVnPqQ%_H#j>8r3 z0cw#3jPJ{T*J#gF4Qtznd=?<4@VPpoRqjR4`z*2tC^t_fGBc5aM@kYE^%>w|lmokV zU;Z@xEnB?Mf(rU@cY>g(uXUB6dzx`d+1h88&i1Qx{G=W&jdb^gI=q-Y)B7K_8s#)W3GzZLsTNHKKL2sMG1o^lF&&`E^O{4LRT|7R zg5oRtB6lVONM%EA*Z3+>uZYfc-lEOZi}&}epJRTYW%%wM<`Pf^LcA?YIo<(vK1}3V zmtGEZvfVq(_8G4ZkE+_)#-k9Vb?r688dD;%ai_OFM41?acCn0-Yo1%hw?=>|$GMI4 z)!NMantNQU>DOv#4PPC=Obzd|!~B48Idm7T#AYS21mcojQ ztlsLVv!8nNVX>1Zrjj2NJ-vz@UQ7jzyKBZ8$kWZ=GiS$`Flanv{;BE9#m$i`q&<> zg#qBB1S8}nSAp;|ek#nOgoH;J8ksDtOAilwoz1=_N}2xeCOiT>w|;k6h6m-xNa1Y3 z6*xHTn98F73*A7HlGdBxU4idGR(uF_w;LnxGt99x^lYr4AeK!R+SUL72&h;eI)fY} zry)RiCS#|P_0_-s|0KmK4I*wvi}ezO<}#upvX}%*^6~Nvddf)Cm3$pG`~U$Bcb^r3 z1gs2q)YGx7o((LUL@Vr8;CH)TyQ1eFzOC{BeQq(lxiV$Gy4Ee9KqIRZZ9$p4MDk2_ z?dO3DNeY!5k0a(bLBgo0ykaBBOA-^#UjU03>B=sH<%MSa8L=_XY|d6&UL&7bIWC_$ z_*gXCVZs2Iy1Mt9C8VsEW!;OeEa!@!-_B_}79LdAPM3UCh(7Av`iSy_L zTD+|;G=wv@R=?%(PRd#_jT$a2DKA~CgvUuEIS4mHDYAqD5*t6+8|lVAkXGH$!U!@l2rAOQfrcxMrDPmzsJr*jmr2{uYg z8D5qxq=bCR*bU3ujEiQWeBE3SyFEF8T~z$eq<&^R&?;EL6k85XNk+@>LPVQblwrxW zeoE2GYm2M&L%6MSSH)4f9cH{ zUYY1PLYxFbO48r~#U0SK8$2<2;x@3a^ttNM-;2?AI#%J7nBOtw+f9DU?8HM?p2CTTSJz5i?+p~(SMDgfRn;kAi5%LLCjR!z1W@$g)hB||MS2%mVVv8^G!G}MLCCWgqJ$~fjWvO19KS}W-%11eoO9$1ML-Cz;1@W;f%O0ElY z?egY#s>z`}L|$T3 zym=010DEZ}nG*t-BU71-BfVe6GZstezyJz37Evq!02B}vvoHVv?|>HcIsgIh9h{f| S2lybZr~n{f0x6hm04^X`c<_e+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0925.h265 b/samples/h265SampleFrames/frame-0925.h265 new file mode 100644 index 0000000000000000000000000000000000000000..acaadbaa09eabb1526beb5f41f20a43e5c3d359a GIT binary patch literal 2055 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0928.h265 b/samples/h265SampleFrames/frame-0928.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e88f4b05d5a2a15b7a1883db780b763b07430896 GIT binary patch literal 2232 zcmV;p2uJq-000330o3{b)I$OTSixUIJ_J1{cnkvoz$gj=z;Q+Chwy-ss8emmfBpae zTrWXd`c!E{1!7@UDK@LRA;3B3NzG)<+P+mFm69O?2+>v7U(Z!K$hjQ*!Wqcvyt|N+}##Tg}b!|lAC_bd*pXk2{j>NlZWsoHu3goh~0eGY=AvFhv z_lsHt*tn|+y_jbrHQGX?X|dgn8Wz}d*xIugUInlJR?4LXh_i~%<`@+5g5n|*1!`#` z3@>S4X6{@FPoPGhX zvu$_ML&oU707C({_?Hl|Pl5HkVlNOQbvm*+Uz?4gD^KC75jc8YFM8S978Tbp*+i=_ z;1ZajT&F*Z+mdh9oXMP8%9#wWwTZY6q6Q?P?dt%NxR=%!B`;p2fItCS+Vku%-xUcw zdGK8>w(I=oqZ{t$z+#jthtNB$xUZLTP~VLHq-OB@8+>N_$oXqa?WcJwQh+s`=KxLa zLT8Iv*QVtQ$10f)CXdN(b70=v>ku~y<(`M7+Af^}YT5bI7m;Qt417NJ%M_}uhx5zE zO%?IlKie@1ay6gW#w8qEa2)iSyEe1i03WOx062-qqf3h-?8geKK-WJ22LA(t@fpPZ z?;VWWaUEE*7bSIDtebHf%KlozY{|z;dt`0W`1${>khVm|4f+LO6&#B)PTcoX63L{)s1kKMb4O1C(^*_bn+1SSLejHy6O4 z*eUeuXU5(7J;&8A+aU4xqSTV=Ci4dOZLB+Ko+Sy3Py0cvxOax4Kr#*HoyM89B3ep` zkGt=(r(~P}hTp4OyX~5=vjNu03dDgNl^Kt(0q*T3tX<|xCr~2fJo)#kYtD~$>M?^% zO`NO_GUM~NSEa&2j=BA62Gg=cEO8R}6+V%9WphP=#?Jgh5MT#*cJV5sw|F-{8nMOS zNKjX%0Pp`{27Xj}4bl*rkh7RF^@S(rnCKdzQovvJ;DxvkV6EU|?J&W*P1@>C zX1USAF(6}EtGcM^ExRb1CkHZcvQsHH+4L#pY@p^-y!{)wDFq;7+LtwgJ@5bkiGWxh zL;xVplIBjK3VMJ2|Nq+0?4$w?-;VvyvCs45$M3vxDOi{Mf2V(m=?|UZZjXia`~NfX zAO>4q`ZUAVO3nk3tg8nW>?#R8o5De}{4Z-12gn?vP~+CSZ(b@g(L!k1KQK zY&J_sJ~~@rZM9y;p0X90$Q(dwo|9j?|lCf|p7Sl=DD|7Jwb|m2eEzQ5(r)j||{% zI3S|f003?07}p1s8DyE;>ec7tTjhWBAG!AkaO3r4^tD34HcM1Lg&>w1q$8?4>1GD9nb5j7)Mo^hx9@r65rJF)-USe0nqthauwky$%E?g^kjc+Bwo5 zU3+NuP%EMi{i4ByIF(kYV4QR^%;G2}JnqDmA2can8;ru{7D%$K*_cfbC=Q| z?GX?Vp65Ds^RSF0Alb%cr-SEV6t=krTkS;39GH;E9Wpyngb(17kGjIl{s}$+m&emW65=?JIt>LB4RXk5(H#=)D2g?3C&t zW?WN#?wH{8bWDWA@lipPE`4i{sFrl9CUOY_0_BG?%5xT1V78BjjXkAJxduCGvh|O{ z8q7!lcEEmcG1BQzGa)|bfnjXIk!W-Y_P4=-W?pPsi`1nv{zj9t(g1Ic)VNHmo z%VcfY<_Xp(gh*&Ax|3R8**UwwkEo%9vJ{puk)~O)G++iKc6f4A00096qA`#BfB*r#7C!O-03sk2voHVv?|>HcIsgIh9h{f|2lybZr~n{f0x6hm G04^XwuU6v# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0929.h265 b/samples/h265SampleFrames/frame-0929.h265 new file mode 100644 index 0000000000000000000000000000000000000000..520f7dad5b57839e7eeee9c76b26d5207b3f42b5 GIT binary patch literal 2517 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0930.h265 b/samples/h265SampleFrames/frame-0930.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d73aaeb40dc80bdcea7fb066792489c8881f1d66 GIT binary patch literal 1853 zcmV-D2g3LO000330o4ir)I$OTSixFassu-1Kn?={z$gj=z;Q+7{K8S|7Fot#Mp=J# zGW{kJ-bkup6K*lem4JgR#0jXZN)Yu!WLFSH{rsUk@xO1kwjXwR8 zEbt?LaBw++*Wq3Q@~fUp?`H_{)gs_i+zFeP@)p{fGrg9tFZk)J@j|U~Wq>u02P7)^ zkj?+^=eI=-5W9MG&`B^;L_f#gNz^15)ik@rmz)47=YTpjast^z#j6JJoU9mxkKgEY zU{aY=6woEMZL&L)wSlP9b?F=^qJ*bc{8Jj|jLX}9^GgU@V?y>2-Pb=hEL3s6Sj z&|NrDb^^F{*HFk!g+51{-edVbS3;G}1#O#|=gGGWB^uaP5TuLV(V`q(t;PHErzXic zRYp_~hI zCO&eo4xfRh0{aAXDNpXLhuC-4u=zbE(n@4nLGC=s{< zuJ37b@w@N99|ywWUG}@C$N%uhLoY*(4@EMOPpjDp>>v6bSj>Vt>aVvdgO?>NsWjm^;4^)t01|wJBDF{!!`TDs_gxUwdOFDK2MsSlMy9x&b1{ zR1DrDD`X@<=5u_cNP{o>$e&%$qiWR@yg&jYUz?|Y`aPzMM65uj?R_m_fB*nXz*rt0 zbi<>ehetmq##@sQ{{R1>SknI+kukNJ9RIm-J%MYG5c!n&dFPy9kSo*-*h)8wH|ewl z^Jogvwm*wN^t$c)PG@}}VdK5Le!I_Fo_=b~}qh}sgep70R#G8WK{_;~PK`?*+{v}?tzMRcPV18q4TiFn#dkyEHs&CA9Wa=BuHkVMk>wNuA| z4@gZq&D*-IdJc>nb4{Fm^({w-7$=*i4AR)I?0NE;@g|^ZmmFZZ`Z9P8FVOi%VLeKx zG9Qfnr#bP{IfGGadto0#<;SdR@x9Tm7XYXGQ6k7nD^p8tq>sGTkwbe7%APW7gjJCy zWkm?@l2`m|QHQg$Q<->UCV0qR5U6v>r@$aS=q4ai>LRG92(NgPSB%hRfMTQ#ndrzy z{??i?b>m-mDSy2>m>ci!|Fl|!G0Y337-I#cgX@;a02<25T0=C`EE1uk}%pOb=mRXOOoI_R%`k;E3J@H0&ccm2@N-=DIc5>05-L`MrJ z2j#rdpO9Zo;CH7q$o(u0ayjtwd!-i)Cj_t^7p4yg%9D8FadW4{D>&m;ZgoKiEonTU zLc9H8g(1rW`{(i?di6T*BIdks>1F|($oX6sEfL49^med41BsK^49pSn0~g;s4807!8~>3mck+yMC!%4VRI zS}5>@W_unw@;s$Eo5chy3`DX=?!~f@HT_Xp(T;Yjf#%dkUe-JcG`3Zz05b>5jsOWG z>(X6hv-Et&nA|{zqBYTCFR1Stx0)h4jcnnpA=0+dcUXGH?mBdzK$oO=iS$jml=DN5 z@ZeVdAJOBL7Ps^3pN5K5Nirw*=>)!CR&dXkrFuC7k|cUyjK9(4NnH=O!Bei=URfcT zYFaa@8RpyuUO*FxW-jG879aD5B}?I9{EmDrxB&-QPu%INXrP2GMQua_Vi3(~XQQb& z8uZls?U(faHR3E`qbr;hKM0@wbPc6-?TDlJgj->gh=wotZ*Z@#o(zDmKN^4KNGbj!Xv$2M#e0@2YmvY|;pz<%R|y6cq9nv|i(0S+@l1lg!jd+sSvYBnK;%9h z!!&Qcia<3&fe`K^(e6bzgU1Cn78xXm4Eqcv=w@63kV&GnqU@eNKG@^xX$#u_v9 z%*m!&>E2WsIof%N&2TrTfTIq5bQ{#wU6)Jricu6)ftrtMHvfu2;BfLi*Y*U*$7&mP zI81!_XqV}`qB_bVQ7TXQ@8T~X+~)beL1^&%{lAs`7h>N@EAee$QB-wL&=RO$wc#bH*>C%(HPN0YHReQz9PZRGg9b++@U=D*Kj%ID#q<4KUQ50z53l;xc(c9A zqjUZUg{=Q)A{z}}T1QpV;|ZylKU!1U@=vA3lxDtx3;Yh(9%Xh2=3Y1ieQl|UV1KFp zulQek4L`rRbeo$Wk-0 zIs21PKA?vToK-Ljn=~D;W*q|6lyz{~3R*N5w3T4R=z! zz&yD)@ZK3G7%o)p_n=64r{lN(I&R|wL^=48b#GCfM+aM$5xJ%gAcWifPM7Mc*#)-3 zl5>&)Gt?*~u0fTkjW8O3%5tA!cd`lr++&f6DH>8Tskv<#e|s=3s)3(yW_N~p@uQb=Iv;tPB&dMK2GoBotT2Ci<*QD02_CBQE&cQ z!YI~ICONRHfeaE0S)Hk#Q1X3Ie|chQDJht!o1WPAHU68CDkmc4AmPU(X5`!JMFQ>W5V|pqY&pAFqR{1JGApESZQb~6BEh9qO2^mc2JmYPXnDDf(NZTGqobx8~Bfqpbqj2e{HS584&2LYE zz7mzFK%k94aovyJdrGIqxNh|O+xy}+ukj_qXkf*4oqluwE*id+87O{<;Ims1YJo3M zV9c%*z>|k{W#+Km$6hSMu@ogK+ugoqO-k#3tHu0a;F10@)!eX-6{d{TX%gz6;Xr*K zPQ7|CF4}T8fLjYgV6wh#yKh)8$oGVpAMZ3PVq4cN#OmIXPYwO4WOhrk`&uI1>J&q+ zs_ z=Ndn>O&rAQY?S@_@67Nh000Ni8;EK} z0K~oOs>BG~l7$Lgs%&LnLiP3yUYv!Okm*8;OQA@#=uS-c~3 zeoCC)e2WTTvL_jxH??U+7UKCAQ(X7J^SQO@Q7XFrX&4PoXk4dkavA&i^UdN$+j`Qj z$i7niZhn{DPfl?u5N*omhO`=qsC)=egH9W0*gz-etW>Ze++pcL;x8d5+zmc*SDg>acPNwN1mmi5?GFovGP~3%=9+ zeLF}@&lHi?NweRHzGRxXNuW+x%k>*VyB(ek*f++ahy}$4ht%9=6naWWW_nM0?sBR7 z=v35Dl;=s zZRK{s*h*2agt(S=ASIiMO7O|x2aNB`&#-g5I{WmjaIpz%58z#!;CfJTuD-bPIE zts|A{oh?KJ70|>!PlEp20=1P*W6;}13VS8W_mnx_IGiv?^8OFw!|KtRfvlW=0Dw}p z4X}ooahPPeY&!XjcO8D76C- zll2xu++X_$FMWmt__i9X+e~%P3l1g6B`jZ;nC`zwD5tNb!2A%RGV`0jH;y^;ri_O8 zY>}wKp4j1#srZcq|KP0XV6W`>B8Pwa&H&S4j5tbFaPd+Yb5ufSb8i%#)q8n z28rYgpNNPGDyI;6a?8ll2}1K2>b8<0-9HsWJJp1v~&2b%C z)F#vTyGG-^)QYjtA`yc^QNX~$dcr-sZ)xO6)U62P3WYr#UMIO=kKPV5Hy_$XFaJ;a znhplL#cRmylI(D1(f_dC2{8HmIs++++sro3e<>?j3UvwL2G;(Z zT<)9#yZsPvfQ>1`T@W9a^aG!dfS6!kNCr~X0Ru45$#WieM~w>uH3C1=Gd0B*)e_$J zb<42DjyO=C&YMM*hEPE$&-5|w7w*3T`6l#;M4x0at(a8yaaVjpgYe`D#^AAM7sj!R zXv@1sWRn?h3agk-q1?L$aBU+>KFnet!%m-0^P{f#C-rJpI}8Bc^of5#Q86S)VT#w_ z%(3ESWHg{M^DbBnQD)=mF+qsS4lLv9BX&obh`#;{;J`)9hn9Kwt!^Gb8L=l#;l0>h z!#>hoy)&-o{UBzL;DEJFZYlZ5*5j{@Y*X~e3my=kB8w_u_LKlYy?L}X9NPaX3Bh8O z7Z*DdFQAwtg%^fxwABiNcn_D_000DBJz0+-01}WrvYp@p0zl4N02mNKWahk~q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0932.h265 b/samples/h265SampleFrames/frame-0932.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ba62b8115c8fa14da0193b130f62126d84a0843e GIT binary patch literal 1833 zcmV+^2iEui000330o57*)I$OTSix6XPQfT(Fbo2KpeP6eKygLn_YP4>RITACH`V}o zoS1j8-~aqj6K=4#fm$lmbPecU;+yu?gaXm0kuhn4S*sy-P>WXTjH z&x@EE>_v>KnLM=;a6n;S{px@H`1p7i3>A_?6Llc&3Fw~4+!7KEjNUQY+Z%Mmoe&dv z0XG0O)N>-~1$VVn_k<)~o<^${Hi!^Ccxi@&=l%J>@ z6oiy%t0G#(CAXowYA|3UkppV87`PLnx_-2KD$jXJr;A{Aal{&;&55p1Xa&3Pf8FPd z(^rOy7j1J;x4{j&0bel*^Kjw@V6RN8l~O1Vn&TAfY#%#P4b{W$q|S>5aV11TFx60` z(1|#chk-)supXXYe|~DUe{~7WRMh8VDor95(Nyf$oYm=h3=%Bea0<ku+2i1r_^cE4a}kzs?c&)oM1jDuTS;~j z#J$$MvI*Wc_qhf1lUqH`-Us)JAo9!-;YhQ;@<$F8+H>E3yaB&f?RblFybRT+}iZi*>Fhpg}lF+hCM zet{G4Ml!nRX_h{BXmGU$u1%85`nO6BY=p1%c9ZX4;9mBLkmr?K7alHpb3qb&G}uo?36@>Vg?wE zUl3c;W9kc3CTwTs-J9}K6qx~B9QYrq>xoW1@$qJBFrJX(s5NARo|YJ(6hhKBMcubG z&8E0eq9*yj>UD6;pksln;$`MFGz#NfEH2feB5b~>}zu2Um00*`y|e@83^5;XXw zG}lD+Mdm8&w&tOU{GzOvJE%SWpP~ny`{hDI#^>`eKR;Sp)UWc+EENNQM;vm0umY{> z;u1G#iS+-qe3O-zc>rx%?eSe|Rw9G5q@aCUn~aRpA|5@Y5t1+pcv4j_v=`QuS_gA~ z{{R2@w(?vrPGGwYB2|^npyc!|tJowsXz}?+K~TgYK|MJsy1AnIq2N^Yx6V($;U_$kbFyw(p3dKSGh zsRx+YxHA%kg57oWroP~xs0GpfLg~TJI*20 zlx279rdCuqq8tvd0e9=3p-HVFRzBkHYWrVpJd`T(4q?qU5B4-{aE*A)GO}jso^!!K;-5c*}544HnUDnPq02 z$Rmn1(Yqi`2P*6-rcL&g0+MJ_GDm+_^Dp{ksT%a=C9w@e>^4c8yJ<3$yquXAjIpsW z=MDMuXl!JVuA@-X8s|H>2c^5ao$a8TF-bXf_>mIEOcCZy%7@IkLBoYU4P9Y{?6-gh zc`6-(CTqQ&fYt57_~d#=fB*;c=FwwsyJU8%LqfEX6(9VLg z+6<8{DUw|9;GVO+kLTLAsAxiGkGp_`#y8{{R;i@9Yga2zz#WpBeB8fHt~U{i+LLEV z+yHTxIh!_0jj#+ivY@oSs-?{e>`bEWkr2Y`0)PRQ{*e8KX);ExbrBQF^~_Kp<4-dU zEx;m!S-khOaKtLF#duDhGw{_%PyhkxHZ3NCxC4SUwIK2UtbjUtV4wv29%I=+888}# X?f`{=AWrxJ8zeH|1(XGagTNecH5HAn literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0933.h265 b/samples/h265SampleFrames/frame-0933.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d71a18efaf0bcf624c80b4686dbf380977365b3 GIT binary patch literal 2172 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0935.h265 b/samples/h265SampleFrames/frame-0935.h265 new file mode 100644 index 0000000000000000000000000000000000000000..56d2f51abe7e6b0c44168c03b081f02eda8c90f7 GIT binary patch literal 1929 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 UBO5RPuYe_K-~y@y;)(zZc&o3pr2qf` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0937.h265 b/samples/h265SampleFrames/frame-0937.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d2d251a45a554c2380126cbb253962bdc706f97c GIT binary patch literal 1814 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0939.h265 b/samples/h265SampleFrames/frame-0939.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8eabf75d4133988d024d8619e7e8b3bfc24d8701 GIT binary patch literal 3004 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0940.h265 b/samples/h265SampleFrames/frame-0940.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ffff2bf21b0fb19227b358d84fa4af2347437dfa GIT binary patch literal 1901 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 ImuJ8Wh_3&k)&Kwi literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0942.h265 b/samples/h265SampleFrames/frame-0942.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b446fb468dadf700184171d264c14928b915f08 GIT binary patch literal 2188 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 B6(|4z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0944.h265 b/samples/h265SampleFrames/frame-0944.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b5f2b6eddfe4ecb3d63e4bb1438c822dec2b5641 GIT binary patch literal 2957 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 D7M;Ka literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0945.h265 b/samples/h265SampleFrames/frame-0945.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68ffbd78f728214a32561e0af9098b8a666353e1 GIT binary patch literal 2198 zcmV;H2x<2K000330o8&3)I$OTSiyElPk?X^0e~P>mcy-u++lm1 zo7KtJL`SwJczK-iQKV1k=5kyA{;U3ys&V=iu+QTOV;LpJ`n;&79V3>4YY1vn*ng7N z1W4&Z#&TM>+yM{L6J)cK^%~L%E&uyl{`56FQ(ukA2|cqXR<(l+$17S{CcSEm3^7JH z@{4ZuQlf@QiBSO3X2a$Ec6S8GCYB?vEVltlQ_12fU3P0lb4yTLtHT+vcHt)9yR1`T zLJ5X0zQA_8;=9g7bxIXF?zh02;QfUH4ywT`^5?>xUxlQDeeqi}5e#4HK_5 z8ydtxh&}N^h9Sj>Ho@`FTjB%IeYfw@dXctdD~_ZfN*X(?MJDfmg@2|0Lix(>bK^HR zYb<3)4>%12zmD}RaE~r;OS2rcd_#q39dYb9P~dIQ7RXy^M3>dw#gSZ^zvefqectlf zU6oigK>cJ|LeGp7jS7C{ZyiGcWT6k9D{Vc`J{pidGFr#4_!CT_Z=6)MUUru|(PHXx z3Y9Ex5P~RFzoR=VI?bsm3VJ!_0NW}aYl_L{#tJCwV^zqYr$&y8vaaWzkKm!%K}m6W zvBz(EtZc5TXcNjbkL<%R94pU(5vdzYSJ$xwvezl)?Bn1N1Wqn?0-?$COl83IBKg*C zw0ZfV2m2emDC#p%q?5$B<0sJsYrsqf92Tk?R>+yhKL&>V^I$bDFjdbCe`)}r9w&^w zW6$@-Tdfud&)dKr5LdLo?!;lM;Io_h83R}G{!fcMJev{Gmp0#P;tq_*e(#Yef5-$+ zDjB=K5Y>V%3WYU!?K-`pmvlk-!}Fe&#_jM`g?HI=*0^7=Y0J-0_VkFC#)`<-P|5AD(SJmX@>a6@?lbfYOhzW@BhzfyMx!PJzdRG*DvMZp^!XKvVdMVaIiZ z^#9`yt-M~_1CC#TI&vgdC18*9MQHg@)xg1&2Bj^kZ>tv-%mtR>=7+Ny6F#vt9lRt~ zXgn3XVdVkb6k$v5DI-WE>H?%GxuTaM!zVO~05ghbxLTm&oy9;M|47UO2$}^)wJpV|u?e-?cfQsYKD?}FOmHZAvsOF5hX27-kv_yzs zZuXJd1I4pWUAh7Qy%2$lW)&NiC$)PciFb$qOY2)n2QLRhWzC~-2v{x%n|asBVXqPb zp>M14?EhGdii^JQLNwv)-vn6lFR@}TX?ykG6SUNr~Et6o(T30;x@qeKL9~)vvT{k{tKD|nK4Rj z(LuScP)*L@K9$2VBt}#=~+%2fa2s*t(jM3FbstB8y)+`1f*2Ii&y|k^Uvm{ zJ_ANj^BzVWb⋘+JGO>4v37_jq%JA^wV+# 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 M0K9+$&A6}vR)o6ilK=n! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0949.h265 b/samples/h265SampleFrames/frame-0949.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a0aa2b96dc2ac2cff8e0f186c1532bd2bf7a81e0 GIT binary patch literal 3176 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 Opa38s0)IF}07t-79}E8g literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0950.h265 b/samples/h265SampleFrames/frame-0950.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e9416c901e35fe658051d066acc89b469de2bab3 GIT binary patch literal 1951 zcmV;Q2VnRB000330oAGh)I$OTSiyJPp@47>0e~3DYa4z^nK%N;#l1YaZdH7Q|L=+X}?=i5OFpGf+ z1>i`VG(=Tw47|1OAH8xniDSp$dCU=$Km0P{6?EM4IQ2S&}zfS&&R!V z+;%~n^6?una^GgXQ|PAHg8yg+Yu^Z5YxHSecsJr7J6+v~ptdku)V=ygR&TM>VAh>M zNkvcj$C!6+;zE3JDYy3fG7VMCvKgx>>!Iq)7tsX3TrL{6+@rumqw2E(h=cVFM!$Js zVIxt^?k0m24$+4p^sq!im(qWgUK3d_|BHYB{}?ab z@-Dx>ml4qSoE#PwYZt36H;x+YG?mE!h@glfYfN!!rb|CwAi@riPf`U~RV44b1cUEF zv7I*V>G!y+2$+Fyp?z76_tmdT*xx6pt6&gSQZ%QiPGOVYo>IbYu0G>$NbhZJ=Ikq0UKlSoNwiwn$1=Z^l-aG0+3QaY5GMggt%9eoHlBvkXr zXR)P{K#r(zKuHGQ^RH7sgIXp)IoanZYJZ|q^P8yj#&|r-rT<}w*JKumT#-Uw-%5yI z%G(Jni#tgUX^b&b!-gUFT6j=$fi94vHA57hP_k{WKoRSfM?d{H|9^jn3cdQqkTyBx z3A}FK^#q0QS@yC}etqy@I&)#yK_vz@>FKuzklf~ewL3I{CT>@-apDHdo^voFGLnS+ z89aJxL(G!@>pj&){Aj&FS{~@NjoKEZZ+@%>mA5HU7N<6P4$YMXG_4&Zxqrw!*L}uwA0KozkaV!S{XpG={$Fdm$vAe_!6O(B z6R3OBlaq*`&R5gL@KsF+3grI&ql%h9WP`DGtCs_efn&59WlcL%>k%ny$*9p1ad zReh6l8k@Xfdf4?+3|kZ~yK(D>6?e|SKKnS!&!MT+B0caR3EFKXj`zs)D~*d;6vY(w zS2!Q61Sq$zy@8R&9|4NHVSW>Uj8T31$98% z5hNFt z$!d(wCAc>z!blQI62avGU{2=~rEW^lM!(=f-#^6#%W{&N+4JZ06U}^P&UJ!m>0dhB z(NxgrGD4+vw>2D&xY*5_S7lojiScaCnLqkD;G*;7qr{1Oo2oKa_GJ_R{=|V}SKe*{ zGEa*~!YQ_yvChfUBFzJM0yV4LMc!rs)jH}OrGRwrWqWdCCY~cM%pL8r+Y47o1xo@o z@Ezy`s1L%tnvb0e+Ao_$f>}{JpzK>YmU_yelm;DgjSvgg1GD{eKXH}NcZ6E5WP~)I zHOxE~Gv(^@(K#*H8`FRQEucJ_^s_(!1CBol_{snPSHM3K?Faw`j1aU8fB-CD6M}F6 l0Iq-*hq?d*;u~DV02FW|B?tgQKqIrT0E~bGh^Z_9(tuDhwLbs= literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0951.h265 b/samples/h265SampleFrames/frame-0951.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a8dc385beebde11bf811129bf14e304722e58611 GIT binary patch literal 4759 zcmV;I5@_uJ000330oAep)I$OTFu|M9iGU6OzzhJu3IL!A0H6!lCESCD(2C#xzxv{C z6c~GO?09`b!J;J+tRyrm20BSY&-8!T_$l=>yTk})0{3c&+y7K>{loIWrsn`c4Aq(V zRKBlWK(#JXu>o~dbgoIEc6jlXPVxHH7nHz2_AsEM5?8(s|qjd7E=TXB!FNH4eL&%U>UD$na zuhB#VUkm+dR|V@NyXFL)XOG}b*~~V#xB2&`=f2u|;-Xd_iXghx^*%%jqx5ENQ_jWs zgs9W|2X@X3#gKbOm3WHB>WcoVZ^j`k#%$}+m&ApBt37U%y*lu(F~MRTahs7MaH7C0 z5D^(Ryf;dIpQr_&*P=AUH>;QS^Mk%No8CO8v8F)AGI>Q06a%yNyL#;gb}|=m?S6~* zLCh2-pfAwwi4rjeVTCQ6QrX9JsO~Uk3z8(O&?OU@Nv}cI@HY|?)8fCdbR8i2qTa}CY|Bv6v?8=_Q`;h!Fz6-#YoBDLh^KoOJ zr;X9O?%q5T?q2q4ZL_TD$Y{MiqA>5J@g8|%lg~nGbSyV9r7FhDXmsOFxWiN;$1>Wj zyRR8;M>LdsZlVjFzqpqfAM?SIj8YL8IISF#bcM^`xk~K107Q2WqwwA%L(@w(jy8cVptF-kcY))SLM7>Tw!~&- zDWn=8e}wnwdPk~z>!}Mx#_WA@&+OBcEbc*}vA$j~ljigXHQ?_kj&!B=inR$z7Ud%s z_Hvgd1eOns-=?3OkAdM0{Z;`K?ANFAl4foyn^@r8ep|FEQeBe)U{mh!t_1$Ff%Nj`$NDbvAH)2H zNC#--zOu26QmZ?eW7jHxIz1Is#j>c~tvVV$nyZje;)W>%{dcMF`E%o1iCCv)JLQ{~ zPwswl;WE;aVa}}q+m950Sx!3SD0v`4uCV||C=`z`dHzK9d6gYzx(6ve+fxI@FS!WkSLSV z&^`a|v{g1GQsY0lIyYMZduqAv9z4aoFXQWg*yJDCftCKdb8q;{yM;|wh7%q3iAtlq z&X`V2mz%w*%XVqw=SqUsZlt@%DHKZFRpa*~2jxYv4b8lG5gGP4*Mzx~97F!g3ul`A}SM8jKWR3ZR+a z7bDkR8%WSwNA{Ao;I}dp2RlS7cK9nkujzn*f;Eo(sf@wJ03A#$1!0 z1J00oYrfLo{6C(3_O_+NooVys@;t2rJ%(Rr<h~40tR+Fs?@yVUK1Qd2vXWZzgf3!)i@JC~qS6=70mT76op5ptr2FzS( z2kF7vh6qYZA<+N+D znw?x_va-O5n?d2LLq#STmtg7hTnz=;+M9u2deK51zn>wJfT(bX@hMVVkqn{=;SF?C z4AG3NHWvW677=~DwSj--{X{{?CL=8B0U72u?!E82IQy)nx!%IpT^5j`uXKOvQzUA~ zxd0NPX>*#xP_Jd&7(|}o;IkGp&KWB5p}1|#-C!%Pc>nyI&hl~;@mF?3hwITD>G5;@ z*LLsMqz73xNX;SdbWqM1Xt6VUZ9{*t&lB57T-O>>{=?sa9P&It`cGM>e^k{NEg^8v z4ND6BBl}WA8#7B*<@a}{-wAU;-pI}MiL`_v7sWI#f)739=A~gR|E}yX4_t&g1Mj6V zZeeZZkb$}#WL}?q=2*CGlDEe|qUAx_R->a44Nq9D4aa#&Ska@_UkUf0nk!yey?hg? zK1_B!*`yV~ZEyWVv0sh{@%r7{dLJ(f8VUsq0rWGDOle2j6-h!VEh6A!5#?n(D}5HXWdmK2=u{Ym>3NyZ z5=c&RdN^*smeYnkvD!b8Bd!dfzyFW5vix#f6;5Ya>YZ!q3&)=)`{s;SVC5dSpuvMfZ;(nJ@`@n=8kau? zUOnM&@j>`%GdQnMg|OGbrk(JU2%Wozah(u}trD1BpDfmz8!g#V9QWJ27(DcG1e)rl zS|=1YUx2)mq0K&G=gX&}LFA{N6igTlMzK7#O4Wt$fcG;;=)oRUP3X)+@4@OA@tL6#*(*IZCH5*wG4s_X%aZz+XDtOd zJB4s7Q#cT$A~X1ZVoIZvFR>NqLMp7kF9)2UrINz(+Eb}4-kK*E9qVeuOQu<)8g0Ox zAE@(<>+*vTL%NoSc+!W%{x_3Qz`0IWJKEo3SOospu|F25td4|{sAOY%t*RKN`}AG^Hqq$8!bIcT zR*L3`o&;T_u>PX}Trd!=><01b7}^dK>`Rixc>$)Htcv8VlTo_JhlrnI29U+9uZ2;| z5UrM3<|S?&hzXzX#uzCWmZ&*3Z4nH+^XW9!jL{5=@m)M<6_Pwqb2K7cOQ{y6 z?s`@u8*9DI44fa8ER>59%MhG={>^*8)1GJ>{AwfTx#D)YY3aAOxDlTwN zK0mv-oeGpK$;omPs!-6hZm&dG?-Wi&pv8WCmx}!#3AcmNTNIx#L@n@mLx5LGfI>yS zy;6-#LlWE2!zmgO^oI2nsOT$yI7R3D(Ls2L!nqiWg>!oJ@IM_mY|5xu<6-^+>Qn=0 z1eQ@OH?1w|KC!`sWm_QN0x>}M^&jf z+SORro&}fKb4j3WM!D`#9TBKK{z^wi_9%1}e!J#M60a7Zv@oL=iv^i24I<*3j>zbM zUo%}lS72q;zyQ>MgyF>2mjCnbj6LO}erAo$ai{>hvx=_^PyAiutxD6v67X$2>{1sZS+5S4s|yP-UB&%)W>%l0zH9 zT%GuCV@|_Md(p~vYk_hT9$A3dJgQA158_c}%-4X8yF$DL^WSnbO2u@0(^i2nwcHJ1 z5T1_vZWuZMuB6_;#J1fAEJu+V2O#;h2LyS_SmT1pS56Y1Z(NRz>V_+zA;MAsa1B;&?8<( zNI@wX;TVcthjsU+p83fVD=p&5j`yDF6&(K@-9CR7iWz_GFalDUHAw8FjTr*haAF@s zLc?Ki9~EBHGjrX#_f{E#xi4=8RM`e>+$>UaGnz(a!Wfxb>V<%_D0m!Jt+$o3v)e%4 zCY*(VeA{qTX&rFrGr>VQz`8fdi1x)K4ycA*HVCA!lZTJZXnl;@C5MO}EKe}KtfoKz ziA&G`00-DM_oV^jrrR$52oHXyw6YDc+s-9yQFcBfRcUZYs1iDere&_X+Esn=Uf9|m z?OE#2j||d^nSq?}M|2e&PF@f^^rK-D*Mb*tU;v)E_+l)^w)0q4Y zIbK7yI2cKjFCVK%kBDpJ)QGjJ47dt4yu20t?vjOwU2CC;ET!VFLi4-=SXBDJJ(~S} z1rNpX$r-x<6RWt%$&MTf2Hxpm(f!%8kKR_U7xH0Z^{zNz8%4&}VX_W|I|a zP)|EMPZrr;7?cbN0)~eHV~1!>m;sep4&Y5^t?Ot6yERS!JR@fvIXK1Hf%_=3{g=gN z)Z9DAU3ytGi3iD$Mo&(faMF$$pylJ*!g(Htw$6JB*juE`tBTYAPiHmUc&`=O;C7Wa zHU;~dFSX-ZyusyI!i98|w(@j#Tx=HbI}yn^B~m~FMr=09BgV#nvitl-tFMuL_*&@- z*U~49XNW`M<3n@<*hg}3N4vh+h&Z`Zro4&c?fE`o`WceoR;t2)&Wnnb1QV4=St*XL zoumOw#9w4_Hs+cphBK%3Kmx3jzf`=N-ri{ivf!>G_ruoViuHa(fI?jp=7v*X4Fmc$ zzzCJ@Wzu)MtdzX~CtD+#+*!xZet+iEE3+erz$RE*1+RA6S^L|uSse4?3ll?n4xj)5 zde8#JKnK`>0Asn@5K^y_GKv5V$UV0V+5i9+a5h2VKmY-`Hc+Af01%K3$C&^CRzMRQ l$^ZfT70#Fd2kaK~6aXD?9~}SyQa~dD*Z`G)1RQ1f0#;j7Iz#{f literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0952.h265 b/samples/h265SampleFrames/frame-0952.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d29fc552a2d09e1b46582684f0a1db166aa75a20 GIT binary patch literal 1886 zcmV-k2ch@?000330oA$x)I$OTP{DUxkpO@W0e~$MOd3u zz&S8u1TI^?8Hi}k%!e-(&E^=c91gURzS(6FVQ%PUQ3zVfbgSEEgX`3v z1HeY3E}wZ!4P~Rm+6Qb8N~K;v5*v1<=a5q3CD?_HxHC{)6MR9(P1c)=0dk^eQ!Jf2 zKB9;N&fRtXiK16o1El>SIs_sL@HEf zJ8P+2kSagI=&BNJs%$hH#ZH(?PZ29GN9&>id8$85;mWi}j53K-Xy}JFAMEu{`?@IJ zcL&|<7RAhx3$OXN^-~0miZLMdU z?eTD#GV`r##a(28sTIhFD+6FUmb!j@iq8-NElOy7I( zEm)nF|7O&YO0@pRk!MbjpzU#~sb%vpnp4wHBI<798?B5M{ZecJJX`zfcjxN#)H%hr zl?4WYuIVAaBkJK?yR9gh-B1(pG!beDV5M{9#sGuQLyU|XZ=L#tZd%Dn7%F#uI z{|a{)N#PDRnuGtyKccGS=3A5yVnF>BKk;i~kLOjtf!V6Wz5oBr&XeWymEXzzJ9~E! zMkq^S;=9ZsNCE5th@q%>le=O7smIXM8(CpxVSUj&6H@l)UP6>Yh6kE zy`Y3&j{bnz+#ZDNfdu8+_!M%Df66BK^NQ^|_;~udOXNl-{Fpq_hyV%gE3I?BYm!3z znZ{GUvW#ZBO9;4rLdvo%isAv6xQthCCShO!#rV1zSTkV5;o; ztY|h#uc~mrNio4X%XywTp41}G^R^1C0Dhz)1=}5`A!)Op)`by3hhzd2J{HHhul@RG zQU@If6~`;2u!>AGQKYz=S&~HK1{w9dVt6XpRYC)G&LR=y5P^U^r06XMg8HQF&l3B_ z!YSWpcX#V*OwCtY>EYsxvrk5EPn_uViSW2Jzv?b2R?^8f4V?ze3BSc}Vge|_4^uU* z{*x-Fe6b+R&`?FTR-~iSKxWp^oj)LDk84e^uak%aBF~xUXKLDOzO?h9z;4pUS#@1!SiuEYb)imo zh(+MPo)7-+)u$@!QnCO2xnSs2V(Ri@KcUhRj$>75ulWA<+f@Ji{Z4lhTx^-{+gwGT zx9w&G6wvyJ0wsnoM%c!vr8W{MgTDJ*%nXd;jPXA;PDDHg{$LuXoNN2VGU&;X2H8Qy zZV3jXo_!#K)fbPxc-o!ITAQH{Fv!w_TZS9^0?i0{4?5hZZWh9}tGiREG{D;=!|pK( z0-DIRKP!LH_yt4T&Nle-Fh#<(LfVQdVm*$P>GZp*!&J`tlpwEq$cTmUbgtJV``u+? zg0-rR4&{$q`UYZT?;OW1s;Y zAKAd8GZQ2Py#|?132WnKmsnGc@8I!l4lg*D#imablmyDE;kTZY0Gw`oV`QV=HM>gN zDu(Z#lM0s4DfDq8Hjh~jOQYo~rFVLdEYHb6t+(yU>VMc5P7Q42a{^_JQ;!Sq4GikW zoAZk_Eb)o)tfx|M{4p*7y(FhRn(&IGAmTG>L}85LA##!c+MViIB1mbrBuS6QTnj-& ztcNcyB;%AI174EovvG$rq5<}#LF{pa0euZt)EHtL*u%1GczCLigTO7BfeGwW6Yr$` zH)LV{VaW(6sTD0JGfn_Q;FGj?CRkCE_@GnpA@l)}p}nqBZ$+r5G6>lcIW1FER(g_s zfB*mod_^a7f`R}5v4BQD?pVM88W2U7V*3CA2N5~=AOILp6#&pc0Iz@-9w-0=WEz{e Y029z6E-(N&U?TC50MLL0G!4)JjY8m~KL7v# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0953.h265 b/samples/h265SampleFrames/frame-0953.h265 new file mode 100644 index 0000000000000000000000000000000000000000..79a2c610f3a1d082f2eb4c5e0e96b74fb043550f GIT binary patch literal 2071 zcmV+y25<*U@gC{k$LV> zPGvNzMn!f~?pVwEqQLuc=#qcCO|j8bt(D|oT?_yi6zBpn#5j;&&Lsebb*WX5a33;- z_@V27V%P>A(KEvo()@fbfdmJTPxP36im(R;3x|xbMXp@#4_n>hhnGL1`8o>AuSc=l zJf0w{?aG>G1jF=#HM5(txz&s0wdy-v5$uB?t7402W`{u#1&Uo8H)Ll45P{Nx%;SU0 z)g%2HEu<*4+9+SQpCt)bc_-C~!!UfQ8Y<7YTY^#!mO*6%M`Q6l$_a(AAQa{_%N{Bg zPWF&V%+q*{VTYnM{6m|ZCu%iM#}7%yUXqs<%238Y9Je0>9a%brm%B)?a!v`>L#{j> zNl=gxy#Y*y$Uslh+t~*)J3H|LR%X)cv&XS{UhRNE&=`3EnfCh5Ml<#`03tY@7afApgb8EKEKGVPadUG`>BSp*R4dPet61J%U^Trsc2Z4>T;zZ`D2U)*ap z@kOV6@2eXsleV>s+KF|tdlAsr9i4?!wnA_E`Hl4q5sj=sjKF^t$K%bCa;($iA(3DL zR$ie{eZiA;U5v;L2|v<*pJ{%70pDI|m&PcyZhM{1)DH0bSt-vO z_n&ggJyzRNEMNqeZsJNhZ13;XbKt(=q8OE(d^u1|$ALiZGynEvBT6Gj;$x|;l7iH1 zY*N}`=}5Pkw7;dyNCDUfdtF-=sf4jlrYqrenPh#_vC$9;;m~U%g2Lqr{KG2Vl3hDc z1u@g7I@7i?3bFV3IB9xSpZz;=f6sGoA8#O+gd$XYU>V>1{xQ{XV%>=#VajV?;IYcr z@UpTuN*Lz?l*;{pk+Xjw+V{G=tdvr+01ofvmb;*QTfx%Y&=ZT+`DZ1{IXiF_mm08L zRVa54C5V#@heW+!-y6*7%{bLLF_<(0sHDzcf4?$Tp9wrl*RrwcvYAqcONU2Em|!&LZ`<6%v)WiHeplfJi& zpg`Jc0R)mjHe^)xct{BQaOZI}+7cVpD+Q^#BeXXQBYqlqwbb6yQprsb5T%LTDNeq0 z_U^dvgLR`gLn0Z)C+C^WU5elSXim=YR3~oA$C8UA3_!gI(B;mc{!(Xp?xQ5dbE}(l z6ZqZT^EWK%?n&*}qe98Q@ck*I>ZRF<8~h~ za|G%+{xhWI&fpnM2Z_p9oq8qp?z#x@V)84*%2j!0`Zv zi<`n+J{dO{cj$_KR1Df4!(V;Re)|w8$JLPVd-HNgesg;CD#uQ>Dm(&1^q|WZH=Y_o zxBQ3%E&RFNkmdfZ%~9Ecjhi28ixp4=*x#QVvZ%Wohc`g0!c2Q((U!8x}C z@j~?nF2y4e)>&Br6AO9aSK1xo|~03{%I z?$xy8VM>YfG9+wwlv8Onk(7;vG+l7T6`< zwhXVUTP;3>4AMGOU26=tEAkN;uwJ?|Eo{mQiEXgSkcOwrFR^cZ$O+M}wIartMfyO$%@6SA zs}Uz8^bj32jP{smC68cVoA|nhJP3IJQl&>M0L#3;u#P|`-pmZAeQO5O01v>)BXGt& zBwMEirf>ZGa~knRy+Vx4WR1BaP*-hnAkh+>p{IP~!i9mxP?4_*40Yw;NY~2}Yc*8Y ze)tle?ONAP_n&-;hWX-08PBPpnvh$Ku>b5IGr@QO1dLai)3_P{0cBZWtNlO#88Aba znzsM}D-S}>zyJ!k6Ei(P0DQm}h=c$G_8m@q01yx#wwM4yz#;Q60J(qz%&qhQ(ttXm B{00C3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0954.h265 b/samples/h265SampleFrames/frame-0954.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d1d118b7d68310e8337b3a8a24e1a721eecff559 GIT binary patch literal 2557 zcmV)I$OTP{Di!OMq|=0e~*y9Ik14V6$kY$vM z@Oo9-tZH377f8b=a^bqZJ?GY&tY=kVx%Al)ogTtq7)=iu1gn_n*{y?fyXx9*VuUjI z{GUNaxJ@etOHb3%%SbdyslszDBxa`{+$`b zZ}S7;rmSp=amyW&P)t-cBNN22y+g$D#daPT3rfQt927WtB72V<71Zc0)7dSK`m@g* zkY@!$K~z};a+C0f{SKS56WHG`o#2j7SW0WZqM*E--DZdKH&pRQ+{LtHSHfk=s(<${ zTf&|K+`!Tec+{+GG1KZT1>GzM#-Pjz24tsO$R}4hnPQUw zQg1)56xq>GR1(J1Vp`o`LY3Zo7 zU-R{XPATi{B%R?NaN2Zr9b$Bp!BWmmHh0QWo;O__EkR-6u-kOaM=p0oVmpfgwiO$vH8#iq`diwaxvOZRsx-#nPWRqMjX1?OSi?pG}bS3s5& ziI@(x%<-~EAGG%i1rgbd?S9F{)? ztRlY17~sGS&`>#T@H&oU^_A19xt5sIwpBa{6NPltI2%&Unj*Eqeum5~#rp_aO@Bxv z{T>E0rt_{$_I>@o?{AS;9o5mfZAMVv0;-J>(x#A)aLFSpwF+B`d?_lL-Q(9ODe zl8V>X8DIz$4OUoRXt%o}$YsEgx@sT_ zLBp#@zKpsMW}Y0)sI$_~&wYIs4eaBE^5X{S%!obKeLA!V0igJqvo-*Ns2nCF?_EhR z2v;$#owgw*c#(}gec3@m?+zC+!x``Yve@=>V@&Q9)gZ${1hODvdeh{+^zyslUQGCA zLBQ7J+D0_q8m&#vsxwV6M;To=#o{jP`B0d(*)`qJq4FJTFDl=g8hEP+kcym?$!}ut z>8JoZSwWN{W7y@BO5pfhKa91$JYQ6`r4!!`(%;#aumoU|Epv@@+@YW)N z$=jl+wG75^Y4SJh^Ut1o72*m2`Nij|AsKVk=cuW{)UIy$HLK_XWyws z-a>C83d!uA_m?R=w$BX3V!qj4IzS#1MKz^DGy16_-LBUht-62_&oDlkp$H_F8A6nW zoq&Q#JEV5|s*KCFrQjlRiX5>s+`;)ajc^?ysY zVG9o9d1(QNDyC^ZYoN4fyF17YF>AWoi!>{PM{V!^(*5h|SU>;6uh>cnDfjW9{GyBj zI3iex_ty&EiV)e^-8Yiw@;$LWE7rY5dn?-oP8!2oR21R3IgxTcR&e&vE_B-v4d1#n z?PHRY>!??~RSE_j;E7ZzN&oEQ6reaM@>QCRn_HSt{1k3GiwtG}G%8`EhoMsLuArrI zvtl@HSGttbO|4JihFAh2Uhv~>`?P*rYYdlI%8E++EV+lbA7@#2u+X-&9r8lI#M5jJ zE5Czu_X?qAE9uRg^{U4UK(*|9M}KV9Z9H%?NSs*T{1q&V zfEu6_5=IkN0L!~{l<8l*J~SJxe7OfT?f!_O9~$*jq~;JtI9{W@JK6j1Owh58^o+4k zPwrmJ{qoMQs|voPhE&{4dLv9}(-zhjlWH)_xSe^MJVwTrW2zxbZsjVJ9Na9H>vUL= zkG4Oh9E_yxVb&vrMome)@qB&<+mfHmT=Uc8#uI=1qc=ru-Gd+BoRS`|PvhAk;&T6o zx zNeKI!5C8$?NHPmP001{&H4@H100Qm}8qoj%77!2cl>h*yfD&9l00Z(Cy2t<$&>Zt9 T06O3u`N#l+fCF3mOaQHbM^*K+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0955.h265 b/samples/h265SampleFrames/frame-0955.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bcfdd364a2cc514c260c2bd273129eb8deae23c1 GIT binary patch literal 1939 zcmV;E2W3pF`-DI9K09$Y z;61Tp(JPUjjE4wt+=E!W*rLUP3B*$u38MKTj)VMnL;}fS1bTM6mZ}@}XJ+KNZ zn(f;m&Jek+-|b!J zf^ES&9^(*M7DDpcm)|jv%*%Y~4s(aa`0Lm)ABJL89F>aHKdFGlj`Ba|fO>gs2_PfZQnD-< zDlHVlg5BJ%5S>j0MvW(&i@3d0AN%DN6D;(f*uj%mlRvl(;OC` zet_)f@-Q|@?{z}>j#aiLm#^)y)AV$8Bd%73@#xwaEe@>x>`mASEE%t4jzgVUn zk!v<#frj7zF_`z#>=ib8f!gH<_IGs+P&aB|H#I*}-w*g8L_z)Rh1eaX{NzgNgE^^m z&3ur8JV1rujbAk7<9u!X@&K?^QVpQTBQV7JSMDwpKe#--hZkfwp>$+hCnaEM6iivgQEnf5(X`!~SKZN-t8*^8hH+>AZ*1kI5=(uG%!FLO0qk9t z(M!4^3~0M$mYt)n8DQ9|DJ($&1_4G{kk(h+0@F8OCDl-mGWIfz7}RK^OIsb6byz(T z5nxrme+U`=FA6>eyh%xPW&p6&ncm0*kl3@h2 zN9t+HG0_Y2(K3Z9UX>Fb-aH8g=H2+xI|qE){J;;)_I3)A6I#}4L&%ypFCyry|3$kG zJ~AK4RWKTI?ioq9L6i=Fq!nt1CTyESH~;Sc3`$ehtNxykDR#GK(Kq$EJ& zC=H2C%k6IrTHCn+;cCoPKVWk76m+RwU&2x_GxS#7A%XPqX>n;Z&+Do*J?#Yi2gA*8Ur zU@&s$Qg1S^C;<*fO(tZQ>fH9a!LJu|aNRm$i=%(xTO}m4i*k+HpC2@Z!X`JHE3m<3 zNKveFrLg_ORnck?wEmu0$3VWFjXlwSUAqnFtVCPOwkyz9i{9=1fwR{7`PK8bAOOP(W^9 zK^8O+#yVx0e`c@(o&zMS8^2msRcN={fO+YZ57`sq3R>kviBBsGO>i8`Pi5ww(1)|+ zG;n(PJ{AiIe52PYBu_d2!~gpFA3}kW=6&J8=!)slEdPSaP$&0NueA~4{C~;Fp104~ zicho6Qa?HZm`Z(Lz~VTu8eYt>TgCPzVTr8Ur%-8n0z@V5k=}VA^!L%0Ub4jIey={C z@(<;rLKG9joT@sNdB8&nE;bIz(PT=U*9>EMc<3T1pEpAe91wse$FWwX9Z|^#4hSyb zc9k9;pAFZx-a#j(I6@UaPy`h_Ci2ey+5D~YOaFW}NemO=mk literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0956.h265 b/samples/h265SampleFrames/frame-0956.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5dd330118501cc14a3f5b4e35aa3076e963f0e61 GIT binary patch literal 2980 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 a9DtAj9MB&P$N)k>B2%yd7X&grumS5(R<$|+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0957.h265 b/samples/h265SampleFrames/frame-0957.h265 new file mode 100644 index 0000000000000000000000000000000000000000..420e439b9576090563b95645a7f63656d0108b52 GIT binary patch literal 1942 zcmV;H2Wj{K000330oCFE)I$OTSiyLRiGXkn0e~BUG10(t|4uyUK*W0TKVALu1npJu%tZbs;%(Y6qzCJ> zj?|`os|w_Ys}t{|rE>akn4xi%y`01kLqP~aT0D%r%GbPP7~PrWUV@wqRSFX zr#<-xr4k9L(OEvP!_2UfAwTn_@M)wk{UP1=^e+&u5uF{_@lU^WfosG}1^P#y%pisi zR7l%Mg`qOsQC4DtdW-A>@v#2+GTMNO_XL4$NXeK%y>6g*V3J zqkP^kDLg|(Q}U@X9l{pf5^hcJArhkYc%y(R=EdP&v%3yZC)e@hG{^u+In+4z@ z(^qD=xM(u$SWHmNP93tlxZ1Z2>Z(%!<+tEp@!8rni|$y#y=FGHr@Z$+dS?mP2qODl z6AbAx_o(4D!zkdsoUhxON3V5c?hXR|$Yuf9vY(IK3D<7ER*pIyFV$5!+}0aGP?;)M4~GW;KqwjB={nWQ%2+2M?32N|4KwVcSir;8absNxr@88Hd7 zyAleY_A>gwB)FRG-tYLcu)^SD3R+$oH4p!`lJ^`SHQYTbCQjpJr7EdVZdc=YkY@+c ziUZeSvp*>XNCn!}`e@SC7*lUJ+G0*X4T&#b^U1M{~GHs6=tKMomGwEaO~P?BK8URufKe+ji~;zasBHx z+c^Hyp^~neJh3m7(@`?;6Nm5^HT{JhOn^92C2VOy;f?_}=}2X$A1q(aM?B$}Jd#p{8UyTj)ohmr+jPoeCL; z00RIkek|D??;eK^6-Kj3*n%$q!L@(J={cLC^EHn*`sfZtmBSNLyQriD^uhXi)vmm+>3sgeQj8sf7z&t zB^k&E*5C~$2`F0GPRZjDmn~SUB&$`B?7}xKPOG!4Q zqsRxG;fXCjnNw!5bcsWeTN=ggH#3rw71N3{2_&eBCJsMFJOBX7fHL^O zq8uAI=Zwfo;_w}_Lv!y5GLcn|_`M8mZ8r(%9ZYR8?=vB7a-|*fZ$1lWlWtO^wvkrj zKVL<`XtV1}HA++g;<{}JW%#_j8^-|yVtp@4n6>BEJU8$j6LNw7L+h)u!F@`7k|`e+ z>v|elq#!UJ5C{a1OFNd`kWD=eqD&8u2UiOXEky#R@UqK<)x^i>`#^mSgQ-0 zlK=6|X>khDDtYl|9@P=P;0UXsOT#ZgWe3dBuWJ(&mVZU1ysWw8upiLE-W&&=(^f3W z!!*dmX2fel&1^z9y(!OFo0!o7%FVzK6M;-^OmjQE{y^(>fldHS4Kr~n+h`vAETo3w z(J9%P%B-u*65zA}JwU%*SO5T7KtAD0fB*&@LVQzz07SqPC0GCe&43pVYybol8=wRL c3^*V55CA)%BOLeuX}~C_kO7ed>puVjzL5{HCjbBd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0958.h265 b/samples/h265SampleFrames/frame-0958.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d6da5da708f079fd5e19763ad44d6b9242b5cbae GIT binary patch literal 2240 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0960.h265 b/samples/h265SampleFrames/frame-0960.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c9426b304924c9f1d72b1ef15c04d13875949f1 GIT binary patch literal 2120 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0961.h265 b/samples/h265SampleFrames/frame-0961.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bc77d3c2ccc4aa93cdc5d14cd537dee33340b548 GIT binary patch literal 3264 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0962.h265 b/samples/h265SampleFrames/frame-0962.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1be6767682f96cf6ca05b2f9b5625e19bd48d2e0 GIT binary patch literal 1917 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0965.h265 b/samples/h265SampleFrames/frame-0965.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d472862126649204604c305de04b2b6294c5d1b8 GIT binary patch literal 2544 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 QfEiFT7{D!{3ncFW4IcqW0ssI2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0967.h265 b/samples/h265SampleFrames/frame-0967.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7d5cc8868efe6ad974be7f8e6ae48ecdd7afa65f GIT binary patch literal 2661 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 TBi}#)+bg7?1dIk6M}P__xq}q* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0968.h265 b/samples/h265SampleFrames/frame-0968.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4360655243c0eaca3ff851e923b2a99c2737bcb4 GIT binary patch literal 3124 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 OA%kEBqz0)J02c7VSNk0R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0969.h265 b/samples/h265SampleFrames/frame-0969.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bb40e9b48624ba2c7ca60c2bf86279c050ea7766 GIT binary patch literal 3507 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 V;1Td9ivTO2D-wWZzz!GW0zx+C%y<9* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0974.h265 b/samples/h265SampleFrames/frame-0974.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6421d61dcc26db2c27ba487dffb9d28bc2f278be GIT binary patch literal 2919 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 RpduL10E~bGIqvWPzJPn1kJtbJ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0975.h265 b/samples/h265SampleFrames/frame-0975.h265 new file mode 100644 index 0000000000000000000000000000000000000000..db6d389b66d9b9c64072c34022c78a092956f088 GIT binary patch literal 1831 zcmV+?2iW)k000330oHN<)I$OTP{CS*=D`5~Kn?={z$gj=z;Q*}+5}WH&NA{c%loO9 z=`fb^MN4-t4j;@4qRr&Vh=TrXPbMEYb zTbR`s|IVe7-)17s7B6J)oCvj^;Jlb}-c_arl%?2~%N^g5`{}d}X$1o9m^(GBL%kD6*lS-SMF%`#<|yqIuukTzEvJ}%yrJHId_ z=7UP6uLRN}T3L}|42R<}&)a|O*p~hz|FuPm=zT;Sp47O9cr4m%Lrl=Jl&gq=0FljQ zWTkk9O@0x7b(X7Jt#755@)Px0)H5c4(upiV_%Z~d=YVy?u$VRWAte3ilkBcMK+UEp zVk$>_qqQ!3qlZSVLr_JOTs#_3km1TTM~^H0kf$fDnT&+Pc$b7J$RzFO*{~tA&$^`!y7Y1>6^V=L_zU=>|GniA90sZCxqFAAOfDD-r$@hR&6v_KURHeqrhKf6%N zmWlDEE2At4P6nQ4c4?*+d?~&>XoSy+i)?manver0Tlwe-*K*k22iM&Gy!b<(pnw1X zIG|Vo)$pm?%%D*2V*4rBSKp3=jh0`yG zKsy3ehLLsO+$iU?3Kv@+K=H4XuEh|+{-^0!PQ47Fb0AZo^=^ez!?3!h=%)z-!b0C@v8!Sv~URRo$cHr?D=J3b%pEVA@3p)NopRa zpu5)NOx)%^!%k$#A0Z1+z+gky?)CY18Oq-USn~o5a>A6sA9YM%FA-?s=p+jAzw1mP zsDQ4X^KmnH=hSusgz8qq=VT2IJ9-eP;*cR;@`^|__KT^GU`B>de*7Fj%Q z7YLJN2uYOoITUUscSGP)lt)>xVLF3O|C~}x1?`F`UeLwf(KkFeenVT(Fc)B(uCk^0 zH?=4=o8xQYG9uZT%*Ds(U^Dz~wo&VVMH85t)K3w+PrR9LU3{Z~Vksq@OH$A>zH2Cd zHbkZWhLx!o%xzxgKr1LFAl6-QU?quLerckFkm;K0l52H#Y$wDfr0x7-@iNSKTK#Db z@xC(Xv&|@4122rK_ziW)LX@>Zl#`-}AU-K9h^80THLLN1k6j~>`|$hyiANXxi;LLi zYox#eCMEWfPyhe}0sbm0jsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkE VoR|Oy_#myQ03cujDVS^kE+BUKe{28% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0976.h265 b/samples/h265SampleFrames/frame-0976.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0b74e78fa4c436aad9c23c864770919305c5991d GIT binary patch literal 4321 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 Pt*8JXU;-(aYyd7G!`57G literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0977.h265 b/samples/h265SampleFrames/frame-0977.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6c06f2abb3f55a19a6b2e95e7fb09938e0b6691e GIT binary patch literal 1750 zcmV;{1}XUf000330oH;4)I$OTP{CPhR}KLHKn?={z$gj=z;Q+8VdG0{F|8Z)K!@x? z^_E_cVmO`f0T7|lO>KeF>NUq{lM;eH^NK6U^6#uo@@%E<(uxP)&ZWUYCd@zo^gsXn z+Eg-LVMp;NZ(4O)#7mi7>`(fvQT1+(G4kwsoNTSad8(a>^9*C~XWv8|kP~k6UyA<% zZCHpudq0I+xn6X#=9y^Dh5J93$d`GI`${|mTMuvl^6P4MJ)%ScCJ^ko*(Ze;tfUB1 z^@~5N`9B;(#;7rO<^nKK0EN_x{8zV8JS_uZ0kw*r{)baUkUwI-C6Wkwhv(Df_o#8y zJj_CvvNxvqZ`-ev?Jru`WUhaB*cLRVBuQ@_{LucJ!5vAfiGnFd7Cx99GR@MqB0CYI zK5voh+m_21Aw&lRjb`kO*^P>^Ih!vfXZQ_&gaTXif;yz^&zH8-nf-Amp%qyheK0s2 zU82JcfuVOnRQwVoTQL&l8B^pSEYk0|kRmRA-#8pg0pvj1ti~<`=&qlw9?G-cQnM4c zc6gf=+|C9;7@M-p!1fm<(=>La*!JW7bTO5J`aH#Azg=iJM9R@4rmL=}|jfD}&2fR2C6kO9o~ zv^@B8Q1)X9yZ%x*XMa+=5ma1ttF|D@Z)rarrWt4vzXm9aCs_F&ZsxDn1-3nAv{WjF zY7g2Mp*^lp#P$P!(y=S1NSuVPA5DHlBRLjIN0noQtzdGI)r=vb1MBCzXHFZMvOhHT< zTGc0;mFlBQtP@ozU7}`J1=Bn0JOo5|G6nqTWE~I$4vfTpj)W=&l7~vVtbC5iG~>#! zG^SM6Wj|Z7@H#UtZ_cRO`QtM#a1k7CXW47-8qQCAXBu;;w3gkYkRgq}MVu#}EQdhh zxWW{}1ktm|9K?Le{-)`v1%t-ccV+J-JHQgwX2kEY96oc^Br;3&{~xdPzk&Kf>@FXx z{yY0DUuXPz_wB0No3u~>05)J)9w4NfoW~89#t@^4VElYvH~Io;^E3Y)n{EFl6@JVq zwd*fyrDR5u;wb&2I0WM)nr_vsChR=^lb0}beXl1ev67oJO#~`bo+Nt)%%90f7k@WD z|L^qU1-x=#Kn`uCn#>YZPlkl*oRiJDANGI|EK}0e%@~|Y?@{BrZR3{@kH6gR^#YjG zeCa&>ydHX$$lfupc~gPu2LN(?TXlSyH@x5VI=E&~E5QD-GV>am1#zwx7}$XACzLtx z&F&X!;-8oS(B#SDU>K<&b!+~^9a|bI2flXaMY6Bi>fm;kz=N{OkWla6DiR(yKbe8~ z`r6c0KOOedL{GDm%C{mw7J;<{nFOIzqn9VJ3h0%11=lYL8~B!^0n9dc9rw*Z(A1UX z5prHI;10-G#X>#*47K9K=13W2BmM|%P0;h9 zmrw4Gyr2K=gEv3i7l{!52|1YO|F7h%Bwane#2z-oSOhhAQ4VDZtiSAT1BuNUDpjcv zztTk4$<*E~#i_q~n~;}ZZdKri5?Qp@L9hnuC>jLNA-N<7xUpy!o~rT(Qhkf@$9)5j zvZt<02Ly!?fW`eHoj1|*Ua_KI=_a{#=1_S^9kT*xv;K+HBQHjN$wZhX{LcQkvk?KR z5z$O;lqe@rB40o2!TS*da0HQ{Odf)g^^!dbIQWBjSf-sARzuH6{#JKE3b?14e~)aI zMs2AUls%-FM%V9q)rSC-c? z&{HGueH@^FpQ?98QF=J|(=vS3660Rm0i@8Lv|nUxj!Ru0wSJ5}eQL}rJYe(K7G&UI zp;VDD2YD-og3-M!h!Cl+Z^R3d6Mi`2M%ZQs7qP*rxUr)p59x82i8h}1R#?7|owk8k z_1sW0Z?tIEfofa!rj|;V>N8_+n%`tx8flyjbyh#kBAP-O=BHXNXr0Jv3SWI4zDT#R zJtK`|g=KhYW9GK8k0HKZF2;0nDzCqz;O-9(L`%(egBs9Qu%1*z&;`wC8VVauHm=aJ zn=U~sVk^!>;6f5wyoH_x%cYa)=wlBg^#B5TCH9d}00094{wgbu00093+JG@neEe`9KPzL_8o4)`5xs67|Fv*!c!Dk}UT| zkCSUwIqRSWcH7QGYqSraRA5=0w$Z|kwbsHn0)SEHpfKlobL&5n#H6#blVUI+kt~hpnH0)T2QxlTlQin0 z&E9+@UdHyA4&Iad^~GI4e|(Q1_p(K@j#_cNoc+eR8*K9xVk24uz=VLX7K;-)-}0pb$-N<(iO9VKwau;n8o>p#cDO?lDo z-9|8JiL;e~#$0}O>h!osQP)4MK-zXlg^nU$0;ke1EUsvc?1-VX6Ovv zQ0W?}FoMHwJTI)4m#}+5*px$e#=(TpcKGwG^F`>*3BJ(&!PPR|SNJjfv zZ&x>YDxDOi{Mf3JUt>KC8kZHtBq zz5ki`fCDYA{Tf`B4F@ua)>VUxb`=Dk&E#)MrMX!ht4h@lN1^cmDDJZKK231AdjPyo zE?;RPP&c7cq=+hIYP*~n8DYqNpjo{t9UMaEhJ=${IVjKnvVN`iTu^W&-J!aE*rR0} z#WkUD&FxexwdYF-jl-Gri+&j&Zq z1OwJuBsl{yc<=K9g7=4RyUPMp6+wp1zJFM;{Wt+>#}=g9b#O2}Hm8{Z64g-~$wJ_u z(7cT&R1z=%!SXBB(Ia>o@n!mL@65ks$_26sX*Yq%8A!)~^(lPi9N>`EiYXqv`c=uM zUo~p5cveMm`?3eRT3f6)?RVgtc_w1ia2VoD4*mlC`tii28nOPKoBTP#!vc2{0mWFW zZeMH`ud;E!2Kv#hhWE#%ZgZPK%reM<59uBrR|hyZTM8B~|M2K?3ZE^JQ2?T2g8$X6 zZ!UmFrC+@{zLJ8!`rOJXq(0egIr19ZsqqO*8CLHJq9vld zv(r1=v00L~|D?>K7lsFrKHRlKJLixfe&6Lpx#9AGIo-(9PQWXYR+ z9|rKQG?)r$RQ~QpAa-$8^+JNKU}=pdk-?8}W0KF@w9}&Ceu4i1+|B`$(6+tr^u=%l3!J-$p~y z0FzrjGMf;qR3j2WV|<)m1bUm}Qrk{KAnHzsgVOGcnXxGnO-3bJgkRdCGVrn`JZT{s z^YATV4pV;4jS4X9f`1dX%zf{=g|37X0$;4$n-~B4YaE|&2!HbManRj_e_=h8YOp^| z#kTph0-(6F@~4<`2t0Go3k^1@Ex~pj(f+8pf>rCnupxsst^hEoit+ua0@yM)mzhgjT2FdlF5>sZ*z+Z(wcsECgn%W@`~TrtMRuF9^Qe)$UvaZoEn`3ozYYW8-}(yz zjA-vT)yp5(88|P$3r$OxDKznFTsz6Zce%uAA1PPTDrAuy7cEakB5D$SzJuSGp2t&Y zZyZhQ&(>*Hw})ax$Qg6b><4LcE_DG1>t9aBNWmCzOhF}etM><>3q0vl1O!X400guu zFcE+N05u>nPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^k FE+CZnV+jBN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0979.h265 b/samples/h265SampleFrames/frame-0979.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9dd25da20af1cd4db06d02904a6241b9d859062e GIT binary patch literal 2418 zcmV-&361su000330oIZK)I$OTSixU)ZnGi4I1U2Z`fGH`T45`AnxIgg+1k21sx# zk|g!^3jV(oW}oMzu{nyuQv#ceE>yNHI`RmRQCJNDC#2uP0$++8#-k?7D$mDgCJsbf zT~+&2#K0RhGk8yuE0%`;NT9bvs3ddBAF}ve?s)$ug~6C2C!#hlBA2COfYt^VZa85b z5MX(8n_-8KVY9R+9CPnd1_c02|EtxCfsO;X9^rVkGw0qZpTYXwK zCa}djRv3Ppjq#cBXNiQS(PY;HIG(%kn71G)if-~_T;2KvE`qAOsHzY9``~ZTvU@VP zC2Uj%KM?#E3|kGdYdI8erz)d)8t#{?9x{+u-#!c;YM*p-!SAbTJYyC@PaGnjAK&$VQ=kvNFQb}9J%1+-G-N zwJoc>d*oJ2T1Vqgp2Lo)4utn~?wSZ3_J&~r1VbV~erb@4?7`|Ed`{a75_U!eEL0hy z$30JX^(svzh_OMwy{bMsH!?*{q+k5l4}>KhbGr~i6`O~Lu? z)6q2+Rg1jUy8z6&?8~`Y*CG#Ev6Vep_n)I7KHcnX+~M65ecA5awrNk)ATRiV_?Ckj z<_`4|B8kJ8h3YLL4>_cN-$=5|_K+sTv&X;N^}A<+#Ok@F{xD&DmoTo&lxFM0-u8F&2BwZ~SkeZE>3d zD?)t@1@1;KyfA9k&pFuttk#F*2 zT1qP2*R?7IaP+wH)j!wvaPr-{I~@$Q&phL<1r=n=YY)Ay7OxpIHejBZE&`hYk2g_1 zatjzwQFR9;_2r3e)BOSuJ8%F10|2~$SgTa`YI%MSXU zcEAIuj+h|w6UgQN{1Ya*0XW-U1X0eg&mUk91+6n3*-p>R-&{FChW|Tojfi1Sh`Y$P zp0rubPRv5$TF6n>xNjo3*oEWWvz|V``o4u03Fgk9vQjXO&zAxW zl595B=8%_~1jgo~6U|iaN2|(^VjPl$4N4YkS&#Y|NN_QhVT(Wi`|KSi6om^(flk(m z&OfzvQ>Hi}!^}i6OO>Lo$AW`F5k)bFylk_>4y;lWc&q3KE2Z!+3=<*HI8_V z*X3!j63}?QfD4Ev&0-PsTxC0X|H`_sE1F>>KyY>4{L((fz%D0&$N*YJ z0)>5$4Re$oai#HjPUT7PIcG?O-B=1!&Y8*9xq`kQKB(Y|01T&bGnN&<(=>?nEr_{J zuvig}MO8!MpJovo0Wz8Ko2D%>#-#2}^4D1tScB-X_10X^q?^`o$F?WvAV4}yZEuD$ zZIS5|Jy#lb&i^wel?s|c2)M&1bUp5aQL8_nJid6vE8$*QoaXpLVa3#|BYSV^qR)TS zQ>SZ~tS;J;19a{jBzU83R|}-{W~9h7=8u>FR;kL#j*1mEZUAs%>}~9rNHQxSu=4pk z&RIY=28*yfH0TDJW)0UbOt92%@%4zq;3@zBjDRXIQ$PR!8c;D$eE`p$I1U2sxiuyfP*Z^wo&rQCVzj>LS#dv(^5@@RLR!-)k|S< zE6<`E$4>1qAd6W+t6LQVYjfirGglgfa#pi>FSxu{?~GRqeubXUw40<bIA5ier~kc0 z%`rU$>O1m`jXwR8Ebt?LaBw++*Wq3Ka;u(8?`H_{)gs_i+zFeP@wO7nozAlJ0KL(A zMjy;WnG$F2ij0*Yc)foHHaMCUdNOVRjN{#le;ChFgo7HUmw0&b-|K=a;i96iAjG<{ z$|X5Mi~*1WuVhaWN$Xg9#swL5rv4Wu4Mv-RLcGg?e4hPPfTu^vO~ z5Qf>#dG;)brVC9CA1?vM0#UQ$!XmV z@|0?<%1z1Y=02Y;>3l`WZRz)~+S5UJBHHjEL7N}{%-jG39H6g2o-xAUjkb2VSC)PN zm(5qeuJjMH7Dk2pJ>e~Uy%wd!mx1Yu(0~I!@PiW->`Y9)Th#zw87uR9zF4(vy7I-c zaPPFk7Sb>02g6XIu~@bDO`hvdgiDSUBFNA0=uc%J{W^kJ1>6KDbn4}95X$fn@c`1R>!vBEUZ}e%` z54jMZ#?a>$iTX@FR?#ty1_s-NmhD4BtLiyoQbh2cid4UCkOmU!2KgPzNI74_KSknI-FEP4`9TRzk{efp75c#i+^U^R# zmFfn1rnW(DQpOvVDteH~+>!_xdqHu)*(*a%pRFnhYm4E-2=qEX_6^e>B(EhH zE}VDvvp56{--rM9_+yz2Uax6Jj1D~AlOjf_`#2(j`sf77`tN}?Vkgx4liVZX<#~Zd zWCUsyc^J8m+2}d_FA+olX9ekbG3Ir9qtI`O%eStp3IaAzb+3TpGNZUGci1KR|0Zplu1)mh+~l1A#$z?nfJ{rzk@S2_sPBJbK_|;X50ZGdn35V z!_!<)NC@ix9<^M_2x&fRmZoawSJmgDa$FWzKhZ1!TUe`aA%AD5+<-}viSAAkszhQv zgSN(QZIn()Ni=pFjyv3qLZ@;tixi1McT?@@-SK@Yj3>kRKC?k*RR-Gx4LUX#@3Jv9 zs9+)+FFm+{yp|Iapdwc+Z~il==QjuQuEXn2x#zh&0^EVg*CfuttnzZF6UT6r<62RY z%4Rz#1!34T+B0V{6yHJ#Hf(z&@DIkHzz2rjoXCqkk=OBlmGv46yb?_@D1Ami5ixf1 zh|~a~fF;dgrwIQ^72oih>Hs1f^>KNL;&hUiBER^Gcnn`ymhIp+Y7)2(n7jx`N~lR6 z-#J>Pn6l{=n;`Ie=n~%+G;bbZg6A@Z#EK0b;JZ3H6ntqfU2v$XV1xMlw-@N*HwkoJ zu(y=fv#Ghe866>^3n+Ib?wgX#dvx5QYvxMGo~iHH5TRPm(^t(YOQR>MOCSSA%m-C9 zo9I5hbWg}dNDamT>f{Ot?pLpF8Q-RIe{zGNmf_{y!w!~uO;SU~bwz>$90oi}eZ63mck+yMC!%4VRI zS}5>@W_unw@;s$Eo5chy3`DX=?!~f@HT_Xp(T;Yjf#%dkUfLHJqf2F4a04)Ws;~e_ z9G*iVZ$~blDCl_Th>~jWF`BH;n`l&(` z4a5&UFY4dJ`aE)?*8Y8S@X<<%CPe=IAeYPP&KdIbuSX^LOYtNl`)PE_NA|L+RZMIu zJTuLh;zzelxxlZ@8+NoZXwl80;_ta2`W#47Q$D8vAnPgnoi%L~5QV6%sDNxj8L;D| zac*rN$zA_b^vY~@g|Q4Cyj>>5z={N9v3azWiZ931LPlSniCP(E)~^n-+hLt6#V6IR zANXM-?aDat(=qWDn7p4a-O}exH&xS6ZzviFGeP-LYRKtqU-9(KGu#Q}(5z9X?4~O8 zh#yBzcpmXd1*qSuhG#=b=BJcbCZ<iieRtfMt+uIH??GwJvip;JRyaSy5%~}0) zhqZNfV}q7YqpEk27nHS)739=nljI&7)YV;=OZ19S6jXtlkCzMHvMT?iujL*bARvj$|6xJPx+Or>)x+s`95JGt+&^KKc@!>oC2wG_)p^9l%2 zoNmRT0iyPg34wCW4n}9A(u|oKOPWw(yjZn8@>PnBsUc3qjE=qWI)nu-TNmdn z%K;DAd;xs|l_=<=@kH=Nu^pq}7YVfSQ!_kP8Rbg zN86)8saZ?SZgfv2=G{Pz&j?dv-WJADGL4s8sYn9TT=#W~4Ys*E_1(M|tw;-i;NveT z6Y;(w5lmgr;%eYv{9SxbOSqM%U@$1!}%HNd)bmWvE1pNqW;m`iY*gW`1j$K zgxoB^)fk-g$H->MQ#ks&fYxVX`rBPZ7>6Xv}TFpPAvHZ zB6#5N8?|(KqiL`*h#Wi;lS@F`w)ay%#}P1H@SUl=-=P(E0w8vQ%o&W#?00NF!A3FS6k{|j%{{R2sfEx;aE8zuG1#0T>jV;tQ zb}L=|9rX3V#GSJ9Hzib@0NXU1T{V|->chZ9_8`e^VnFTpL%N>HS5Va`teG2pQ{E^W zh-yUu#J%dO#0cDyg$iA&Y-L|U_4WdewW=(PH`y^ZOZ3{v>J)1d-4_&m~y2g*42VPFq>ggSU&mrlCFj(0yL}G z4l-wrX&aM6DQX}fu7)A8iEAz-SevFL511wC8Ee^=!1R7sR}myOvfS$6JZN!cNY zSz6sj;*|GrQ?QU7R3V!QxDXb^;Umo5U+zx3{;v%Kr?Bv;}5 zWmQ2>j8Sg!t{0009311crZ zg>iQfz#ww6$JhVu{|BsYx!Y`{aswa8)%l3WH)s%Z6>SB_*F-mSzuSl2nW6HzsYXxIedC6pqryJ*It@f7G%>zh43hNDKM&kEkC;)vr3asZ z-?5IWM{m3z8@TZy>H+7H>}|c?`FVpJP>GWuiaan406$E!(n=hG<0N^}B_xj8-KbO} z_Yx+&9oiNt9J>ZT%I&NW^9j6g{tzJSa>5t?EFU}KuW%dswurDjLx~?xh4}=-)7^52 zx>JO`6P6hV|ExFHCuu&1VcH^`&T1{wf>x?-@y2E#s`zA4-y>G8O~YCdS}XoCGIrd9 za&q3_&8hnX%iwcUdPnmWp?k5FuoLS>Nlh){A~*+!Srcg#Q#2Tj45B`EpDH3t9sr3M zO`jN z6LyqJVm1LeE+9GYPa=I7iWYE0m|@eO9x!=hzMrRO61)#H1EUk_I>f5sa=s7K&G8Q# z)I>qk20&vOL7Q(umWR2V9To_V(-D)=?U~i$rK=W;4UTcXs5dGMicW1=L<0&6-zu zRlb<-f(ewWBnrb^{JA1A0CJ>Vz(1QRgl5tbXs0`KA%HY!@y#SIeXzJ26Mf}BAOJ1k zDlAff001=LF;9H}00RU37C!O-03sk2voHVv?|>HcIsgIh9h{f|2lybZr~n{f0x6hm G04^Y}j^fh* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0982.h265 b/samples/h265SampleFrames/frame-0982.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eac887b6df1e64927b4d4c3d39bc9180eec38a24 GIT binary patch literal 1721 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 B1R?+c literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0984.h265 b/samples/h265SampleFrames/frame-0984.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da4417e0fe1993091757b5d04210d949361b4cf9 GIT binary patch literal 3024 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 S2lybZr~n{f0x6hm04^YA71%5Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0985.h265 b/samples/h265SampleFrames/frame-0985.h265 new file mode 100644 index 0000000000000000000000000000000000000000..16cb54f6edd83424d2b84b91d692147b2b8fea60 GIT binary patch literal 1920 zcmV-`2Y>hg000330oK9))I$OTP{CUYo&*q2s0;%Dz$gj=z;Q*}`o%*$<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLOvy<^_i9GO>zqRI_g z+s=laJ*Yuy<5D7Idv7O;e3Q-j0`$&l)gQ&s!#vtfo!x=@dLB}vM4%&{=;xyOgV2V(*nv;>`P^i@5uf1+6Od(fp*Lt zn$~hYTdCx(uazYFnlY=!U2$5e}fPjDt~U&wz-mub>GgsZXdwwUexisTX} zf`bu#?BDuc(8N21oNxS_fF+!J=%(=k)V~UXL5)*?ygYdD0>1kAZ4jAIVqH|AQk=CBu+8t5f$*3d9G*p$#?Or} zZ7lS-jNZLH1&{b&1NhJmM$!5@buM#6lhpm;Bym|^A^+&Ne>T@t@5O%h>MLUAtrk1S z&Xm#EkoXo%eC1#rKLd!4GeKhi1?ZJydaoyU5u@>m)g}H8B2TBHN`-?3$i3xJD)GI9 zB(Ab*r%=c_b$2Q?e|I6eleFysdDh|7HuMMirIA2WXzV}SstI`wR=(3${bSD;8PI+G zRfi4xgfmI(u%+33DT6iCpVY;DY1CFwQ0!XUZI0_QB)7#*Bn}b2=a}A=Kx&EOgpc-O zR_pW+vlb!ztw>QVe7zQ%QUKXR~2_#?I9(|L_< z&jtVUkxFI#tIjnB6AmeW018N0A9etS#P43u{r~?KRoxAfF*Njp!r9}i|H>eMhs|S* z^U^R#4d@1}MtZ2*s;hG-@tHkHB2rhze%#u`ln12SJhM)PL|FmWc>ZPY!6xCROL!z19|j z2srz@`9(8+wCDg@Nvsy?;>M6zwggOKNAva(T7*9Ww+h6lQcVVXtAuRhUku!B5IGR3 z0dG_Bgn!q`c_ZIp3T7KZ?PJA+MQ4`01_}*t;iNY002M0 zCDD@9b7?`D;PE58rd7GKTxv4%779L^vnUWat~=~f*)XOJ z$x$6y-rfJF@DJxNpAHP3rhD4u_75A&DBrS=xE%cRZ4_~76$Qk8I*78Y4Ki;e0Iqqk zIbeaqX;cp5Yk=D@eIXXW_!;g&$`76Hgu9`7DurTSk=w{PB==(02JDLB3Nq5z<}Ysu z*nyyoR@m|o*w~5Kvv&kws*vU~iWUXV3`1Wh$K2j<{Y#RF7x(eMrr9!n7as2@uva)8 zN5>pfXrpWCIkprm#2mNM=KtysXd9XbDPTkHm=_di|2c$dP zrqhAqn798TxU@d&*^q$EKdi``QX|;rF#}(V$9apnLO+;i{kOTuwe=M&ZYa*l0+p>( z0b+o>szICkY*Sw~6{lZ;!G8nhaDCJzjuRKnX#O0tb{AHnuZfS@6b(WgGOeTaBico+ zrQnpud11*Q#=t|KoKoUc!uqAJQs-9pnfo6iu+1?g7XWo$ZcRKZ@(Tj&Z{0e#$IZKc zv2GT{vb+EYC^1i^KmY>T7C!O-03sk2voHVv?|>HcIsgIh9h{f|2lybZr~n{f0x6hm G04^XJxVO*% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0986.h265 b/samples/h265SampleFrames/frame-0986.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e3089a6ea1b44acd93cf642c8efec2a5008d3937 GIT binary patch literal 3029 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 X?;V_&00;OWt*8JXU;-(aYyd7GHC)E3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0987.h265 b/samples/h265SampleFrames/frame-0987.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fd84b78a847a803dc5c652d95ee6c50e2aa04ab0 GIT binary patch literal 1830 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0989.h265 b/samples/h265SampleFrames/frame-0989.h265 new file mode 100644 index 0000000000000000000000000000000000000000..773b979c5d2958c0be8bfb40035a0f08e0e21d4f GIT binary patch literal 2492 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 G04^Z!`1Lse literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0990.h265 b/samples/h265SampleFrames/frame-0990.h265 new file mode 100644 index 0000000000000000000000000000000000000000..285f61805bec9fc9d090a9cf695881593ab30f09 GIT binary patch literal 2016 zcmV<62OszV000330oLjN)I$OTSixHgumk|$MT!Fez$gj=z;Q+8#9mR>EVGQfjI#df zW%^7dypdGGCfs9{D**;sh#7{t3^02YQ3e#mDh8>rp;!d}nyG5yANKW+dsilA1Qv@Z zHERkw8g#@V1xAfXi7f5Bm)u=A14Q&eM7T8mV1<%KSH{$M@%6FnF73HaZYoEVn?`i4 zRotoH@v!8ho#%-|M07p`0r#Ex6K5C z|MD9@Oiw{Nj{Kt|Prqc#JP6<191dW0_*Z`%s^^mX*}^<^NVpXD0%qm>g-JhnBY9$c zv%JCdUK?grZ0_f|lR_I6*x9Ni%zl`~xO-3-9xw}@p)Y^Z__@R;;$*yMlkAEv{_VCF z)1Iof)Iw93unsxqKu`}@U|MrH{dHy!L6* zoA7F#SAbFaY*6Yc?ee_w$10rN1^cn}rt+gTQ!^8qn2W{WwX}(~`)!=D4AX4CWOgf= za9f2o@IGCT_;O=CJ9pEF53?2_{H;h)fc&UAH&k-9J}c{$oCpO!nh^W=BYVMw|F8ie zuT{35d3ZZDwE)wF`2Q`7Q-=diy)>~=top+3#uP>n2t<$tJN>d7yrra1{3LznJHc0+ z71s(0q9(rEZ_VRy8b`3BGOd@>cs?RNW#@@kTrrHo-er=&X>)>m>$h!w_e1`>>YJV* zlf9j0kZ|HM905B1Z#Ph83KibzMC*`J`L`s-M(WUi8qGuI?!&`%lVEiv{7XN;F}7dY zjFn7BKkQYs(iz}UA_sr~00*>KA9r1!By&Ie|Nbnix*IA3!j{e9X>Qg3>ajbxTcX;Ft3dR-HTzCy#v2lFT0S`4UH?b>-JY`hyDR=>Yeag6 z3p$F4%~T+Uq8a0`Pz+7!w+iM>Eb7_Ya`c}lsUt&L)#=h&f|u^Rpgo`S5prP-+Q4uE zj;n-f6nPd`G5b9S7^UJUmRv1rCad|NP`h$%&VBSe%$0YAsH_C=?kAAOU8N+k#N8!vHhb5iy7G4@*NKiQNsRwlkZy3NS`#A;yzedr&k*#C|fe-R%-B zSP>VAh6ke}wTe+#kfb7HmPc+(CO#R^C{jY@Top6#npb}K!#Pr?)S0|dit*y`{u{x$e!_JbYnYcQCcw7y zT@yEt-VpWh!dfz^g-kS%G{S9LBc_N@cQxJ9V%+3id8t>jfq@74!+8UHwOvU zs{O5K=P!woN%*brC@G^vkt`be=>W8M%C6VP1ekV=z=%5=6`V6Z^-G{nIw?m?VHLk9 zR)iqCGGxF%L;7`wQaBed1?o^V zLXaL>BcD_DrJ7P2YzX)jPi5u(r4&avVyT~4qR|L~&0 zhF`IaIDB^+p4;IvZGu8HH(iWv>jy2RQ6dA@St07?1C=Z-4`{=fK=Q2NyupJ62>r-v z1mA^?JOLDvX1M*H5g3HO@^lhEFOmrFm1|2-i5&dNHL~1&#soXGqaPdF2y~C(BVk-9 zeJ`sK$|8X>B7mFr0g!2^VU#%6P@8z@UGcx1mvQy_Kav0 zVUF*{1?wvrY3HcIsgIh9h{f|2lybZr~n{f0x6hm04^Xl!_u7q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0991.h265 b/samples/h265SampleFrames/frame-0991.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7d799c4b93c2512f784dea9b6dff44af34f358d1 GIT binary patch literal 3268 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 C3|1ci literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0992.h265 b/samples/h265SampleFrames/frame-0992.h265 new file mode 100644 index 0000000000000000000000000000000000000000..584ab509267636a2d77b85b719ad5c47b7326fd9 GIT binary patch literal 1767 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0994.h265 b/samples/h265SampleFrames/frame-0994.h265 new file mode 100644 index 0000000000000000000000000000000000000000..46483f0feb71ae63c53cf46655e40e17fd122769 GIT binary patch literal 2380 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-0999.h265 b/samples/h265SampleFrames/frame-0999.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f8cc356cfa729611cf66ed4f8df1d82f9e689bc7 GIT binary patch literal 2896 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 Im}~$pAeIH8@c;k- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1001.h265 b/samples/h265SampleFrames/frame-1001.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c95cf7a5050482c3d10838a3fe11758d32e507e4 GIT binary patch literal 9100 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

kG)EIw&27`Oj{m5JSZ=giH?hu!hG`y~DRx&X8U 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 F3@9|tw=e(z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1004.h265 b/samples/h265SampleFrames/frame-1004.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d77f4c730eb52d83e2f8052dd8dcf9bc1192710f GIT binary patch literal 2168 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1006.h265 b/samples/h265SampleFrames/frame-1006.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2c84d2a91f0f3c2043848335c871570deadc7d5f GIT binary patch literal 2896 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

`ukz5^0`EYFWNP6? z()#@NSM-HoY0e4hH$7C{=)HQC(MQwu<-$5A!S{%bHej4v_HIORt#_2M!VkTC;~7e% zYIY*GNj>YiNFl)veS7gvRhFI!-_4_b{a|y0pLUPK`psw^G{_RFX8cP~xC8zLm0H}h z89FW<8A7%g{_c^vX_Toi4-~IM(d^H{_^89LQ3rxlD;b7l;$x{p4pq5O(%INr94mxF zjwQqUWM*bzf`uMBxcu85ROQtTnH~4tjz3Qev^xre+9l3Z5b7FA=1?p-G_p#*!MO!F zb0pxZmk9oN;YQ!U+1r=VIyNN$?|Ep)31lIG`g;tQZ(Czae1fM-Z{EpNQkTD~lh}K` zgWXw=XbhJ~@Ar<{g&%*j(flw0W*D<=H%5L}P z_BH3U`B*YLq@&F9+fwku-aI|a#K!0RT>F)`cAT%$sdpHVCCY%i@oX;34-#~|f#In}Xx4x=f8F0KX7Af?LWyU@n5&!@Pj1T6;`ydib>wCxR zbKF3`v$RNL2+Eg@C4N}*RNnu`X4>usokz4{4@!g8n%nyViyeP~YWoq!EIR8u*o4bP zawuw{I2dJVkho_?u4|YUXK*sg$q{@JQcMVAxEuff|NVKs^od5ZUmWe!jMq85W1R`( z)Q@}}5+9&<aq_i?{)e%%Vvz){NLS@`u;`Ja{z(BOyzyLiU6+qwsACMU%@BlR6 z9Um|N?tmVLkOBfD<%Q?fj4NK|U&lZFsLf;c_^5Y9e;TrW;Q}61Yt)M`K+Lh>lkY_K zV(M@c2a>6Ktzl4xq|qe)ffLr{PIJ}#xre`1aQ4UyFNhLn-;S*$lD2KI-aeniT$4G6 zLNglA<8~7nF~z;$Ggw&CfD%6}mSvpmOgaMAN!boOtocRUtzK9!Qb&jil)ETF7LieZ zc@oGpQiiSu{)bL%hFNnd^jOCwcwG&Kk4!X|{FSg#D45yC7M2w2>u*&Jx-@t*xm~~3 zb<~u~UTPdZ_tVFs(1KZTI=Um8HvX=G7yeBM&IS`89lZ>Sc`@LQ5%4J^9MK^sbT zA=5er;tjT=oK?e3WXM}qi^wbltn%@@mX)Cvn*4CvUk>|1Y(3UA(TU#)NVuSXC*yr1 zVirzB&24yo5CL6Y_ygdG<^fUy+-YZH@i3Q100VADl@c25vIfh*tj#5#kBFmZ8N>=f z*k&b4RxK^*1`oTDK8-0Ew}ZzVtSmsjZkYJe=4cJhTPkfP4tU#H%61v`##_(jRqcW6(#IMIHf@~xQ<7yc$oc{s_d9vv$tYyDL)#KLooquf?fYJ`Hi+h@t zgAEut%c^B7&khimaz8@tCHOFzHGb=}pl9yH3ZC-ghR97)*}zZ*)qm<96RAe?LlwuB?t+Q+95FWN z2j@0VFer;HFS`iQrj-l%rI9%Q1Jiq=8oF?oB0(kE#?@d>Wat0_U<=hAwv$ZoCXYZW&s&e+Uf!_Uy@qv3(>#;VZd6?d71zK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1008.h265 b/samples/h265SampleFrames/frame-1008.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1d766991730c3eaa5db897294a920c27caaab4f6 GIT binary patch literal 2010 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 Bux0=N literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1011.h265 b/samples/h265SampleFrames/frame-1011.h265 new file mode 100644 index 0000000000000000000000000000000000000000..18b41cbe21bddf1247f93c6486625ad9689235f7 GIT binary patch literal 2921 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 T6i~q~n=ieBWTXqxzyM*uDK_OT literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1016.h265 b/samples/h265SampleFrames/frame-1016.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ca53e6866fd810db9059ca317b504c44b248b3ee GIT binary patch literal 3082 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1019.h265 b/samples/h265SampleFrames/frame-1019.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1fe9592148df58bb72a6c6c1f35e8cdaa98236d7 GIT binary patch literal 2461 zcmV;O31apD000330oT$0)I$OS_`!1B1b|=)0YE4O0H7QMCPH!~)v=1MyOjnyBxVSdD)e`O)b<*l9`S^?HY)&!Hb0 z*$)rIxjt_jiSbq{2Cgm00SJ6n_h@P{(=%}@sUIBb|C6aZ>a)(h5&_Hn2~5#lbN>bp z3}Si<5J=d6ufq|<1GuBGSV16B<>`P4{h1NXBXKx_>{DK-WQ9k>_>jA^BkL*LVtWs^ z>6r3-46KOoGoqK#jfDT4QrrRUyOBjxo%^h7ayyWS0u($Bi%JS{jy(6Leqg3V#eDwK z7#8ZFtbhkq8dPM>zvRiLZ6y|m6xzB|^%93JV(`L>#69yXZaN8*CcXan=_A=JyA>Uh;H{2GCU+{PJ?}gT`i?xO)k$A^wN<@jDBuh?6_79p+D3?y`LL*x&8z{P;B!gPjzE%;3RGn293c=Az z|CF!$0>RXEleEWho*(JjgTNvH%;KO09a?}w_3?p;(=2%jo(O*-ae*L4(pvi<%OtW+ zMY!^i^heAv#&+{(bi8{z8PnG=drDJux#MoU1&- z5yC_Jko*c`@E#hdudlelxSU_JxSvj{&Sl#l%5AY&PK}&#FoDTB5}-thT|I=WG1$ri z?b(M__aoNY8<%tL*OD1<{34s78V` z)X-9GxCW*7ieeig4UV!OgWT{!XC5^IWu4VGTen}&zr}?xzCk$J$KGpW^P3#Eu(|hg zL^A}mI=A}@NpgwMSt0Ba@mq2jETa4UxZWY~uOb!!R|*CiPj)c4aiEMcO&S7a**CmZDaUF|(;3|_aMXOVUL3gjSut5)E=0YnoFl8`c z8WoBWf#a$Gm_zb@c62)Z`x{`U1qYAeZu_3>B6YG$zFuST@{M*>!|x{OOvJzd5-<4{!JX|48@ZVbCSuSYeGLFobxX-fiCzbL)=jc>nXW<3A^0R}jD> zq7O1^!eqe*2?r3syUJz{E-<)&=qF$bR*!0!s%s;Rj*6|tty3tYanfy-)CXLJnJ-C< zuSR+9CH&bC=iQP7&taC)cH8{ATxfj$jU5liAzzNNueHN?krki;;%spA zA#&^iQOhA!5;6UqAlwa?&{U-XK8vhnnxx0<*%yr3juE6IgdH!L#v_=tQkgj_5UESP zV51C_D8&II#f)#Lab^!bxw_<4TcrexEOjY68tTZK2>aKJ8!sY3o0-6|3a9`8GG*M^ za$9v0Btenwezo8$6u(YnXWZ%1Fb|sIo_C`|yjr6ihiwoiUAojhemlfdJy~9xGvLmv zK(yPy06icTK;Qr$kQpQJ05sqoA20y!fF6gC0sO&#O!0VHZzmDZc?nlMx5-rcsG5%VG9!TDCNT}B#3j`4(>TSXoVg|9wLFp>gfM!i znLg6FtvK7bO*pZj-_%8=?wfx7XDB5?0Im7qq?F&<8uTq6OSCwYhSF}V;Kr@&X+Nt` zCBC8RB1shQsS@RaYXmS}uCRzU^f2`Lu3w+=!jdA?o`*QA3u8>efH-Z%t2o?@B}C>I zaAtKzyyNxUDFMlL(Tj9Gmw_N(`&k&qosHZ7w(+6bUu>vhcO|)oa_W{yM1TB1656Ns zj~2>)#>P-INF-(;Bc1-Dm^ASL>am}pXphZ`DF8vewj3ERwD$L*1u?q7%Kn4NLXie- z)z=VnvvCpd^->+NWJ@9{sb#~9X`)lASoio=*TYSCT>4xlc;V|hsfXb|$EP+pP+A8Z zaG3d^UDQ_y7Zb{>$`%I2KArfJKtPWQruNOayq``&*%Utp*nrp-pYo(>z_6=T3fCGV z%nUU(%k;~T}))*OVPX bBid~cZ&dbQ3>GRwfamK=6^IMbzy=YHFwoAT literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1020.h265 b/samples/h265SampleFrames/frame-1020.h265 new file mode 100644 index 0000000000000000000000000000000000000000..185f81de841834cbb6f137faca07f446fba83192 GIT binary patch literal 1856 zcmV-G2fz3L000330oU38)I$OS_`z6Wlmh^uC<+1qpg0i*KtYQy0t;P>FY*UB%woTF zH2q>Usiws6$?RmR6|;&^UYrzBh^hZ3E;?Q5d8-PW{G@ljZYSe}AdnMD01id?lj@&s zZmL$^vL3L#>YAz}+&D-{uZUc3v~A!aOf3Z`7?K4ojeN2cI`0qF*&;{F ze&FpXJrZE=m)IVjR+94H!W&xY$&e*+^nXi07BJ7pzi+q}uEncF-ILUWV857(Wk1i5 zffh@?EN2N5Gswp;4ybXIpn9R7rJ;qjm}_uK`)$xRu_)ZUv8A-6seeyswBlVE)z(98 z3j_-7@gV4x^6{rwOQF-nDW}0li$aW@iO|2l*uWfq4JpR}&+DM_kj~m4q zhx?ZL6$0Rd|G;IV8zn<(2wxWWa@)Rl1jjDJB>RyBkx{i~%s}`hv(re@uke9jxqU*OLqaDFII< zDJy-dhZN?0tO)(-pI*DN0hFvMAH%jfjj|YkCk_)C^=ki5Ryn+N?a%U#(8!`z)IhBf zmQ520r7CZD3)*akXCD7~IhLJOaF+M1mb)7`6PD$*WX9Lxm@@QluWA8v8Y&C3r80$@ zb)YQxxbIFviQLLC@a`iEI##9ZI*eB#oeuJ&M!9m3pQe-{K>-VWIIo3G&ZKO$XQ}*H z;}&a2DM2Crfy;pusU-!`fB_ca4K?awUGKf#ol+dxnt%WRynqkp#rj7h@^Vq5!2kFE z{7n}zk^K7Q0)70~J056kq(Fzwd}p4Kf<&)SE6!U&^-NSl+iTq6$-5k(Dp^G%)-a_O zP%8r&b76iCqiaf%N5xTP_xj6#i${DpR1xf!&dFE0VOjwH-XnE<4r2-qxs62P;prYZ zps{Ml5Cgy5`{VkBg_&&LA5~T~c$H5Z-=o8KGP=^YTs_EX=pe;yxA)W2nb+NpN@0QA zLd1=WM>#@fH%c<^!Z5+G@85Gfub%W@oWo2fc{!mC7|jWCCYhk8GyzeKgeWRC``liGBs)45oykN zcKh_^V)#B*_=!ltbP}*+p>UwS6UPj`WpgYe@17GtUPZ#f&p!WVSSs3b+c>$;9MmN$ z@JFD896+?&zyLiU6+qwsACMU%@BlR69Um|N?tmVLkOBfD<%Q?fj4NK|U$LF$fGh;4 z$%7lmVAwKWkPVdV+4$*$V>7< zVH+WVZDkbTE0k=GGP!knM~IA=KSzj-^v;Vmk)Nq(U4F!3C%vDe{1%co6v{-4*+M>L6E!2&cJrF0Mf?XtB&GtYSY=1*> zezbv=*f6)npgg?e#F7XB!tGZ%^SX~qba+`GXMovaNQ}@OP+w>JLf-HX(ahR^hxTxM z^+%QVU@D^1XEK001^P25jK>`27U6(FW{`tk*@8*^8Lyi*JviB~ zL$4}4k)96g0A)^0Sk9li^P`?JaP1VWg%o&Z1*psgwez>w^-o=1biS$zjJIiFs9EgN zpD}}qK=zhx4_fLGTb%E4D(Odzs zANSm9Qf-GhR|maRMCf?PS~)jMCj!P{VejD^z*cKNG$JD$tDDx#HO2C1`Y2B- zgc_1LcPX_2E>7TNZ|S`drZ)C4oTZQWnTMomt?NZRSs-QKY@RaF>kwBu_DRFU4gaVx zL;s@_&;3$rzMxYJ(ZB}|{aL#Ui10^``S>B;;8t27Xb2THxgpck#sjy)m8Wm*IITE_m3i03zWMe uY=f9SZ3>pI>^6O00R!+M(5Oh*;|JHvRQM5B6GCn1fb6WpjKWBfzKxH9?~_FU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1021.h265 b/samples/h265SampleFrames/frame-1021.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8ad1a8796ba5c883a218b024455a417cd142d190 GIT binary patch literal 3224 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 Y{BhFIl-N6`UAI>6|NjdM3VN~EdBoZ>vj6}9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1025.h265 b/samples/h265SampleFrames/frame-1025.h265 new file mode 100644 index 0000000000000000000000000000000000000000..727accde31ddae1e6d3a8496a426b79e71126a6e GIT binary patch literal 1796 zcmV+f2mAN{000330nh>e)I$OS_`z6$paTG)C<+1qpg0hvz(I>I0t;P>F|G$U%wn?j zGjH8ru(r*qo3WCqD_0F+9I+H)SWu9~=?lFtHTgdOl#cVw%zRLU6~NMA2xmwzd`mfR ziKaP@Eng^zrF;P`iYws0$ApLOR+Hn12u;`X+?XB=46E6HSfdx=!mr&)cZUt1h(uyh9OwP?ftd}Gi6vUk zXthLYkm8bTM?5Oh=FfAYhM}W2wzq403t!nzst6lc0J~MYO{$NR@ zB;*xH&VnGvF-_N$IlID;AK0gZiL&o@sD!Rl_EaH89s5cG7lhB&!yWFXJm5JYVud`#BxKWmg3vCW@kOZZ_$&8H52f% zn5GQ^-Vqu?g;4wn8fXszPxqqY^f2w*=&e-QGbD$P3^`40E3sDt$nn_?3-H6%ka^-C z+i2m9xg0?dw;fCOYUtkc`zaJvn4JWd8pnQKnaE@8KeYoyCNy<&#z&S79UV!?;B`nC zGpz>Ye}oyOJ-WHz8qFi@Tvwb~B7(F63dmeiu5Qs&)t~?*+pv^iFj*s5*rob!692(h zJlD)djRVjE=@LSy;1e@^pCT>`p5#mwsp#+%*4m^CneoR;Q!X+hg`IlAq z)6)|g`|-(4acCft``d87P6+GGj<}8#5zcL=8E$7CkVbEJRUI0?!!eDMGec$w056d5 zgZRXNp4s-bQq*z9p+!$xAF+A@cFJYXQIkMwf`tX+-3jJl@gnRYVSGGCAll7}9Oya2gi1sWTQ3E%aL)l#-L#a7`~KGO zZq;73e2`VPFY1C){x;w9A)bXfNc#N)#?Zee=dX;O1M){;Yj z#Ln%99g2>w|L@OOm>R%E6g%kw-{DhYD*gm;E+J)HR&YAC*FH9kMJ5OwsBYw#iF2Hy z7mMHBvu{PEx?GKD5S2{5*=*oXjXi@NB|9G2dY9S}DeI`LYFH&0?_-AglI$^JCm~gE zyCJN@5XM5-aJ&{V^aeWHx+wKsMN|SHpr=tSH(Q|}}^0BKD4 zP*3!@MCp)-ML~^CNfW8E5{By7x%-`rZ{Y8nVIWw@Ifs_fro7j~ZhUYP?R8W6I#nYg mj4HE`FLJ?7{tR6mCqa=Z)F3wFFbB1_k;qqa$oT7WWRGxA3TbBm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1026.h265 b/samples/h265SampleFrames/frame-1026.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c57d843a475567706db86410113def029335284a GIT binary patch literal 3655 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 HBw(Y!%vo|Z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1028.h265 b/samples/h265SampleFrames/frame-1028.h265 new file mode 100644 index 0000000000000000000000000000000000000000..18e227103296ea7db9595146c5c5ccaca7465052 GIT binary patch literal 2058 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 B*DwG8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1030.h265 b/samples/h265SampleFrames/frame-1030.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e098e9276f0d5c0a03be3d38886182ad88b2333 GIT binary patch literal 1875 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 Nn1pQBLfmD-A literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1032.h265 b/samples/h265SampleFrames/frame-1032.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9ab73875da7046d35bd43add524706d547a21d19 GIT binary patch literal 1805 zcmV+o2lDs;000330nj=B)I$OS@WECRN&^6(C<+1qpg0i@z(I>I0t;P>Gdamcq3Q67 zjP~G=G?5y(-vteq@R0~&!I}M9|NrXbELMZuh1;+X6}H$CE&HHcH=3O}xeVi=qwMQ4 z&F)C#K11NTH4I`YoL~l8IqTDNbbr+ix4?S?iFg10U2N|ak{B&;4aU3|zWa+FQ!-hN zU$^w5N$&UMJWoDOan-^9@L$sT{~Z!OAKR8sVp}%s`{0Jj1U#GZ$GQBQEF-&zq|$tr zRXqWAH3{qNqL{akoEgTo-crX1KJ{LZK3T+9P@esE+Oy7fNxXfLO?h^;<0-OtSQ*oe zbhDp!kHh-SXdN`j5~^nWIZ(F**8SUccnj09TNGY=#bg<>s+wcKrM6=~%4jvclM*tu zF6Evd4c3DT$}lnoB~ayCl?^SOg`vW@L^$GHJ$6Q3YIK=1-wh-#^WgX%NVruV*&TYM z=-JvmVlEk`x1_TcVKvT-*Cv)pR~+`iS`5h7zN0yRJaD6L;B4*7=$#u9fOp+AV}!B} zxKOLG4^6`u(zsKOU#k&?be8q{4REp2vKPwKQG?yarPq2|YZ9V##Si1uQhuB7=vG7` zGE94-%nQW{a{Ru70E#zxiyWJ`;db%!wM0 zNr z6728K4cWi~pHi(Z*OeH+X}!83D*8Cmrw(eW$YoI~F6LF`ZMd+VF_5TS{#a3xlYx+b zICUe$X`_cyrFQO6000K;59Y=COsnOxFYSMxDt{Gc^wIyvX4_B6mM5p$)3?sC%)rh; z8cIKC&H*^dCY!Zu3A+zHW+rGrKB3N2QmLTOnhEENG=FLIjq!58|6NP}_xx=^W-07m zUc*i6M=>a!EDL#oD+u!@1wfR~qz0;)2-`NJ`!lL0{to2wUmBLTZgOLqPuoEb^)1XX ziD3f4*}}vg$d$MJ63C<%?!T7~OEY78{_GL=vRs{%03KL9uiNdPO0{r|DLBGT5BLKK zBq~*n>vZ7+QV~;(#&4@s1LCg5zp^Le%Ltp|Dy0c8#S|QI`>gy#P*s=rUYsG+Hj^8j zk!@M}ZoIGp1Xt|`sUhXipTpoZXG0ud7oFG{?pfcsFU*?JN=7gw$W$M)a+^h%W57VP z+rR)lAQeF103VPUBk%w;;2j?@0PcVuhmZmSBjttX)r>1%=3lX$=71~&sL6vH$6(kp zUyu!y?7B_2rb9H04aL-*?YwQ^QP#OUEFObO!<#L65x}W2;m&04O?VD6I7YdEko=_* z3|h}EE|-Cr^|K(!WK|Dbf?HI_CM1YVm6`=+F!BKk3 zvkT)Hh$IbTslIS%i`)Pe7yuM9#4Ksba(mod{Lx;LN_#b`fkb!^LZaMx*SZ?hye_nb zkv#*ptsMk0-ySC&*fYislroQds0heM4>{1UapC0!Jy+#5CP%@rrj3iPvSAC%t;MCY zV}3Uqw0^IW+I!a<74Oyl2y8z0H?ZmJ2i08If_R43XO9r1sE)ZwVcK60cIQIe#_P_P z%l)yjsj{J#y=(Kow)WAH3IP-p91sg`#RTiIj9tLEgODu(`t15@vba zp{}ThF1}%}+mH!!&*7V48&<_`;lB}k!zxQ}!mJ=*u)a<@l@9BTp$=chc!1?HsbGf( zxo7mra4`_glDljeU&#c>daC66BMZ^M1Z=j0qMLC)-@pI+f!lcQ$BArW!wDe=Wni`? z)!<)@go5iM8sFkEM0lB;9c=y?3zjbq3&9sdx48+_$d93pnIQjmejc18NGX7%{JiYy zf8+1GWp(4%df}cAZ+zkV@;f?j%m~zIgmB;i|J3v6poh_{0B8`d=z1AjlMX~7E4sA? vGNFoJSN!gbSJT(J%fSn@2FE^N9fKnxZZGtV@+Ov0MO`ih^cL=}e!@k7yu^b0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1033.h265 b/samples/h265SampleFrames/frame-1033.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e449e1246a3b4d82e7b3990423f136b8f506b6d2 GIT binary patch literal 2012 zcmV<22P60Z000330nkDJ)I$OS_`zKJG6MjhC<+1qpg0i)z(I>I0t;P>F<%gaxbON?ShT!B%HQy#Iz{XV`}=<~^zfiT-30@4=5^qXdlfzL-OSiJOfL){^` z0-c%hoTmMJ-H-Y)%)g!{XO-Q^X9yRX2?aWRCPBZZbcZ*8OOv+>Hoi;05Y9gp1W*zh zxXeqWqt2rxkweJ(s+V(gpG-7p*Z<-55K%{QF3Z4_6K@brbGol*N<~MfcVr@)xbw?U zT({iGalxM;QS&Bvaj-MD+~|;W#UbM*OZekA)ZV&%ke15Tv>o?ks@UP%0 zYtX!v=F>G)i*#aoYX9#?a3*{}c85EU5SDe@5NDi*&DOntsBvOm2WOZt=JWQ4xNxBf z1!4&0tEv%XkIc=oA0sfO<7m1~Naq@-FdYnhL9Z|Lpg%qDo|Qw|D`><`14~<|flV$S zSj=ltO{d60VfR*eTEDcJUFPpciwZa+Ehiaz2$m|kqvr3J5{P5eadfdx!XBq%)S1n6 zIRR3HEzhrwLIEpZZ$V%MaJI_s#Emm@x>|;HDgL($(hyrDI6u8Tb&xzb`_?W)M0f#) zT*g~_P9xTnA$i{`V9>AgPshx*PA(mF0%OS`ES*JTh#k6kpC2aHKln`q#dRmYODq7v_yCZ6Q!~%xpFVYIrK;YNcD*2?j5J@jP6N!TL#6ha?WWpYR zw|w*bi{iZp8zu1c%;LQO&ZFr=Cm2?Q^*`bb1WrJ0tuDgR#dy}O#5$xy@cJwAtJ>-_ zjHm%oh;$x58;1mJg-_K>HzdxZE8WLS=xZoaQfeQTZI(@j?}73Bn!Z>GCQ?5=9H}rs z?>2IY{5P=VKxPjOPCHrz33Xb#>=DO|*tpGL0Lc7DI6Ik%i%V*axJEr=X%9eW@e_J| z-qop&8AM4-ZI)mqUTcY8DzklYwBml00x$*N)!yjNkcClJ)jEt(hK7NkL z;S65~;C|$DnxvnWI`0$I3R7`yE^sEYii5PXdZQ;6NGdrAZU=qFFfU_PR&)No<@`~Z z`&xhtarQs__2`pbz8kLHG(KmB5oDQ}CC_e{Ao=h@T8S#>!S8mA5rREwId~&$K&nfM zTJn$$-qBam=x1Hhc{eRRcEKL|YOFFR)8m1lA11dDHsge>-HAhCe1~|coC!TY^JDY| z@=jd8h<$6ZhwTKuSECw#4FnWeL&5z%NdO!r>A^WPw`tHQ&dcQzctJ%FI$IJ|(k-^! z-;!|Yprz7+_B_y$MW6?VVl`Hoit#>JlypIcg>^9*{keby1hI-rFE$gwb$e;$#eXPmlD zH^8mK;}VSGGCAll zdq~62CleDd%Gz0v>Z|KxhW1In_wK+Og>TXHa8?i!&yiyB36vqCSy?us6nd+ zNX9pMOafy!g##;nPW%{t66n>H9n1!V-|B_E!Y@hkQ)C9J3r-2{>6 zI%WBIkmMTYCsetSBA#2?uN<;O^`Rh!jP@}IlVlK!=4~_Cd>sr)H)D=bM8vagG}OsQ$~N7bQO56ToB%*1940`hzL4}DL;HW~(SEmpSO6#p z0*(P+=J0VPzvkqYK^e0TkEtN`i9~~ji#?Y_yGj*>wDwa0xawcavhUQN&0snUjbxd)#QZKgT27OEA`KSh%{lwf_p0zq0_i`j_) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1034.h265 b/samples/h265SampleFrames/frame-1034.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68cdc513b81908d9a378b175bbaa65f003de829c GIT binary patch literal 2855 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 FSAbhLcX0p! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1035.h265 b/samples/h265SampleFrames/frame-1035.h265 new file mode 100644 index 0000000000000000000000000000000000000000..092e6df0c55909d0d0b9cda6e44337e0ae5c5b62 GIT binary patch literal 1817 zcmV+!2j=(y000330nkzZ)I$OS_`z7ZrUL+=C<+1qpg0jIKtYQy0t;P>F|G$U%woTF zH2q>Usiws6$?RmXfHAskV3H2I%>up94}xQ*=D#Pc@{!(oxsQ$zg18z;AomyIPpKWX zx}I7Z$a=!}sk*1%ages3U?yxFg=F=57ypDHsgJr=t5>8enP;cKU50`3jD-2Jw+TP~ zyAt<~2xPu!WKZCl9u_6Mf5rhLBegI2n7WC>h-AJWh{KgkB!NsF2%_tLL*0i^;yG^ojLLS^Z7 z@#2X3#C}S5lHJ5At!0U!5ZZr8adPJrvKaC?>_Jh^m^GmY)+A}+KH{lD{4+L)PC|th zR_p)+qZ_z^LM|0p#j!(=R{IsP6S5yNIxgBh1RSDo7rU$1YFhkB z%b{{|Btf7^h{WX=UgWg22nbLFPjV+7-igsK%g`2aSDYAHi9cVv`%3)3_;3n7pj76( zKis#_s3t@w{y;4l*)8uNLinZi&#b5X`q6=O{r`aX>cqHkX#=PVjFDk0X@WFB=aP?S zsATtJTRY$9X>H{hK50TSAOT{GCEFE(-TBmO6c?T!r*`}5$^{oKOAUvI?x~iVs*Zqv zK0T)IXFEI6$W|Oqyje&vinV4ws=FHCuOYV2g@4ozY5HNz_plqq04Ck-3(WnS1x5RP z)^#4`7>AY9%US9b9 zOWStQ8gNSC#me4ThMF2^1JB%O5zZ(fX-j+nUvSHMqVTM?t?A^R-@oZ9vrWnzLHR%z z!d7WGHe0gQ7qrz=r}%c0;49JNq4PaYi=BF92X#~R-vvrcAyE%7F8wf3N-btSHTe(6 z*j4RGv$E9Y!t{BqEvBK^w5)s>@HMM>hbm=FYH%v-Q?YfB*mXEn+=wC4ZPo;-Z}7ODvdpDCP3$Rw zosEg~vL&Y^SOZVSZcx zlTa`J+uk{l#p=|QD4pW4f;YBr?Te&LP)ee943bvdlI2wyX zl#ulV4OCgslUsG*CO#S8EX=TrL343zTZ}m$eff1YruC6b&iM=b0Df8+&(>bCa1Gu5ec%7e2IZ>iR;^;enRD>ax{r5lIc@#emu0o~Gzto+Fe*Q7yoZw;* z;Et$D)&8_HVpf<7^mVPjs%YlGxm6D+EKTtBVhCkNNPFaz1lHzISiZi-I{O7h2#}nR z!LaX0LAevk8)^BL_*>84s0o28L=}s|U4E*!>W%6F4KVu=JPZN2Y<>)6DlN34x+x1p z23$Qy#3^)c%7<6%S>Xp)QjI+RJc)6h{o#;R(D=3jzB?1f`uOWmU5y@Q4mS#T%(tf* zjs5#Z@-vl`HYE+q;f~3?y)W-WxEkVyA&#|hkB}QJGvcvVh z01k>;{BdIG>xRzLNw6#tHn{fK6~~P--e8x42$_$G=^4D2?kgdyf2q~lSL#HO7N3{% zzSXlBUVX_SJqbR2rb;FVPYuV{mSSVRa=t>(}(ZB?3 Hw0>5ApTmKV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1036.h265 b/samples/h265SampleFrames/frame-1036.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3a4e72ecdfa3b1bdf546d729e10c1ac630d533e6 GIT binary patch literal 2802 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 But5L- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1038.h265 b/samples/h265SampleFrames/frame-1038.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3fc8f40dd0477b5b292c0fe1cec285ab4bbc3627 GIT binary patch literal 2108 zcmV-C2*dXP000330nlmx)I$OS_`zJ;I0FEnC<+1qpg9>4z(I>I0t;P=V*3z-xbON?ShT!B%HQy#Iz{XV`}=<~^zfiT-30@4=5^qXdlfzL-OSiJOfL){^` z0-c%hoTmMJ-H-Y)%)eeHXOred<*_J_(v(2&q&3yPkgZa4WR~ws=e0Uu0__ zXNSS3+Gp!yjSIO}pXy{XCU0N=`%67(0M(A!NyjCU_DKZ43cVQ&Vht~5NF$(+`Nn8_L&1?D;Se!;?=GC?? zujf9~Kmq}8y(k42|2a`ls)}SB9=RahOC*CUtD~Z87E$gRuJCnS~`go}LkHxvFs=M}6#tS~7hi1un20MI#KSu(~oW>vxD0()e|Z z#ASIe>GDeqdlH(K?_>`vAL-1wta-z)B|y z3QY08;5i2sANMwytr#sdyN{}eH}X$@HijK$ zcUrRawH}(s{tSPLBTN@N5$Zqp{%`317k}5A*7Ja$c!Ev!<(G*6 z$Ma%EfO=YUXewKNK00V8`2mCLL4Lqgc;~V-@O95Xsgt zdYlP6<=8(5RV@yL2SbuTzfSd=MF_z+t;dVfbt|YPCKZOLpOz>#!65xdUQ*r0kztyk z?*XwMMQP;KhvW^X{=NPqs6Kavx-J+i_x@|*Knmz9pC2^*G4=!pYZa!*$jYn3=jiO7 z5XJC*2ku8Xs!91{uJJuUr8k<=X7tP9RFWe9h~SDfMkL9}!Nie&qFu zoD}3~k$GYT%I=qTH;fT3s5~1i>@G5z*&J`8=SlZGqK`dq)(SXS9jKBAIQ=+XL;Du| zlKvs}uErnL7b)J1Va&7;QocLZPObmY0)u$9DUU$04lm;M=OF^n{MGLOYy}jQ4J28} zC@>=%q^fTn5w9m+d4bbw;F3{>*rqTcmqrcCb_+5}014<6><@oV39BC_MAHWNNmsRZ zt*}2I{=VgpitaRQ9&AEZ0ixt{%#ax2APuuS;!Dx`@xzD{XgZ;X0+Xj37hRJmAw%S5 zS6f}rCT(UN88Mr7Cl{LdikFr^dO$$5+rR)lAQeF103VPUBk%w;;2j?@0PcVuhmZmS zBjttX)r>1%=3lX$=71~&sL6vH$8hbrRoYp5t*n9n{KVlo#XKz^OrTmQL7Fz*4i?cC z608${(HL`NA=z&*szw6@4Jkt3Mi4j>w@%NlbJ~&LktZNsR|ejcp5q-eBqPrk*$f_r zE7>m3RDGAXeAoNK;fBns2O`6|_w0?fOfVMP4wIF6@@4uwsA@laVFkzdVTuE3`*Dym zUyu!y?7B@iv{PUt+Dv3>AL`BT{0)si;jq|dEe~Bxbf1JuznEt#rX<+&Q9Ldvj zhtPXHPq(LHYH5#ldLgc+BZr3lyVgTY%!i?2d#Yw}W;Y-cw%zpZ+E%T-UIT*-! z!qGyeZmJd4P@k*>s}qCj54A^DjEo}z9B08OPhzjdAQ2OM0ydgtlvq%O(^8%@{mKgM zL~P*H4OK^E+{sE{<)Eg$NIM#OZIUFeaJVM2^I8kD)b@eGrf@_s_T|t5hOkVQqr0mG z!?Fj0?3jqz^#I%DtPfcW_W~(oIE9gLb4YlE2@0KtWHMEnvRiLMh#0MhEUC)y&_+47 zVP}7J;{O{xXZKRn222&xA_Mg(E{vx z^cc_VlRY<+zQ3<9%kU>1P(*?mPASc zx|oKD!sq}q5^%7iS;0Z#W~q*RlqLl?$A0Hv4Yn#KtSj!6dqzfMYT=0=AR%4Gz!ON=bUDaX mw|Y96gb}|ldy(f}JfS0x0M%lPY^72j6#x literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1039.h265 b/samples/h265SampleFrames/frame-1039.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f03f7114fa04b43f6ad426793bec5ac62341cfcc GIT binary patch literal 2906 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 E$T*XxQUCw| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1040.h265 b/samples/h265SampleFrames/frame-1040.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5f4be302ce747e0313241de8983e1fabbf0a2a4 GIT binary patch literal 1863 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1122.h265 b/samples/h265SampleFrames/frame-1122.h265 new file mode 100644 index 0000000000000000000000000000000000000000..36c410a94222ebb0b13d236748784e7320db960d GIT binary patch literal 1929 zcmV;42X^=X000330n-Wp)I$OTP{CNrP(w{1I1U2w{VU|# z?s-7-zU%Zc(fm8<{i1bY;S8jc+K0<(qX7{a471Fq(S>_F_u~$NgswnBfo93WXtiL{ z;-~~p42OZf)E4P7Ccza19<`mDVbK^5 z*dZu@>i1yN$vcW8g#n;$mY{Ujmx(_!lpHHdpl{+Mu^Kbx`5%+JA7O$T@OJ-#1xAbE z{nC6=7c$EF90DSM3tjZk74{~Q`y7_rp`zul9Ly#_mWfcnEHMc*F~XKQNI+5@k*;rA z3$MNU9tAjFTL;u6K}+DC8nTQn*butw(9v`hMbApF5-+B2=NeHRZedP_Y_{biYs;!72Ow&-4l0ec9UAVnh=g=S54I znW)OSd)%pX@#CKc^5)0os8T}ujRx$U-J=*ACCgtMx*~;@e2SktG7+I}u{%KXrTq}*lNA&|R zO!I&9Nqc^0fg)g;0Eh~s5X+_hN%1+C+w;l~s?L`;`x2s%7iI`&|LC@|9`2@UQyNKxw%M*jW}wOW9XK} zlC_fr=N5 zkC@WdY2c{NmovRbF?VniOTvPX-Cl1xwWp&_vw>sV$u8a9ix;00B*oo zA9e{-!U)h2zmJRN|3FPXW`EfxC{uK&Bcacp5Tl(bsMRqU>=N1b+?Glc6T|8=#EesZ~zn#SguXb;TgT}qS4etxKjqu zw1W(@(19UzXFPV6z-E%+JW0G-3Jo2fzYNaym7V%>tI4M<|Gy9kr6c_ffcsjk_~bt? z8>)9_%j;@;bu~~(bbis>aWHQt3BLc$>68YjNzV`U4rd|8GXCdAq*YWcWa!&$h22Y@ z_dl0hR!6PKIOlXT01ikc&0-5%p&Zr$7PsGlZor&=N8Dd@aQ~7rn?95@e%Ta!08fuY z@3|4rxg&7zbyW%2oO-Pm8|kLk`uDm7y9>3|4GRv!f+0O7R^LN zrI9!3WsC}O&0ty~AaW$FCB56b&&ie-612mgGBZgH@p@s5vJ#Z*i_av5a%0Apt-E-N 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 Z00HkEoR|Oy_#myQ03cujDVS^kE+7_}%BcVV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1126.h265 b/samples/h265SampleFrames/frame-1126.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9dd6c804edb48e7422c7003ea785f0521a32b5f0 GIT binary patch literal 4364 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 G04^XZ`*Z35 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1127.h265 b/samples/h265SampleFrames/frame-1127.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b7ed7f3916f19ca64ec46e4fa1ec111b17e1339e GIT binary patch literal 1809 zcmV+s2k!U)000330n;)6)I$OTP{CLVRs?}`01N{Fz$gj=z;Q+8VbH_F7?b8JI-{Hy z!&h3=xt}w?@7MqFNR;f>sjOygZNkXtrmiQ2E0-DnPvZH0{%@7x`K*6~M=}2Z^Zv~J z+_fLGYhHk!2+acT%h+4nV7VcQ^=tTf_KtFt#BX$0@8z+C(?9a7|L@1cz_?(nk{Fw* z2XIeB_D0~4nV#0LQ{p2uutS@KQoaQ#!1RS%_UNjXS7?)7*j(Q7?N+vk%ON*OJB}*Q zExHo4U;?y$cD%4vC~^HJxG-&uFj=7;0UP_h%Fl!>x{eyd& zi^LKQK*W)BJY+3o7QRJf4aC5BlxV&S+;hX>b0V9dfHo)qv+)^UR{R}tpsvN{qas>^ zl0AFsa5%d~h8qJy?t-cKBuNU2=mEB6tnLJdt$2-VL7U&mwC{dI4XVsy;7*F^`qAvG zJ>@GgIa_n)AH^0BW7TRtxC!6^i|JpyQF+Myy=K-$x?K zAI`o!^>bpMOXf@Hp0DRuKUX~eSkA2crtJh;82FmYQOntfj(m+;zq*9xDr$48%gs_& z*IrzYGo#Vdg?saLz$-RoWqul6NYde|oEU{~xOAcXWv77=TG#_o{wY$#@FAk)biniY zxjarRJXLJkfUQkrGgX*&ssC*Wji#e51Q%}tN#Q=F%8iKxPkz4s6)hd~oB8c!(|p_c z>+8S)7gvWL^wCKatyxMB|MqOHvbbWn3hfU&DmmHe*AR|?xVlVK|NTR5!?G;l*1kyL znCp6aIWO|x!e=hm#ucVq&p>Zsw%pr}OW}7FNC`+F#Epm36=zPFp(`#J^j>t@^Mu%6;|0qj#Qhah@W8iHlx7wg>VD4}InpH}frQqr}Xxi7SYLNjXa49$5 z+jBE&%lxl5chVPvfv}IHV=i!s!>HPL00i_{9wbzsBhYlf3`~syCAZ)H5HA4`|Hqk@ zue%LLw0h^IJfh8Q{eekkAGCBNiEv3YvA(ZDSDX4yYg8dg#_~5lLc)%}=3N$#0C=vO zLKs@2>cr3gzw`kypLE(|Q##}Q7O?|BZ&mcRpID~`*7+X?{@%cq%0iPMFHz593asx- zVegOv*+^Ptn$D*D0Tp%hTKHRhQei96?;UTNs8mw!>nS#?MJ4wA`DtyxMv$|mz5Rk zm)xMp^zYyd6|HJl`DYdifxsh06idBuH!xc00RIMuqD9GrciTspMU@`;3=$yfTGg;g5qL6!~gsV zc8r?6lZ2cEWlEG>PIKmKkRlYIp@fakNbYHT4DR@*NyNeMo-hW3$fvGYL1_*4^#R&W zUO!OXn}R1CR{yPGz$~N0MKwYU9dsGnnVfH|pnir6soZ3hz_)b?53Ok?pbCh;FIFzp zwZ9njVPO68ZC|shC)Xk%a=c1OuVIS_k00;q`SRf%0pk|^q}p^5TiN31gC&!!C5tF2m0GtYlh+~(cVcsN$)6h)RAD9DDK}L3-Wth zu~S%oHqOlJS{33-r-ho5C8ysH!>VM7`L|AgB zJv$#U;)Bq*ggo9X`{a8M6q4R=4-$S3r^tK&jWu${Kp(^AVUr6+Z(m0LPkyU6 zHQriHXt5t}PTv(igQWGsAvs*B(C-Pljka8#fQQI5Zj+>1nKO~e!d5y2WVOoOqzp`@ zfpDKEPe?-eiPRxpNMGN@>w8#n>+W$##GM9|8`wG_KTg(nR{=ZEFU0;KvOv$2Qy!qM$~Z94e28UO$58^|}1 zBjw)?!8Waf25<2n?X?T|t1op40UWWO0<5Fg6`34%jY!?5>R$VFMZzxm(M^cs44PKgj6{t2^Fy#OC1JD2f z2TU=O@E`yI4HiD~001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7GJXnpK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1128.h265 b/samples/h265SampleFrames/frame-1128.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e247a5ba2ead385c12c22cd671c8ca0dc3ce6e60 GIT binary patch literal 2223 zcmV;g2vGL`000330n<7E)I$OTSixUQJOlvtKnw!_z$gj=z;Q+8^pSQXsubICpZ|aV z*9*{AzLgqK!C078N=>Tnh;R;h(sNlecCVF4C1i*|6(%0tryX4zsgsB};hWw10F$M^ z-sa(Fgc~4s^cFCxOvFtURBTX(@)XVKVn@tyTcz!l0$Y~LW8oy0huQmTpEluO#*`8v zsLe1hhHC5Z6T>vW)x>dAA(2rM-CI#OiU8l%Q+MD0_c5s0$t5;m$$MpJ4h2E?WJ~+E z2d;_mZa4(lTF2sEG#38|_wgG*uuqK$W(GL+y(ZSAg+0MqM$M!=mdU1lMG|aek@}3XQ8s%Pl|5emW;}9*=s(BAB_LH3k-Zc5G1k*KS!n%XjV~D$b7p zT01~CxYA%H0dn#t2|I=EupVH>fm}c}LKbw=^Q??4#NqPZ;;?g9Ro9_&Pbp$(6yD+NV#2_d^gb(nU6mcZQ!Y_s(`s6gaF zl4I`s?5Wu&03o;P*6#aetSrEFvO=*PF~nPAb})ttVh6=%}BL&yE~`&0!QGT#=GwdgP>yzxHhC68k1$B zhZd+LWYTKpFX}oe*JJoYq-<4Y#bgjlvE7+qi3AXg?|2-bVCUIX@gP_9$!$&m02Po} z9z*~-X7DCXp$d9`{r~^k&+McEKOc_$(!t;J{YfyqaVc1r{C}^1i0KcV;cknD3jP0@ z_<#c~uKgNfy7q&aL^^80#m72=PiFEr`q(_DF4FaCha={F;1qXRdLJgZTs_qt7^BSy ztsA)?JE3VJ33b(2@MKc!$H0dCI!xvpF;Ozx;LQX`(xT7Bg<1Lnn!zyP}Wb zi)6;99XKow33b^MOPwL(uE?ai;bR58D4HjT7~?vxUa5@QApjD%kPLnw0uCt@GrQe* zEQIyKSGMJWNY&F5+T3OO?8fsLN}{Q=2$-E@LFw@iv6e91sJP1XV^Cp)qL$9$uy_NN zQ8Fvy`$=F$ZFIn8Olh$qs&|qV$9wVY=N2iDFh(|tsl0R+M4hOk>WAoeb=glwp*bV~ zgme@4g(d(4CqM(sljBtB;Qn5(52BIqLpPA?4-Chy_8s%V>Qed2Ig~f%#eFwaDFD%4 zt6(N@*qcHk8D!VB^aI6TcSkf`W_io8<9rcZJ~3u?E9QF^WYs%SRQh`Cm^?QS1BzI! z$QD2V06)Mb(TS!200rDBu?;!Et4odoDZl@If8+}b3gb9gM#rf*d-Sx8k9JBbYl;95 z4M&S0HiR z&8U-Kl;zkj#L4?t62N|De}$~e{OPg~)!>~xiSbY$Yet1JYi+V-R%>+_Ts#xnU5Nb#XWlDZBL!Fnx7g72+{Vr0%(9NWXztwt2xwixf z3qv_CFdUs;5i!AUvkg`CuC={&Xw|X#FvMRAs4AhSJ9yoaIa*0#=88X0h3QR?mW0@^ zL1}=s+4*nn&I#puLuDr(*b=6M@Np+IX|2u`9k~Uy zd(SBiM_6H_;Z`8{C3#ohu8hJtb8lo%Fa`rn?6fS(@8a4=667A5v{NZS!HyOTud#cB}V;{D5ul z`PuL{(E~^t^M1iRvGtehhZ|bybnx^k(phPr(7~&3;Cso6znNjH|BG-29uOrzLk&0K zRLc2WffaFR4b?lBaf9m)pf8slZMvQ51E{5RlNueQL6R2W8hst7^1Rz?9eo(Dd!OT> z9eMJbWwH>5i`FG)*sfj*^t2~ZNnRm{Y7&9t83T>AYtj*WlEu`rR|sF;0t{N(000p% xF_Z8h009jaKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+9!XFOmQN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1129.h265 b/samples/h265SampleFrames/frame-1129.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2d9970899a3fdf02eaa324503bee786f00650461 GIT binary patch literal 2519 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 K0x6hm04^Y4&uYj3 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1131.h265 b/samples/h265SampleFrames/frame-1131.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a43d0e47b15d43d6990bc5939d88746707097ec2 GIT binary patch literal 2903 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1133.h265 b/samples/h265SampleFrames/frame-1133.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bd67511371b04a8a879ee5c776ac2cfa1bf91ef0 GIT binary patch literal 2105 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1135.h265 b/samples/h265SampleFrames/frame-1135.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bfd44394bbb7bea419d2f05fd8894a9d5fc929e4 GIT binary patch literal 1886 zcmV-k2ch@?000330n>5+)I$OTSixGNmIMIcK-T^MpeP6eKygLe8LMstqBGHgm~(aa4GHt&CB@QNnrz=0NsabM>!#({KPqt zCWB3X-aJY@z78)sDxrmQx|1w!t~1%j6-2XV#Tt-;zk>3&s6r&5>}aT4nO8W z4Ch2(_T#eb>|nEhd>7mSnVBx@x&1Z8~sf2t3) z$Pp3BY)id+VWZD~!t3nS@fa5@YrU9rnbnPzWjB-7h;F?s99!j}d&ZqU%MoR9v*PXQ z_n_cjx*o4uI1eEK9DRNn@x?d;9;Mm~q$1&YG27EwsAt?vO|CI3th;nV>M}3oh_T)} z)TO4#Cx)_Ptt;sGcpF@+nne^?A|iVO)pE8Tl7k+vRJRb@InO=+ zkrVrAuQBrQAA{DB^;S$htJ!NtN-Q$-3~6`KB0t9ezyFPXcj>%5-k;_Q{3Gxm&HpF& z{O`SHmO^dMr64_se*0OHNRAUWwJ*x0YN_@dq$5+b(L)eP_D-jRZw@z_%AHFE7{LvD z>-cNs?FcYX%~i%)JVDbrjX9rQaXML&Gq zL7RIgz0#Cox-!6&;A!S{W}V?z!m=^4;EUY9a_lcM1b|7XfZdrYC^+&VPSgWbAUd6d z00093AFx;-b_io)cduvu|No0B?uN@~@qbWz`dgUu`9Gi#`Iq76rf`BluRt~1HL?qF z^;~gK7|vDrvV^H+6pt;!lvzOn3}wxSK2oC}?{<32?(DDmm8Q;U^+|e^9WOEtn_gE2d^8W`Rk9SwgS_u>2iW zQ>;)?T64nt>FJ4$efZ>t7!pXAZ;qBEp2~4H=NJ%m?y$4%2Oo!d80c@-nBWUD34|Ss zBi#{w0X98~vn|EzHviM}PsuoETTb-(Ne(ocyV`-GE+g@kmhP!4nporalD9&06GmZc zpmB9MwnJ$)+2QLZv&3D>T~cWa24+8QilJA@Os+p8;Vu93$tPG@zs~&nOk;x5c^xSO z)i+Y0(eEAXBMWVwPEfD%k4DsEYYh%S0!CP^$QD2V06)Mb(TS!200rDCD~l{2uxTj^ycv5Tu+7N<~TzN~!% zvqs!10t#b`ZDtK@!96S){I>9s!=yjhdk^jjT?s_eu(EqjAOR`+$z`tqL}%0>0$aei z0019wGG}a{n4d5smEK9**$h>$XnO}4^wLwgZ}J$_fAVyw?&fcdBl20)k+8&@x>@tD zw+7@f(q?GXtDY*~+vSrn%%a5@F+~t=P1uFMQCy~lbxHO=F|Ejg$DVkwS=h^xZ&QCH zQtP;N{`hHZHh6bss^0;8aeClHPDpABmaMk1 zxS&zZ-IP+i+TV?rhcPx7JEMk76C$Sn>N~H>_wg@x z2Wzz%nS)JWxbKz&vgYdqPwpQ}PtQ33%vzhk0aGcsJRsdg7EFTi!olY>KhdjZ=6ZpU zI$O-QS)i=>iak!Ma5=Ym Yd})B3fG3eW0jn%ZxCaah7r($UVAIN*?*IS* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1136.h265 b/samples/h265SampleFrames/frame-1136.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a9bc1c4a308ce1b6cdcbb767d495ccfc1034d48e GIT binary patch literal 2916 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1138.h265 b/samples/h265SampleFrames/frame-1138.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aafd84d8cdf70ffe764255e9ce84a115b74e6c40 GIT binary patch literal 2200 zcmV;J2xs>I000330n>^9)I$OTP{Cg7Is^dVKn}DkKqv|Vz;Q*}`k5S*+i{=&fB)AD z&{n>c8c@Mlm{m$ms_uwz4tdgZSu=L8l}IIIh(Hx49^I!MT^p&Bh&bV!-TDBNrN7?h z;b(*!Aa?W?FrbZBclRyPRX>osg76*?spgh?gvYq=8zP$7;CvPUY7r4cwG%@W%a&Jh z&3qkfN|5xaV=psvo&x**kyxOKo^$%jZu|fK%S)2h?kk;p;{Xd~WZ0CrmykZ{w(3RO z&`6>RS&&k!-1BquRLKTi#ryELVj5$d|3&yrb|u?OEP*KKS0$B@3&kN}38*|byjsvE z#l=`n?87+{3Uzdu85$+nKvEt}Rw?2gZVX@kkJSwcI#DyII4LC|EvSNLM#^p#U1i+- zIE*oKmQx||LYd~-GeK_VafruLg_&pIDThMpb#6jiXQ0uFOMlagd~LWpvx-E6yoy9o z5s^WZ?-g6iOF-|mSC+SyC1L>`2TW1Xo=Xw;Z0t|TLO9pL7xVQ&k_6@^B>Q>rz2JBE zAeLSfIMF>esAp9eIYPyZ>26TegevXp0Ft=!wnL2*lcc~UVMKt|R>;aL2{O!6=RQKqSs!hSy(&pH*;|WDXh3DzD>`o2A!AsDB3fnXNBSskF6GZ#Gojc`@Z`sc3;4_ zZThvlzS-9cFY#=JtY9&+zEtC5!MlF| zpUYb#ww`vVnlvKBMHgZY1}}*@Tg0)lg(#KPybtUgGuk;@+I635jy|? z$~H7dc9ZBC;vt@Na!DN7FdL$l$SD!T*chNCljBAh1+&AT00MqkA9emd$wCzL|NH;{ zwV&Bb2!1~u`=5KhW%`icc;ZsAFZlmn{}I$5JHp)`3>EwTHSqujTV47zxhxtEWf1AB z2MW9@2|b(0-|JxVvO89lsvM7*_kdB|W$1jG;c)j~ou82I09ehsc<{F_dhUuphAn_PoR3gg91`oYCYL%x z$6b+0b;3jgN)a?q5HiYzUO&|tv_b$SaUdA{J(c=PIA?YK)R_o&UHO1HRvK|PT9B@^ z?A^eg?}4Sh0M?f7aoaYBTf9k+4Ot4b;{GZGbF^y#a2;EKKGI#nDG3Rq>U=a!RZt`g z8VW;jpeO^n#{RfG34s{hB=v15FL^!V%pRvbM|WM6^lA)a-rzeH<933;04!tO48|l4 z@R6wX691bBCBA98oBOmH825PmbG0cJSfj8X2`}V5aid#?qY$tJlZn_g?Wq|`XmF!P z*%@**7g?Ti892oRR}YL_-HQ31#hEou)MH-wpMkdk00RIUFj%d~7C-<1Kfoo?iKYMm z1>7ntjsO4y0NQ{tPkjIY0|We*<|OQV(A8Tub#x}kwAvuy z=J3^uwKEsVM_({%vj0he>6ctTT6`8r-6gXgBCfAF1zXDu0XW>^SsXq{BYaTW2*?H{ zw-LJm7qw3!{v5umgU~ByD$N@s=#+-nV~G;Hf92M7iZB5?sQlYBdw0MLSJ*Anuft1{%7wg#ws@5hK0RXh5C9}`!z zz)GVbX}!19oEWMFiK(GVfljYvJ@gfqvS%*d^w(@NBQY*Ba|Z=a<#CTcg#QVCKvnrZ z_EUB|mm#E;=vA?#4H&+P*?vY;Z%4l6{ymyuh$A(ylA%_nm;#lhnrchz0!k@)}P27k=cTa8>29z#YgdXtoTJlp3Ypv3do`{&XvIMfR zYDJ2g(#eD9I$RvMfp2jiBeJI5_O?;zGsqJ!}xIH&Md1I3xio{ zg9^FJRz72L{;DFy>zDE>#}%PX$!KTPa#+0Hz0#3e$%bRyducv%7M z`2Y}VwMiaeqa$Yr;z7eb+ zKSu0&vZvi*!&w?vSL%JNnq3|lmN>Vs69~HSabf9p%@_ax8<;ig?!TLDz9)Uc0Q!JQ aZS430?iwOy06{<>2W5bvfCM@%lmyJH<|ZEi literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1139.h265 b/samples/h265SampleFrames/frame-1139.h265 new file mode 100644 index 0000000000000000000000000000000000000000..390d6b1eb555f3d5471f575f6e0ca7e5bf8c4f20 GIT binary patch literal 3015 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 J1$d)S3W(_o(Fp(m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1140.h265 b/samples/h265SampleFrames/frame-1140.h265 new file mode 100644 index 0000000000000000000000000000000000000000..793a4e8176907fc0edb42aaf534d1eeaa9c56b5b GIT binary patch literal 1903 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1142.h265 b/samples/h265SampleFrames/frame-1142.h265 new file mode 100644 index 0000000000000000000000000000000000000000..486099309012f1565233704e45f624aed94c005a GIT binary patch literal 1516 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1144.h265 b/samples/h265SampleFrames/frame-1144.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ed33848a5b04d2cc72e984606572c70e237cfabd GIT binary patch literal 2607 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 RI02O+9DoJX1=Br14mf2QEQbI9 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1145.h265 b/samples/h265SampleFrames/frame-1145.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7c3a324064a021e99eea60f5e451c221cedc1b39 GIT binary patch literal 1733 zcmV;$20Hlw000330n@?%)I$OTSixGdrUU@sKn?=|EvO0tz;Q*}`x+p;<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxy%63ye3@5;qRI_g z+CUAh&x~}`BJy+T)}^p35~A(AMd$ed zw=t?O|D8)EzRWdrST~cta3a=wg7RU@c~+PfQkP;|EO&lK@21c>qz{sl0%lN$AAzY3 zO7p=$%c-Lpyk-EG9}4|Ji{4a75V0?$Maxji^tK;lQ3Qhj@*2NPPeD44{Bt8uzhuii z2;bZs4q$coSAe{#=aT!`!aQ|IxD@vSX65{awvJryY8mRcLmPXeZ&?Xgv~AbjaCR?e zHLHQDUpZvreL8Lns@a@E#PSN(o=}iuRNwCp9y|cA99+fY%wbLZXz;CA{1bg4ON6~@ zAYW3?fm@CIL)T$xKy#i&ULU9-`#!gXX%5pL_NAt5PP=Xa%V=q-=%ghkmb^N5O$+!s=8hI1$KGztCykeB}Uyz*CqT*qI*?QLN#C;>aeLT z0)y3D!S_p#_Z4}i6I$z@#>ZDyLH30*X;K`Ea&5`%mW^N|YNp=O@!I1lI26AOxnsO_ zsZAY;4}oOI&R5aX(>RFZG!`%Ld!nvD9T=g2dYeqR>2tk+5O;x@KpIyW%V|?K&;DPC z-q|k+tk;5zpnX(sLz~I>R>NofX}=aO;MXT&F!F63igx8tOUVee_L{%z9(cH?1dZyf zIB(p%lZVgzV=kz2+aj6`bv&WQOu+Qj|1-|ZiP^aVi0fxP!?AOqvz*6YRee`X^OsI^ z0DYLT59Mk>st?M8X$~T1^R@R!6F4!zI+j?C_PQGZ%z+O82DWD>{Fu$NBoYShL_@v# zz==njvb@(P;kJEYcH;_|IDkT;FxNJlf2g+lN9BiGtfXwk(6ub9Anf2)(53xdnY*S5 zh`9DBiorPQ{HB{ws%X>%QXw!^s*~I`g=+Sna!IfYF;4HAEzPY$bli_*XNSv}6!)or zkEn$HH}5W5C)HJ@GTo5yhQ(r{kjTFb>=kNra$k?wl+g2^U>5$Y#~|MaTiH9uWBEP* zs#xxz000K0SRZtoOZVQ`2MU${zyIROyP>k$JSU_c7MAUN{!i!xK4tiM=cFKzE6@#g z&1`}GGOmp%3=*pRSwd8`I!Bh)iY%ak1~TTupD9s~_q#o1_jXtO%GLIw_N01A9@EEU zJc$7z>PwW zBFg4JXQ1O0yhRY@r}y7ZV_$YTA&v*Zmv3EG6a;Lb>uzy@4M7~{+HscVbWa3k_jl#d zy97#;Tx)Isd&MMVpfysI0?WudbgTCbY&73>W{eIRMf%V?HGe85qLDf_R^JyC;aJP2 zuQYkdd_>GGbPg`3IoA^=+dMsF)@)q4o3#uHTqKRF0Q$a4WpVi*32*7Qk9hBrm|JY}a(N$=b>`z=IYnt|Bwz#fSgptwKmY(gz$MX%rT_p1 z+$t-M00093+JG@neE@_&%*EVs|)K@my(_X3yhOODpX<`qZz1JnX6ggC0HZ~F9#Q*O8xh8D_S|$TC zJ(Ea$5pMXP-wV68p5*gqxpN_;qjz}{th$+Md106&qqR0^qylavHXoA0_;zcm|< z4_f>!$KRDn@<>-)VorA)ZsxkKdQ04HVNvWSN6}5rJWhm&1kD24DpsNV79&H$gK*C& z0FneS3LFxvd8aSoXb{*uk0-)=W;ucajOA*21V0s!N9mVH&o4O z#p*dK4^@1t*~$oT#8T b|6l+C162sz01Y@9J(vJJAOf{M)Bu%$RpV1R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1146.h265 b/samples/h265SampleFrames/frame-1146.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5e93f1e712d4ab33d87a29714f183000e4eaa424 GIT binary patch literal 3614 zcmV+(4&m_t000330n^F<)I$OTP{DtlgaD8Z0suG$0Lvr-fLL)w>4kJ3NK6>9aM}O9 zqxqU4HqxZrOFjR~Y2ab_tqo+%8Yx+WI(*bg?(EstkO`=eHPRe?@KkniX&Oi>Gkl}i zSN8~?RCPs56^ZP%>~byQ`SlNL6NZ@sRww`B-?{(*??=gjhh8{CT@U}*nD?FsKs@+3 z75!H4-aArKheaacf!)z8Rt|S8m9gW)r8T|i7FklmHesT49HGX<6Qqt;to?w`gsJ8v zUV%>NDNV_^TR2>Vp3Dh+lx<2+*6N)?M8K8Ce~=q`GQ~2Bsm}TWx7HZp)woh^%dU0l zxP85Sf$=C^GN5;kf!7;db$66_;TRlYV8po`lkD@(eY;&KFm=`DywWG&(Vu z(}UB^v|YAY)@-|I^bC~WsKk!*FWw}L#=VHIpD?C)YbFwjO=zcXZgm3KRXYVy5EVEo{_iM#iFD8IczZ9=hrt_FBLh zwks?wcv#qVurx>X326Z$%F?F@Rd?DpT&!7L(|0j=)%vYCe7Po+bCq>Z$XI2iUciEu zj=$3GY@+mejgSW+GPCOVFN7P<{igxi$|7)aFV>l4TT2TMSA;x z6~yP^6$poXm5lUao*C?xGL^|_Z%)A*QI9z(B9IdV`h)p<%80y^(bK%G%IKb`IfCW@ zN)n5@Td=CqUwsFnF_bl|RyWhJ3mDqq^5O`i__*?M+CrQ5nDQHeNz6%f`iSq*3Q#%b zy<+wSH_@YIY)NI&(x$XRbRVHyJ?IcGDJCU!JZedvQ-{_THZ7qRlyl3f_xdI7dslKF zzni4Q?dmC6!i+3*N^f1J~(NmI!_FE zAesfqF}CNZjmgA`-?Jh@oiIvBA|=4L;o+6y0e=9Hnj2H}vh~|LONU2Zik1fbK~>M` zJI>6e5eZa1Os@9?Ow7DfItU;)98LHek*FMK;@#Kg_sE?ozBxLPXE4hRMz|?+-r7i^ zHD0ELN~~uI${=f@*#uXvE!mU;|EiY40nm3@%wVfO6+sd_MIpq#)MrBO#NZgb$p%0e zKJ2>Z57@Ay`U}Gh>bqJjFHx6%O(L7~DSqP5ymFwq*^NdDFa=ly?~8LuZvHi|1WL`} zWNtw!ue|xvupF)Cr#R1i@jKWdy|#gn{CCO>kE=wXXs(x<3Mh0%Ha23H{!Ur9e@XNJwtbeaUiPDUN@WQ44-anz= zM|^Ln`m$%rT+Zv-A6b2;>Yp3dc}G)7=O!PkAGlD(tCtvIpAtYnd76B1hX(Bwv#gFj6V*r?gbs`i)E!H%$ z^cU(7fA!%BgG~SKOR>S7>}bM%6!ib>Z`R_EF3nUE$^? zU#ujcygdnXEvM>WgO-+8$gt&=!fpP5aO=P*lC&xGPH3aNt6285y7>c}oxoV4sLv}F z{NDBIzYtF7*5060?z%JTSvepX`r~67PB^_*vAg&VFHQTVulM$S^q+PqJfbv)hfw$B zRuBA2=z8MIe2@D-90z`C!Hq|a>1OTap49EPA3?eBmP&<$yA@@~wh0?d9Q)r>K1SeFlI8HF z%#7gs>NE+*6W)6$!lz?Z!uRWlYlr)U0vQnQs;``xz7*F^2)%2{o^jrbS{G#e zIHH1olN?x`uA@7`Md1ACmj&A)ddT%aeNmVJdincrB_}Q}REB}V->>glq{*Q9pU$fEEfe*Zv(8jS_L8gBKax{eri|nBF z+ycN-5BZrTQZ5py8hVjh`*6r&W#kRw)>-e2G9Ul|9i_;-SnPHavmBiMG`1{8*z!<<#oWZ|} zU{Ksv=X1y=jvXnQDfnW`S zM5vLO)a7uF)#nIbel+ANi2Hn(GzDFh@6f8TJ#8*14ecXK}R>7Sq)kNplkwxGHXVp^C1 zGbIHAFZJ$stoX8$kT?QoaDSqJMDI}B235<=y$%+A@aGmlyt_p!4QX8$e`;vj-+mAd zwM44|Ge6>Mjsl>G*H`=q=Ml%-p|3;r+P5|g*E!jbZ2Se#+AOHhxX6+XgW}9f&qLSh z+Dg#G#9V!vNjjF{;pc^}&}o@&tPCHALz0wQ6b6tA#(0Mtd{oEg@v$?}Q-mX4dLNyS z7_*ntgGne{vQBzk7l~|y{>IzakbH~O|AMUm00RIAZLhY^#PRFt7L_IFPZJjtx4hv+vjW6~ zWH&%$In?M{g#(r@=xWbmbkDMpgHg~=G=`LjiPYpV+_jMSRzN5w6-8To`}Y(5wE@4jFd& ztymAS2774r09oMgQg8$&uK*7MNe@hu0P%u|0D*v5uH!xc00RIMuqDxnrT_p1+$t-M z00093+JG@neE=b@U8o z1XB170T5!)oTdEU@}~9OYLMfdZh$2y1I6vdwDc!Sg3J_Y(a#D5TP?I=n#PzX_t36* zoSBnwF^n>x!h2kJ>??%;0!mK>(hnfEe4GWqSVe^Bl&Ha+an-MDe6L*L1b){_$(w&; z0-Teez%(R8276_}%b#mO{{mw#;Cd@`mQjEK6(V9gL{Qz^(c{@bn~@*3b{ng0uwxKA zGct)49C4YHFS5(<4cZMe?jgJ} zJPjOc-ol5YM$+kpQ&zA3Ms~c^6G-;K{*do=M;_L4(lA{+iLM}bFh7cds@e!Vce#0? zFy=v#*Ca4elCG0#35ILZUt9nE29DFSh($e}f=|H2$`0W-ZU^D~GuO39FL&>lZ!H!6 z^eT_PF{W|DuJg*XzJIinn4I-k2vG?N3UHkX5x4REtlNhoQ1wl>gdNYg)d+MI#iHkK zb|{|TD|UzK+JRkY#H{ju;eZ*dPd_(DUso~mgWFe_s@W-U%*UPOdZCsP4sb@f!S?7e zEt+yfZfr-vCiwFB8auRMsdl{gh`ec2y#vf`m!E>isN+?nsnohM3xsS4q;Q62bL2m{ zuI#D|sqZ_jiZ|NDUIOtk04|h@U5yDDP+-r0e*lNJy!n+Tto^LTj73O_qb=`#S>u2* zgFCDY#DUgRH;iH5m-d;QN~0V|@$DEVA7u|ScI;$+7&TGf5>?7sld9-h-Nga_Ca~vy kk3a9s&5ghn^o76xoPbneegF=5957e_R=@(e#Y6yiK(Jg7asU7T literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1147.h265 b/samples/h265SampleFrames/frame-1147.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9d8f380f4b59beacd54a8623220858b133af6863 GIT binary patch literal 1837 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 EfuCm5bpQYW literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1150.h265 b/samples/h265SampleFrames/frame-1150.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e4467da1c0bb9e7be2289158b6164ab9e3527d38 GIT binary patch literal 1728 zcmV;x20!@#000330n_RK)I$OTP{CS4mIMIcKn?={z%!5nz;Q*}`xO*C<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXW3eYV~@DVc!q!bIbVC>ejk@DS7 zC3SqME!5GCUNZnokAudb#qS(s2w0cUYS-vXvReIad52&k&9cSS2%4@BZvWFafotA9pGhy!#La^c8q~Y9t~F2{Mm`nf6Qo(&0`WC zmob$}mRabH>(@>Rlg>%4`X&a;nuQdV%&&Z*XZW-#KVC>6kMr22Bk80WU*?I+ zMTzP_&TdtAHT~rWNXX`<4!}4c)vEh^uKDt9!|YM5g<$T72;CY61={0J#_L41Pphjk zY*A@|*?frZb@`BXd-G6qGqfIlW(yGDEwx5_yKd4+G>C%^xIEm|)GahIGpt*-y!AZ8 z5^dnSwBce)Qf=qUtThkjm1j`ym&jb1LoJGzg!)2)F`DWy;yAD56gld;xJBo@yGwHq z72Drpe9mRQdDxAv_iHWp%bX)@h{wMYcxLbYueZOG=C%Ie?MM0t_JcY;$MyS0qFiQA zg7E(pD?Qv_)sMAV|9rf?>-O5ChOM;(t+#376dXvU~-AO&q+UfbEQLIFnm-;3hs9 z(|jLNcSfQN^#&j!Q!_cYzD@5#pBqV&HsEm1y@J@a;SHp)CVLe+P^GR4ygEVTvwl@C zq##8hf(D68E6LS5%$pL$&=24lfAA{)Iimg_GNfsTC^Z zJ{x@4_}tvlz4$W!7I2{haye)HL7@ToH(?h=9qmHZ{H?l)UNG#3hm2kX+H;%rrIH-t zO<|g64S(iwL2m4opxsVscws7S*yr|F`le&;*M$4zm{DBs!GS>}25_}rDB~e-y501p z{Hc>J4hq4RPuk;DOSZ&{&?BuRq z!7%|Imoi!U(`3jlNMLbc-)sF}rV$SUSG4JbI@B6b0YVy&nrc!e-jcEAfj@zZqR>IV z3z2MR35b9;3Z3C2cfP*1%7HFpBVtpp_}J9fbo+;7>dR)P*s1!xEC0p>slIN1N~9w= ztXDTiKztB8&FX$C{3TuBoauTP{iGZf2Mwf6Ark~l#bEC?vNM~&a}`ru4&-`^iOyS8 z(L`{Y0OlP;)>F3sG150ARqP$Uo!& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1151.h265 b/samples/h265SampleFrames/frame-1151.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a76432cb176944e4bf4ee18a80b66c4339b2232c GIT binary patch literal 4439 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1152.h265 b/samples/h265SampleFrames/frame-1152.h265 new file mode 100644 index 0000000000000000000000000000000000000000..82cebebc1999e65deffe95e1810e8119de9d6768 GIT binary patch literal 1689 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1155.h265 b/samples/h265SampleFrames/frame-1155.h265 new file mode 100644 index 0000000000000000000000000000000000000000..823590495c6cdbdddf44ab9b3fb7861a1223d171 GIT binary patch literal 2010 zcmV<02POCb000330n`!y)I$OTP{CSyt^@$!Kn?={z$#kQKygLn{4d+B!DktH8D;&{ z%k-E_c_OKVO}NJ@RssyO5Hk&O7-04)q6{gBR1H&MLa+({HB#7IRa5AO@zdnY2rU*+ zYSzU-+T8fZOx4Dr9F?rzOYScxoAL$eqo@1gh1n0SCEiOeU5LLV`gK@l`oyTaZxMO^ zKrPH_i~r|R$#1g_T^0@G@0`bSHoz9UPIuuWFbm&g%|3r>3KSZ zb;@D}Xj!XWq+M{QhjX4qUYTnl`#!gW?+(%{_ID!4Q!{00ba)px3*>4KkK$fdu6ejn zu5(F?F3}lsU4edtUIkFqE%@gWwkEZ$H#fmX7alE7bi?q?S7SUxGw-1Z7l8wt9F9X=$RkKN-o@>E$g#aKsBV4u?X)^MbS6ue;T7tvE5$^k6MZ_Z?Ap-4ScWGxwiW&eMOE~?QaAGLm4GX8qAk&J}GH+$u2o6Xc2f`xaw zRf#Q#$6{^FOS+&Nw-|NAAeYAf*;erF!5Ph{2mMcHvIVtf;UQ@=>gc-Yc*DH_00RK4 zfLIehetmq##@sQ{{R1>SknI-FEJr{9RI#_{efp75c!wk=bn**Ky6Sn)itsQ z`V3rgP#7gu@5vy6m$Z3H5;2R#sgf*=nUGQ|}GOD&P3K{wLTJH&vFc z0TKfZJKFZEAJE`O#<-3n8R#HWL{KvgVkZAy{J#j=5EJ#^42>htuG?OyJ!wbA1sDN0 zK79Uyd9RS!&cIDQB~L8NQ(_-4?hyN$fnTGSdwQ+537q2#gH|f5hrMiEFMM(AJ{u^B zxB!>g+c^}2+0XI-l=)<58NbTK-}-)O_~!ar(!!q%smAR!oiIrjhwKj31IV5KKTAk& zaE!DuK9c-$fsL$6rj4`v)08?Wv<-lBOr}ddE89{62DrBSJD|;7;g-8b-t;nfLN`_7C-<1Kfoo?iKYMm1>7nt zjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HlrYh<)FB?JHd7hB17*L;gL53SNi{BGKWz zM%530bed*$wTQ_Xx7}q7yiZu*8}4~(cy|<-y0#2~4QJk!quba}di$di>eJ1FjAEIn z0@*6w$l>*#m=R^JbM6gagW58BA@_*fS5B!c{Uq|iv{zlw!UG+hf#IdYvHug>-`NO zStWVIM$-3BXB^^*v|PI;=y~dG2YDF_<&g&cBR_AbO?w1ikq;6)pZl7G?In%I1=nj7 zycalA)aA|^=?|Ta*-O$AwdgFSh^K9!U*v*b$?=Ne?eBaybx%eFgyN}g1KiZf{ zFn{L;KgRit^CF#tu_vj=M+2=y#3 zRWFxDClPobm^qCT&N>HgzQn|NI~@(cz&cF)wjb!$gKifQ4=QDKoIOo{bUgi?Z0Hx_ zcCaHj_@LDx58v4MS0Bkv`|5;kXS=5@Gh=YU!?jgmvR37oyveY$OO8fXdS8dloyO#> zL9`t$)BO&(8S=ih~{wvbcb4ms^W0*(SS```dtK;`<=CjbBd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1156.h265 b/samples/h265SampleFrames/frame-1156.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14e659ee89958d05410f7a9261cd0d868b312c57 GIT binary patch literal 2962 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1158.h265 b/samples/h265SampleFrames/frame-1158.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1dc637903abd74ab73b75ad1f45ad3a42ac63a77 GIT binary patch literal 2164 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 Bz5@UN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1160.h265 b/samples/h265SampleFrames/frame-1160.h265 new file mode 100644 index 0000000000000000000000000000000000000000..405b467aba90a1f4eaa4dd9c503b3b0260c82928 GIT binary patch literal 1964 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1162.h265 b/samples/h265SampleFrames/frame-1162.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b9d82fa3a7ba1a27519edd0838c336707ef4e6e7 GIT binary patch literal 1671 zcmV;226*`Z000330n|zV)I$OTSix7Sas&Y2Kn?={z$gm3KygLf4UI()HM_GI z7eo56Z!`_wFhf7X8U?roWP|=Vy3I?G^K1X|-mTi3e({_o$7nv2(%uE+5N5_~cX-EZ zY;G$ObU;nSFfrf>JP-es{{#3xshxjG@|IQdHRbB*{HP`DK@U*;`h33h@;bknh*K6r zbl$7>`Q*`A*0ve9b)TP*FmapVZ*_ZX08K?_^gJ#bJ$=G5;U@7NXIsItPA9dV$p#px9yT7%$ydy|1?^Kai&P=w<6 zCH<#_cQbL407(04nPwxv2le2D*5MkJ!tdi@aW06M18AtN$Y@YXOpj-*zB6 z7uaHmH&d9q6t1h5_v%3c5nE`6LqDv{B6!U5l6b`UU;^QXaMezs)#l1hf)D48X}(7` zDyV1iBzSg~Ol1^NLk%E_!D&hAzgFb4T|#pgDS6dp=BX=duP#TK(dfy-z4^M}6`L}$ zzYQ*muudORGr(&iAE`#Jus*C5E3Kz7kn<8u)JgXGR>}q$d#feL{~a`q#JO->Tb;fLMvzB?1CHuPPyH zsH6Yv1c5sn)V*^J^-@u8MtJIjuHZo@Dth$h%U;uV-6KG^fb!ShUA zsn%>#K=D&+@NsD%w5o{r%U*I@by)KUT=X=4&4P(<+*0bEpZ3knC9|?p;OubUJc*1R zRS0>x9ncD{N1&$r zcOjocYE)0W^Y_v~00X*MA9esAfrDh^bc^XmzrRs$`$UccA^(pvEnjvTk7)JJN_j<^ z+xr5Mynlg!`>>2+!(}IU&Q~byUQQPM9cTVCi!wvlo^vjXMud9?%%919^Hwwe{Of1j zB>4342P_~=zXnwc{a@4jd-j@PD(s!wPw+058dXYU2aI&6KStOBoO}V|&h;WmUPd#R zCQ8drG3-ZlSfAjv@RvV+#i2P6S>!sD0`;a%@$ov@AsUBPMMk0r zNnQXn3pfLxlev7-itgpdMK8vn@x5cxCD5*#06KF5*6OU9RTCOyoX+34N$pllC^;f3WMX>PpSX+ zYR~`vAJ0=~jWY-#VZs15;8?B57C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdP zKJownA|MsBFaQAWfEM&R00HkEoR|Oy_?e2s>x1F|_A{@(Wpxf^_vuw2QjGm$g#Es- zzv`Q-lok^>?X&2$;S8i+BU5n;g)@sy={3pPMCG_Mii!#%_1bO0fl4-YZPK~HV$0s~ zwj3c^1T7Y@2R?Ot^$pjCUbO#6fLs$T3O`|rYy`_`L|^Ax-YA7NsCeW+S=$ifs>Pcc zw*lDSZ~v;wJ0;aRYp!1krl8FEm>6srN&34HaqZ}X-@)@r;yzA0Pb}5?Ab~CzDJn^` zS7XML>l`4Ao@>ySs8&2b1IyIkWBS1gvIbPy;J)Wg1D^DO*DlN9LvBB&trO9iAL;;b zQfQ$SM<`{5TuUQ1uv2!dr{oBUJ(^1pE)hau_nRUTg~ru{O>l6}U>uUuI!KGbY4cL` z@4kYV`Gh$?=@7uNF@k@|uylv4+wW{pB2|PvZU^)q?09ca5}l>5s>oND1&DODKM9V2 zy?t&m+OpcIw6E*Xfhu!+WL779c&`Lg7dp@!z`>9JN5GuKdt?f|FRyp5=LcgO^dXe% zKs04SU=F>M{9>y#)H$DO`{VD2e>X$MAiPi?Krr9QoZSwBa%i#35?{F|*bGJ)rE|XJ z3YG=ijfnL(vfr~Y*Ww+CPy~lD?5!)M&MYh7O-@~6$}p2Fyz&y(`H2(4vmYIbRWwNc Rsk}WC>*T=od$mR^2c#&_Gw=Wa literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1163.h265 b/samples/h265SampleFrames/frame-1163.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8db41feb344d3ac33b095999a9496ec52cd424c7 GIT binary patch literal 2234 zcmV;r2u1e*000330n}0d)I$OTP{CgVJ_G>ZKn?={z$gmxz;Q*}`k5S*+i{-5fB*Ee zvS>v9P^~+wB_2%RUnm;Aqd4o0NR=KdZ`*k*EDmDs`LRSmj8R3 zg`N;>f!okf_D$PTH4q1Mi~LI-(vc70_xegFSur5hi*Ao4k0C}G(BpJHR(RjA<4`-h?J z$Bcy!N3o!o$WLKkP{`d@onjvbgB0?7t!am9F?GHrn@D*kvrPJmB-()_dd?6cP%g*X z?*&=w5Y9w`om3mtRP#HzKZ)jAM#<7;g3te~Q&eix5_EU3tU{j9G4B_6&ihO0Uz$R& zUy+m7Gq14Vrg^qZ&|A5jVlmX=W?A?OVbHprTacF7=rtP>|Ie08F$ojmsNQh&Jv6FC z(YI3XGDc`5Ahpd_j{h|MGe>iYS5f1e2*!Ui7b~N7eRHT|%MvOKkS8%QBPY-sPXo6y zMf4z{#);{)BRZ(T;}$G)%W~cU^fzDKy@l4>LAqZUG5z(gH z#)(nt=-f}%rspePseB7}ha(Bh9#4C1TWzWD+xIcZg}F01Cf}1V{>BEqoe)q!C9Clc5T#PN518VYnVCrR92EwnxDyyOsRU2)*VMoKA${Q|~4`**i)z~O+t0HM3cWChE45($~u7|YmoK;$af2qkXO8AD2p8} z)AQ~ichb5?FJ~PZMld8db9t;XRJv2(?a!+Qum;m8+B2n972*+(u049hpchyC=lpy4 z@6mdGhspfsB<=Qbk~CjNQ0+B`}+AlaSV})-c zA_-rr>1J&a|A5rLI*r|`E^rEuSzw@^*`aBlqAjJq=(0{)Y%6rDe#u)l18eEPm1XaO z!rjiLg&G&_Rt0_6b>Rdp=wHRGmBxt$mPAe}6@(pFy|=DWo*e)H6Yy9cb_YLXp$d9` z{r~^k&+MgyKOc_$&%NI={YY=TaVc1r{C}^1i0TiW;ckzH3jP0@_<#c~uKgNZmJJ6o zh;-G1gn5 z;K-%dkAV&Fo1kC83taYM(R|O||LWhXmWb{ETE|neBPWTTyP}y^b6Dr+csWg4QowC3|jqHGD<6 z8+^7~+;n0#_gnB{!s?>LMj6qk`M*KKH*(n#L!}h?6cYCutoKa>ya6~=3KgL14;92` z!*OVUXiH8#Bv#s7U}wR+)}vklz9-i3$B9uWfKtA=FoPQiKYLPO79zYD9UAdX)Bp`b zO!(u;HXXYmPf@%+ibuf=-b1WBGahK*5G|-!Cdq1svSu%7T?gyhnxSz5yk5m>%@!nY z^)T0d4tvWohyv>~&Rvfi;ELh#i!-rbGuX2xsoIM7+RG3&-~a#v17=vQ$QD2V06)Mb z(TS!200rDCD~HcIsgIh9h{f|2l$!I zEtJO`%D?|{f9TL}EE;DOiuMDq`pf!p&*|t$G^;hp0WiAc{d^Mi@1D*^UL*0$NTI-e zJ0YAWe})0kDqVrb-rf^&?x>{li}3!MHHw6$)_mwW@8^MX#3l`BjrNUAq;AU3bshZv zR0pL~x0Jb6qD9(g4WB#W1ruFYOe&6p#`nW~F~ggY)(3XuOE93J=1kTfX)@1eLWTE3 zVuau}P;D&{D2E&{&p+h$yS(v{nvnhf<6nQ(__ZlRoMA%rCcy@%T)7%2a-i&CMty?^ z7+M1lJ0w^p`tUNpX0G1<707% zUX;>+sF~kEL)`GrC2QOGno2itBs#;E5G4PD4~u_6|9V{xKC3Phe7BDw%#a79#pOBe z?ncM$Ra`oOh8FY!%DS|SS5Q*4G&Y!R{}Vb;S*yqw*K75rsqRzv(sSsw41dV1v;jrs( z_|76s%=pa<8GDgXs2EW60)G_M&Suio2>=(;6X{FvjNjnMd;nbPa=A=G9W>Ru>x~ytLbEMzLG4}>ODcaK`>bws?v!X` zBWrLRhViUG(Sox6a`GHCz_S7CG{|QoZ?|<&idj`t0ns^t%uUSfAR97V$>Tb=5dZe6 Ig**TY=xZHGK>z>% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1164.h265 b/samples/h265SampleFrames/frame-1164.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5d4c4309fd79cfc1424b210494af45bb86080efc GIT binary patch literal 3031 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 ZE0UJksiTB-9NZY-!K6F6SLD6`dBDFU*Es+H literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1165.h265 b/samples/h265SampleFrames/frame-1165.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f822a67dc11d5bafe086d9e0005ea389bb742932 GIT binary patch literal 1944 zcmV;J2WR*I000330n}mt)I$OTSixH&ngjsgKn?={z$gl{KygLo#9iC0S!Wq}8D;&{ z%k-E_c_OKVO}NJ@RssyO5Hk&O7-04)q6{gBR1H&MLa+({HB!~YN=@j7_ORs2ye$?` zYSz*KZElsLpaG*&B1=1OCHEJT&G`cLY}5y#LgN0GlJ6yyu>vp2KAlz@0+pzQ8oGw4N|F?eH4mlqnU=$Jy z|Hy3pF+Bw8JMxT;KK+v{@FRb4a5;h3;a&W4tDZ~mX9)4tBH&Zp37ePkyyyP}Z!G}R zJJGDrSV(^{4rEE7(^OqaQU{CI@MIU`q9W_cAsCX>#o1cQ;K&nkLN6KVYLtt3yKa@V z=c;>Xi7CKX2ORS%a>R!Y-0TiBId!xnd`U|P{kAO_H5zWcBZUz#j;jBQB0{I3RcSj> zwuI<;;Hxy&JiX&RFvq*nQJOAi#a8bLPTvh`CfKL#Oz zbQM&`h$rM-cl-Z$l6tGZCKxr_HS>aVlSpKOnboWQ%aeX+iXRO+Ng*xpQ{7X{?i95a zcqru)N&8>>HqdikbRH#M`~DmGJ41ae)l_7k!(v{ZAM2IH@CE|pjeprXfgUc`iU5z> zY`yd$sUQ`2@_L8U-&n8|;r}{t;h^=h}q|YLI~g<;`8g zJ4)^`=ktzHzQARXzfd^EJm*efwNvGgkEL&?V_*`$NsQ9yPm0%wzFGq=WijJ52{giP zVGl3a9U#>L@kwd~=H<>2OED8nqDO~Gr|0zQi^7!$>;g?<|4N!!4}H)^V@q!&+@K&- z?SHfRDDta+xU?u|av_NWzyJUP1KL<0b^wQf?_SUS|Nji0*b?2w#)KRy%jf>@9czX@Ac z4|>sId*X{eD3-}-)O`6UeNY2i!s9cPL){3xcg zOLrNBZ!ZsJqQpJ*NvTUp&sBkGzr_6slWm?JvTHm?P^2zm*_?uH(!2N)e3Z)L@;(yZ z|2&d)fSdg9&!omUEhmxEkVdn0Dh(d--oh}p+2rL4|0wirJLx(Hg#-6?X9quKR^jQaevear}iqMnx9W)fU4*P8*vdM zbvhxvMuNTZse>XdLAxC0IX0~a6gB3y(8~t!CHIEnJWyuk@S9~>Ub)7J+FL{?==yLa z<1d)aylMhgpx>b;ZW4H?U?r()*w?r9HinxC7}B7r7g9Nz-WOZnG?XX@IUk=`7LR0< zLh49d5gdM_0IlU(p|tbEiyN-N{HyBvkEIZtnUn9Sag0x)!JdA_s%cm_41zx8Assbp zVCkC&iaM;aehhfIa_zBz0C+$HEY!eI zYdDPM2lQ|NiAe}qSfuENvS}0e%2IJR(%Rer4Q{T&z_Dbkj>l#6tjdlLQ{(53IAS%V z_Z>VlPH`FBu7wXyu-C_1>rsJCY0PEBSy18r0ONSHS_zv5rpa%?eyNsMGAZV=iYR0csH2)sZWVikqE2j|1@WWVt zz6z}NlGxbKk6mLkyRf!(zXf556aHWNjXM7e}9LYQ17D#R)&LgdKJ7otJh zisp~%3pK$XI~s7AEaGuL7CzEkuc!MOU74OE*COjRRYd0SLEO+J`L%QqN literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1166.h265 b/samples/h265SampleFrames/frame-1166.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f3f98faf6b4f761047260fe41650949a718a2dfd GIT binary patch literal 3299 zcmV<93>@4kJ3NK6RMI@}!p z-~arlIBtd>hyobF$Ws9%k>LM5^Ml%vK)bZ100Ic?>iUE(D@}daS>+zWGTFuef%g1Y zb~v*cx0dSx1;??1_5o_}ZMN~@@<}hb%|Jg3gCkD(^DDb}8Z(hXz0MnukFro#7sf`Z z)wC#j)5N2MBOP(XY8i_YD~3$}t_YKi$52rK8RnPfL#+D{cqxIGS5aSKm>HZ{D!v;2 zr-?thM}KoV~0!P$b@g=LFk>{>Cr z@*fDhS}g-tPng7tP+JYExk>m4Woj?@FL(oJC05}NKrhvmH+h<8G1{>^<9rSo zj!S(B`lxt*d722mmc=FtTy6*sW>Vj_*F_nJGVR4L%}oq~8}$h%=CN);PDUWf_Yr`V zS)(NGS*j{=?NZ2&I5Y8+yu~VtDQy$+{mwvt^#Rgc3MQ`nc|=9SL;OPPcq~tx?oNO> zIZWC&t%u3uYG-UqvjkP^^`o_QVCTh5eJ^?bVGHrlB_Vh=LbNSw(axkyWflSI(YegN zF};o%=GOfqy0|KfQ=PwYK}wKyIM!$Ywg9}=8|2+gRer3dh*yGLa-72}Y;}JTf?kQ+ z@lFw|p<*9R`6yg#E?r>Y?xO%tKfT-bN~9nPXS6O+R^%i;_9@dax`KDHp(8UgxnNs` zRBT6mK^F+bbJ#&V@DIb00Fm&7e!9B>wVSbBPJ7E5k8;V}ejCE)n4)Y@7_U@dpHPP$ z3c^m~4vkzBn!+v4%~xSdG}mg}A#Sn^PgrC(CC@3s0QO^vDYya z@tC%IZY=@@Wwa6Myrud64FU)cI!w9{N$YZaes6=0u4U$aenbF20cP2BVB0P=SRzg} z{vvBMm*@&s_EGqF?Fwc9Yx3(RwP)-DBXV-ar-tRpulSzo+ z{(S1xtRF0gfbP!v7->4p1LWK-S#L68LsMp#-hwd23&<@*D}C0Lg}ibAsVyqX;p&q1 z=znFp&LI?cUXS*WOb`h;+iAdA9ZZnw#u^aL;tvQ$pVY=`Y;LbE5_T2D(uzyio@l`y zA3#Il|5tRj0dYX4k$|QkGUe!?>lY2F76y<{*eTi)3&5W2f-V@Nz z%BC>jX;gfm5aFybKvZ5*%I?j+TJAK-((Yl%T?)i$8)3;tuQl1QCMKVgPS1q2wpAw0 zBpWIOy7UHoyiE?Zco-s$G>Taod$vD$^|1_LicGRPak(nxi;*Jrl% z2K3BVDzX$AVY5u{%ZjsfQSYDo{9!3|sNBl{VdnJXX5^^-pB| z(CPi~9OBtTHvW&1%v_>YpIZOx1)oF7xD(Gjc!v`jNStF#VJgn+KF$`7El#LTJzZIM zx=qXSkM5_(1rt$HMTEo{;0oF1bC>MyT)OdBv9M9ANzhXC7KjwCuy;pwugCmB9o!*P zc_?g*)&9`CqB>%z#!c-gJ}S*&WbKV|?-Sj4a@4w#k+VaQS`~*)pBdhFo_*2wsg-?B zJ5hO(>O)icfa~a}({)lyw8-ktw!&HnZj}N9+FzEhBQ}6Shr{Fv^D_cbES}H<4TM@7+PVB8RQA+*o|{khrTL7Zz_C zGKhCglkjNbYZbH@OK%FA%B^sH`syMix0SS*?i=X-kPooL@>oT6l3eC>QL;gWS-In2 z000VDSRXor*I@Je`^WpsSn^}*q~+fu&21%HAs-mH^3PiU2|yaIAnY`$Cx1?CO~=QX zHZ0SQm=1dM36ZGVM>ozK@F8$Hq(dr}!IxSm|KI-^L^&`|d8}s6)0!zI1#M_(X8wdE z)3E9$P|-57r1I!Oyx6w6Au>q|qWy`BgY#s%`JfAV-|OFR5xVL67aX@IC7zSr+RdCg z=ig3BcXdj^8b}{c+=Me#{Tu63Ft3lm3Q>iik`7OXJ^g>ow%(wOtddXsx0uT?(C`2+ zuLgdR;YEMy0HE>`6bPYe@hQxLvhv2&sff^{~zc&-v)A`{speoXi1`juIcLpZ9WlS7K(8e7wq-tmhbsgCdBVY!- z{#sW3F92;QStO%yF?|`#(m|nm%5puwiLm)CL-%%=C0Yn4lXkaF3b57vPP#TSwZ;iCa%81Qi+M>O1ma-m_ z*MsVIAtv7*e&^+=X08Kv8-2IuLM{UR#?$5S1wsh<-k2>^X-4~dK%KFVU5I6Ukjek^g3G{2E9QYqDf zIw;9#NT9hI54v5_C`vV;hS~+R$kBR*;{E$hfxQKuE2pozo|d;~(MV1?r@t|5T3Bn# z4;>#fSvG@zk$@7Qs^PRj>zd#Ia5J;aN<#2E&HwE?`ujoIWRNEMVh*bVOhPv)fq5?h z87^Fr_t`vvY*zwjARU-sKm(?lZd$8MU^v$)Z~%yaSgzwf000936R;)GiKYMm1>7nt zjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_)UvoZGOJW9)Evs zUxpX;{3}|)n$i+Vw3TC&F6(*r584Ic<%y*^>yjZUSuPsh_7~pxg`7mtk}Qt)wS8;gbg`Squ7vmjqA_;)GmtFF!Q)5R4}zdEs(m5=1nIW))El$D z3)JuoMiTdSFTZnc_D0C5}t_C=Gf~CqR`keNf&UeE`Yr#cC1)}-m zR~pwIvI};vF3X=rLn`v~VI3U+xENl5Qe%rp|K%bm1XRrQ_4%0S-dnM^w4U68XDW6) zw!s--YVM%;Y@4|Rqn?azYQ7gBTUY@Ag%aYC$Fy#2Q#chI+AKr{9wUCX_8g?(EKeNY z4k@0jA0Pk(luE+!G{?7_a|SzxI6l^K22+wq}|zUQ-VJvYqgVP z;#cHew)G#$Fx-Tiz%zVT{fdkBB`8Qt2KvCk(iao>#yH&a^OfP-BQvuH;B9+R`i_T9 zd=4L6>kedv88?6uikCcyz6uhRMk2nj(;{{`?hDS(R9IA?8eB5M(>9--`M}Sr1Hndq zzBewYo@%1nC89HfD>f?W?fJjj3Tpu|$Pp>*9MmcUU17H7@9W}<|;oCXKoYvlAhhkM;a>p*B2=X*jcho`*RC<1q hnR>(X<)4YMAL$XxN?+b>rIb04t`iWVBnSWitbh! zbm5+X@|uoKY(Kwn82|u~la0h?{1pzsk^98FQ{fKxu*D&o=jSP>AmKp}UrfU`?KT6q zaUBVi_@hPeUgMr03z-z%1Oc%?1)xyOrbModoR}IArQEZutTDuxEM1DqQ^~~3I7)=N z&3yv9DO=x7i47WCLG7EUjHGQE?HbVVZNK$xe!N?UJ8>7c}K%K|k zovn5ysV07ORc)l&jH{RG%9mgKjGp|hwjDy0iz(9pD4ml59RHah1DWe+dGO|;?8Xy! z{G@Qs`p3>eF=76in;@X4I2-VJvDX6PjXr_{2F$ zFm9(lX~o)K>k>AYC`jN(-5{jnav9S@Q)vmrS)MR9Kf_M((0yY+!${>9Q-`QDbHW#^Mq@LLWoM{nwbR1>8!^aFkmJ{Aod@0OtP=*oCY+ zJcn~XOLsTVHRv9@M8Y=QSUGZIAO(s8GX_{e6{ki#IxuR@YJu4%oPVtzlJi?ZkLz@9 z2S#P;`PCcnVJOs^rw_rt-r7-ETi_0 zgpn=@CYCqV=t}c{N#e;6oAAHmII|=@iRUutw0Hx>blMQY(`*l)|9|KLWBrWZM@c@( zL`YU3VTjf71T!Wk0Gy*M$NU}H%>kV$kR3tKf%-Jql;hwJ7I`w4ci@c@$Y)BD0MxEr zc0NAuJ4`el!oaFx8?FAQR}9JoW-m@AUSm^0t~J26dlM~e9M+DUeDD2*k--2o3pfLx zlev7-itgpdMK8wMvAtu`CD5*#06KF5*6OTcUOpS!;FX}Rm!+`J=~{}X^iT9v+ zR^!kD!#RmbsY0hmE>B<;&Lf}*GoF;qXIQiJPkt~Zn|pTm3>=~IZh!s3kN^KS8zDC1 zKeto6007~DSgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neEPI{Eand+fPWUmv_f2>q-P^EoNqXJm00;v!M#XvQSnmA#p{P_f*-1Rtt1MsNJF6K%xKN8n>A;#3+oJgRbMt-G zm|9aScgWP#H|`PmMzr`JgFWm=&WSub`5iiQallaNhzcWzp{S){vI?NVV?PcjnmL|F&0B6vwKD7^@fte# zY3vxTfMZ;Z7yG5SEM8Eb#IjHSjeRjsf__@9+Sq>IFm>o0OHQ=2QY<2k-e#>KmGcJ$ Q7$`h$NvT;pz5oC#Afv=vkpKVy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1168.h265 b/samples/h265SampleFrames/frame-1168.h265 new file mode 100644 index 0000000000000000000000000000000000000000..54a3c2931d9bce3e28ba5a5854d195305c445429 GIT binary patch literal 2090 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1169.h265 b/samples/h265SampleFrames/frame-1169.h265 new file mode 100644 index 0000000000000000000000000000000000000000..53c1aecf983cac713c4eba078f43f086a176a972 GIT binary patch literal 2556 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 YAc~tJf0-qM*h0}XXx1jMng9SO;1YPkfdBvi literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1171.h265 b/samples/h265SampleFrames/frame-1171.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7deca710f81fbecc6ac309179a4d0205ce996383 GIT binary patch literal 3448 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 VQ%XuaxdT6PmIzg@S0tj)0*ZY-|3&}+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1174.h265 b/samples/h265SampleFrames/frame-1174.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9022345f5d3f42db0d890d83c4bef0589cc45073 GIT binary patch literal 2942 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 SQpinLy1)b!0x9cPfB~&U-Jz}k literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1178.h265 b/samples/h265SampleFrames/frame-1178.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e3f75037d7aa0f2d6e71e9c7692e5f2a30e454a GIT binary patch literal 2270 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1180.h265 b/samples/h265SampleFrames/frame-1180.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aa846b2391f9ef3678cef3ddc93c26ba43d372d1 GIT binary patch literal 1946 zcmV;L2W9vG000330o2+5)I$OTSixF4kOTnWKn?={z$yyUz;Q*~4T_2$ahH*nU)@Z< zNrbnODwssujB=%5Aj>fWFxMf54`Qky!kC3X)ix9>0H5z21Mh$2DElW4kolpCCi@UM` zZevtm|2mdSeVB_hSiO_Ja3a=wg7RU@c~+PfQkP;|EO&lK@21c>q!bIbVC>ejk@DS7 zC3SqME!5GCUNZnokAudb#qS(s2w0cUYS-vXvReu4C`*d4rw^dtci7P+&2ORStvDeADGh~eo zi&Jb*&vV*8$$KmsiWdAJ`idw@b$&IG9y8FSG6+ZJ-|Bu3J#!-UwB#k%WCuZ~;-=dX zF)oiMy=!Lh>7P+5lE9uoWY^yqI5KU}z1B@F{Iro8 z2H0x)u4@bR!3P{uL6`bom9_=h<3?K!(jp`TyJa#m&t1q078Pu7D}|G-U7;q919PKrKI6Vb1P6->@NXs|v(L_Tr|Lr3& zS;2Av)&GI?_5JIB=O>+?0_W@UAb5=96g&_$Bzt{dkLT;ZBH@D-LCcblSNu*@uS_N# zr>62AkQw&C$wPpw)gIOUKAd7rZ(<-^L6iIQfGo~|zzT^Ax#QcOTVHE&d@3pz-l5RW4W$RSxj8hbVM znZFPiDQ_?U5inS-$QD2V06)Mb(TS!200rDCD~HcIsgIh9nVW)+U_y4?Em}!|K9^|a??bg-^WIW;uc1Cp%a|nD- zlmOYT>?`5M-I6#&lY*Nx($eamF(M1;KB_<~1FEz|b^~5Rd$^}_?`Z4L(+^}6KXHT|@TUpJp>(IK>xlDBs>{#?EjY=G8 z2R$Z6-~hl{>v}L+kcP6n=bDmrS0Lr`w6fnzZ`c$3u+5&z7j`^{3lZpD1PHWdJY--m z5p`Y|k>zGW{Ui!Nz(j zQ)Zy>7qSXn_L~;;f+#*seTnXmH^`2bC72Lr{3x|z8h} zMMw?ifwjv0+Cm{JYR7s%U`mjOy{$To$*VKMP31JUidUVQ%^)P&Wnq^KH7;m~$F@NS zQlfPD20XNkE*LWf3jX2$g~`(dFB>YQDnuyfjnb(^uib)_0U>YylZi{j;cxZ0qNa{2 zOrFO>7=ec&8%n(h4p2@t1$veFR!x>^H9iSZpp|{F9jJ@5x_1(ZMAcE&k literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1181.h265 b/samples/h265SampleFrames/frame-1181.h265 new file mode 100644 index 0000000000000000000000000000000000000000..68747f145c0b73ac67d3d913447df4b15d7f33d0 GIT binary patch literal 3026 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1182.h265 b/samples/h265SampleFrames/frame-1182.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c769155a45a31497794804954a54a6524f475f66 GIT binary patch literal 1830 zcmV+>2if=l000330o3XL)I$OTP{CL#P6PnpKn?={z$-$1KygLf4T_2$70>VsZ7riE zw4x`BR#qRQ_gF7MAeW_$9ajwVJ(O16s$tK6|NsBR0XFLkY!nUGBjd283V-;|c7Ft< z#Uc4p!puqK^NTRMjH*zqwKi}-XTT*DfBsy2JPU>j z$svilkaq<1Ph@TiX$VL4FppEs$5L-PAOiI0uob>B{;{0wXU6X9$-vflJe5gKfjc#g zaq-1k1-C+0i~v@T&exU-r4B!&*9Hx-h6!qp)FXd(ZBP1mdN>4v0s4`v2p`^4Dp_hJ zyO+CsR6=_BzKdu}gzopS#c{?^y>~oX+c`#`!F!H)q%LKXbT|Y>1Qr}-AnWt4mJ&rQ zLx(7J3Rzwa^)X=y3>~k@pC2S~2XVH5!wMNzltUs4?b2ZK4+54w{&EE&sqfe6D^_~JdJ;!YlO3##ht)ICjF{51+UB-DLY zc_VGFUj0clRH5DsA0H;6?8Xy#E}l0IGRMxzQw(wVaS|3iM2=HTFVmP)SdnJpr1&Yu zmv^TpAY;0eM2MA+tqvBgh%?8Km%$o2f9EjAI0t|ydF^o28{?^@g028-48>&tEn@~mSLEwVQul}HDN5*R@Y z_3CRhiw>4}C36!J_7s&n<(xWHkX3yEA|Szhh80|@)O`LKYyX_(@&pepKy?AK6Z~zP zDM+^BS5ZXV)VGVM5#m(Y$Q>L+MKb5GM&y}vve|BE9!dt(94oF)EHe;ppvz2wRWI~b z&zo0~QQMS*P$Vr?itC!EWo(clji z(`Z8rO|U+H{r{i|jhM~!eqCOaM1^7o7>!;_The3dJd`rLf5GYN@=_F;0plF_AF9oX zPCfwfW@|8>kmIOI^n;$37e^FA(l8bCxKN@d`M>IQaLk}%f4$~OuI_l^$!J~{ zc?8^yxyptnA6pTx*PuWYP1ypE!(-~JuDzl6q`&-o%vIN1G^U@-GRb$!hwhi?f$GKs z3>ef{S<7CcudQlV`DYdifxshLD|w! zKCR8hMrn}`90{3JumhS{t;iNY002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g) z001H&6|*n^0Plbn^f~|m?;Vd2fikJ1DQNzXz z-8&Ftq7KH2w*Zw3HMCpSiJ{ zkO!0bI9@Q%NkxarU`ErHFZ!4wN3MDNJvIG@Rv4O*n8>RaXFn!5(H$2UW62xIf(?X5 zPl(sK+@!>!uqD-o(t$ngz1S80yj8_AjW@O;*-^^|C`c@wjTWoiNu{N0gr@D(tE zXF5z5*AvzSB-(&IC!{ zUK9n=h=n{e<7?}0R$|+^01;3ip|i%%>@WYe8rCr}?znu9HCf&`UBrQfKvU;c5`scf z2EBXY{J6Y;y2Hri759O03zw06_hJd`pU68*)HiR_5@5qPngbSF2r*NBc3vAWux5Dk z&Luu3FzR|mbCl{5ui>Ys2g*Z1r#{`kovYVV)Nl9A%!j%|kOR*_5g8_vWa{`y<4>xR zC|`0#L22e0vHhtHG`|Bl0$7V#G!e5tpjopF&vVsz|PmldO*q}hYOJn8!)c&Z)^&=OZ UIqCw1e@nnX0S^Kxm}~$pASLu=T>t<8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1183.h265 b/samples/h265SampleFrames/frame-1183.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dc298eaa6732a20dc17935e9cbdf17671fe55f1a GIT binary patch literal 2080 zcmV+*2;cVr000330o3vT)I$OTSixUIJ_G>ZKn?={z$?Bjz;Q*~4NQ(oZMe^2zyJDK z*$lygExi^B!x-mu1?>>v9P^~+vTbc;s*p@+542*TfNeV(JyeY#ubMf=jr0L0OMku1 zbbb(Qf!oknQfAa*nOcuKr8P_Q% zoal$Q8^c@SjFnP#sVF=TuJ0HaGHRr=v;mSQh5!6M+v$&J@;gQ6le@1Th^}>K_wuW9 zAk(C|R-#s1L^8{!VTC|8EHxBnweaq{HsuMslQJr6M&j|OrEh$IrN#Y^kYh>}F8PXnd=8Gu%)jMUKBb)m| zYy-+t1l8!}UAL*zDHR$b)(pyAaImt@z z+8T`)FksHzaz~z^#uQ32+N2>IMT@EZI^|AT&(I4S=YaHvZ*KtP^|k`t`icLsiIp!` zQu{A-#<~F&KFt!Rq%rE%C_0MWfsh~smUl6slTf1$SYj*H+!UhYF{$wS($}P@Qb!CD z!!g~P(*{`;&5*9vdtd|geLx2hIP__8WL=oyMe3r9Q)T218F}d^ znO|z9c@pRw^0ayvFJm=M=4JBCNHQ@0@^j2|b~nB;hPjY69?u+b2W6uOx`YLe(> zw0X7~f#7w|IUR%89IrCU9+_9@Y9T;FKzepadaO1Frk@rAjAlix-Ax-$ z)!MI_$K0hMdK)zGM|pDyhjy7B$MY)LWm;ch`G6!|SjmVrmNCr2S*jrwnSWYQKm4G{ zG53A;RP2+1aNG-PcYU+27GL7o3s}7W()!+>zV91Xi)0ZQ(r{@+ROrRUF!ED_3dS3Pc+%HE!U zC>rn4rYhjjb102vObEA(MmR{vcpMa)qjq#>m!oh8LD;AwsS}Q~P`G=lIx$D7S{HY6 zK6gMmqmY*1ZV+Tr>)7r89p3If&sCxErSNtB9moH3$;xNCL6k6=f-#@OlbHrE&Civv z8!bLG3gLwZ578Z=IspeA}`(^c}5D!0NUg1yU~iNRYy6?N_q?A@#1cpR^YlTzqN_w3JePkD2b833vmQ zQ8Fvy`%UE5`I4&S{2jhRCC1*iDlq88ONA*QV2o`QQ+Vhsi91n8(o5*>>$0AWLUOD~ z283uOil_hu!|IwUm%0IN6gYKWA4MbJhHoL(9vP1`fJhe9EE8n4L>xdsTYlLrT6_ql zE7iGX#wLGSk(8#0W-kqqmmz-~m)3DAvLTV)TM)l50lH8hoidmsAMhXWx~~Gb1jJaa z$QD2V06)Mb(TS!200rDCD~HcIsgIh z9gkRtvgGx;?9#4sa;y4eMs&%H8Iw+=aGC(l=yEGph4ZS!UI_PjV5`Eq((D$5F}N|W zVv1Nv6vtQW&2!?}b-XN&v3&aC=~>tPAf$R<^el+P$+JAl2+^nvv0B7wXTuxBVCHPB zz9AtH!=!5F68h|V_=ZxPP+9PQIDkzMu2{aI^Wew*kJPW_nr5u0Hf_Vqow?`$vLa=N z`|Nhr#jR}q!qi{nTEb{(kShFxTPacx;+khla6a;o0`6L_%QeI6K}-4V>J?K9xDUQP z6}n`0;>>#3=uN|ctsf#j9Z}`#BZpxK&w|89ag6~S%`#7aQH2zA@JU4ooej!G!9ZxO zRK`zJK5c(s@?54dko?uS#|nowN{L~SdV9*?qC!}%bwPM z_OHtJM42h`)?r>sEnpEo`y;6~G=T|BP#B(kGvEUW3 K0x6hm00wlVZ~XcI literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1184.h265 b/samples/h265SampleFrames/frame-1184.h265 new file mode 100644 index 0000000000000000000000000000000000000000..58298fcae5c0ca6cc30dd2405adeee79d00f0f82 GIT binary patch literal 2904 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1186.h265 b/samples/h265SampleFrames/frame-1186.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2a361a55c6a10beb9ca852d26d840333c74d20e8 GIT binary patch literal 2964 zcmV;F3v2WM000330o4ir)I$OTP{DdJIRKCj0suG$0Kq`=fLL)w)p2~*lSLE%_ZR=H zWhzV_z4j&8ZaBw|oK=&1k4z?0eF^GSI${;Eog)RFMIJ!FC(URKHxj2mPuq^mMnLdT|xl5{D8Vd|2$T{h(PwdzpzGudwo7XB6D}ZKcpX zKI)GL(8!Lg;qreNPk7Gyo)Aiek0{Yh!#V^Q8Nb&0+r(Auns$2sx`O^FOHzYh{`3Rp zLF@AgDSAZ^nkrC>+LaRxcL?DRuj2v{!prrmuVWD3HL&GCy<3;%@eMwP_}kMCPae(W zCZ1)3Z6hnMn9GGy=c)xuC({68N+pC*p5Lc zXL?Est-%a}2GbO4^>GHQu+72mW|n~`>wBI6yH0Q?|HGY3!1z~A7?aLs9%x~BwyvBI zHUEkif8?$U;tFeW=Djw;U;t#5WR|8HK9@+HH~=~18Kmq)gmxh!s3-9P!g`kH{&;k& zN{}cUMhQKwlqV=pSwAe2A;R4IFJ60taVc_vV-x z^`NA~HQ9V*`)W=x7Ls-fc)eeY2mTNHPwu|=*8KM0uEYF$`xo{wqa=!>QDPn-%vL2g-(!37wEyV9gaQ#Oa;pDx?6f#-R{lzZG|}f+YYx zuKG8>QP(Jkj`_ zs)yT~E`FBd(GXg8hyQ$aflQXh7jF%%?T|l%6mT~AizE+zMDO_6r`?yTdzUwv^SXED z2JmYPXnDDf(NZSa{E3JgSwKrK!h%!=@7?E4ns%zRssPF6BeC44`v34#sqMSV@bxlT`iF^ zAT2AEcF*RY>aPG)H6gtNJ~OxLK9{jG%`1u=-$tIzW;OCpsl-lV$BVW!x3}ruVY+ zScs9cN|)iD+4qeq7Q@tfL_D>?FY+q4_Mfjs)T9jemPi!0%k|4Xt0=+~E)j#8{33Kf4l*v%NfaLq~}A1cf{q z6G47YtJqfBE&!ry&$PF5P5*hhXj722V~Tu-GYKf9e8lNZIzQ|15mxuyP8z1&`C@<^ z)^J2lJB7SW*4G%BN)gDXmfTr;HfqlVYHjn443qiU_Cm1qgWhdaMYi8>8M%} z0F$pjo~DZjt&P>okG^*31f)xkSss$`08{`?Nq;N=1P%JL^cqQnq2g8nf~NR&KU8CF z_h2_$vsh#Q{(_%SOD1Kd%3jPZxfvc0-&LUexJaL-xD~9EZj_%Q?T|iQE|0;o{;Q(~ zXOL57cW+EVPZLa=0B%xSEeJ!ogM%{C9e zLjToJj0JD(uy(}H_>*cQH0W50IBRd2Vc?06Kh@X+b@%0Q!28rs03KiFC4}e|r_;Ou zK)_h8<30cY0{|1SCDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn z^JyGpawhk+&NSDAFs&X&lx%dn4PV&jWtZ2G=s1{!HmnfkR6W;fBIT-EiBB$DUkL{T1JZQ3j@ zU%O|SN7Q?vt&LN84-Jpr&WuF)zdnW61vr=}T?r=XJl2Ctdz~~u_@1N#g5MSq8O6Pk z$O1x|d>}gtb2iJJbtC2fCEZuKckyEg4P5>DUd4|>QjR2=2?VMp;KrlJ{nb_DUB6Ac9i8SdgkSNr*~}5Z7HmdGpmiITZV74=Nk=j!gx3iDOyHl zd^onkslYE_+-N`PY~ID8gT=cM-9CK}Z(YPXn@T1~KW77s1TwrixCWQI+-6MjQ(8Gq z)GVDDaT!MpwF83&%J!B(&)CU}#34m@948=1He_ z)}hK`zE`*S^*}hiu0~Njz*&d`sPsL0>8M5*hRKljy4UdBB$Q`(Sc&XF9B?48EC38x K0x6hm04^YoZl0e2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1187.h265 b/samples/h265SampleFrames/frame-1187.h265 new file mode 100644 index 0000000000000000000000000000000000000000..27d832bce78cd6d1bf1c98dd50f14616723bd2ac GIT binary patch literal 1834 zcmV+_2i5oh000330o4)z)I$OTP{CI+U<3f*Kn?={$m=iyz;Q*~4T_2$Yj$lMYV5Rd9%9;ch4 zWZ$qr0Qw+cE-FR-E8DSN7KRXjBBuHQ}rBkd4F%%49&wQ?CKWz-^Er4(BFIoc^e--v-mbmw4>+~xv#VjuEez@ z&?t(nw3}Boa{XCS>?4!8$tXI6<|=A)s>{t%R@Yu!k29mulZAWpb-*h&Wo3REU7B#OEHh!z(FhJA0B)uf z_1kOjDWoi*=Imy-e|OOx$Dr4fK{+4g)=E$3OP&dO%dv}cG~|fAT&qKFq&ZGJsnU3X z_)7Q4bxX-Q39vmWB5BL?Rc?2jGy-=onGi?2B}b3-qtcjbS+V_Yjlk&4yi zu8PSjvOq1DO2rEfG_y7SB zSRZx?Q^4OyBYz(k&HjLze9ZsHX4`+sgfnst1*B5{~!sD4rcm4DfS~GLn0-9uj&2W z`;RDBeopNt_yFCEu+9G3Xo{odbPE3lrBzGV{2%W*>N%r;0GV_V~g_`ybYkXDC zxM@v4m}QdZRENDU(Gt~7MG?x(PTUNt5+|&Ay~uS;nfAaid>@720r=@yF!usU8+9Ig zv%lp+fL?KMXSrv1??W7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM#RXo_PHA`n1xWyaYB z0s=7BcE_GGX1Fr$YM~`W#M=&wnBtiRW{$AA23Js`rS3%G`2SAW zlc8-teUZZ(0P&^5a5AHlpa0m6UkJE+R5Ld9U|IzLTp~eswqoTQ&Nd@Fq#KvM%NueJ zbEdcqaC^2de|=PDx6^8V!0O1Z8B@t`aHs`uHrb{<1CukW0G)sxn*)O@4S(&?I|g7Ije*T+Q=a&KhS3cntt%%fRI-?I2mO+h+`{HxzZEL?gMcu;y)w+yGwSwyW zC)U~|Va7G;75w|1y!*~+sAbj$N8DdtI(s1nw|U17|yXCFp_zkJLm(YA0hj95~u zd)@!#eb}0IGFTIU(#-04CU{+n;>Ftzs01UNC}>2&&8fLT3{`4Wt2lVnr4b zNFkhxKG;y5U@TH!Xr|nXOrSI z;6e>V4{q6$V4FkKYvj0|Hz2RUhDTLfk&f(sM1Sxu1F|Ih*$d?b`FDTL#T5W(zyUuI YUY@}8i@+)%Ah2*i1KI*9m}~$pAa*c?ng9R* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1188.h265 b/samples/h265SampleFrames/frame-1188.h265 new file mode 100644 index 0000000000000000000000000000000000000000..254c3ce3bdb6e600defc99c5a61b5acf76a47dcc GIT binary patch literal 2182 zcmV;12zmDa000330o57*)I$OTSixU2Rs;axKn?={%d$WMz;Q*}`k5S*+i{-5fB*Ee zvS>v9P^~+wB_2%RUnm;Aqd4o0NR=KdZ`*k*EDmDs`LRSmj8R3 zg`N;>f!okcZ9tMeX9y7}7h~;r zf~@t3W_)ZnPX7%yz2Wz6XERx59Hj}c(Qui@!^gJ_uEw`p(W!e6>601ron@6-KlsN!gYU1Uzt4p1Q zuW@RF#_0Oynpz^iiXRSi5lBKfhX+sSZO5r+Ko&~=BH>jdqIN4F@?*nC?5q0CgLKYw z%eJiWl$6?q{tYbX9T3N>RHG^@hz35Lgi(!%0c~woleOj(sfnb`JDV{cKlhh(9#4C3o_5st%ssaNWRx-tlW&flts$Y^0YD+e zq8a4+=RQ+4Ig*1P!27pU({_^UOhTH z?cXY1`^f{eSkTteKlwkq{0HdzKZ~E^{@?g#?fx_Iude?;zi-kdpsmqp2lUH`u1LH; z@xs6#st{fkk|5dFVykM^xpsW2Lvc52VI@Ult!vU%_z7O}j~mlABPPC_f`M%xAT#r; z{&W64{CDWRKSSjHbMgDrS#p>of{2G?xp_UO)sVA&y37@#G9&1bb=S7a0fd%5*!H{F0)X$djPyoE?;RPU$>!6 z(nJ+9wO!5(jIiWCPyrVMAX}W|?u3(Fj1lkuCq4~Fq>r8FwpSPlpe=fSSQKV}#z0c; zmM4nkrSU=)&0P?+p`sSBs`Lm#s8(=UA*My>P#?}ZLx46Vo}=tsmujJ;{6p{6dR=89 z7tyJ%8?GlV6q@(c8VJpCCCgqUhCT`Y%lL=ZyBKcNTxEJOr|!a0OiQS?VXy#yh-swO z?mUm=#@wMhKBGYRSbFh55pg#4#EsQcAWFh4l%7|61dH9GoWzJ#X=0$>Xt-uEgaJ)# z-8Vo3E%PGX&PrWXfY9?@|CcG4H48mPDmJonlEmY{dX&C$j&j*2~Zu^r}F5 zNlZH%+{z-6a1pV|DDv&CLSiu|a}UA`jC&`cu`zNUQsGkRc(d7;I+=wE8~#2qmMuI@ zsh9uTMBM+;v_uBtjDuj74Z20JcwABgU4BG-om)w2;W-nS@}G zhmr*>XG>J59AoP3w1@nY(qX9PFc9onXr}+d;Q62b7hxE-pMQ}7nO!tyFg*JdV+>_p z?^@IL=^nfJX<6hcr;b*|p{9Y07>NO`bTDH%BzJ zmnX$j`+kl2^Fd9ta0LV%n*xU}k7=wS|C3yPt>r3RW6^>+3R=omwzW9o`}t6T_ahb3 zS@(aK=_PQ5kh1*SL8*~kY|?^aL3sl{sNUh8 z>fDC!I*#+eM7q^MbHaO#YHP-t0T{#QDeZUFF%${tu$yEacVgB>?i8OMLyoC3N*V$j zWOI~(S^4;P6Odgd-@W{NYEnJZog7l>TFZ}TyqxYHe~CztzqDJ_^Eg_&P!eaibA?73 zfc|hdj<-|{em1wdZKXWWU;#;658k_AG$7{407IP0G5GKJD7;M0Q@{yWAh2*i1KI*9 Im}~$pAe;I<8~^|S literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1189.h265 b/samples/h265SampleFrames/frame-1189.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aaf384b9b435ff5b45ac712548a87ac80e4343e6 GIT binary patch literal 2690 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 EAgMIt5&!@I literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1191.h265 b/samples/h265SampleFrames/frame-1191.h265 new file mode 100644 index 0000000000000000000000000000000000000000..dbd9c02ce7d18250c075ae3b373003854e6b4e5c GIT binary patch literal 3362 zcmV+-4c+np000330o5`8)I$OTP{DicWPp$k0suG$0L$P4fLL)w>3mclNK6RMI^EQN z?l1l_-o-wanV_8z(*L4f(?e&mD(#TV0!%?;2mr@%EUxQuYE}nKIjYX?U#fcmK>MSH zZpRj5HuBwIAh`B0UcfD0fozi;bZb@`m$A*USD~YRyP$NGqkpDnKe@wl5%x+7;`qqb zI<|!mT6mOjgk!Ea%qMyd)l_ds{C&4H+dN4S)l`CBv4PG{G@1?!Og3eGDftH;wE4t8 z4S!!(q+o-0O;zlx04w84JeA7JED=uMiYFMkEa5{N);kdbJ@VA^!VUM4SvuG@VTiZS zRT+L1D1iIYW?Qc)xh>^WVwz_Ld)~ORN0R3WKUH}N4x%)CP!UcWreWEd9k8Kqy?Hyp zvX_YJjyblXAXs~b%s5m)jC1)y?8se-YXs9rVG#ab?1;Cp+fhl(154ZXi__UU_v>D! zqN&8@(Ayev+(Qef0|Z7-x<#&EIXRh=(K8b$zu>*#4WN}5FE^L%y+=85pL6hzy z0V=abJ1T;ntAPri?tZqyhpFIDuhd7RX8BJodM~dlr3OM>bE> zc(NMs0?QI#e_n*!SvdlRXe*GLmi!e7rY*dGkKypXnp33E$$|60 zxDXpAY86u7BN^TP#CF(_pUuIOhrK9({um;=WRpJigD236f$iq?TEXzwMv#pb;ghjKbv-* zje{^KO4o@jVHQYO)_|}7InCueh!!Cb*=|pd&G2#6%)HOf$bbjnEO8cc9bbK!{3a=8 z5kqPbZy8ZyCPIG~V86f>ePvX>FY<~TG-=P*-f008uHfe?dMz*;1K|3cy;|puQS9tR z(=4%d9O)p;$W6ae&OhSaYlssAeiR|t>gfY^xPsP(^6Dgm35?)blE!YePyJK%FO>Yj z!m6;AlGKayRnVu3@r+jD=A67)HUA@mhs8m$h7u7LBXR#jx6|=u>Yd1E=2 zZgCOcyu%#}Q!;Q7fYA@`y0`?u&kn=Ww0&b-l)Wsaf;s=3sW(CN#K$`@FHiQa@%-2~ zzcl|#KMUst-^RX$)nqXe>9ty#0ccEdL!er9*L01R8)m#sSEtLeduk%tP9)_Cd*+Q% z3x9_Wy{fZV7zoVU&Gqwvpa1ZvStwcEgB!gf@6D-Il6!nuD?vqIDMZzIMZ!Le!p1wK z9U9bf8eoOVjN1o`xOgX{az7Eo4TYw0GNmN?H?(s~HZ#|EWu6$coV#%<%2HO(wSb)h z25V=!b3yJe9IF5+cQ5CS{2+(1(RQh$+j|*}G=Y+uab$*rWwg!SRx!yt^HOK15#6_Ja&=+ruf*?3vR=nD{6zb3GEZw zcO*ud5tFT8N3m=M#Qo3Ru$63;4ADuS>nLk-(#A+wgn$z5hj+ ze@ho<&YLIT(R;>Kufn z!yo_v5YSj3I)m3>^ZWb9`^#AJW9y{l-y_X!C0ijM7`XD!TL1|_8m=JhG^rLyUpGP0!d=t8{Mwz(lPNeiO=iHn2tWV-pF3wht`-)|AR>G~HOwr*hVkH891g`koSPli4Hf6TVtpp2}NPyDx-%P`RJ z057iwev#s{vMptB1B`o;5iDv?QA#y%U;uOtKjDVNb|Q!1yApvKDCNI56WP=G;W3~s zRDvFCb^>T6uM5>9l}xW*4Fg_1dVoha#OMYOH*j|bCc0%z97fQ_9WbP7XbE*4*$^XO z2EG1TR{bvkZ75kJqi`{O8O+i_p?b=4JS1AFI|pBPG3vq@~bK= zk4jrIqlnTH?6z;0$+Zr|9{E{CPvzk`0F29^f(%NO%*rSiK|r^F!P|04VTYS6lJ0;J z<7X9+czRGSW@zF*wnBXARq4hJ3BRt7GhJePLW>0;_Q zlW#Jdk=Qsp07N!U(HsIbIe-av#y7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM(b`x^1~Ni1{! zfBj~in#Y2$jJaIIAFa6sm_ zsEaijI&!Q~1rxFrpZxfh&fQrQ`r`uLTbcy)-xnuHpSln6mma*%pEhRZv)ctM68?Z% zfaP`^u6B!M)W@~5kT)qjf_oyW8I{(6K(Y{Gy_viFWO z1eRv64v_>`F(-}zbz|YSJDGt->xX{DgS;JUZ^)?J`&eF!sC<=F9^OiBBAub-?=2Jp z%drR+b&0ns9kr*rzqZ!0Oy6?Y(}t)w2JTcR6p@)qLEb_ezwgO>tj!w9wmiF`BFt|A zyVH;Y(@wNKCLbiJ?p*Q#dtu9-B7e_b#w&E!PZZX4wq6fqqXI%+i(tzV^wQb;42blctqtRBVWLyGiruL*v`+Dl!3*%T6%r)tOo2L!2?K>V2z^0* zxoY7nPIdgw9dbkCn3h4FCbzAg!nXAYcM1m}~$pAR(`IR{#J2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1192.h265 b/samples/h265SampleFrames/frame-1192.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e30aafd43cf0b18cd345a6ab412ef05e88268942 GIT binary patch literal 1697 zcmV;S24499000330o6JG)I$OTP{CL-QUn0tKn?>Qi2w=$z;Q*~4UI()8bFkZfy4oC zfs?}FG~GCEiZXBqBJnncMsb{a6LC0V2LD1t^Zvj8|Ne0C!Q#L%ARDWY?$s^&pZj3? z{QiUCZUc~$nSkB_=aS6#JX57b%%tfTL;N@k9xwwgk?)B{>5H-5(jhQg`8C&*^k4t- z>uoR{V!m8!+mdgBjumt>&@cF8cX-EZY;G$ObU;nSFfrf`Q*`A*0vaE-`--4Xr3Nm?MsU<@gS!) zhliP%`-EO0z|Je5Bim^GHFC}OA4LyVdVzhcU zw_tB`J{yIZOF8M;E?=UpUU9kwjujU|N;hd1{sK{iZwGtHTUEoH4%$u0JVLPeorWB% zq}=0m5}l;d(4(T6vw3B*0# z*nP`Frb^v?a8&P<1{gCutN=*NH}q=r^Nz=d5!AQh!c1G3|9!4oUX$&Q>DGBF<`H*0 zP4~0FZbnRgbu*n%;ukILso9AT8TbDdVr!|56@Kqnf2^zYmxC>A&K|fo5@5v!dF6}0 zHzwXJ$eQJLN{=2Jfu*F@&|~`D8-dZ8dg=93*E+>hZF^SPz)3YbiIxqw8oc0OT173~ zfeOo-=}$442&)*zx5S}25;X(&eZ)2B78wfC{PP3Iv#i~F1Rbz=B`b~Zs%RO zC6l8gAi%l^9V+dd!mv%{_X`syoCMpDV?Rvs-^)Qdvjs9SI^_5=|^`tI(C^{*%Pua)n`k#&Kpy8nNzp799SY zV0{1k|3DKT>~ZoKF4YnuLa_XEs$kMXcXz6%;JEJak*36_9{_l> z$!S@Fl2v9){_SF$N@9fCbV=P)mvBFX|5@8Bp_s1z)*2eNm=D=gs$oboBZc>od`jbv zCNDpJ0F4VR)=TS+)fij|l(V!0rpLMQV6~~s6|}sw%Ao&n9B?E{7z{9DQDJ8-dWyug z6;H=~w9ymnQQh1uM3oZ=^Bkkri zfy$PYEc41(aYPrbg~R^zg-b^&iT?Lez@Ccpo&BLc54VWd!2pSBrl9u!#9pE4lNTC$ zV`{8-6nOXUWlXOklgkd$GfIsDZ29d9wN$u-YVDwCoRomXgr_5&{!8P|Oj=<~St68c z-HCNv^(gG%#vK?XTo(j#BH~A;1M$Bgh58SRl1DZN6UB;g8qCK$+yFJ;7W8ooLzBBv zd}Ocx;dH;J6VnHCE=*c=A^w{aXh3wKwZUsYAMr7aBy@~)a|Qr~@5_u>|{ppA?N+jEy^E<6W?W^zCYi3Ifdt6 zBbI?(tA!uz`_0r%m+($2luRJNKZkHOfh#eiBm)1W z;XU|2H3-j&E0IRVp3ZF;6GJuh0TIWc*oXUCmcczjjm)YyU*rrCwP5MYmg>WHAi;5g z!Bn{v70th9$dhKfGF1=cCw|toE_YxCCj<1d_$*=VP2$N1HKUtT9qkc7SQLNv$}LaT r?AFm>sXx4iF8EMrN^rEWtndIsz#W|p00G$`t*8JXU;-(aYyd7G+J!}7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1193.h265 b/samples/h265SampleFrames/frame-1193.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0193b5933f9396f289d4ff865373f2a5924eedf0 GIT binary patch literal 2241 zcmV;y2tM}!000330o6hO)I$OTSixV@QUn0tKn?>hN-zonz;Q*}+5}I_&NC8UPk-P4 z{VeR6N88l)qGKzl$5X&BXompjohLPuH(mKu9ITNDMk*Kv)X&G2NYC>~tgyUSpb0d$ zv)tSx@PQ-h-h$c59mUw|%UbU=UiL)@e<3CIi?T<|a9g0U-vi$&LlDw3f*{_eni36f zlG{GrB`Gm9io$rp7I+h#B_AC%$)hDj)W{n#ACmm@owCFDSiO+ohuYNGzyD>lK{V!R z9KS4vUxpot%eKt?LRsBUdl(O~3&(D>f(ql0MA{hTP0pud7YLbVt4iNJsC-FRy5TgH zFYG6M_ciYJ)4hRZKrZie;o^Z4HgLn6-5TTYu;|K_A}zSGELFhC$5!FZf~P*-O8b;7 zUv_V091bHFtreeHXPb#8MGGG-cKQ1qmHSw(Gq|;;12iiVE(Ey_yDU_<7X=E=b#9JN z`F-Bqtx@JD{37sXH9hsHYnC;gqe4|mKMw8H70ibZg)*<@w;A)uD0^T7^?^VK5jgZ| zab#VX;Z@NZ=imU};BbB-XrH~~v72rqs}^G9uB*a0sUj0~6i`DSI))dr+nhv6L58`I zH6G6#a0g|h2)c+~scMqwW#n6FpjCJg7qoe{8j4Z>$o=2oKS$C0VILp%-@`v|@t=)- zfBF6Uh9Z?a>O$}6K0Lvw1aE(>PW)7ujcD0^I0ure-h?VR=t$6DdRYnjxJuNLx5vM_N|g2uAB@@ z96#|KS#gUEa0%>Ql_Uz_FmF)gTElR}&^lO-okP{+Hbycj}68pb^-)?oVN`!NBu zBg4_YK>^~6I1gn!hXL_dhqCkF(slyEIa|oqz#l6MM`Vci4J)-+{!NkAUF-xO(cJXa z7>>_?7O!!OC#O=i)z@V^Wwk1pC36ZDPhpYi^K?=>qGb8Xm?qR#Fhm|ho-$~#1dqWx zjd$J^33ifVv!$omt+~O=L-2VL?gt2+fB>yI%oH?xp_U zN$;O$n~cnPABOTyl5t@#z(g3j{)jZ z`N}$PrnG@4moa12U`XpGp|xvsK=Be}^8~9g8Vkn9mc;YH6+kGlwUWk#>E(fIB$==C zGVwb3Ydd@Y`u3Oq|GNE(P;70Cq?zCVRlr!S$QD2V06)Mb(TS!200rDCD~xS| zoJ5ri8|GMmO)no0kx>Vmk7at`1nSqrmtqW`47QY5poBePalj57E1S2S`kNct+c9 z0GD}L{(>s^1;dX7GGg-~og;GPcJE+1g~M4tf1|h>nVD+*b$l192G`Kr#oKIfD#Uc< zMX1*{CM+e~U1js-pLt+ysspe0hdKc%>X8{VOa?rlFAZ|^jHH5_Uy6U!WG4NSkK4bW z2cPiE4H9)>8jR)7_0kh7RcxJ3;{*IP;W6FfpEj=z5bQRd{%hRF)WIF79_#B|2zFC* zi6g<4Ho)TsNxRUxOx&p1A&3g?*r zLDoOc0Uzq8|efm?%qWxiDj730|g zQna{@LI~q2A>-(_0)_EwqelxdM*=zd1@Cgndh(qrgV+w6@ka5fHKs%e5wdb>sh4IO zVn_=+&!;rFX5lfd>Ob*Co}H_D0B*cpP^MlZpCp_u|(FntB}H0-{9tx zU?<o#+5?|l`c&{#DAEvb9Bh{Yw;uro@D}S2i zQIPs~tVa>C1ZdE71m3eQa-)#AQ5GCO4SOXy Pt*8JXU;-(aYyd7GX`x9Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1194.h265 b/samples/h265SampleFrames/frame-1194.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a402ae6892ed810e3bf3d9515c8b777013bf58ca GIT binary patch literal 2638 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 wXRbFt~WsQ>@~ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1195.h265 b/samples/h265SampleFrames/frame-1195.h265 new file mode 100644 index 0000000000000000000000000000000000000000..afaa1e3d95d67f00b4d5ecd3434712e05895ac93 GIT binary patch literal 1754 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1197.h265 b/samples/h265SampleFrames/frame-1197.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3ec789c9008b22ada6db8cc5107fc08ea92a2bc8 GIT binary patch literal 1908 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1198.h265 b/samples/h265SampleFrames/frame-1198.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14a5dea4a2aaf717a99724e8dee2907bf41b3c1f GIT binary patch literal 2263 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1203.h265 b/samples/h265SampleFrames/frame-1203.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3217b698c9eb5a8f6073d50debae9289f9b83aab GIT binary patch literal 2130 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 LU;-(aYyd7G05;Z6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1207.h265 b/samples/h265SampleFrames/frame-1207.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4f5e75ae7c2e77ef281c8950fd54abb7bf5a94a2 GIT binary patch literal 1781 zcmV{vKDpHL&<4C9@<@ zlRhqBYp{JXs$#ch*M7k?#MdqV%CG;wYiWS%74qX=+>?A1aI2x7f$U=@k=@-vqkSl} zR2a2zGJ#2$m;%PAxv2f(|WJl z=aWTeTG(ZFE#XArN<^IPpK&5|ZQG;v?h{nwVKR61OC7?H=d2dXxYsjD1|k2Iaf)!#~hESyT#>^Hg4rQm7TUl9`rwWi45D4EzDncLgc#f(bOUEe6|LRo+=D(gfmbo0*qJf{J z3BlS~F_X_l3^al!M^v$~v7G{uLlhkGrcRKgp%z?UDG5k_kbs~PT&2dCgPS)a*92dL`zR@Z_ zkQrNTjBSp{nXyWtfxE%@Qk)WE>xT?!MfC6Y;d{zi?2}GBs{=}9O=eT|yB`CiGUoj1 zjsqO^SUis8MGVOghei%k9zOL#tg4!=l0L$x)b5(cYU7xyS?L76@K&whep} zAZM@Wqzc`+2d)`8Qn*F>k91!%?>Hx2DPsAxc@-VGNHqdN)h1gc8$L&xwsIG{^%MR_ zzyJt{SRZx(AA!D*M>27!7yY6~0TBPknU=4+4M((k=cPQN&29aGNo60jbR>yzNi?y( zuR>Rw`cD&q&cTKM8O50)>`ytDMWetTE2hwf7Moyv|NH+y6Cdnm`Z`JWN+LqB0}Mv5 zh#{FVFa+fpUO(XO&S(tjOn~YRd=Js4#HSwsc(ciryT1fzmP0yJkOrl4y1 z_7(+G5Z!O}I=E&~BQbh$GV>am1#zwgv)GwyVCJ-Rqx0ndi^_#}oarRh)e`c|T;`0uuwB7K~mRk-v3v<;{v z$R!G$9JxJ!S42mEBuP2~ASoI^`qT@OSR^+Z+VV!AO8rRW%mSWRt;iNY002M0CDDnd z000HtDl3ivNr=RnOHDUq4_t1vv>OABQ-FiNY)SduE;<=%dHFyo@RnJU{~=L1&9dM4 zS6t>}C3OL3BsUhO< zWvYw!`=qW_0^H;!X0s-|N+U4-H&iT8$~SjVLX?|I$r?N4w}nH)gyhL6(E>}ssWX(5 zd-Ce(drm^~nbgm0gzu#ylg%ki%U8hGZ1D$s7n~iw9F?>+_}q@tdY>=<*ysk^PvxjD zSgJ0cMqWTBBfLQBP5m$JEStW+$~#3o@*aA&_&7AkJd1BEAK; ze6@MPM~p)wRykQGW0zL+Mt(a2%S<#khF}8oOe*}&K?h;bL*|e~BO>@XP?nuz%vMfV z)jw4A#@vj_^;7p+=+*HP2>c~9cG$7NH0nf86kURxP*HZqYt)@k5VEJzqtFiY7s zs9NAfz(EAE{D4D$_TuXQ#E@c@^67pUmO`)xq7Gd+CS6~RnipzPb5GfDYpJez-?Spo zfu4AJf_)++D{+Kz)_!F<_&?|5YIx~VG@I+>GfsqOdErg}qKAGVWAv#?TlP)44HBa6 z{l%bV!aT&y)<=&65Q};{*xEOcl#!QW^`fY*Ku^FZhD+rvywy|pavj3^n!dB` z;>YG7)<(-2NVD+q`(qN#{_2O2e(vps6$EOAzxf(nKrv5!0Ql!Jh{1n@mcW_n?=c_$ z{jxicp!c`$6*U{F-&zgAdhc*ez$!5iXIuD^Cz`AdxE4P00niMn6|*n^0Plbn^f~|m X?;V_&00;OWt*8JXU;-(aYyd7GdCq4_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1208.h265 b/samples/h265SampleFrames/frame-1208.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7e99f5de7a5deced5ebafcd688a8647343d0cad1 GIT binary patch literal 2152 zcmV-u2$%N&000330oA$x)I$OTP{Cj0I0OLmcn$*qz$gj=z;Q*~4Pt&?ahQ_&d;b6b z>1Slm`P}`eufii=Nnb%0!=Oc z_cseXAlU=Apx~g5S9d^VKo#!x-F8vR$r5w$^2buj?|n)A>d};MsE2g)*U z$#u_$d1Fq~OZ_xQS4Dm(tL|}}{6Ibdx>^Q#IJ)3K60R%QPDsJU_MFrjpl|A+mcMmZJ7{Rtc^z#nPF1vY~a!@R2Q{T7t z+yM)6h%!yQAgdGlqJs!YP{SO)|LlcM{;4{3g~PFI|3M?di6kt!gRVQ3Zu+xA`e%Q85K36@uuY@{J+J}#x%pTj zd*HtkH@acj9mHsBEtAF;es8P==2zOOUPQVE{H-2^%jQHY2T?B}|IFxkVAxq|594c- zYv6>2;oHVe(&%fqv-xHkB|Fr;h(qo z&&IyL{QmvJ6LPC!t7#bfOYgqcJ3{ig!q@38lBtLV&w8R@q`aybqx}jEB26N&t zI3Tp(vXV+^R!?0dq?iBz1aw#*b_YO=zh`pjZGEP*dpb1#H|F@Z z?pr4)bfTXaf?nfQp5#Tq1<3eCN_%7+_%Q|$pq1M>zoAq}VaOV>6l`83IFbek#?e(a z(t`JswwOICAzUwsDV!cWGl9I|f{S1P0k@oETpmzml4ozLSD%eDRSDXDzHQ$4t^30*Oy3F&JW5)O*xO`&F>{rb8 zEXk^NqP_KfPY#NK`R|W9b4;~=&0RV4HU*TzD%^6wvFt)eL!930f?h@1 z?jHPeXEdd;4)?}WHlhR7WT+9lBTXfk0X!r;oA2E1H2g|JU13X&l?9-DiUmho0Pt(8 zdgD{xxmYp^1}ZFEkbJ@4(25zlz*s@`c72w427INYR9(ojKR0p9^ zCqYIqq9?77FL1;G4qh?w@a0_LL-=24w7u!rZps-az!I(EOW8LcHsfv>xwau0k2_}7 z*bqeA`4iMwz6(M8c~axbHoQ-&qPWXTW3c>-7rTn@iFy!=R?DtUqk9+~dZB~PZEgAK zVmo4{|Ej2TxJYmCqe7(NPFwq(Uc`lJwMrS&kJK5@LrL*CX-_MRtpEOAIuarP5rjNe zDlH$%AXU=;MNXs8`hQXIeZ%!8hnAoYgx0b1N3>d)jZhZqHrL8HcIsgIh9h{f|2lybZr~n{f0x6hm04^YK&o3DO literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1209.h265 b/samples/h265SampleFrames/frame-1209.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f883dc8c84761a6702c04e734e51ee9a1e75349b GIT binary patch literal 2988 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1210.h265 b/samples/h265SampleFrames/frame-1210.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7a53cd135d203ac74d80ba230e40844063cfa400 GIT binary patch literal 2040 zcmV)I$OTSixG_pad`Lpbi57z$gj=z;Q*}`x+p;<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxy%65k9GO>zqRI_g z+CUAh(zJ8{G-^aiXKm!Z;_`XFAYQGSfb=L_U((WD5JbB~S(2=jZtV zcg@_4nM>o_8l?aJcoxe=xDYBIc1JO&FYGr3(X;bA0;LP z%;v$z%P#t3-nxN*Q${tf%mFSw4;q6Pyr_^NnO{$9&7bS3s4sM_2?hV;HGY_$f^{AE z=0=}>$(DE#zqmLY!0Yg?{yA08CHJ$0cOZ86*X6=!_C z{wh0Nie4ion2!b^kgnrV2*kHWuFBPg%aBMhs@M04FCG9_>+pfvG6f)bHCtEnW+y>$ zXpqffRlio6QZ7-Y@BgbaElO;mqgb%H5?szcWtdMpPtc7P)R~(mJE20b=U*N`e5bp5 z;ClIG1_a0pY9yNAFG;Rqni^TQvihGf7uSGs)T$olb?IT6WXmJzFyQ3!EUq?uUA-x2 zMKCFS#UyD2oj_EDBC4DGZ6}Fjfw-4j+fD)d`w8|_ZO@cicNMdX+kNsV*dvD>RwR|v>MsaQ)B=5TLhU0EW`BX)LG!8lubM1T_-lt+wRPu#a{dV z8~Hm!f`)3YGEw2Uv+HJ3VgaeU`u2%xf5m||IsjSeBlftKc7u};SB#Qy@3g}f(l6%+ zdm~D2Mc*)(cszE4kY3YG`9JY4_>JUnLhF{#4^-;osDFGI{7NoL&HEFpB24@SAKhQK z)G@C?2x!$`e`T6b@vKzi_W9s6KCqUA7gcCc9Czmjr-5fs%T-yfYhlGcBcj3^9AC>F zRk|?e`A<^HhikO6Pp<6(f+ljx!t-wMgfRN*0cP=!Ly)+n(e28Z)8TMlsE?0r|M**a zivF7K8iM(A6uDI2xDS*uV?=M|BEW_hRbO2e^7h+TbT3tKcEo#m*MB8aDqUu zKsDPnvI}wbTyans&Qm3 zY|t&YZrnS{XzZ_-Amn@ilY~z=FH6afGppSS*P9kyy?cOA5we_3xyA&%nMp{Eo`lAn zmF?0l+eb&#AZE8$7Bqi1;3Qi%K?4pMW#9UKY564#>uKRj_QD-<`vB`nWl%igWr2_O z0{~JuGe2zTkmo5}U!$-7T0@j8a>Vc2|k$_mO$QD2V06)Mb(TS!3 zf{!Bv7Q6j&_Rs#q|L+7YZ;|@>i*1#f4>gXnsVh&*ZjY_B>WB$LtS15(-!~*;cm2d=LC)Bw zA(%!4B1ADjQWU3}#6yx6YapTawtn+^A_mspbSb=`5g3T4BWF3>m_%qn833vQGukriylH=aZle zA*}FBNx=(xxa7U|3{p>{Nb3XnyA32OcpqBbujM)db(r5eL5{LC>kL$?p9tsbJ6LRr zc^sPl;IKd1D{-dt?A};@ z(Rp7Xkpjo!+-iLZp?J~QR9*5-V@wp)9+U}MvXLMe#t2scA4)`T3+M>mDVsz~O(;z@ zztg?v&`9NkH0+QiEQ$~qavM7MoDBxHZaUjNeZ(m4hiSINqC_9#2jUTz?O}GK`H9Rd z4Al5O+T(U5rA6{2Rr1pz(${&{#t|p)q$D0LR|Bs_Jju#~VoW&?w%2>8aJSkN(FDum zK7>gy_-!j+N-~z`C}W#a&xvgYrM_IVJ7k*3+uyZIW(955v>( z@0_azRexW^avoP~9Ut+2p~P4KV60sGXj^YOZ>fH6rk7lebBUtSGRPl(DTg1F2CKzO zj&06Zsu8xTcjBBquFC-lx}pDJ_A3W>F;9H}9^|ip7C!O-03sk2voHVv?|>HcIsgIh W9h{f|2lybZr~n{f0x6hm04^XlpWDFz literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1211.h265 b/samples/h265SampleFrames/frame-1211.h265 new file mode 100644 index 0000000000000000000000000000000000000000..121b1d6aead871ec1b34c54a0afb2e2aba889a8b GIT binary patch literal 3127 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 HYyd7GrGG3| literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1214.h265 b/samples/h265SampleFrames/frame-1214.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b00b1e278bd584f8ce127b5ed1dd4e236e5ae658 GIT binary patch literal 2977 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 X?;V_&00;OWt*8JXU;-(aYyd7Gt_kG8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1215.h265 b/samples/h265SampleFrames/frame-1215.h265 new file mode 100644 index 0000000000000000000000000000000000000000..24ed5d4364476f06f2441649d7a8dcaa819b605c GIT binary patch literal 2021 zcmVfWFxMf54`Qky!kC3X)ix9>0H5z21MfoSwtxI55B~S(2Md$ed zw=t?O|D8)EzRX3MEMCdqI1y_-!Fe#{ysJzLDNC^}mOH;A_tR(`(h3FJFm`KM$oX!k zlDfWBmg;E6uNiqr<-^VJs6=UI7x zUgX^@>Sb2r$0HDC@Xj)M>i(jucTsI;-)li1D6h0S03$ zpA%}QqvwE*^EjYEOe1lVM?6BAVe0*7JVMuu@EpN`P3}Ozt=)bu=B8!wdpGl+Cfq*6 z<8&1-I&4kRq8weV#r;p4k8hr_*SHTV_aagiQ-6)5@hp%x66e3Lm)(SpTqG2 z?lH7FA_N>;1g_|%YoL9Yu@B{HLW~FH=*edzt)Y`&T&(y&CH1YOgO`J$vgXma1UKpJ zt^yT1ygvV^h2G=*wk=K^4LbMy{M$aTyK#j~96%uwKn+**b;j%KI_b$)6{L`fQCP2@ zrvem^&9PM0#M>eK)5{VY>1H3=d4#7>ii|icGTJUAgbZy-39Xj{1ru)=nIvHnOHD%- zbZW&=HcN3xi|B|?<9_nxqJ25v?w$&ZRnJgCpz^uj^U}^pb2sG~O}ddPbOCbci-C;; z5Vp$=6=Qk@E~36n00093!hl#GcU_+(b3gn4{w%Ay8!7|BdClQzZqzU2{(wW~Ux%ie zMhODFK-X;6$RFr2hUGvGqog&IB}*uzdc|m+Y6W0;gwFedRT%$!v({gCWq-`AXpd3` zl>6MZ=RMoC*S-F4|MvJ}nG9a7Sw@Tu%d2sP5A|iIDm7S$P6_e;uVH3eH;2_%O&%f} zGzs7^qliA3MMam*#^JGObupY5rR2w%)$Wf$#WybAx~wP&*+JIa;{qCjInA$(w=<4- zBVW6#E{#xaI|YsT0)a446JyxBGSptlZ~Z?k{BwNmS>AssnZ}b>dq}iLh(1!X-PIB; zSP%gupE-YD?x$=J85NK|4O&gMczVgK+Cq{SD&VP~eA2u3=ut>B2wtR~a^q)A5fN&?*otb_ z4ig;2Gew04+aIC9?A+c+I_hP&|2Ty@%Q)vkpz#%u@thhPx>CF$7eSt*m{Ar;~-_aq`O!n_+rJ(r4^$djqB!UYtHb9ovDgicV&L z*Q1vICO+0-yO1R$_^iA45-7}p4i_+%XGNs81X!O;%`?vJz!J=sjZQ+NrdWjuE>S8^ z2f|HT@k+jwAu{I*oYzq))w7zn5tWOM=Gb;!Q1@?;Z@(0gEhOnT%DP)ZyL7wz!xYbU0>4u z=InU16xz5e!T_k)CDDnd05$D{680N~{yN|~#E=9ilL?`W+`97C)D1{Cx~juKw=w&0GC5pgg$hqoTJ%W{ zHnSS(#gc60j=!CB=dBrvfCImo8-NzY>{L$?nnDM}^N>QP%@2i?(!e4VJnk5a`6KZ-4S4_yI0#td^&wkj)* z00Ly7pfOK<00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G D%P`$D literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1216.h265 b/samples/h265SampleFrames/frame-1216.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ffdf079107fb595cd3b1a089e0db337e0aa55d5b GIT binary patch literal 3310 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 Pt*8JXU;-(aYyd7G3Tyce literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1224.h265 b/samples/h265SampleFrames/frame-1224.h265 new file mode 100644 index 0000000000000000000000000000000000000000..94d12cdad51d4978ccf61189ff4ee6fcaea5757c GIT binary patch literal 2796 zcmVXbtur@7K)1c$Qq>5G9yPVDoG+f098; zJlZ`SGH1>+#!U)mt_BeMpC222{`qM@tJm`Xy`9YGsJ>V{kz@&I!)tl$~#?SSS z!yz9qCe%xK>oPl+EK&j<)T_eAUhgUVjiK?Ufl<)ID|^%^jd#n8d*(p(q$xb`g7u_$ z@Xup^u_gM_o0DIFc?JPLLU{64nrKEBkCnGVL5=%6_FEphsn^1nx6NKU8kf(|#Jj~d zG;ZzNN|EV+9sFm~d;QzgY1|dq*Li=klB5JY)fJ+9ntA8n`Z{oKmX#=I|! z9y4Y_+eLN+m?mI;hh3I6T?*mH2yT${KU3qa<)mo5*j}$`0O_l*R;7zVgt<+8Jg3;_ zq{$(e>H*HSw)3>1a9aVQwRe>=Fy01_e~uAmz0i9#UP;?NM|~^Pwqu{yo&0~7iwx7$ z{obw#ppu1|3#{RBK@w9)wO!8#JOk2?NTTDIT_wx4aN$y-(AlAAq2?K<$AxuBz*qQL z-jC?#wcWmoL9Fpj+{c|^zB=OH%h3;giBfD9>?G5~1hL*JN_dC_FtM9~iI4$e10&>< zX+~LSFfD}G3*#7p?D78#{!{Wl0rH)t{J*>M|0m%~`!DX*9ge$hOR*o_7~(H+*3z}- zRs4LYv#kR2P)|z+`(woE{j~R9y$y=Z5Y08w0w89daXDXE=>;IqY^A6p2eztB1gQFU z6z*}`e7TcRmP;r>VRwdE<0SoTFu*SPUZTtkVCh1^WH(w+W%%wM<`Pf^LcA?YIo<(v zK1}3Vmu?ic7l0J6Xcl>Kz-=-najy7X1OVC@Lrbh{D%8zzrv-OAkG((SLZZG?_`7MD-imr)a^5qRPqom3Q zvPpMfvU%OE6TRUq2vO2nVCqD_gDtZzjz^z@{n#=m)kK)X%6t!{3 zCYLHOA}tH-A`RI2v~*4nZrZ7RlXMW0mhpxhZcy&Pnt+s{B}&|S8?$68@)`mkJU2V# z&!iKc;(&MsN5OrJMVL7dl*4fs_kXjxbX! zZXC>}mRk_|{ND6lb|SI@l9qqs&RZcX$8q#lhIextB|brxJ;l*H7|NxfwPi|W*1;*n zg^jyD!&MtYm$Rvw+3(&r78P-7fIatZ*U~mMc}JzzY5*Ot$& zhYyr+lmkpBIO&`%L9+)*M<;JTykju7Teh|fs#p6!jg6K24bwg%mTqPK@g zW|32Jv?}>Cow?>&zFDNv5m+&8mEMlCK1m*X;9n=Jma#Gs8C%d$o8X*K4V~)A`2vX~ zY>j>R^=r!8Wt-)ctJ(sxH#?%-%L~7gqr78owA+_0+Hr|I7)x=TT zdyy(Qj^ zn4EhIHKBFZ5+sTmL1Vf03cTIEZV}waqP8JPgOXnbaK*7Nb!`2yz7A4dLtReD3q z=4tSg+>dho0d#68nz6(XdjT3stvn?nF{+vbJr?2oYWTN| zi}DtGyBR?sM9Lr<06l2&)}F#BGgbgPP}D?8#_O{QA7l=zc^RR| zWd`pJru(F0pz#NvYgjdfCOpFCa6zw*$R#lg(AXT{ixqDPLSou{IV}<*4zHkl?9yB) z-hE~4xQ(Kg`u4_Znt%OvQgqdSNqt6&=~u8lK38l7+12lT6EPL?^h2)?PBB#J) zkwtDmkBj4&*haygxF$R0NWV>%NnUe10$P9iJi&kHS^9WMjZ zLd>y66d7{?^#BC?-;7`%(O zmx=pERsQ-e7u9lEeIGx~kH(M0!~SkwVgFdJ<30cY4FQ}b(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^YA`E-Z? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1225.h265 b/samples/h265SampleFrames/frame-1225.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fc38a38fa942e2ed2f85f29b6a26d95d17e04219 GIT binary patch literal 1901 zcmV-z2a@;z000330oFnP)I$OTP{CeCcmx38Kn?={z$gj=z;Q*}+5}NU&NA{c%loO9 z=`fb^MNztHxjnaqzFy7`^30feRA)L|nBDuS;R}MG#0Y{~@dN#Pk!W@5eGU`}Rz; zz>WREz~%>Eg?J0fu6ZxLoFm6ni-AvYCT?HG=otwKAeokoBpl21KbVIyB+zNJxhg>M zdj1T8{B%Eg?w0^Yaqh;L8|2jq1~pee2@f7T0KJiXHi%59F)s5J$xhv)2^n<9L8*Qm zTV|qaoVG*G%0N7(${IC_;l3rzJ?2?4^R)d9k3c-l9>Y-$fK0x90|nOU%OI6kBh2j1 z?!2F_%{UH5CbtVV;L(!PJOcb3z%l2d+HUjNr$!%2DYV805^Q^a`20`e@fqG;x(c?m za2`SeIQsY|f-xe$VhIYQ9F75%5Xsvi#%=D}7}G02ew2RYRHL_-qQ`jo)M`5*p8~rN zoU8-krg0G7Xe?jg`04BqRuhuTqFT*1sQ#9i} z8RKB~_YKWp9;^(aW!4zF^=s44@DWKS(sm^jg5p=!uf_fJ+ixE%#e1E=w_f`G8u@!b z3=}g}au$yeal}Px<(o$VE5(Uk>L)BKT)shoK?nnpd}L``sLGeJ9H#%p5{L&CXZMMw zylzF`Fqn8ec7s|nKmiZpfNX_~xwg6R0FRVT@CZkA5Pr)j!--Xs7dAv3Czd3^)fT)E z%G}!fWcZgi%>hx9yW{@)PC0VYx10R7+w9gWAm{Ca%e+c@zwHnOL{A*I=IRW=Lc84~ z#RI~rC=lL%4Z#apNAw{sd{}X{?Z9br_vxSmT`uTu^zK+*%CiV!>Ct@0|2?Ds+qrPw z_EtE!(0y2jUn}lGb=2$!dde0RC7Xbe~2*M{EOyO8?*g@nv1m*=-&$(hmz~j<5eG^a38s z@bk|&!6G-P8tt0d1-wCwH!1@e9U-itDp^G%)+7%QmPD%Su&H(F%ceZZF1B@&+=ab*QA^pC9Qq66Di#{N-5D z)FHD#vIdPpg<|kT--wq#rQ#@*8DP4${*)5_bTCdKei?8i7w{;+d|$4~@EhG>Xdr`+ zyS{{|Z`UCJ3p992)Hgm!uVesz2=}HpxcVl?>sk$EVkqZ4W$4?p@h#G=SXgYY5zJLiDNJI}H5l5s;?(0UUDD{GLjno7;XiQS2&YdlOOS zHham#0+5Y97HEO8SEAuzXP+{6IQ@z4(?nqO!->E@ zNrBZ7?0}aZvzqviH#^c0V4u3!TZ}wr*%F#&*4I>E@Y4S#@H4`l{+LD;gv#O6%?e}V z3}R)L{DlUe3#tnv>4ALKkkpi0^MHgoTaYQHENZ{u&WCc#VrSlngP_#NN=ef1ha;}Q~$8LaMUgz=yr?5KkcO1FcmdD^FS=b)q*NHa8K zD1e+#t67w_Q*uTU)K*ELul7IiKhwX(x5{Fe|Njd!|DzQLaiC^i{QlQQoRGx7zy7({ zzFH#J2niRZU`6ToH*Zi_t;iNY01T+mCDDnd000HtDl3iv00RKpfH6;f00096{1!g) n001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G*5Q^2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1226.h265 b/samples/h265SampleFrames/frame-1226.h265 new file mode 100644 index 0000000000000000000000000000000000000000..375fb76a633b177f3a788780a3e3cd72b701454d GIT binary patch literal 4217 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 Pt*8JXU;-(aYyd7G7aS>) literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1227.h265 b/samples/h265SampleFrames/frame-1227.h265 new file mode 100644 index 0000000000000000000000000000000000000000..70ebd969f1401ec0cfaf44ed5998a4c991ae4051 GIT binary patch literal 1883 zcmV-h2c-A_000330oGCf)I$OTSiy0@Kmd>q0suG$0KgOifLL)w}M z|C{X$XMO7dZpt~vI@&~$QjezDpSdd8XrJ(W|2}woP31(N6%soouHfmq2YDLzdzn4~ zO=Zx+GkTpzqq>1ZxJH@)lQW8HSF-b|kFw)J<$4^yEOyKv85tjn%t%3~iklw#C#(6@ z&(+UA)-$U=DZ4=yhCU{;)N=M;aDSlO1m>1e@Yi^U35J@!-(mav1wTZ1hht?zW&hp(8L!g% zA1U*a`drLjGyUy<@ru}!M(;!WFx@IT~Yso5SeT{u-M2;waaB4}~Y z^x&9cs~v=f$mv+!es2-+OJ$&8si+yxreOUJ3@n zK9P*M7C?a#)_?;%Ha_Qy30}uu@58yvQxISI;ez;(s&NbOVrdFu`DS3Z`|8Ym@O7(5GhC)j}kelUtMxi=E$liscqj z#A`g0^r@ilwG#+QcA_2$*&QKk*;?J!pK%tng7r*oj{VMuZssf-sKa~p*~U|TChbZA z999j}N5^r9fQu7v|Ni1(o&MKg?QLL>Y5hL5Ld;E5Ndmk*HG`$s^&y)ObEf3-C<;2JA@e$d4KqScY$Qpu)MFd|JR-cvL+A>L<1PYBoFDKRbvY_ zkCW?t$mVkh%uY52A+ybzmS`(jJpW=-!EVMs?T1jQvXGWNk1MqzI|5cT@y&K4dHVxS zAc(TCh!1N@ss9%*W%Lt10SL+NFR`0%x&lgG4$5R$9v)6^a~wO4wt(`P#UC1hf7&E) z5fA)%nQHs6)O$y+dQ-|Q*5B9^mQnjhLP(bclS>=w^d)(}q~^6k6r67(bL1>2>;7fY zXz&M$>9iq*sxGc_zyANw1j76DznYoV=jgSF8UuQ-pDKX6#`W^Z`2Ns;qApStnE`VZ z{0LQNdRq^CgVxGJQS+qp_TqW!S0i}Fz2!~^q#Oas^=;NFWZv_C)av1xIce*et)yG3 z1X|_X5oeH1$y}Vww8%2flLs3F0WG=2M;L4-KegAiKJ=KbJ-J}R3O1STF=2SlU9X>k z<*zm8OJ`%IFWt;a-sHzJ8I~Pn*iHDTnp-xx0C!!+)5P+ulZ!TKpxS0=|SVk zC8u$Aic#O9hX)$#V?^Nv`3SJ1Bd$nb|Gy%7Bh(+To&C%+1Igx)?QZlxu<3B*t1omh zYi0|c|MEQr@!mpCMYr(F#}98SZmPI(5andxGx@Q*-qG`ggy*UZb6Lz#QjB0vpxyo! z_Xoj;uspWYI}IrHdpBOIFG8^lm{H<+z93DJgm9Bu8X*aE57))kH-))%0PY5v35Jz% z18)>3J^3+HGk=S69rHxL*dCnjwc-x95O~1i z6I)s;;R-{-6({4R7heNE?|h@tx6%0J-xy!a={((U@zp9|_b2v2Qt#Xc`}TR~WhY+w zB{%-2pT5at^=byRWf8vv!hL%Nd_<5$=ZyPFe)Yh1hp&Xo`ZxZSgm`Y+FLK*(ORv*I{XdCM~USgzwf z000967ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkE VoR|Oy_#myQ03cujDVS^kE+E9vy&3=j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1228.h265 b/samples/h265SampleFrames/frame-1228.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9208d2272d123e14ce54bcc7339faee0aec3fffc GIT binary patch literal 2089 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 ByG{TA literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1231.h265 b/samples/h265SampleFrames/frame-1231.h265 new file mode 100644 index 0000000000000000000000000000000000000000..307e47402854cad80191a589638382011805f0d9 GIT binary patch literal 2967 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 N03cujDVS^kE+BPmuebmJ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1232.h265 b/samples/h265SampleFrames/frame-1232.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fb4036042373aa7ab447f47071b349aa391aa0e1 GIT binary patch literal 1809 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 X?;V_&00;OWt*8JXU;-(aYyd7Gt_%iE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1234.h265 b/samples/h265SampleFrames/frame-1234.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a7b2c70b99218845493259a17f11641bb6c96e3d GIT binary patch literal 3026 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 aIsgIh9h{f|2lybZr~n{f0x6hm04^Z!O0+}( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1238.h265 b/samples/h265SampleFrames/frame-1238.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4250d28021e03d8feb4a38266ad9c4b2a2680ec5 GIT binary patch literal 2110 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 CxfG26 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1242.h265 b/samples/h265SampleFrames/frame-1242.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ce9e08c1db8d572dc37f3d02676ba551be4187cc GIT binary patch literal 1715 zcmV;k22A+?000330oKX?)I$OTSiy8qnt*@~0suG$0KgOifLL)w+u8(CL&nGzpJ$^= zzP>2VtjG9t##iQH&4ziLiZ5Zm|M|nm2a5p2fNryFU@FN8c#>6-z2U0+x4@-*Uq?*7 zD6M}FE8iPbd=iq`k|;iC8@ynKN_g}Oa0^Ih!vfXZQ_&gaTFcdY zus_+f5!iOwCi03`0h5n#M=o@cJA->_f+|9`@X?<4EJB11jFPdFq)@BByyTzboci(!&^8`bvAhKP5G}_g0{7;;WLR*Ii`LZ z&PT(fm82(>bK%$$*M9 zvi|9Z@thy%Rk1vU5dE8GIP>QcFRwH<)+q#fvZ`vfNc#`b@6>+$z8vKnm(AXtYfa71C!J4AizgIc- zb~3NdE7C}wHbVBaQ=-Po<)r5aXSoHg0B@@(E63`ww6T`aae`PUa&X6g`iyP?4V}#r}eKN-q%;zA{3uX0jcT>g$lj#a{PSMj(y`q1@km=8#&t&1SBfldI05k%Psfw zKYanwjLT|!#$YTpOz2+we=(m3d`05WQeaOp@4fS`Q7Et%CibNSi4A~GGEAK5jHMI| zPJRZ1${2|h!887zxBM|OF+Z3ee0tU8xbT@t^eE2|6cKuK+>6^bZkE>zOY}oj?LoFF zxH!n~{=t#Lr|yfz{cQ`G!BAxho4Uo5RyK({hKiPTS2A>pQA9(nDzZyX*+2-zugTJK ze2U=nEzda4aOn10?%w~fQ=Yu+I^sOue<$QcqR#eIqnHo^X*M>L3b|vn0j1}`K_;#r zg_9_jS$CinemEKVIy+AP@oGPZ3W5+BMX%x{KgVSh<5r6uy)mZnlh*cNcJnRr@{VKQ zWW#N_0zubo-?MiyMmYU@t7)<(_yHEOW+AsVRB;HbG1w55!otZ?u=V*7QOt51z#rgi zBeww??2G?k{jRbQf)>&vUN7cH<_D?it zC!EWo(clji(`Z8rO|U+H{r{i|kM=Wt9VGiD5g}NCh9g(R5X_jE0&(!H--0wtA)P8n15&wh*!cUr?J&@L3j(Q#ZnyfKTr(&Um^3FM z3p|HXfL^q&zCI^gBqLDj$f(pn=_)`4&MJ+YAhC#@Ij@;m7w*j3=_s`d;=z*DKKuscyy{CC?;5kAgOD%^SiS_ae-WD}n~jj0ai%7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cuj JDVS^kE+E-=OCkUO literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1243.h265 b/samples/h265SampleFrames/frame-1243.h265 new file mode 100644 index 0000000000000000000000000000000000000000..32adc464ad1f04680021f5a6cedfb0a5baa84c21 GIT binary patch literal 2078 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1245.h265 b/samples/h265SampleFrames/frame-1245.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eeeac51b73fda516d0aaeeb07ec8c360c50998d5 GIT binary patch literal 1699 zcmV;U23+|7000330oLLF)I$OTSiy6or~rTt0suG$0KgOifLL)w+xo=(yyGt;EWf&$ zev=7rBvmkpw;1J0z(JN`24Sv43?9W)L4`32fvRjMRslces#>^-Nxcx>)*P8vg`&z0 zTG~JjteigPgo7HbfJl<@;05OBCy4hUQ7!~Ai11;cXEbNRs2?3m z0mugV9y*k#;F&z+nwJsKYniCvxn1h`=PN6yM_zr(-0|5XZU7r;;(oiaK+1OY zOD&=!pJ=QaNEu`C*ts6OA4C7z4$br!>(K_hU8JbnsXFApiFFH2@cIMD1ASH!<+tqc z{xq~Fu|

QL_3W@c*19r)etxGm#*#BhryvXrZcfdG-s zWn`szhE0AEe|46tTdi-Umr}94Saf2C7RQ>giwSVo0dP9oZ`{timKAt`isLXvkLg!&pA*7Fe;bK5{)4 zFVKC);Q*^y^@ZDvD2yNwsEjjgV?V#0kc5Mj3x(XMd^VFw4JR9kr#t|bS@OrPSi2K~ zcKcRMCrXb6*I0lb6_Vcn&k9Ai>C|Qw_J$ST0;vCO-mAIfrOupUod^$)iQU`mX#tM? zUT2gaUB&@A`@-tg&NewyYjZyXqx3VxZmk8zh+efY1RDU(^3EeHr7HWWufZ!USI|HJ z07pkFgvutbpRj_ERF3zBs|0_$&nS8d3|$&s0kR*6<8`?AkdJAs8kceWfdQ?IqoS;6 zeVEOD3HeD$Dt-0(p(J#qq;ZYIL^Isl-cr;44Ln_qG@d1+q-gy&z7OWF2tJ?o5A=@0 z5d!Mf-eDFc$h$GxKRj1Mw0;(`MZ+ydD9}57W$h7fZ{~LlA4rIZU}}qq z$D3?_M#NfJ;Tl9$XRWvAR%(&d*1Rn6(%1f+Vv#Mmb)_B~`7ep{D~~$3VAyj*jIyH6 z`q}J$Rhu9*KXzJ(RkbKwTd|L1XftJqo&$3gB(%MuvY;95?5&jQ} zF=A&++=)vSET6is|MdGLzvq1H2o(XnyM6Jo1nhG!&2i?J3fPU=lNBzZz#6PM78pBN z{81|puXXM;%p8z@mon*-s}IFpS3TW3S6cbrd+^!ScqJqs0Sj`76hc6dwmB5QSRZx? zLi^hQ;Znc%|NL23bT(86g)N)H(%q~7$^8I_viv;r(lAJs>IS^cUyI;%)na#Ww?(xV zR)OhuYxbPaj5Z|Tw0v>SwRAMOYeXq(A|_YO=~tRLMI}Y-^U$VLBj0%4xZ)SMfBxSL zb0Le>t0+-G^i=ajb>SVm z`W^W3k}*jF1VCqgaQ+ty5;iRy7ntjsO4y0NQ{tPkjIY t0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+G0YOAr76 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1246.h265 b/samples/h265SampleFrames/frame-1246.h265 new file mode 100644 index 0000000000000000000000000000000000000000..93a62a514a525aa51c04cf8f98488af527d3776b GIT binary patch literal 3615 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1247.h265 b/samples/h265SampleFrames/frame-1247.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da1131a65726ac076af6979674f913245ffe48ec GIT binary patch literal 1691 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1250.h265 b/samples/h265SampleFrames/frame-1250.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0445d3b23c972a6009becf1d8f44a877ae82e309 GIT binary patch literal 1841 zcmV-12hR8a000330oMut)I$OTSiy0nF93iJ0suG$0KgOifLL)w+xo>rJmW7TEWf&$ zev=7rBvmkpw;1J0z(JN`24Sv43?9W)L4`32fvRjN%#msBwJn9kRpf|yeP_(8!rHXg zyBXvwut1x(MJa;J(v_!b|t1U}lRwYmSdC$-C z0d8YdU;jR8yF(-_6l<$}kTel%J;8Y}<-Ds*3n@#nEtWgKBlpv29MTE}+c0)(S;+Zr zr;@t9RF>*!#;+NGCC99*%*vcDy5QEDLjUI8d=)4MVeo( zMP^;P1`5Mj&sWl{N09cSKCh1>o?P%qWpCqx5%G9;sct2t(vD?@WtmmA1C*vs6iF&T z@p}Gdg7GvzcLcZsS;xB?Za6o#(TF4%)i?XY$BzIk58n+H6?q0F)s9gq$`oM1W+LP6 zQB(hbcJ)M~*AkNAF&q;ooReGhObv5292YCSUim`9=;va(W;{>25xW`#4rCy##vOnE znGwfmM6g4=%FA~eS9$jH=(|3gWxD)aoj4PBp3OQi_%>Uez%Y|!>Ho*#e;0%6{B`fj z#2{LIl{>425@nBp_9ix|1U-eR2(v$f4&*7;rJImn&bUb_tM-m`?AWp1K6Ivz#D~DL zW9KUX>G&K(aheMk_%Bb}|5cqsbbfgx$7GwpkG0?J8o~jO8f^^hs|=Cg$4au#6_@#k zU~79GQFk!7JKxs61J6Uj>5}kM&*|rdcms9c`(JNwFU{)x$Jvkc5A7E8eTVDRRI~T# z0|^vI9M|8-Xzo#N?$O$u)*;{s!meQX>iFlU;tK*>(G)G;M<-~xsMJvf-}zqp{v-K& zKnxT!RdJG!5qabMtdT;@0bzOtHesh4Xt+JvfF%;45QBtDeHRg2OV~vB)+_?oP*z^J z+s(7<3%3|l!NdXqBp#dpg8+k?Z|d=`k3s}1C2&@FJ zq7*xzB+Q7#F)Jr^4LI2vKdfHvMO`GU`P;G@6ZEZCk)d-PL9q-V8GFXK z)?vgNZ?H8^9@-?avXY1pR(*#l7m6IN>&%}PjDM!CiJ%JM9wCixHiM*{QsNPXA)ANZ z!t^VW1;;Q}0OG#JG9fl9CtkzVSba~!igY|l0FNTmj=)OvP+kjdQZcWY$8O9oO*6=p zU-|-o%Fv?QagQyb2J&Ei!xJN5;f#lgr7Y*1v2^J}1#^GI2S!D-mzg4__gKmtnhN@5 z+QnOR*mkzYs{WVF=^;t|J1Ib^)pdMeSRZx?R1w<%;Znc%|NL23bT(T@j5LG7+2gDK z$^8I_viv;r&M-)g>IS=Jwn1+YV-3oH#z#nNC`y)5NcD=*MQs&rcbqyw_b(Y(5bl;BzVw(?I=#@Xc9vvB)f5P4@@Qpy?Uqw$ zBb?h#GThFI;Edkx{JJ$l6K?COR_6=kpfysH)C*zuVclL-;GNj1es zGP6IzGZ{cfq#DgnI+aSJ7O<+WTr4c}@AhSatA8!ChfMLyA6xBz{zu*a|9e#%(0B;m z(v`pisA8N#ae`^6SN@}F*XDC&4x~Q;zwO9emX*lCHb1J-6bNYN#y$gKkTJU1@t?ck zpecF5VO}O*E}-Y8m+6HfwK`PT9TDb(pdSTNu`0pqg5~Ulv@)}l!eHRSNmexE7i^FP z==IacJLMRf7p!oDs{*7QWs{o@-%&#SGM1YT1MLVGm9+i=yQSx$H1@>MY>+(Iad@Gso^uD@= z9}}{N`W}E-t;iNY0043zCDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^ f0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7Gd1!Zs literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1251.h265 b/samples/h265SampleFrames/frame-1251.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1354602d53cffe83a5323e2db3a61c31687a47ab GIT binary patch literal 9393 zcmb8!Q*<3rwLJy(i;Kt@4d~>?a}|)>CUl;$r%uzUok#XOCQ)@?X&N z!@&nuEin>uhaL?_YCbaO`Xsb!_90T`|H!HtF^>p9veH9T+x4_m7Ja|{8&@%$kG-xn zvh58m8=8VaGEFPTC0qs6(A$U?=Uc)gqqKjv*#G$6(VIW1RM2}{UL|7+# zMa?#kUHwF^>u{;UQUs+SRiq;F5Hk2&O6e+0^tNEhI9!MG^=o!m#GU{7nI>XSjzfi# zhbp~quzfOP&u@xM-H@Jd=sn*4j;pg~ZnOuLNAvjCNK(dukdEh%=|CWm-XSqIf&!9t z8p5OA=>W1)Q09eAjwj~kRw2P6qnGrq9@uZn2I23D*ji|x<% z-a@huaS^(pUCU5q9Yz03pWO+zyNps)aZzw-GK2q|yVC_%L`x+iK3cbqHLxYNDC5d7 zewZ@cqUr^==yP6}Ov8^M*-HD-FK(;f@|l5rxN}tKgcuuc%IZLUMJR(oG}N7~qXK%p zrx6cdlC%zaDd76Ej8x_A7^BuKMCuHIpH?dcTFoUlFs*dNR-7g#re;@Ex8Ary6WF3sZ?Y<&9miF-qg)J! z=?}1Bj7zseKm~)r*Tl5VGYII*QKp~nBWsUK7I@vII${&Es*L)Uq!Ktz>jEV8&})d0 zZGA`~CE`MH$dSd&%wuqo?4EfZK`a+}3N@qP#B-H@M`VHWRp5zuF^bX|+E{X*XAvnq zP~c**;ba+(bacJ<_>6iTZ~{ANfJPmv91MQlfUMPXDWd492$RosGO^xX zAiIytIX!m7NoQ5j;*Kijy?OJMgrURb_7?xpuk&9qgs|61GiuU^=wf^v{7$CVS3qw6 zzRYVT$|2&QoHO6TYh5vaNy+)iYCd2efbI$JmOm{6vc~n8%|wGPNfb;pb*b^^Z4aEw zvzzc%y}6;jP#?wje5Qz^5?DW#Dmi?!eM;4}Q$siQ@!C3Xq0=xrH`#3Ei9vNBy;;nP zb=>?l>I!r9wM!q|WzUW!6>Z`Ht|7iPW~eU3s0G?IXpS4Pk)$z~i4zGj1SRd>XC9Z? zr1*J(E@w+(94T4!%Td8f;Bv%=fi1rBR&2od;KSJudEx|cfyi;Is?&w*I!^xb&taLX zW!ahQ8K0$QvL<4pFe|pXaM{yDZmD{UhXEz&)CugZs=<+-(s2i(}n)~)}Qy|X(L+J~gt>>s-=ysC?wwLI#5V2bD` zLBHqpmQuyv`D3B(u$t*&;Y(36@Oz)AfJ_CQCzDR3of$3?5AQdt2ENBM6+DYw1GNGY zh>a+Q;(oEEuGZ}1TB9Ww5i^|?i9Z3iz66GeZQmr)dA~cb*4vVgE4rQTE%HOzeByiA zhf+9`DStk$^%+){_xf>=K#7GacL~-`H0DVPn3T;6Qr8Yo0oAlUjuI$0bLKNql;z23 z6pB4jQY$LGazkiAy>aVE>1_~N8NYsYX2oj#>H5(!iDfWg|!%*$Fb5VYqyK$|z?f04`>~19Y zeE!YeDlYQDhoXZbN+SgWwW#6KWCI0*I~&3^T6T=z*CfGMeTTl1lmK;qsBJ?&yz`4W zRio4KK|swvUlfnsr4|`{tVG}vsnWIKcpOb%qGhAJ3P3*nsd1yYam908B(bJvz`bpD z_kk*El0J1dDa7s3Q3zVr9%y_kHO3Z*k?@-#bBIN2E9xiebK8Oi-P2ZqbKjD zpJX1)ja=)lp4h_m*VCw(c%~37g}vN0scdkyQ_54#AvSqmJ2V!9M7m1K<33)u3eF+_ z)n4rth(@-7ld7#D2QV_p9>xc8dj8Q>y&m#Sm0v-yM~7tmt*LjHS#YkHL&oe~v%l1z z`t`%Mfj4i=WWH&Jd8LSok;PrzIobWHw<>-8T!yKJj~%hwSvO z*5X{2(@H^^hvq@NlhZbv)n`5U3QhFQFTHxxwTSOUo`Y6AWNJYcF z@|a?!ygf+=v0wM7K})50H#D$Bz0$FM0FOco(kbtrX|Kfy)#Z23DfjJKqW+=bVw3# z)m8bn$i~c5%7&U`8sf6_eo3mi*a zp)i^MUDRLuRN1VLlyIk39zcF%Z8n6)Mv`H&oi6<0Hc8xl+%{D1O9l$D9&cpHlLnW{ zvGh{y=36&e&{$$=8~2h8d}>u&H|BKCuDvFXA!1h!-*x11V8#lM6^_~bP5akOQ(8ZU z*y^^i$^PH=$KAp$GobkKN>0~8EA-OB0dpz3N9f>n$G?-~#vLH0&Tb!BBlG+%WkOfe zI$e|XU;j5~_+GvM3U+1(yMwQrRdGB-volngS`h#g+v4wDW9Vy}bd4n1pj-s_UY6?8 zK*G~Pd}t0v#=|;jQuYVul^~nJN^fc&Qzbc0dlw#d=M+_VO{t7hzC13K4EgFlU-E#H z!D3S(=wl}Kh^c0u6M5(c{{EgENw}T~0C{H-@nlO1#%7M*i(fjO6?>U07^BWcU`kRD z$qy>%=b!VL_3Z2M%G5NoQsxLOV<_f#quHWxnbS?jR?9tYxsgy90<{?;$5>w4kW=3( z#eTL{^M1HzclkFoHWAt_koQYFK9|ES9X5Deu^)cTXWzjO;y7XWq)tj3luNUs4IK~3 zBR`SSgW2#)KT9J~Hd5<0Tk+SME$yMmSBC;jm`v1>myP(lY$H=tl6&OB!QAc*Jv>Go^jZLMt;uFKm12T)&tGLk!;Cm{dGmz4#EpQc0P#Hdo8s0gLKhsos z`Yfz{9WDwHD6-#8GJ46%A#_%#WIaU0snlw*RaC;*7=VHv>a! zD4%7^#=){*mt=OPA*zrRlJ4h81Ane$KmS0M3obKxA1;Gde+G6@bF@?e<40O}@3U-gLce?(=L^%YGCVGk)xjo7N4(WRP zPU71ctf$Mc4bvz42rJPFq4Q+npZwgSB7RIl@9WS9wi)! zIhQnju~A{6JdD?&4Q8H&>@jy@PWXZ*9RW8~WqXm(>2vK5O0|$?T%7W`j`ScSf#k$qW&w#a z8}KUxw3)nXd_BNInv+x%ut+RhrI}})a!2;Z7TJ%b#UIlVM)UIHk!zWWYq5~HnWcis z5YU@M9)2&z^{Rt^;D^GsjXAQy{6SRAUWlVLjZoYXSum)EMq(}*c%}}=AO!?d>_>vp zKu@^jpXSi9RhJ5uk_fVDH0!Pd{6Pl-2KyZH59au(I2#w;Estz!dG@?}rLEnpt62r9 zorSARWi2x>9f6PCJC(Y9<`p=9^l{uIz6SM9)L5{{;NeWn895V|_SN|pIBP^ast^p8 z-F6E$`UX;=nTh_qY?C!~y+K^&D_l7_k|iU)zBhjy!7Zid2|WuL(7)k&S7akaJ#_gC zpf!6|zna=m``TkJvV05S(1F&jL$hl)A4C56V6TUN1FEY@WK;|udK+!HZa017awl88 zCEnx62h15>d=~&Tv&+QcmQrz%vZOKZ5SX^F9VEAdKWlJ4Py)rqf8pDETFpzOGPD6uAI+7`pfQqY5z2_IH$yTNSBma2b+ zy}VmZQM3mzPN!ob$-OFfBu@i*NbOxr7U%3<6Csr0O?S}8M26q2Gz$M`{jTXP2DOgB zA#CK2gx!)zYM+OnM>ytc(T=*6Dd+Hx;)U1RNMozCfoOD{8V54}QLOV$5LmUJ*n!g7wF*@hQ7%#fCsy1I0 zOT@F;xiF?|xRXr|H9Oeh`#&KoFM)7+)mRTpwQ)79o|T*gNVISmS?nzQ@E<=1%=Zwe zVv?H-x?qLI$ZdYUcDk?AkyxZjHlHi5P4NYB8Zr3JLpO>+IQ&&pFK@McE;Kl$1Ut@D?T84 zA+pQJ#}!Tr1q92DP3|*ZalTl^LiFxmXtA`V>O+evq($8>>W)RfpM(jLdz2XV_>Q@x zWK51zyBk}>($iDe`k)=}qZ4~-^~=z&X5wL-wh6cH;aUgpMq`a${fjsFhELPy1MZq8 z&0>BGztBI=%sA)WL4x>%m6kG4lx|ko`D=lXo8cGcP}Nafl(1O$bI7nZ)r+QwL?FG9 zeAt}4e;W?i%=6gYWCscM8LGS7a_mfj6|yhJQ^b$tE#zTrH1U_|I%lDWEe?;puo3V; za`3Nna!BNQ9j`sT-z8e$)Zek5hAJT2qo}b(LU#fy{N$r>q=i z%9pxpnA@EtJgnj$*C~TEvf~%cf1ru}fDjCKecNXzpF{B^seH=f{H}6WpFSR>5yqsy zXV1OQGc+2_-n44sA~rdv54gp@rQ04>NJ|)Kg>K z>rB+WwR;LG5%uYWrbw_Xyjd!>{MY}bg!l0nuSC>zaJ|TKf=ls2ot|lp7dJr2_!a5g zdJfy}tSowxsIsDns|JF*NS=|jP-8QAT&uJl&DwY~q+*^26(D0emuV0afP+d9d zBYs&0NUH11>xsQR=IXxw%<-_@@{HdS_K2SaI(=<}#3!mXCQ$7QhzB$k`dm+o&^>6-C*3v@7ZGe55kQKJChP_MmGpG9t<{C zqnZM=(M#5Q@fSUKOv$j=&Z&_+tV*v@kcQ150Jq+Y1`PZm@d1>9PoYk$k!U6+wi`Oc z>sHJpSTqHs!i(>X4KzTBdE5Bw5_DVlU7F=6miYA3{CdzJfYooy=r0XE&1)UYE((Go zElM)ViAPvor?rP}|3BGJEq%w<$oS$8LQ3Mcy@zc9v63~hk>6l?pZB~;fhOqI^>;!5s82RgZRYBZ=G zkW(AeNnZ(tMGY_FV)(IZ007kgSLmLrg2+_SW?g&Cztlurgqxi|{s~{mNx{63fd48c zZa9lMUot;J91vi*N7+Lm`s*RQjl{au)!8pfPfJzl+WK(|?0_qK6@EXU&Db4Xa6e{} z$@6r7_m{J5cdO{o1sNfuZq1{iXWWay+I5`g?$y*HbQwx@O!bq7a-uczQ9}tueztS4 z(qTH!R$8Jie5*t{mup;o4ri}ncJmyg za$q#My#cCr7LFRgJw) zHUGO&1_fLSl^46-+|(mty!X(tRBka~n)kYfl3s>-+p1$OwQG!3Nd4PIwNZ>zz6{G@ zdTI%`9L&6>>3SAzPj>tMq)CcB5i~>TrW}0}+i z)<^t)bi{N_i?Y?_1)M31?s==PVtYik(Z%ZO zT3}ue-`uk=G~wir4Cc>8L3(S4M{=l{DX6d#wMM8{UasHDv;pG%R*b4>o4Iq&Q8ZC@ z?91fu-H+$^At6UhYpc7lNY+5VE*&qUFWm`0Ccx&#hu+eFJQBnVZW23z0L7mmA-C3R zb>q5@q5_Lxs^9~jp?S(VP?fMM&=f`(4-Q@Qcx76Z)cLOz= zQa$LLYfH0~NM{CRxOX!*Iwum5LmG4v+cG9fh3$b-voZPb8u@Y2hz9Mr$V9I@>jmbY zRdhjAh?C5!Qr}U#I0x}5QOcFM<>K_AT+v6Xxhr^_Q|^?&D$1Y0*-v04DJ>pe5Cco# z5MI%1Wn$Ky$yuTh!oPXW&eHq+t%|v+YH{lI)d!0{avW1XH+^DuX@wo?gu9C=Df&9Q zngleIF<;m$ol9!xg%9+EXB)0$BwfX3$BBv?PCWtSV-qGClBIuQu5{v8xiB-^N-!^B z#eiAdzI~WYi}qE)3r)_W)gRX9Sq+Dl{#mDtQOCv<+u{_d$dQy~dC6bYQRhMc-Og^W zH?cyqrNqn2*1>{x4o3!d$b}~rAw$~D$3>2%rZaHvzWHPzrC8HC_>Llu7a2cZl9Dbj zHZ*nmXc5h9MuUl#-=+}lo!(<|YHzad=xOlH`mz25Hsdvhcb$1k`f#BhuysR`5pTiL z#DJisgv;8zU7hp|e|@0>nbZriyY~e`*I6*!M^`tS7>(LYbw|C6A z06Sri3N*mAo0j>Ot_}_zS)-l_&iBpELi^PC($mSKT(JEG*#->?coMoi& z@cFbG)ZD5+S-Z*&f9B`;r*x~E_5PMo0X9E|$xZb-;PbM^|Kqzj_48rAv)JX8U;I}! z#OG#SZ<{QOtku25L$XFs@DPdecI4HL@9By9Mlwt(_lJ*p10gYg1UUwNzXrgvrtLLi zl^&FukwOZWPZ|=Ulo4gJ2gJXl$-54MDABIUqPjML`5}M1^~%mCu?X-s<{4`HOZR7w z-C=|+f;tehf$g-!?|A;31!N&Ft7}Fk6iiWNF^&9MaJN~egML?svYfaRpFiZ_!L@r$nZDu*u7y>wRS5Z7bZ%Nq5@HJih!y(#xm6lQc_iV*KpZ3t^ z-28=R3~ER2GhZ6Dmk5B^_A3-;$p!h*9_GX6slMULneiyt(iODngBR+|=8k|Z5Mbz= zvhK5Fj{qB!9K=z_3xUg&c4tIK;HUNgWH{`K?w{bnP0R2z;THcA(nOo1CK0mT4f<0c z7sH>3Ji2}EccR+CCg!+W;xd;0aK3&Y*zM<51Lh#WMKfj055aCN8T;fR7$XV0D14&H zI>q{89WWTQ>>``X#rkQl559vOaSno@se^IYxKjwL;C|_M*CB4f7Wbh><5O1Ru8Bt1 z9H2Ff_$tXMWaw>FLpNn(y|&yGoB55Sj`%Pa!JuqAUMT8c0Du@_zwz&tCeT6R&YlNA zY8tsw0-K(N{=3N#pHZ2xljD!zNgk(oBxZ>b!Vmuac~!o&V#dB1Z$Y?0qr%xDgOCE- ziHr=X>N<6BPEb$=cBt%s7^oRJnq#!}s&>XdCPYw=22VV*Ux!=tUbX@k<%1BvvEghR z&$ZaNkXtZ^UH@D#YZ}hV=nwefOvrZo0h>oyb2iM32-%3sRzB#L|LzA3m2h|4?Vd_7 z@zV;Uu+SfF;a?_4_i8Sl0Fs%<-}EcA|`6{k~!{iNUI65Lpj-Kb@2 z6oa&&fT@9-X*w=? z34jt7dCgMMEMZ5;&t1j+)0uKEkBpzNqWcqs(duP0{~}~jXH3Pd(8}{MAy;&!li(FA zUApp7j|y*@x}e@nb)@xsw=U2wtZCjy3zG!T*v>Q=Ie#u@9mT|%F0e}n%4g~MpnW27 z$_oI4T5WpF>1ZSaZ4R`ujb@HEA`A=xG=+(!wfdqbow+9JZSurS&wv^@bh;j}tD9mb z)=F;PWdoEt#ODJ%u%MvHg~9hhgu`@PP5)w1aW@56WIv17juVS8`5ZoF3!a@WR8eZ1 z$ZN4{@3OyMD3D3*)>zPB{56{z8;Y;8^{deV5QzYoc|Zo>d(i(pl9B@es2!Y(-$32X zo9#eRw|_->6$1bDt540fhW#fGGgG1*0U!+tK0{5V`S)j?<6QD2){)Y>K+3j)nJ@Rb zYs^zpy1GuwPqoj8GValeon(-sIcs?>$u)Ia6>~l|aKe#_zYPn}WILpwa6g<)*q`TCCLhaoMwwaL!H8zo2!v zWUrOILl`b}i(@wj6kGNRD_I0N2Kvn>3M-cN^z%8LZ$#+H*6Q&*JG6o6++?HCCyZnb z+40r_$2pPsWc~M>kUR;ii_4yj0ji%G%kz%OBYiSXl>i7~)T)Vwz^%}C`eD@j2j%|!GJwk|1J@oSaJ zW`rkBfN9L0@EIP_dvL@Ns9m6nPN5S&TvN1iYYilqdCaz}lCY+}(fFF3Pfc7#({q=x6{@=OH{9iKs|5!!{SOEZ(hX46t{I85* z7XT3J|IZL(0RT|^pAi@Z00i`ZMsVi=5FGy*QRxRjr2JKZ*E7$N&HU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1252.h265 b/samples/h265SampleFrames/frame-1252.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a51dc90f069c8751d052ffaae4f413d274fa105b GIT binary patch literal 1752 zcmV;}1}FId000330oNIR5W)i3!CQ_l0)T)Z2m%0rAO-=z)Y+8-WXhll#tYy8_5$Js z9&VT--DjlZL~|eh#q@TC)vUKnc(`#?%8(ovh_-8x|NQ>HisRkE@LmVUx6%)$PsM}i z(a7Xqe_;x^2S@*3zIggtIb_)bP&bzoTUPN*@4U!Lnmjx0LHm53Kfm!w!@=z2GG`Rk zBzp%7EAF$Lf}g?q{Fi~(KDx^^AOnL%oA9+;!b0THQRY+)K!D4#Z#sBhIIAStz#`(2 zmtk&cB_&h6^tc9&OxUL``4-Pn}H=S(k_PPx;i!y>@a z^K#*w$1bYdn`RT9g#D0hws+L(P35z|2Nq9PC&P zVNmgG{oup#2|A?a8v!NvUiq3(<)rOb;B=l1xZgmk*2QYC5>Y&H@TGPCyAJjp*O=a@ z%qM3M9$~V93!K4*Na3!`;qyEAx(n$VDbi{`9^(jKD@NoMZ)TXQ_(*AA@Uw+wr-_dR z$;rK$A~v}5^TqI`i>T3kvPW20ZzNbcx7o9##Zs!arPeu~cpPBgdXuf>TJ@IOsW9OS4yJ`=Am@w8IE-JwRZbfnt{@a{ z;kh}y)kuE-rdH(Q%o0q*IxfHf1Mb`fuFqjh8GzNWU}JEr_VI83|NjjUKjY;$Q_Aw4 zTIPj!*(*QM@I0^|2)vS8KrLtH;Gy7)q5=y}5pX_YVC9~fQv>O_94aU!B4#$W7^GF% zPgHHJ={Hu*zw1-on7{cRs;W+&Vw0pPldUt&upy)rgODF{ltcB4q!=uxd>*@x|9Vcm znh&;RvEw_TJ|pW7mais<5x^eOKRXx-Hk!ew-r!9W=im1{#306!{WE@HYK%I!*tbPV z6B(+cj!FqtfB(PRNXl#+Yc8E5`~h_+#rLD#j(Ba&k6#T0D)}Bb{OThF*cR??=?}o+ z9ghthRy}KrT*4+KnX17D4~>^^W86ybuOq%`(HY&7IA}N-&?W+hZxLJH1(|iW`pwM5 zE>&hBVba0B0~a=bOaMWL9Rd7u{Evk{chIpM@r+*hJ=L0|$SSd^f#Un7lHQF3FPHu) zaQPyq2}-LA=h?Ph=5|9ml)gWA=k8t%K-*qFziYX$ z&ukY~?5lo~>59VPem$-fWUl*-)M5H<#>qV_tR8k2)x0&>pv|<6DB+Ln+h0lC->|XM z*rV$G=o6GjBtJkD_b$RcL>DGil|pf($XFR7I4e)Dn0A zdAfcW$NWh(6|2{IAq4;_(dsJZoXJ6By?P&`nZfi+RpmvS9`IXi3wdc8r{q3S`hX3% u7^=(y+8qBN4HzGdKq8

kG)EImMtfG!(AyMQ#YflE6j0qqtbcn%nKU~Q2A literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1253.h265 b/samples/h265SampleFrames/frame-1253.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fa8d3a989f98120f02f05211422fd065eb30bb67 GIT binary patch literal 1939 zcmV;E2WC4Og6xm%-pl@O-}Jk@;QvCi6t{OzY|(fIdxd+=6x9n zx`w$tAFMSW@mfpW96%<~dhIS&ovhG(t-gma1L7F8XPI zfu@W!H~lBK$}?c>mi@o~520LE85vkYuftPRUeR9w!-UV%KO#nU&hFP&^gnVAHH&oK z?&(QHylJJnQ36CP{Wxw*AWAlHqQYb(K(Cgd<}qqQtQ9Lum}RGnJMGSB*~!@emero0mM~NE zbfb$Xr)h~0TeJ;cA`a)K&yUMN3Ea`DD1-we|*F1@!CqQ-r7X}X|9H9{NxcfRg z3domaB#6=80=i-GI$R^?7TX3(FO^_4)yA617$ScH<_R+vU1Rx}7-jEpVTUz)i=7!* z+zmAP{7y5wU4D(IqpW_vlFJ4c>FHm1lZP07rTS#~;u+%P%hOpMkCVjM`s5m8C-O}HZdU9BGw=io2BZZ)>8(|w0VvC=+ z$r$Bl36$l9vtkX8p1?1qJ!{%tNpP$l@d%Dkn@|yxY22GfiAFVnVyms$9VSs}%r4D> zu56uUs0Z*9;CsN0^d!N5giGY0>fx3{VvT|GOF;KQCO)6|^TT?4Gzt2TFy4uqb5)fq zlyz||l%fG}B7#wg4YrDbtniu}Q}rJrlY=V&wyZCh$^@1R+GFIanFLusyDLTjn87?( zcSn~vlc^boccBE9F55NiHVyOz%w{8ZZ=;abC$gzD`Xh0C?&2x6E(YlW++Ih&_dCQb z{EPsVOFR{Ja5CSli!!bQx<`$s5kv%`*S%{Qd0AIVZNt_6%Q{~mDca`ewH#JsD-so& zblwj+I3rt0s8%WbSn{uj@my~ZCGt3(>zN2~Fk z=mB4JjV-2y(*D^2Q@}auw1BIu?~fl=@ab}v%cD>{L&ScGW82Ls%!bu}X#X-J*nn!_;ve7JYKG3zleP2p#!{rh1)C8Jl1)UnYk|4si+tLLQ_6I-Gjk7 zILfxAiz$TdP+N%LN#<=xqi*100V@ORZd@uwr380uH4+af=au$CX4(Y*1$FKvU;q#s zxP^GYZs|<#J)HS?Ke?8;4s#cl#)5DyixdpTRa^)KEE1NLyrZ67_BWh%gkVE2u2cM8 zrh)C|4)9y!ec4diEzxV)&lqwKRn97E+E$)Lt~9m;ASug;&2!Ww=|CftrxW&TIsf;& zzrH*Pv>AC(M9NUw&_n-rnMe`@Z$8;PUxA?geg9?QxhM;%uavGO!XbKqeu~#EM{j@W z56fs1=8)kUYh258H2T!Aehlka<#j91LxjfD2}`BkgIQ}Y?v|-veCQ!bqmAGVb7UsS z-2*89F2Mjex)am6wJa)dV`m=V;(gEDM?u#hq`4LDA;9J|^iNI!hm$>moA!4~0gDsr zKoV&bQ{`;#x0#$&xJD2)!xZ_&PMuJQz=jyLVTgfg+LM{2lgXbY$29Y(T`sG^Ao1Tu zW*du-6Ce~dwhHc+zP=bOP*JxctGOquc|fqg<034}>95bf;&=F>1^2&EVLhFfp;q*w z^&E4Om_L1d#2X zof;uebqO-YsvmAZ)s*lKIEg?8%RJ>CKv<80h>+$N#;Jy-BgK`g18U8&6dQg{1O83 z>O*kn`hZoi;WNWXGJ4{6F6(M_)Xh{uZ)6+vKkT>ZbC9_)neP1gcFtHC8tq0N+ZiJ{ z%7Vmc4CHlD-UiDkaIk>5Ct+wm4vqi-V_*|EL;xY+7k7{VZ9pCO-~lNhvfu;yBRN0? Zd@BT?5b!JS03Pr#x4=Ij44vKpw}A5Yw!{Dc literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1254.h265 b/samples/h265SampleFrames/frame-1254.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fb99d697025c57a8a2aed00e6413b2df49fa96a9 GIT binary patch literal 2431 zcmV-_34rzh000330oN)2)I$OS@WF1HzyM$h0YE4O0Duqz07yZLF9Hi)sow7lR8Rly zO%iVZ!g2(cOz$nUtvm3qt zoNeP({DohAEAw`r1*a4d7$l%PG$1Oa``;Zz;HPlNh#s0=_yPm(KD4F4it+BsXje8m z#~i$`fzDoq7o12dSw7!YfVSA!uXDn)abL+&=A`b15;?o{KLtyi2S}zp*JYVxK)J_! zhy#DVQ|CaDO@U*|wuZM(F7k?uh6m1}qe)3@stz&M(39qs3L;(tRt5a(XqS>2r@9EU zBrEKOoF2$_i&)4QX$budr6!z1isX@zYt;7GZNTXH%l2=QVf(h^zp8L`%29BrJ9inH zY$Z;=@I{%G0!0BE`G(^U@oGz6%V^U|aj~k#YX#Zgf5$ON_K7p&L|F>>u{- z$mA13gxJ~qc#(YuPLjamVwq#Vb8)i+Jec1sh%Fc&8w2LctBq2`3^ zMHA8r9TgBniAJ#b_;bLJVpH{^@cI3zU9W;eZqNheX!&YC)FSY?7n1Ah@Lg+oqZgjK z?@T+zmf`*&V)YD_VGI8Mj53AIuhh))k-n0=U&ogfm_ceVl7|Fl~lLWjJY zjX9MTI$$&TI~UT?(t&rAH(AHd3ExM?g`d>*7tS+3=d(ljpdHUda!JX0RyQv7{i*1ukk*oE)>?)29bR9@&`*l^5(Iq@2p5HJFfTf>QoQjv4-AQ)7MQkBfRrnU+ z>e3F2h4r&sVa0=+i2pIh#5!XIN@u_3%m;h_*K6^6bvaVQf%QZ3n=`>$S3cm}kv5OhXu|F!S_#Mny?h^vO?_ zeQjf$3a7TuWzN}L^Ao_|6Zv{aV_^0hXOn$$hR6Tl#?cnkAXbHtRBm{PAma-@2^o+| zM8=__AV7rzi}`jAX?JgL{LrYl+Xc6e$>iUrA-f)Lpl7l{mxjc@<2J3ax+7w|Nj zuiR$`B!DFp;bPWi?u>C|#gmck2XXFv5CF7C5cYpW5*C1?lMu!YKn{<7p<zm;DdhZ^FmdGp=9zlQoS z2SwpbahSeOw;~?{LHg@vds0t*uxsEcE|oz{?oY(ynUJ&#-_X9 zcV*C{l$~(k;K!U+BK#UO=Uga*pmwdd$tg7adn($BJEW^ zK(Bo;jG!Zl6qBJv@cp}U<=BK@E1`aX;N8dt2A5vQtu#Pbg0QZL-mNxWcBuQVf_ikCwr-h>i=v{8SuLLUPkY1pg`1-7u7ck-&G$2q2UhZZq#>-N{~mmg$(9dZKYTAg8WpQcW+x;#AfWy zJSYN&tCuyqllX3!if#hw*k1J#zV|%OX>wpp&GK0$-HMWl<0(!}A@TAJt=srjrXwp_*wJ*N7e)D*z1R`6vZvKu&tr7s6P z%p?LoFA_kX0YoED#5{FQCR=MXhb!#IH5t2zkyFoeN~p+R|L8BJ>NxRUroar(^F;E` z+fm9KXlu(ZA^ zSdJAf2vF^Ol?ut4`Y_^Y8(t%D$H3DE-R3}kL7wZ{?znjdd`)C=Umokv_hf3%D{x+WkTwv*N5_j~?#z@<#gwH^<+rR)&a1}t{ x03VPUBk%w;;2j?@0PcVuhmZmSBjsQOBr9IP2q-KBfE>^=Uw|fH3(>#;VZhgVyifoD literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1255.h265 b/samples/h265SampleFrames/frame-1255.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f098aa8595582a1ef2207a95576ca982d2d9f515 GIT binary patch literal 1788 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 COadJM literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1259.h265 b/samples/h265SampleFrames/frame-1259.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7a45e3b8594a07ae16147013031caf2744231254 GIT binary patch literal 2963 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 J3(>#;VZZ=kx6J?m literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1260.h265 b/samples/h265SampleFrames/frame-1260.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1013a8b5e74ad6a45fc3f7b5dabb498abadd1470 GIT binary patch literal 1786 zcmVGaC?txxQ73 z{nXR-h|;E;6T>R8l*I&DE}Fr^nC!+EeIsnC29$y$94FuMk>2~oPt6#`q6U=+KgHv} z<6qDGW>oy07&2Ay@qABzh5~l5%ioO<+ZJ)LNXCg)g-Pk!x7C|zEy#KFsj`x}Gw;#& z!=@H_MOiN4;$C|hYmECT|H)x@|JSlk`3^?aUiV>g`*3rjh!9)y2zr|X%}#JB%vy_MU(qryb}#QEeX;NrxLiUCM06e3EwQoow1)BYYFLG=St4hnl| z3E{=fl8Z1>4pLH}u)?q*5+o$_6H(4W1ygEk@-5!#ce6EFMAb*$zX?)p;gP zr7BtKJ&fLeJ(rXVmYEGF#XoU287`;C>`A`LtQ$m@NqCoXF^7P^j+goojRG=R`KAm{ zRrZt@>N41>EmX3 zpd#|lu9UqgZ4{HP1&&Ow`2Z)=q-~>$PG~X3m?W{M1008^-#V-hDQnoOyXQ5FXx4!#Pc*QnX z5`dQBM=8%s<;tzFdrY09+kTI;wdV>T-Treaj0Z|)K>Q!5qa(Jh7fIsu};VN-c&43A#fN}snF1g8RYXSe{j6|!j000*7Ko91{ z`bQ)2nHglIfA|0VO&2kd>o<^z_wNvFd7-m90v|PwGtWrDAUB{D!g2F=cq5_8$3q@H zP&9%DUeV@5pT6)ikS`UE$T9~Yk^tAb#vM6zwr3+y~Ij$aT229y7s zqaIEmK%-b6xSQ*zy(j^Q8GU?x=;15xkLnf@<+BKjRavp(RXlNk3A^|96w)i|q^-S^ z$|yJ3XS&etXeJu$rMA|CE(C()Qc-~Tzg?5z_qxN_K;|EZ{RvRt?=ip^2eP_&b&w9P zWdW*`p0`Yc#iT^^?f)f|4NZeB7_?cdC+1aqbUxXAJ9 zmadROSGLY~1PSU_HlbZ#fP{gpKax1a8-9qyS!R|W6Gr8h zbN8L6ZQeMlAGQVt?nZqsXt?(g2X_HR4dT#Z7MlC<%@{I-4+2dKJ2I?Ix#d;jPXI>` zr5kLGPkMsh++6KM3>@dq+X(LI2E2PZKr*|{wXd5d*i8(ReC z!fZMZuM2jUe>UV&gd!VN(FgKK5;n`Og>JDw0sT+?lDUF{%Cz#V6qZu3KzQ48>~Eb7 z8R46uX#SGfBaGCLH8oMIO-=)nEuRc9<*})P>%V9`{({}hT0%)?_NPj%oEluxjJN3v z{Xb)yyOGYt1WzT5O_PFHdTY)HtdB>roR5$ihyzJ}T2rXVRa(uLp`x=Z=sDaQ zmAaRXQN=i>zn0Jn@)05ln=Z_861YpgVG;Q0M zEJ0B!?fw)-`X2BSyJVml!|_)OQI_Z?I@oY`0=l>R0d|Qpvw5DAQ0KXenqwiB?s&HW71Byk(g`D> z)@)u&Q%2;3kcJiY%8Jrr23P~lEi7~rsPT;qH2-eEAD|uHhEae^fCn7ArV*wK=Bi*^ z0Jm4Wgmt_cjxyt1ycF@tU4KOBw-q&E`+Ey7##BUh*Zm;u2?IUryE;Ra8O8}=kOULB z>Ztfd?n&6k#vz4atZWGW<6Bj z92JQ=C+#?Pioa8=)W~=1rRo>|)XM;+=bjATSTkYxrrDhtE3VB&DeHp@%A}2mzQ2?1 z?mNDZQiJvTA3X8LY!~ANY8V;CcZ&6*-@bS45M|5aJ;k|3un{?FF2UcSvx8dA$Vlnf zZ#c<wa(}no zlIw!U0JXdfTS`TMaK}}Bfh0G%{H|W(XGzM;&mhX3vDwk$vDOV1dWY~x+Gj`J zJ#m%5GL?C5%4QGxCDEeKf)x}Y3tbxQjg^TtrJNYlVLL-*nRwKz!=w>8q@Q#B+q(3H z1-HA|7o5mbT_s9JbE@lFj+c~4+1%X0IhC-xm+%;3@$~Fz(KmAhyi@8Rnq=4+;1p*gjfFmV!#}BtKp3AmcUjHQq$8E4r8R)9h{qI)aw>1!Mbc~>QGGK}s!~25gSB4_ zgA4Rp0%3IfJ%hRyjadITtnbp%H3_=GgY0|k$91k*Kok0dNTywx2<&?Xlsk}+bT}3U zG)*LQq<|$x2-iA@r}u)So|CNYUFE3dMf(C+_;p-eD^Nc;j$sCzhQ(d;wpwK?!vrsf zKZDV{#CMM`uPY4Xfi}R7pJ;FUUosTZ2PIyb85X$Eo@wR_>o9lezuePODSEd{_AGi6 zJ-Oo%D^sy^{**}LH(}{-X?5RSG!Dj(n&oXGVu1XhMLNz;t@zVlXc7nirJR!7t#HSb zjx2O5~59Y=CtpOFPI=dj7 zIYtkHL!R(piOopx&Z-yyd>g&l>}p7yS!fV8?RkASAOc&mOi(JZ`xwCc?{PIgwHCM^K@`}}-z1B!rnyxx~zqN1F(OCByVg)E=; zPR>7&v9!JH!s+%P&oKyCZ!mqrN6bZa)`0cEX&5N}6A0NWqggNkzCR`_@zDd0QkLb| z9Z7w+#mH83L7`A0Wncy@wXShnwq)Uyo6Ve0V0xN!+dL!>n;LBvRa5%on!j5Fp+=FI zewoJKZJ&lbu0tDy7bq58OAKde?A7H1zC?|kLunzIbP0fVX4{41X)O$wPR}WBK_ekH ztG2PvePioZ!2W^Zn26&Q;{CQ_RJ4nPg#b)B@SQ(>?^VA8+=j`GbnZ)dj3KS|*#z7> zWqs+z04Ai&cXM|@00YOdj?>M606GEeMv{Mb)Xpg&7%Fd|xAjuJQFh7X&FC&a|C=6E zMlxKtTQx@9YiBl#bZCGn;`V>dm`mn|)nGK70;#rrKe0)H0SC9hLN{F-^1%9a(*l~F zfI}98K*=Q-EavFANt6+H3G7vzmrr-JJ}NY#aTBnOi3|Cq|AO+Pjz*YP&0FN6p*_gV zc{JE{Y4FC(`asKjIiRu>atquE_q{X~L6dhm5H;UDow)tf+B!HvC;NHZ4Mv|K#OkKK z-u74D7ow1y(&6W9A~R(IRA~7hVCf@X)1c6_)@YD{gH;S70C>Cu!!d$wO1J;T+D;a< zEM|HsbN^YPdGK?T%qZ~gUff==YXtyAzaq~GfEvZ@0ab}fSgh<0KCB+-Gax{;+rR*# z#s2e|h)NC1|M&EWa!M8P7FfZ{!G1Q(ftb%9kp$)nJd0I?K#%v4LEZ}_2MHs#ut_L2 z-7I5uXzZ=au}69y5Ff+U+8+IZq zcToqD0Q)nn z7|x9Jut4&<6Pt5an3FI+TR+FY2yg_lgnhLT=cpB{HDWx%l3`c$$=1+PwJ+B=Z#y7L z(`caW7X-BY{-8Fp@C1^#fB1GR9K*t~&W2*O4G}UAcn+oG!2KErElv)~m+{bGkDI6r z^Xik>euNxXpO~iQmxTX-ytxSNgenw~Y#-(2mb_-gvgzppJ8yrWCHI$eNlDGxnEasp zrLYbXH)q2li$K;hk9En@Dcy+%XsyMbmC+BSBwK9!jtysnC3y{lgBDo6h6Kq6#6SvH zez;{ykX|fbR{tLd0esi~pcU0;RtQPEYxx)`+D;E%1ZQ5b`?->)E5RHJOmdJ)lJg23 z#F{S7B2fIU{KMl(_?*H*uFKiWsILU96cz&R99k;SoK-6y&;XuWEYJ}S#v46OA5v4E zM7qT($f%}$Sz>temV;1?zDj8V4ZNOMdM_hT1M0u-RD?l*6+qwsPdXxgEbswTKmWh| zapJ7{;P4#(ECs;*gX^3y{=MtkV8AoxKfZ(1i#pQqua~c<@~C1CxBrQr+@MlZ0FVWwhA_A9!bQIk7_kc7M(&yTJ6=b&#ZMhxJ-<|biZGtsYE6!|5(BcPE9C5dC zh!1d{{WQpxWTf;!kxV&eAAgPRTsWW0p3}DyE@@sy-xMWrtz*2YOjpOgyJ{lX86)rj qL~tD+FaYj=9*2+u0wd*M1SBh7zz8TT1b`gSGGBluU<=W}0AaxMNu($M literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1262.h265 b/samples/h265SampleFrames/frame-1262.h265 new file mode 100644 index 0000000000000000000000000000000000000000..58ca9e4e494f3df16a98e04aaec581eb68152afe GIT binary patch literal 1781 zcmVF|gwv$M%Iv z7QRETeEm&v^nDrAIIGIn`KRuv#qnUed;kCc{|;N!YRbndLDVwdXmNhV{m_yopKTAo zWCA%@ZI7BOU#|z!^O*IBbjXjuTM>X6X%gE|7jT~YVQ`)`J#bGy|Cb)vkzK{o`h+cC znk(dX0sv3Z>uYbkF!VkznSd2E{eI^BlGL|fR)#~Ua@1xJqaaSqmyB4>*~xQ%PH<4? zzfZdSFpmqJ@af(>f~bIt`eAgzX&I}v{fH*yk0vAW+?*l3+72?9thP1Nyj$t_mmzC% zkmup?^Iq4Q-fE%l+sn(s121G|#ykTF1`$W`y>`ERaJHzRjE%`maBXmvyws==a4LYR zV>gT8AH%dk4l6m(@Slk~U8+AHZY7at#rK-Mt)v` zYRJUCP?***6%`j&*``(^Kn0;ON_pnkZ*$Xob{e(`jU%YCuVG9(&Zd@2MLA)lWkyzQ zh8y3VaQmQ}nwOM|Nv49QSM{1}{aRD{sgHQqG}nSQLb(Wf^5O3;Lnq@0oqmDb zs7cyv%*E9&u*6ohALowjhKJz9S0~!gKxii$TY0YV_c&9P{HvykQw>i$#=7Ko5_d_G z$DT2z6=S*v>lE>)jB0q-x*4BU|8%~-fYQf?Txvjmb>4Q35~6yZ9aa9)#iIiJVTRs2 z5p2(}2nu%&89}xOsgW2W7jWuZB2irmy-?B=J$LxK9SeYPEkDu;6-wXcC@5wL8i1%& zxKJkm00fjU59Y=COqmZ{)RMc+-REik(LXUqW3;C)Wm&Q(;VPReIu!<N9eeq z7=2^&^++ck+46Q7kanlqLX*0}e(X#`mxa?JD7-#IE$bcUAmyUE^=}JAH7K!g@oQXw{Mq zdRStBr%OoP7k1p&Hk#ozd4DNP*TILh^1Kg2s^VbLY8AzW#0$(HmhToTIJ!_;r#PelNxdevVM?bbEqN6zZ@rx$ zIM6A5698rJS;lz93GwWQe(Nj%llTPq&n@9rN(-Ok!#Gebp#jK%K(yPy z0NSw(r@Ju<$y<3btj(%>^t#N~x0kIaf5!35oaaNViv~g|(iw(YnAlyyfr65Ei?{{r z#$K5@j}iJ+=DWc;aThgs7hs|!FENoNB=jK$zfTUI)tLyPmH^Kn09tQ31g9IG0B&_e zw*c-f6X_`~c|vjT`kK^rZ^#P!XE>uwQsSV(U5b9TR|1)-ei?e>_HY82Bz6Pu^ngZ( z|4Ov)vS^}Dp;#UjlyEWf;`8xuo?OaF0 z8w7?|Hkch71T~cyN`c>RHxYQTDhFX3LZZ$x;b+C$JH?XK0uz;_7~$2~JGGD-_Bq<} z4bhYr_2+LkE4B6hiR%d;2j!B(I0)w1&Reg%ArKrnjQM6YtVG#2bwLnc&cG|Z$~(@w z5K%R<-uw17-~=LUya)%Y!P&Z5c5hcnfQI`i>A4|mfN{4NtVyq;=uG>Mh$$jR=1dB& z%UiNw6+qwscHp*qNMYez&(yl8%B}qL;o-_tUTh!Hsq za;A`!x4N!n^K7jEG%cTJDp#w=_ih2?^pF6AR;c&X8;DKeHs?Et?x{{Xn;}#nSOG~+ z2;&V^1^QJQ-HS+$am=L-u8P;a>ccLS@IQQRN*N>Y0CLD3A20y!fF6gC0skRE=s?nN=iT$^evcg`25d)6;gG_C`-ct^GRA*2}ln z*lywOrxN^Pr|ed^>D<}Nq%T>>-k<(2qyNh^m8YfU%I+MULBG@QH>yE2o_Fj0sDE`# z`kj=|DCr#!v5oIGfu}`^Q#Ynk_FcS{p)`7{K2P;%pb#}@>Fz>D_ zY%2<;rCiI24F63lr1+X)Dsiw`_88Up%ov{8yI2a6xJHbuMKphqeyL4c{ zz$WEx2iYH`oHeCOIU6*yyBbbh(bJ8uC%?T&N7etIp^xgtD9ik^j2>`b8+~4pAQ);% z?&a*PnW3dqQzT{bfkL82Q8hAd7)7@(Z`o)z3+{|jKTgbMoVCFlMt!nzCWAqWKlp#E z`!AK`egGT6V>heda_hEfaB{IK>Td3P8@Iq4yGo6Emjve*Wu zuAsn~z_w7paCMbF>HuS&ka)`ZHl`qvAgVmLDx^+{{kd69YUf8MKmp)mU6U~c`H9$Q z#Sd?u%&51MNl@=M#)~JfT>tsm|9{HnsVL0l@u4T+pi-O7X)}6d@Ty4>f5dP_8l#cG3=<3^KMq5aT$gv_El!fQR)zv! zkWN4Qn`%_A(hQ-5%n^+KP*P@Omp!^wRTd#FM3r;k_q#?2!5*}ny}7kERVBqOc}NED zXshXTGp^}(V|c+5`Ln^cn!@8Lt&zb0?(Or)?-UD{XE)IdaG>cXUdQYCgH`nDSj@i= z`x#>m+KY^@Ml}W)N+~plgZkTszyZ>nWo>&`c&WK6Qp!X|SjQjuROr%weU$O!)#L+5Xq(qs?Dz_MgRqruz(>G9wA;V{qL-NXg%QWsfiK69>~)};CrKQn&qUC`*Me## zUByM#Pr{@E+pb2h#XZ{=tz>9bT1RF_Xb%CD&*t0?FC0V}X)Z4NKz_jZ_+X!()KQni z)HfXY-w6KScl5L3-{>Dq-r^M1BqT=QCV&vgD5WX515b(nFjcMN%qX$S2S1Ek0F+34 z9r8ncla|C_6+qwscH@Qreb>@lGJdup4I#g`zN5$8ZJ1DG;U449`}5PNF*Nkcx=_#P zZ}J76xJxkz!e!&YiD2^a660AhEyGV&+!9)bfude z^9i494(nKxY>;LqoSZUp8X{7K1b60YaEyQjOiR9S5NrkypQ7Z7c_i<{P_BL52& zM%&de$+6Aknr7gAR8G7pakHTPJs<2DQlCtBv)JuNban;v(!?`0vXz1BHxM-bc#zV_ z3zWAJ^t|8**I_vtIbZJ@-A?f9D~#+L;Es7wsXy#i!o3TB@-$zrARj?P{6W9xrGiqw zh;qHWdU4r_Ms}Kq74RB)OF7e-m{LOb8R0?LChEBuZnYdH(F-OSB!E-!Y=;J-=Rl(O zzE_c4qMN%Oq!}ad0CLD3A20y!fF6gC0sA literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1264.h265 b/samples/h265SampleFrames/frame-1264.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1241f280af8330d29c31bda89eabf9dbcc2401b1 GIT binary patch literal 2874 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 v+z>+Mp!HiFA20#dz#fN?0sGdKc+{BT$9 zy3KyDk^Cn;ei{PNJB0mOO(!O$-xci<+P*9qpVhDb{|;N!Y97ZbL8&t_yI>M6`=KOF zKJveS;HsU(rj&o}e!L$`QiIYV(;@_yO#^pRZqx?O`hTrs2@yYI@5}%Bb+f!yk`Zta z-}+T(2GAnB>4@KEJ)iNgH(O{-UYVvlO^pO|aDV(?_I}UJ$gh?7dMEfwFmdsICK0wE zhn@ag{y*nJvri)39XQ zDygPC3R`9~{HB9i5@H~gJcMf+e^qshSvapj8Gz(K#u-}#CRDWuX`a)wF0OxdF4X6QZOgUE_hqT$g_DY6H?^4gsk{wx=(exbNhlbb@u=o6~z zrn8sG8j>pv7qimwIH;8sNjk9Vn86DuBTO4JsD7+Q71CSR=rzK}Oh{iVQAQ7U8kb$^ zX{=BN(+R(i5lQ-U-_WdRL}Zy4N0=6x81SUXEicMC-ZHv_aUf#N5Wh!o`jIvYDmFOz zTzhI>Kzp-?xqX=2|BIh<_U_J>1Vk(q$0OLEn-DJjstjxu2FVW}FkC?fAUK^rk*6Q5 zJ#+Q6yue?IA?I8Io|s6~N%N3gFQbeUh`R`)6AW;pWDgh78;#SzK5hQ%1*#~LasO6@ zOBo3ANfz-M^vwNT!uM2}F}(`^TU3|pYd(NcLj<|Iw6m>HrYXr zHE5xj=rJ+Bg9{dZ9=-6U%fC|DVP|*&lb6h|_;!|m-V67Loy2T)RmfgJxVOKduom$urV003bh59Y=CQBDL`H+P+<`$YW39gfnR zy_IIjpMV7_q6^ z{l5A1t6K>|w2Wln@?b3$---71x^RLi4=KiDH`h}#p;_2de!lr~g8$;D1R~#RgxLZ0 zgW;QoPJ-?!+GprmIEHRm3MDK0<-ih?vD-4ZKGI%`h{j)7pDqCQn^#H?9$2v(i?maS z?G#-OHPgQ*;SdQLK(yPy0H2)|K;Qs&;V9Lv5}Kbs)IZd&N+h*+&Yr8y5F#R-YY2HQ zoL4?xpw?746Q@ISrQm!0jkBq^mFe?icxfKl0H= zhyVa?ga8}!`!+H6uU=&oJWPNDDQ!j=Cj0ARJ$NGxwc92g zM*jc$O&6m;pkllN@Zet5y?TAEgAC=gq*+W~{}{*%zg3UJaspVbnSH+&XlMn+w~mC@ zil#F8XfdWo<3gNZZnnI-|DSz5;?95-=e2e}PhV458g`<&0^&)iHCXP;7+0JB@EIfU z0Fr!dA$7ezZnc{s6zLGl$A;JZpl#<(c1SBSj}ue`CY8 zXmV00?FRAd8t^)oT=O92YGfX4Qq5Z3TW}V(56=f%(l+LxqvD{-uQx8L{MuzruUUln zILJ^uk6Y~$RlHSG7+!Tq*k;>I^*_jz7?tc&LbN!Y{rZ)~$4;j||j?)aH)~E~{#>E@YHKiCE6hE70@i?uQH*#n1$fb<_9m zLG(nVhi%$h5mEMR=yCV2k6ec0A9RK0h?&tfx6Zh<^gPMiLKM8QZdZ%>e2x%?Mn!q# zjl(%F;X~1m?v$_{0OrNMWuHVj%sM}CmuSQYiGzSY+6BFTC_y<$<3#kK)}BAX#%zI2 ziS`cw(fx&Md^=Uw|fH3(>#;VZfQTRrmk^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1268.h265 b/samples/h265SampleFrames/frame-1268.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c4219674c29563a3dda350987d8dd599f397230 GIT binary patch literal 2149 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 ZBr9IP2q-KBfE>^=Uw|fH3(>#;VZciq$6x>e literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1270.h265 b/samples/h265SampleFrames/frame-1270.h265 new file mode 100644 index 0000000000000000000000000000000000000000..71a7ba798594148bcdb40b8924185fb690ad0f1f GIT binary patch literal 1913 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 G0AawK%Sn#_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1273.h265 b/samples/h265SampleFrames/frame-1273.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7fc36b1868f8529e330c04bcd5d1728ed5271221 GIT binary patch literal 2048 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 FVZe807yZLF9Hj9@DL`Zt2YbH zFYVs%3UALOPc6i7db=^zP~mU)1$mq~-VPW|0Lx4xW9 zt9i^y`~Y}=$MX6QkQ&Fq*k3df!8!yP!Lv9^a?3&?ZinB5L4?jxeaz;{Jdvk3eutw=J8C269I>(j@XBmu@po^S^0sbeLY68Qqhr8F3te zh163Td+NVq6L9pl*7qyeI)lSqhpbyg)S1kC%6QMI2Ej`V7{^v>P_Hof#l>oX_T^{r zEvMPEWl0i4sGwgm%)$jc5bpI3z;w71e!WWj{wl92meTlo`3_~AnF2WPpxF?ADYP^M z6PP=9d0*r?_HgNBGrn^c4^Xsr?HT-41RApcRa0HLy_lO7zDWA~*uM&(_LLDD}n{%S&aBXssR|sn=1Bz{7d`e>JtmUrq?KzHk7t%q5{EYwhvtIfh?TR*|Ao z@>?uw8*gMNL4yXv;UhCSF|E$=V%atZghZ+tgD|Rcie4K+b{yD3Q7=YT$q3YQ83i23 z*fv9K_O&UF=vIW>wrWTE+hgy`=;ky=^vA0t@^*`>6ItydDJcRh``S}u$JlexzkyvrZx z;yhwc_S>!DF%ks(CGlEz(jVJ4832gj$FOPp{t8W13Ot#LK_B%xwnVZgBB^>T?&#r$sEuH9MWC^LH{1=_j4!XJhv>k zelGruyg)mN-jYNK9y&6{RH)N-#|kSnCBOglCpv_WSEZ}^>{u}-k7feHta8(&89xSA zBCfq7A!ddVtCg&o?J3K;u`99B*xAw2XQoh(5MA4vN4q5GO0++!R65#7WQ>??Ud8Gt zE5DQpzIy~DTL0IkJblkPAZnW{)6ehZF?y`|&bW#4g)5nUw5>E^kjMSCnvDw?p>6SQnd>+>4F@HXOH0pY)f&0k2$x{hVMI%t9+-3?p7=rJ!*ot%YV1{-;3+> zykAq+`rilQ{@did4@2Y;cT4u)goXbs{}aG#fs}^M;Kqu*R@h8B ztVs8DD@g4{v}(?3jrXebxNf*+`bz-u@?114!gE*q?Sv1N^c5UNAV3N$|I75ikO@O* z&&zPHX*Wq%pKliP+3&2^DBv*x6jg_3f zb2n7u3ZkTojuw71t?XKj@EpM`{?Bchsix_I}6~}$!3c=!z`q;>wky==2 z&tPfYivvDu=mlrn9`$3T1Q6S`zJ8@{D<%Dy@N?M+LhFPZCdJsAl;)@K_UyRrKaI%k zy)YdUXp*&0BZ=)hR#4fIZXn>rJ38cGCWhQrf)0rfeHU=75QVjzf%iKCVHd2v&m!JM z*i4T|4q3zyh+mPQsMy@3wKVv9ISeCTP{H0H;;ptl68{6%??!rd$m<6{E*8&oJC3FGO@vp8K8C> zl@^U{!YD1oIdiI92BM@wD2`#I?-xrw1$b9rWElR^hiC^wV0d9p=VDc6|pEmgkW#V{a_iWnHzQA&>Oroab7&43e|cK zj4(VniqUU3lB+ITy!nK#P}6^hy#(niBC3VP>}kYV%6SUZvDSPsJ)YaM69bXA0-R*{ z@kiV*W@85vM!^JyVvakmY5CsOr-uVrO;fqTf;i*=00RIPL%?;pba-{t@Xc;z4Q zzbEm(e(>)29bQ+*&|ix9A_OfD2p5HJFfTf>QoQjv4-AQ)7MJWWJhJ_k_19^9n*S ziGG)HFqQw@XWx@SSt@-@*GwBd_b@rXVEM;hkA3?qxVmmRfpe*AAeVY2iQnLPWj>_9 z_}oTsUC7jCy)C}-uEcBZFTg$#bd4>ve|vuxJ|=td9lU=P#x#rG%owZyRA-z(1N?n^;u4)8MrEe_VFP@&0lx(+ z{#I663pprKd4E?s#o>7RqMl^Qm#X4_*iUE;EupMyEed?9POGNpYIDeyPgx40;9r&5 z@d4#_31?+1l;)sKC*ky_zy6zo8K$X0DzI_B4t$1vFXV6lqe0V1f zWPup5fDmkK(0O(a5*KYmc}u^b^CIer-qQT&(rV3>$3v~WNB;oa;dO@;l%l_; z*JM;6R1;PQ%~nprqnH(PIFoq#Ic9~_Eg_x=UWiWBGhyLFmW>QA!Qm@iIciW2HQ*N& z7#f=Y_%vYb@y6AJMPwG8jC~3I&q}2X_<)(_I00EPHBGY3PdR=Asw+wfT1;`GY*#y{}Y zfIJJ|{@C&UTW>cBFZmrlXF8S&H|cE<;9OG=HQx$tN$8s#Es_m2-#8+V()@S)WVOyT z6c3suq;JXq5`+%0u-!7p7as>aAK5fWZA`cU?V*5ZN(xs-Bb6WFhJg3C$W+AR5Z>%g z+M0x}(?c4ZG{nK}Cj+QaY&>-S|Ar~}qgQi<_}ra*;QcDk zVUZ!`_xp=JQE=drEy=N=sCL~@{i0|p)2i>%^c&EhFM23w8I-pL9spRp*et^VS-gAy z@0{?={4~;NKH@;XOSRD;&)7#AKQf8HX+-Q^NB|K*8{HZJrjh^z3rJ4MnZNk;8XEfo z{y?dvCW;**Q;l zC|U~&_U83D?Hnv3x^2KXtnO7_mJj8|JTmoVR@Z8}ew<3HD3-S7swO26)myIzQnW8P zKCRUL=wFWXg)66yqnh=4ny=2~YD&jPKbA{iA>nfqF8ZW~Y$Vw<7Fq+$x-+Jo&j=h5 z8VhDmCvzed?`865mBkJIY;^YVYg8-{9xfQi^@no@L3{WhYNtPrY|x{b*nh@`RUhh9%;E2 z6eIu;09^cWcv|<7^L2>s+T6$BR<8?&`N7{CrTuuL-vcg4QG04?NCCLgm^E)PHcx=i zVw>}O)~#sCd#eF>CYHpnDh`O-{T*41>-BGYa><@l8Nnce+KOaWXiaAWNy!Oc_b|_H z=tI-59WOJDBPOX7ovZfVYvGdu8y3p!ac6KDd%NUH_koSx>*`3pRyzLp{`6DAh3Hf0d=y3fkzDz<@TvqFUY;7^>gwgi+KLna6V}z zM_oz;Xb1IxB?OpBsuHxQoR@-GyERafFK{rTHond@Q2e6IO?^cUayG#Ay0$wDn;sq% zAZjbG0H`qk8PahM1bN=WI$ps_VD2>!H z=Yn35)y>;N#IqF8sDT{tnMG6JsBOM3O#?{|8_?iJl=*k*_^NymT1+IWWvUiUAS6id zEtdbe;&icb35tCF)~+!2KjpcSi15Bc_C>*BmIIlu_S|uzLRmHPiJH2OGx&?Y*%-y6 z_8)uFeBDtZ=^= NUw|fH3(>#;VZby8HqQV6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1277.h265 b/samples/h265SampleFrames/frame-1277.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c631e61ab8d230c7226f301f3798a5d1b3833366 GIT binary patch literal 1317 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1279.h265 b/samples/h265SampleFrames/frame-1279.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5c71a3b2be39817a643b5650469ef499936fed39 GIT binary patch literal 2324 zcmV+v3G4O%000330oU>W)I$OS@WEacY6Ae^FbuJrz#s?$KtYQy0t;QK-tP=k)BoI< z6tIceHZVZ%$_4I~r+yUtk?dYVZyyhYKTrUddeB!tN+HUIwkU|Vs46ollBVXE8yQO* z`W%N|kOA$?urY@mN1MgQAl<}}$;9IlUaaQgasBMAfzZcHRVP*UuQI5J|J*z_xKwlG zrF+?b>Xf#=6$X4v*ma9_zb{8ETTsu_5w+gBZZis(t*6yjuA1}+kz`$_u9nAC}*WQ ztoi_Z;8yo4FNt2hMM?_n5;MXm8bBI=I^RS`H!A;-AQ;&zm}47J5%;S9#^qhDc{!=^VV=!aUnF)N*S(5LWEtNC429E`+l80FHx z@!|gmqtmwFoW1&gvUfC97l9p3>|RJ>IF`5;q|XscgvldpOnE;p zsy`ooe6R{9^{`}71ogPWZ-}w)AkfT%L6_a*NET(984B#^@d(!HM91uEiOv0DEXW$J zL9MLno+ErF$N!M9Pz&t#fEE0UV(QL4>xc)`DeVjp^nfD`QiAs=ZLUwt-fW*-K!emU zqpEW-FQ0b1%iFXk=t9f5c+vIa2JhMx^DOJ_jOa!>DlF(AiL^iXU zU8bj4*I=tKjDgfQ2@%P^m0n(&qt;>;tHO}wdB5+v!=J7 z#WKbj08)9`tgj=klFrqu8>66#o@Xyz3#g7=fB<7zic6$~5eLBuE2zBl(MNq<+Yu}w z$)$P%HIX0y04|w;59Y=78LUQ8?*8VzjH@(1|9}7V1Vz`K5udL}(7Vr=2_#VQOnZ$> z@%4XN{dzlM7rpbme+%<}m;e>ylz+wipT_(Ia)Q6#6+~p|o6*Sch+_PRNfaaQd zCJ9nu>xSXf!Z$6$fBl0axOG~QN3eGDXbT5gK5e9STl0IvU0RuQ>8v z&K|zpcW4O{YMcoV;Mn*^;DMok14^YUa87xQQDRE^LpXgP;FxN$%oSn*N%eZKosq;T zI5d4g_Y+1E(bYb0M^MG2^hAD9+W-wIrvWa!U)M@_66n!Yyv*1`g zHD8Xnj6sg~7a$hj$aubqSIg`g*H}6+;$w`(@_o4w_!M&sY2MsMCajMgRORH84#z#{FedHyJ)VL{-F@=%++RIs=Kw zTQ1)b!TO_JvVU56Cy-_J^>YLgB#D>{FaRPiP}Uhjeqv%5#;>O|WK9Pz2&C@AGBC_v zC2axZ(sxn|yPHVbixNpCG$I*c(Rp?W7F!Gti26iXZ25|hVN;1zuq?MlRysv@0eDbj z&^PlJ8R8oqx#oeUzYj_jOA}x*ELfWmz7<=7uSxO03&HXNIDk6MTXTe5&p*`#4iDpX zh-qD`@ceU`t z(4Q^3uE42oZ0ym2E&C>02qO(cb&qh;FT8A}CNuNPGaB4uYIiKJ@ zFI3onfBv5;HORWF&ox5rL=1+qNf)TAHnr)jTD`fCof4lf{7-y5Jad4IcAW*-fLx#> z_3RL-yg# z$Y(TIE{@1{S}y`AsI;u&XWaH?%>K9Uw~>M=9$XCBj*EU7wDFI~R>b(zB_+es0kRe1 uOVN~-UF|gwtXDoye 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 CakL@; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1282.h265 b/samples/h265SampleFrames/frame-1282.h265 new file mode 100644 index 0000000000000000000000000000000000000000..517afc55eeaaa4986da3844a317c59b135f98ffc GIT binary patch literal 1776 zcmVGdamlBrc!U zUffGrVd*NDV@bW}(2Y1<>*YT)reG`pD~P{mLbbV>gifc$gKhtX|NsBO$MxML?9@Od z+%p;B-aX&C5=7JQEBGZQZ!03#+hir&n^xlf7i(3i&;}Pfj~6Y@U5C)gb0WbDyauQI z9>4$P*2rku!DyA>pz#c`oG*#aGM?71YWJ#w#1P0mgHti#!T<4p+50~?BEDDQ z=%3*z!NFC}7BCadLr(lQw!KvXYCcCbtr#rK1chsdA_jfl z{Xpkw@qo-#QEX($Lys-4qS5W&GSA7@LLFA{Zb^>B3ZTAId44r&Ef#v~_osqY4hry{ z#(`f90e$J1fhSl4UW+21=o7K?tp}(S-zy~)jmVg_ax$UKFfs+zhxo}x_OTjZ0_=eP zEiKP4Za4cf!{XPdA0H-ys%qaH*!O$=u4Mq^XY*=Uok>MM)y!LTR_l>9+txz3`g7Np z4|O^h=DNVOLS*?Afb}_vJgpWCLU~N?_8U9+>J4S7VyfflvuMZ7cSpRqBo2CDEC=s zWQ&7vprM!~d18_9?;#EV00RR4_z&jA`b@0y;6-zHdD?%pPs~x+?J3LIR&0s*N~X%r zg+ZsG5*}8O`YtF2A6WeTQVGYm9{jyh`idsp`5TmBdPi$IQbn3SwE9N)xnO^;o&Wp) zHlVZarQ7j9j0b6JB@)98i9%oqpfKcN{BL^zuF|d-tV-`o$8}%FCEhmwbGO$CTqmSC zmW^2;=cR@y3UsuM(RXdlb7`&=7=r!R^5My5Y=eKjoDRpp=3{4GA(`6!zS;AuR|!It zj3mJQU@aCCiT3rnbHXVPDaKv+(j-7xbz5zZT%Xn3iZtx1k$D~zfmG$<+O`Kf4 zmKr!fwA;V{pPdyz-~ch1zJM7c@Bsn$z#Shj2wWmS9*2-22WuncU}8kO(J{&+k7&Jb zi;9o613oh<19ZTKl8las=6->(dkq~K1%(8 z;&$pE7SuMu0~D~fY4(r2VIkoB6 zB#U{C30I!O^`Izjh=G)i?CZC@k|e}1(BHFtnn;$uKn%l3wDhqkE=4RDn`Hm%7K{bp zk%{4!fmkFyzcVslRY0%$mkoa->n4&{bP+I3u+dps4GHm?djY#e0@~cuUe1YO~$)@X#IS zpAT!K+zs@oFUa(y7ud+`I1nLr)}Aif*I$TLl=s5W=l4#0=(i&oNaA#!v=eY`g9v%r<5ft$#=(8>;%Dx;Vt5&w(^jc z&f^o13i8lxyD=!9&c9o+8?!HS{JE+<1K{<|QE1GYC%o?Jx(6K5)U_7u>2_xU1*FwE z58%Jp%0o4C7+b}XdP z+?zw^9#1a4ZmvcYMISIKE7d>_hV1j4$pg9l#d_>g#%^rWleetks%z}yFhJO>$7qQ~ ztx1xbDy-2CuK#XaD_mlOAfS$)lzIQQeH+awV)s*#Y}?8Npa&aThe7x=CDPe?$8&Ye z8^>-$5}xJIfMw5F<%gax#HOi+fGMKS9fPv7u*>AD*!%HT8<$_u9Gfjy58PMA7Y&39OyqoN-_ zRjV#eD!Q>W7@9C0%tj;r$!T-M%@+n+Qapt|gZa)n3)se;8u}fPr$Qp5t61x;l~|2F zzPVvGJU{XgC%Q^KTRlkM#YRsI-7n`e#JOrPDxlMBNUonI4ujW9ttyWmss>)iR{ww&C+@1Sn3lM1DrQnWMR!ttdel<7O4HlAtVwtMfSbN-pbCQO@5o}v#48w}xM#pL9 zQLEF$trI?|C+(8f2UbVHohIjy>y!o5H*1AHe{Y9K>~=xNh&%;}XJf&{;d9l2SWR^h z^q&MagG$aLaYDus|HJ)X*?g}f@H2cL(|+yr-vRhH&;OLasZ=+CM#)8^OcK-vF;c1c zYd4qQ>y`5jebisxbW4k`>O{WebR2}h@QjbO#;D%N*;p_+y+~@JmO=Or&4h`MwGXU! zR@-rI8G6jJO}_?xRtP)dTTd}nj(_NP8u z^kTP}i;V`MfEB0_Z1o!&G}xX+HOF0K50d?eiJIFXgU@ z1EHi(GSGJW%%&{oE!YU9V-DH7o|qQ=axS?{*musN!A@A+KSB^jK) zG$i~SbcG!UiJ_e3w$>&8AM4lQ`i1BCTchEEzklYwAONm{x$*N)#~)xocQJabjEt(h zK7NkC;S67w;C|$DnxvnWI`0$I3R80}E^sEYii5PXdZQ;6NGdrAZU=Y9FfU_PR&)No z<@`~Z`&xhtarQs__2`pbz8kLHG(KmB5oDQ}CC_e{Ao=h@T8S#>!S8mA5rREwId~&$ zK&nfMTJn$$-qBam=x1Hhc{eRRcVD*!YOFFR`{RSw=maQ7X}n`YwGaKAQ+79J;NErS zn?R(vs?}}-j%&E(%=EsU>lz}YM8yCJn-oM^P&az0|1CP z0ctQg<2o0N$IR0d#Se6T>0|kwXA5 zcl_8vE%Qy(-`$|kyyGGe9@VD4^t}6neuhGb)2F;X0t7qLrtK|i>$Cp2Pif!>>_z+D zU1oX9vEzIZTs|>ob}Qz47G%{sQB2Q8_E_K;s6e#azyP0}6+qwsF`2%A86)rk0r$Wi zA20}9B0wI8kRbm&T zE2oM8+TnDQP`t4szceo-ZfsopPA*{qIUfKBfBsw{cFI-o zCki-3kh3*Bxf|Z2BA60>MJbc|j1?W)K!o)PK*xcl0D+72a5_grLv6#_%Kh1;TC)8! z%l0dxluLXV{?bK--U)|?gaf(caA_ol^WF7%#DAUtUksRg#6rG{D;QqYmU6ppT@J+n z?(27&YX=I&oP&7TTkW|;6|K7ru8a$t{wy6U1KOHOq`gvFP%eG}&698c1fW>=eblea zOS~tpygAk!Y1;JITfjXOo#!GmG$C6-a^=OaTF{X3JE)X#=s_JD3oYPNil!3n6wb{b ztQGQSSfN+ntU@+Us>~AhGzb<@0JN%4IF9?n@R#wvYfget;kVV!(JSUck;kc+jgH zfBlACcd1WQ|BAqlb?gDNj9ppOS^H{mkA;r31MmbK3K%nENO-H6km&QE5ks!g zKfGw)J8J0euH9?fnEbVN$fK$Tscnv`f8wj-~(5rNph||1OM4G97`ts6z9x33+i?r*2_}}bsoP51+j)2{h4mINJM6jN<9vmYk zJwoEg@qFF5VLg9s1Z2;Av^i7VY&s0lwb<0KM-a-vBmgHfWJvLiR1NNn`y~kz@-Djp zSs*s#C6&$S?KuQ43+H~WQerZZwvKv0Ypm%tM@`M=G=DS4WgyT!IX zqdmmn!#jN>eoe~LT8gZ6}iRUt%}&}_?1Q{C_33s5c+*Axs9$?+)wOQ zD@5g#9U+}s;WijXMTVsSt{jQ>u_9hph}ci1iMSvwh?@ zK4o^#SCEz1E-@__4y98u9rH+OXelFdJsr)2If!<9qA?zSRH-2A3JF<1|3*t5fmhAK z$IaB&3U_5+LBK$6B=B=QEDwN%xf+5EpoI=R33=lEj0?lV_<^_*gXsnFMLs<5iEkdqCDAUjcMTaa`_eYg#IS}uIs;S zO8fW@2h4!$)E(Qf@nevJz-CE0NkS}Oc=bw;G-QMSRgF{2O=Mn|3rF)hM~|s5jv;pc zkCPlmfZSC~#AC112NDk8T+k%m;@f$CeLYe+xWp>D^B@{kN%_z_vz_|!4TW~QmP;;5 zzRm!P9YV5xQsUN_^3u7&a#+5IYM{LlwLq`53d^9+8B(YS)19*J2@&r68{z{%`+_?` zh!NK)K`DfkKT@apoTw=aOWg1w@Vb5XuoZDB9q;wiT}Nh<7c)uSl#gK8T?8% zUB>^7!bNJ`O|Rb4PugKS8^`QmUFP)vXwG00;9h73F0Zjiu3>gF8a8}DdRTkmubPhbU^#b?AAA@X4zco>fb|zx zW>pQN&!$N{fwZomTCb06e|v?|DiR(26LEd#!!

tsM{0so*h>zo5*$+D9VYfDmP-{U~BOPaNjLD({l~~;_sQ)T|UO+iz)xd zDY#2Ulw#kG2rZMCX_R}b;vX?ibEcCz1oSR(P~Ko9bMt$1ZG^ck;H|u#sTto=be(u_1l4%2FFwGOX_dG%0LHY1-yJI0N^iFq&GMzIv+->a1}-vM5! zfeUHCFJ!hu#g|CdC;`|%8P}8U#;1g#q#D2B-?3=+e_$8#gxl=e^J`tnIuUSfs)IWZ z-DAyO%=|yGdj3SR{Ls=*!6W>d9Cp^`OZ$!i;*8AJ*A-Jh0C!l)w*s(Z&4OnD381?b zjm0fRQmh)ewlxl=^2_n^p0pHv@DWiws~#<>B5CwQDi#Pkx^Il!3X(kC zg;!z#5_N17$F7cS3#R^fV;gL=f2rYcB|U2>q)~@V&$xYWb_-f53TXpUUEFJGUCxQ0 z=(@-(ZYnnpKPOOPDF<;E11OoFeCVfN&_RF3??u6@w^X;ouGxRsPxpI*OLt1bnTTFs zuJuk-VA8w3HlL6A!dOcGX-9}149_GOdzUc6%}JSLPy=U?S7g*OHw@buPQ=S4t14}n ze60(>eeIn**q)&Km0Q;9On9{QOkGM8aAzHqZvCPacAoQ3wA!5V{ zRYu#yh_ZQxSi*WFNF$V=`@|5Z(pDK}Q42E!gWi}+tsbv|9DyVdMEbfq z-rt)MOcX|3T z2=e9s>EE)B^5m;NsuSWQDw9>HJ5Ft|Z@LA86<|_djPncr*=A#D#DPq6nP_LdbKU2(C(JV|B znDEU=3T(Quq@eXxFOuy(^S&kb!YkYjP0eT`JmV%7cWna(9NYtdE%NuPRjg}BCg>Qq zY-jk&3EiS;lqiu`6m9~W^B8tN@hDF24LMzBGEQWNA4j@=PN1v+2~2dykP9B1g~8C0 z5sUNKY|a9k`YB#Xdw)gD!`j5}8>tDX3wO~ela4?ft4@GG@-IOLInND9KX&y&y}*Ns zSIp%|D|w_Bsd{?NN%zwjcW|hs0yt{Lg7`!Dl0iRleoxsH%XNA`usIuWDxwaML_s+4 z@eW>nYv?5df@fjzO#^_jvvOpclw?U$nYI7`0{{U><`3q@`mF&Ksye$Mn>j`gfVs5@o|(XWdE{uar}ji zrSE1JPq7Ahh(g18gYFVOVk@q+2d)E1!AJ0zM#)_o$$$;<`7vLPh#Yd1w=TfyOYOcc zLbI9;3V{tK{9ud@xSINR-R z@I8@u9&m!?0?VmkjO{!yyr7O~k+Z06Br`67FTu>)aJ)vPp_0Q{~v zCZx=Fb9X=h0{8n!yiwo)D7ip|Bbmlk5h>siW;@aoePzKL#hUC{ZGwOQ#E&W?87^C` z%GF?6pNIH08KG13#;0Yb7>peh^_EH)02#lPf1|B`*^5dkq4pG21*Fb-cT=}OA&Wtv zWRi>?>*QM&+U)a$^&Ju1hr8Mz6&Pg&fy)l4#Ayx4n(E`2+9}v{jsUCEc@TlAq~IBd zF<@Assr+3N5ApA^cXJdSo;%%2+p=xL_US&@jKTV*KCxPs$sVx_R1I?>F_Gf)JPfL0 zfMI%aZ2};)+^x8D(D)U-&*RjFnw5dcU5`6j%`AWiTlf_5XE0rPxBj;@Dc@mDBH>WZ zenF>#?%KSpT|@O8(VH^n(n>G^P1fQDV3Tk+APm{ft!L(D9NyMY70^Jm+rR*yofSaf z05O@qfEgq30Ri{G9Um|VTp~aohmau$Ya``gfueI2i^_;AUco)kKCp+A>p)Lu;u#HE zY?U$hcs2fmZ8hu2NL*Nld?G168m8L}^}&73_CaG6lEi?5t z#_<8%Y}%;w55dUAKG5P&iHcQ~4+O~cmxZ5g2|liKmCVbLgb-=w19R@#HHf+V1hFE- zJn*H7pDt<8Zr^<<hpgwsWOC3$J7kAHxd*X4WC#i6y(DBtQM|KT7PS8QEXx+^y*p& zDaMkRS#>Ut7cOMRcRbZICm2j*B&`3qMYC+Bk#a!pC{h}X&W!j4Mrsg1$SunF_U0*0 zI?|y!N$8UCWpw~(gXfD+D}-DdJ3tVWZn;A+ZWYBIT`5&X4@5JSZBObb8dkLE_Q;da zV;|Cucec*HSgbP$GI<8d$Q$VvlCCUU)>J0PhF$#6^-b?U4bo*3GVzs=x#eRLLozWi z$e6kX2#V7_Nehsy1M~|_QJ_?5AoJ3N(6x7DrCZ5%^mp{Za&Jz4=N_`Ibcu=Cln#;VZb`ac-Q~{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1287.h265 b/samples/h265SampleFrames/frame-1287.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f6fc86b6e005aaac25e94f173a443e347077d307 GIT binary patch literal 1854 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1291.h265 b/samples/h265SampleFrames/frame-1291.h265 new file mode 100644 index 0000000000000000000000000000000000000000..548640ac3e4db047a1deabbd6642f73f670ad2c2 GIT binary patch literal 3076 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 HYyd7GhIb4Z literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1295.h265 b/samples/h265SampleFrames/frame-1295.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a7f542ed0a9007bfd3aaeedc1149377af5c380a8 GIT binary patch literal 1779 zcmVDmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxyzqRI_g z+CUAh2()wqRvHn>TFn~qZ<2YxAYKuHAbJ!*jdQs!@>xo3Mh$2DElXfiolpCD&(HD! zZevtm|2mdSeVA(Kux}@P;6<$W1?0n)@~to|r7py_Snm9f-%X%%NFOC81k9lhKLb)6 zmFI$ims3VHc+3GVJ{9_d7rdyDA!1)hi1;m8q6r26gm~(aa4GHt&CB@OF$l%2$%D(a#}9>8atQ`CTK@4R2>Y079Z&U2-`EI+eGn;g75e5cmU;yw`Suv)FWV}Bt z7+=P_YNDzC+xX}HctbIhrJZ_(2{sWkh07L}{###U?awm_V@q88ai!ahuNxvmh7ZM^ z=hW5alt;`0D)ZP|=t^{?1B3(XCdsRp(KOfs2P(CkMIz9S5@F=kysF&sCm zZguP;-2iS{fL$Rwx3@-|$11vfgKU*eqp<&Ss3qjnTO!S0%+owvXF^8xRx-`|NM4Ar zw&4VX6b`4@wG(aL9C?O{a=8ueEkE({2>3*^WkjFJj(F>LWmglWd)%LNGOvCA4Sb!T z!9w*{87T1@D-hEkBY>k3WoZA(LZaWAX}}S@UJz%#15q0>`qO+jd-H)3k2hs`u1|Ap z`oitT6)Q@iGg9fLzHt@TkG;24FY&}jv*51XhnZ)EqnO*Lsu zw`4pau~?|2GB3kAzL-b~rnqCMlrvQ*2t~wZ+i!H4Jo@+_NPgqUHRWai00RN_SRZto zMEeuHdq4O8{8?9YHd{xGG=sv@-K+n}{Q!r|pAS7Wj1nbkfv(xDkXytU!*ZohQPLX9 z5~Y+6;Rj7swZg1411=`3K;zc9#$K6_dlQ z6L;v$Q(IkH<_T?DEgt}q`XDhrKh!KG$)*tb!{_6uLuP>cVU??MtRGDT+4QGE9IOCd zST9S^a;eqsk3s8=xc-iO2jc{hAVGr?_V-wN_JfbZyo9ND)|~(gEs5X!$XLa9;DDPR z#aWj0#{5eC!&?nE)qh3@4)1Za7?~%4KY@zrOn|mu@4MEO4n`;}EmLtg$v}#oOm^R$ zZcHXV8Pj`d?}^UIcOwHG8jCx4jk-y$Dmj&z{t=j=PQ8NL_2CVquqJyiJy@l#3cNZ( zHM4$IFQg0wA%X@KXvb9H5Dz1QW-bi21?#*2Fow?#xP-AaQQ9{_N76{gG+{5V&=d{c}dlG7NYj&!b? zF*Z{2e)ej^tL6GX#3B;+kIjiho{i{Xp!H)DUP2zvorQSJq~w%DiL3vM!0dn^t*GLz z!}4cWeLDap448Eikq+<2f+@PUSsM`;4@v?WA?v8>$Pow3E>-;(8_xQ@z}AVF!%dTU zsg!kDNJA%8PKer@oOTEZ4xH3xs5g-k3i@a2&ES7O+v{S-m2i%-J=lIu{BB2FEQxgi*>=8#O_{p;O*(&QK{tWp*Bn%^> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1296.h265 b/samples/h265SampleFrames/frame-1296.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d760b4c6e1dac46e28d01fb5180250a4e6d4656c GIT binary patch literal 3555 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 X-K5(E!}wLYZpF1Z1p+CUYyd7G>c6)k literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1298.h265 b/samples/h265SampleFrames/frame-1298.h265 new file mode 100644 index 0000000000000000000000000000000000000000..00d4734a61bd35bc5458ac0bb653ab61e376388d GIT binary patch literal 2211 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1302.h265 b/samples/h265SampleFrames/frame-1302.h265 new file mode 100644 index 0000000000000000000000000000000000000000..24f7b6823bd0429293e61b13c87cb9b02e688cad GIT binary patch literal 1731 zcmV;!20Zxy000330nn-c)I$OTSix9Aas+_jKn?={z$gn2KygLoSd2r%7?b8JKXt@S z=%_8Em49Aeum<*d+Ltrq7chta^Nyj;bu!_oXg}IPunggs{(r^t{rul6!}D1G z299)o0q6aaWQat3ha|jPNEkHA#6kPn{4ZRp^S75Y%SLoB*|knYyUcI4QQa>eLI3{! zZKeaPSIdoj7)|g|t?q_;1!~e|Kdbpa97D#aF?Z)i3IGWbYM;3ASfbiR_<=>oEWi@% zV6LfQ$EO@|R)KBMm7@R^qw}@pf~iA~={3QFY+-`U2(O4;3@e$aK8S{LPUfi}=!3rQaB*JWr*^P>^Ih!vfXZQ_&gaTFcdRRdq z75m%%u`LjZBnUo!eBK8aR>ppTpzOI+>M@lTty78(pDb9?ng>foQ5#NPS+48N4pq`_ zamOR-F7bI}P34WgtqtMEYFdPQD=W6K;>@>1eJ64lEUhyBwfX423t^b9YhRF1Eq1c{ z>+`QuJK+#fiQ%JTo>|4mpaz)>j}1eHABG*&{S`zD&EyeXgU|j1nvrr7-5$e*fgIAv zej7r4pHeV)X?Y50P)qB@knC)!(H4PiW~g%qNr*^xr#S0irnuK^C+&FYn@+l{oI1>| zA6p*9RURFxT?&z6f(#KAa-Xl&(idU3*qC@ZuM}(7?~s+_>95Fx;3CON0KIZlo(@g| zv4Uc;sPQ(y8>?9M2>&JPCkn(MQvd%*l^g{-l_p@(^P~F)d*!eP<$DljZv+48y?O(I zmxdMeag}})%#}cr5JwrqiSK1e4XDRqL2R7;`Y>eqT-<#eeUCq)v5TQd``y(N5pW$j zqs#=(I7XT}CokT39d+P&NNhe%!=Nhbvc$9f+}Ur$gKgGGDvcmU!lq#e8aL<)lE9H^ zEvJfDA%$;mX{>gxIf|v8kW21<1EYwDrd;+2+>{xNz@PvC(|}kWIIxl0dSFCuX@~eX^1>aN znkbGY>2+!(}IU&Q~by zUQJ-XOVadnpCMs2o^vjXMgTllO`!~EF8*$>|KIumm~!;j^HVy!{T9+AAl|Fz<36!Y zCLFR1&U3wJi;<(;;*KY0c}VAWB+KK1_Yu`JeCa&>yaYOx$lfupc~gaH2LN(?TXl+_ zxeQP6P5`T*gMobJNv`gA;>l=T>Ujj*jJe8&CLdc7uh*8q4Ir&)VO=@<348-@S4nDl zMmn>%IxUrc&sPJqwgerPVgbVjhGWoMds}5zy1-6kGb}pEu$%EwG`4M`0IPbqgpJxF zeLwAAB;{qdz$QjHt`p@qzelnYI4j@~3d-Yu2?G`Q84wIeSgzwf000936R;)GiKYMm z1>7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myY{&eMN zd*Ni$8P&HICl|;s!=$VN`5?#n$E?NKP$ThR>|d2=%iu=#dvIiZnk1Co^U5JylT;rYd(whi_iCsW7FX@*+l9Wk?>oI%0p!&p5uo%o@hY>M~{!27K91RL| ze#>^DjVBVqRQY5}vIgljgKESl@(xF6teA4ojyFO=ox{5-EV*5#CanIWwdw^2NXdNL z7|p80(u1m-VI;ZKn}Jw44P%{&+9w-a+a9X2v_Sjq-krq*d%)ef(}l>C32jToEdfto Z|MZHB9io`E^+YPE888AVm~5>mx`3P9M}z}V!36WCYOGB;JHSck!&#XO%YT4CCZU2lnI(jG~y(>|h!HlRr!vxEqg z3$gaQ!B%?2Gm#qX{|}g4iBc=}EY7Wk6SmqSdH=Ri=;?7-!eM#lp4MdJLM@J&F%ti< zO+-+5{iIp!c z(kfh-;HHx;%03ofL^0~sAIgf|fseRlF#;~uIN`P@cMjM(leG^o{ zshFNWHy}%uRVe&%dazd{c7MNcTVm`86VwDw6-F#j;#3BKJMSNciN%v+3KVM?d^=imU};BbB< zXrH~~v72rqs}^G9uB+-|M8~WF@#0?@eW5JNeQFE`1{&r-)O$Q}z#W#1BIdSwxvPuq zw*8H-NkQ+e;u~{Y%dP<#(p*R|L6Da8@T^#knnWt9`G2- z{2R@x{<@jxJj_mt%%8qpe-z9Eb%Az>3>NOm8MNUH96iMUKD2u~oS~C-a|>{WsA`_2KnUzd4BWtYGp`oCjl06iwt|#&&k?83#;kBF zt0%!oqD^?Y?@GyN$6WfHJbLD4K1ZO+^1W#F>?s54N^WN=s%&5dNjl7gi&o`_4p;Z+ z3BVd2y#W=4w1NW@zkyP2kg{SFoBs{qR5au;3sGPRAli2jFT5%e?IiPA($oLe+~CrC z_&kYs1B6b%05Xk@5#6Nv26%{Pof(KJ*B52a0vl&XOciwsW>9ip zfgyirg4FWm3K&pFttT%8ZD-&~i_2Z;0lV5N{jCj*W2CMIKM!Hg6p9)Y|GXALcM+x) zQu*%i+Fsny&k2*(EYj?HTcSF3@6H+ypAh=jTF>f>jL=3j{u)XtKtVI{gPZ69UGx@yO=TC6VC)y0HVg$OBxramIbVmX1~nK#V3@jv6>(N00oR#t;iNY z002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_& z00;OWt+4)`^62-&Qyep^Z~mJ;;~HiKtwpf!hxW%T3PnJjxCj0u>L5|-KMf|aT)rpY zydi}j;2~A+3-jDf4<{RA1_0F$Ah8&B$SQbeI-f24f*M?!)i%g(^rbOl!xAe_xQLtS zG2m?K$vr+4L_#XIbU|*XNz5bG16}+^8;0^F<}3k*+oB8}W&N{T8KQ8Fa;*o?iVScQ z@gu1Rpj}1_01x&C#*mGOKI2Jc<%e=kf(I|DCGhRR)AFkRKgEYxc*QEBa$9S-Om|a1 zwE!RwE_Q}oxm~TKaJ??qO(XS}bCQyRU;eaP3H!R`43SvRbkvWGYNocVE+Q$Sy1~nV z*T~KAclVl+aeDq)A+jKJWUBW;c6+JFD&Ss5fL_4@;5!(mo5-a=&dL8gq(}?SPyIQ( zH#DyAmz|U(Fp#A!+w^1!$%p&HqDR@%(8vnV@%aif`e!C0&Rcx~4s+*Md~uQ2_m_Nj zRWO#Xpb~kLtiY;3yw(3HA9IS89l5O3t`yOhdOxk%!`RV;clORZ%zFvUzxBk;t|&NS zx)eHOu-|@@+=7uZF z`f2g;P!m{45c0Gj2h-;CTt;k><*L;h=BYGcL#8M%Ay8mbw7p@xQ~R=Hs@ZH(0SATP zTzD`DxX`B%$QXqtox-rKRHniKn}q7uQ2AQ3of)nMqv>!s`nFZe*nu;Ei+1nyiq@ck O68m=kaB*9ecA+0t*h*^v literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1304.h265 b/samples/h265SampleFrames/frame-1304.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3d0e46f7bebd3c3a392b4879728d471cded18f31 GIT binary patch literal 2384 zcmV-W39t45000330noYs)I$OTSixVlZUlhfKn?={z$gmUKygLsg>)aKMQx{l{l$q` z?T*iZ*npr|!-Z+zg+C;F7m%CB!{HCq04QOi(q1tXH~)CxpgbfM8I;LWb4(44rH%a# zL$62y6}}*d@bVO=ksp5y29I#arl31WrF~%Ry)I*lBgVU$OmhmJT}Qfxsnf}gE-aq~ zLU@&qf0SVo4J&6Do@Z9&}WJyjvVevis( z&WR=v!xsZ|&lxYk{jXdqc6ry`*w%89IlZYj^>D!9uwRulm26eBhO>jP$}M-%_gwjb z<&Fm>t|naCZa$WaZ#bK3<-X86?H-o|gK((tonCQd(4EMQSsOThZWPmfj1IT0xp!_u zi06m}m3B_*Ajx>}C?%R_LsLL6R57JfP-}}t_c!Xq zxEyb?M5!Lb{RiTae5w8cMfcI!CBG%k4g=QHO2(*4DdYp_lc*lDr15W7vg(Ib%L_(W zoqnN&`YttMyQbigIVii{u7X@_d~k|*nlHX=R!uAQ*T1h45ICu3!?oy{7h9T4*pPQa z3$_btC*v#pxy_ivjmX*B6O2ARbf3aqTh&itjm)tN*RuV0TxWYJu3@bYIJrSPP~G8O z6K&}XQ`_=?{5I~CHQs`?P{(~NWT8{OAc3Ff$xgmv@PFoD+SC)4v>**b>hY&G)4k)@ zR`ck+Y1snWAU@}osI4oMlLGp=;z@o*;Vn?o0vp~OX*Y032tdI$x39lSdCJZbAgN8H zXsepUqg6aDR+2YlQ;AFU>Y3fmq4Zy9dCXJ8@{RnI-XvO^;Z0vx8!@L)ZZMOCvXb`{ zEV{WyV-S5sTnq#{n9dFJOVdJ?9gPV8dCI^7+{ zIjGRll`mFiy?@_JV^BRje7KmrZgn1#!iEto{&iha-Kv@aILv`hk7M)7cGiC0B!5iz z7L4EUEykaIjI#TSyj{nYrzZ9V0kXBV3@FE}kh+r`eVje5Ptw?|V7Dh_^{-3tw2-9@ zJWzr6HG)xl!E2~EzgNwy^Q~3m16xjdcTZK7&CUOxHYZ8e_2wZb%f(v2cvl%Kgl}Z0 z;Z08fWys-R008ZPSRNqNWt_YurzrqrxNKrS{{R2!fT*Qoi`0M+P8&|<;NSeiiA-u= zkGuNQ>(Sc~eea#)_+Om-zyQovIn_xf+etTUNg=|WpEpeIF}A&KbtJzz=Odx)nJ^$e zd0`tg4QyBFcqOn}n`KzAgrKu@=DaqAn_RIawX<6J(DY->l}r^{>f71Yj@;D^V)$f- z=CsE@y18K9>Js@^eSJ!EKWf$b@V#mu0zFzm(Qv-DKdx(vb&Kcf!Pf?k+u!}A``6T} zB|rPr8g38IZk~w~TLHz6t=I--&huSY*0~USNQ|lK&)K~h3HG01KIabJOYYB3@H0x1 zp#guy5J@Cc$XznnbiFheSo>yJNq%3q#*EH(j8FS>V~#HQvXx~f3IMXI+f=>J`?_E8 zY~wheY<~GCQ|_fnI-UZXRhn_TSTMU?C{ZGQXmPkXw~=5T7c(GaNyiReN)KWhM}cd} ztVf^<`EYVjp$S6VG!JA=AZqwMZig#e}t`Nl0fuq;d($)OyXlHfh?&J0dqn<2QLbhXh zw0f!Cpd?MIZ^FNTSK%9i3tO=kxvU?VvGvs@S~Cjt?ZqhOlN7rVJ$)Hhmr-eAg@)XK z-grKS1cz0{vi!uFl2v|g)?6`D3;$>OUthHOy!d_2BGu}9Q+oOi&hM;M9{N-9C;tF4 zN%Rxpi5CARHKd}g-Fs4?R}V{%EmQq{G0w1gw$xgOo~{J6Zd%Mejwc7nt zjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myv8Xbni-wPm9 zKY!tMEPSnL$OVa()1*t9Wu}>ZLZh6+DPrIpOv5c^tR_82AeE?<~DOfc{-~X{x#VfPaenN`oGXc+sAbxc}!pV1dmvZn=V#r z81M^x465x@pKpxG?jm>d;aG^Re=P*v_B!!hea?-fl_t+#^H>%7edn-C1W$_8aNf@S z%>8wjd%LL)YnM?7f)5wZo4ZSgqx=|B!-?@o3|?2?>h-_XA3e|)LVj;#Ulb!`coA#J z`xd`a#_{r$N4UB3t`A5(YGVM>DID$Ch;>_DM@VNqiEyig(4kDtMqk++UV~ceSBSSQ zTr`zPMRZ266kKl|WxWGQ7g~G8%fB5#1|Q)<@-AA}8&G!m31XPk{aKN`GUYQ;7|oTT z64&3TyYm5Cc6O@2W+ CUZa%& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1305.h265 b/samples/h265SampleFrames/frame-1305.h265 new file mode 100644 index 0000000000000000000000000000000000000000..69312858d195efdacf264fcea247925acb8a75fc GIT binary patch literal 1980 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 DI9vd< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1307.h265 b/samples/h265SampleFrames/frame-1307.h265 new file mode 100644 index 0000000000000000000000000000000000000000..965f221a0c60ac0ccc737fb0e9d063995bfa4351 GIT binary patch literal 1799 zcmV+i2l)5^000330npL^)I$OTSix6HUIYN(Kn?={z$gmIKygLf4T_2$a!lbUH`V}o zoS1j8-~aqj6K=4!!9d+_Iy)k40K7>m$lmbPCDA#uyu?gaXm0kuhn4S*YCaiBY{?21 zd{|&>u?;e+VzSiPzQ6~o|GiKDzaI|*;exVAVlpHh!9=6k8-gP7vEAbxt+BYQNznl} z5WvTPB=A4}SNsp){-$;PC(2n@$k&&vr}Chou>?Is^Xc;Y)5z-nW+6;j4bytB+vk%- zWdKg)#{T=A&x9dP{JJMrqlWKHFbzPNX8{EUl@TvAFJ4FLi%7ZC`V zYZ-&<>*HJ}nDI=N3Oz)=AKBfme?_%B(e!>Zlh&1N0uW!%S^1To{Q`G2_I9<{kp!9r z5mmO6YUZwAt14Z8^Cd3XTM@d1<}On6s>{t%R@Yu!k29mu(}jEUb-*h&Wo3RET|guG z_MKt;tI%gHv2AvxZofGBQ zM!n3xqL*4f@A_9DvU!emh3Pi;+4eoR)1pkW3lpaV8zN&E4kiY?Z%i-b3YSa zXW^m5usGf7!jzw+hX5UtqsRKu=`S_3832by;B;nQubol9 z1`^YCgE`#?$p81ZO9jL#LH4nPPUlfE)A?IkdBk+tR)AF*lGSdCFJfD=ljD;M9|LJc zzSQVGZQo2D*uo(C%JM;8Sy15$IWbVPQ==mwz`6(>D(#%YuubLn3lk=s1lwsJQEZQZ z01*&aA9esAfxeJOGI6LE{h~(!5dX)Sman@FN3?q9r97g|ZT*2sWgoP3B#CfIG_k&~ zLRXvmPATLd@NZ}2+Q-QT#c1!x9+dBTE(T^RRph~_bUSm^0t~J3@?OGxx{+;Jzt38B6iYWjn_rQhv zKS(fYz?EFy1+s+1+4;LJC-!6Y$VFG_!(&b6su<(yb52LO&Z zlC^;f3WM~}95phNa0JX)t;iNY z002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_& z00;OWt`<<`SO>lhRGI8I|Nm8|{j|$0AYl|qsD>)=SG<^Pt#WT^`Owxwz+}P`K|%3Z zGrO&Jvga26UbzB7>XcG(YiBGbdnPogADsuuBVuu499f3+epVL9rPx|R)^4@@Ohg&j z7wViQ*){{8^E@B#l+C;J1U_$S(n=J3(MM7ZXp4nVP%Vh$T+EE}{T`A4bwF^16h^cw zOCe{v4-SqgPAX_Kz@O;bSbiMmS5z$5m0DrDt^+~_KrKN}!l2Z#0}}wKj|8W;&dn9? zzyF{wUt^5Y1%&VW^vFT#c||vIi`emv%C0<)Tm{B3X@o9yk9ODq)J3>vh`#@ExATdq zX2FC=#)U=T8%fK@VHW$pX}5s1Au8^Kz2Z!D`5WvU!^QpZb7u@&qayHi~bZ~ z_wN%zAS7zY=C~iShC->s$%Qy$*3KrYPwv%7cL}D`W$|BxDB7PR`@w|gXizr_)>RHw zp$>4Hd&c%f1-wrUmZ8}j7^bqM$}vyP9r=&}C|Xh{>%J1}HDKA*38(@on0~8Uef8#R zrh0Ym3(#0wJGQ{iP2XwbE)v;UgCFwKi|mH;kx#Y(7zrdBK=5tjJnjQjB~yAE7mJ@; z1q6n?(u3YCAG;BZqN=*k5~6ZsqUm}=G%+xinLHIBFa)+%DniGi-wW;S^}30;yRd}+ zm(T!QYbB@lPxqE;7BT_PInoy-vt!c?amoAgULf?uViAzxCsf*8qKXD2)BkOCMX_WI zG$-AKvBOihrl|FrLjf^!p)LcXiVv!3)O<|cgiC@NEyyZ5S``l)buZ)@y17*DHvF8e p2!5QTY_=+AH{Ss0Tu-^a&SMv|_WlZ*0+BurZJhT?!VG&%0uIf$Yo7oB literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1308.h265 b/samples/h265SampleFrames/frame-1308.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f35f3528412d3ba87a7439e70a85fcfb61b27c80 GIT binary patch literal 2023 zcmVDrFZZtZ zskVN9|NsB*4mpt>hh#Gggn44Hol^wHIG@A#{tdY$^PtcLz_Ne=(IllP4(GvjAB;$_ z8TbpGB|!E=EW|=vcEP5zmCvK=DD9E8T@)ewg+1DV$saMnZi6ERL_XTGgt0(uOSqaa z3xuhSC?t!EDu1E7J%XHz(@Xs{M^{CDD68&qocusO0l=CT+S&i``pJe3ie|pMF2=(= zCe@(|%D}g#9d*>2OMqTqmLkI247NcGKcDYc#Z`(wl z+)Gv=E-dtp9eO-1Mou(4*xNn9(qR|cl(-7%Sz>`92;v+aKdIL$a?XG(ko?4Xx%r58 zHvZrNSR%r3ajp3)?yQiKY6nFgjXn~X;xZ=IcNR|U+7*7W(`L$eIyA0MXPFyhpC}D} zU)wE4C%_#sV`D^uM9n-qf-PSU`Gl^Aa6h*`Na{H2P=n03^GT~|U~VNPos^q^fdq*4 zZ#>ARQ$gvY6@zKP0R0i^?EHSVil{;X1PMr5dLDU77c_LS%_otn-I#twFl$nzK9_$! zUa@uE?KRxV3rJYR5JRu8juX}wul)vH}ckg`OVHoWtg`Y}JzB=5)JlY3xt zjw1AA?2B@)#I-_(VVO11I@qUQ0_cu<*wIfF4RCSDJEicy6aK z1fzpR^@W*EXZvsX{M?6(zS@P!G%3RwGWGQ5pO?C8!Gt6&XXOdiy*fL*Qy9_#trmhe z%3h~yl4W`a4!8lfte*uUi8bQlxfd0!C2r<$@#~qQAs&M(%Jrj+CZrGYX}O%Lsj+|+ zBZQhN{ac?}nNmpNLUkeR+r@4* zKHJz~WQ#xm3OHCFcUuknJJJ95{7#S;9BkVypF~JXnj8(B-vLVQrT*VZ@1^I@i!2e! zbXPh%m+N|cK%i^CMwqLELCm5w(l5bYF&N<^9pG?MZm3z&o?eZ>9S3Acilk0D%|hYs zsOZHWrD$E<$obs>>W)HNfw(}%YY!d2F9ZouMSR4}TvP@Sh3JCS3x$VvqvbJ$~Ysx@3dk|ksn-Pq29_uZ1*7J*n zZuO~ry1?D&C3|jKH=bQF8;(xf+;m^{=6v+vKM5Q$3I9}S{%_6j&D^#`Q0YZJF$B+m zWQqxp0qf9<2R-MjSc_bZr5`AJ&)9^+;Za)ylNR|NE%aOmFnVuE*a(`7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAW zfEM&R00HkEoR|Oy_#mzp=PMTJz6|Xc#~$Q6X8%cuCb$3T<+-9?7pQT#co7c5N6>e9 z@gIzH{fI1LB)}R8zn2Y7NVN!}f{wDY2#M>g+iveZXjrfFQ#^mg8r3t{ov9fHae)f}@GZBlrxbUX_tUIcvm z9xXnsxyjZ|9W*#eIDe~oAN3&nxmq6LX;wH`u1IB`50w#?eL`vOl>x6>RF^eatM1qbjG1Jp6o8H!W->$UjA>I-3WG0Y!)0AjkY)1- z7Z@bm@%0nokBmbErR7CppT>R{_+}HSr zr$-~9C(>rwmC5NNYQ*Zk)0mmg1+%I1aSh2rP#B_0#h5KDF)87A3cuBoBdjHtVkNc z(p)dp*-6O9vSf+Wjh8@%+NFC9vO|VlXsMeMTmg}a)KobW?%*ul;y?e>?VbO#PEaoR F9&k{)&ZhtX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1309.h265 b/samples/h265SampleFrames/frame-1309.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a23f34b2b2432f95c9a86735952706e091ed9c18 GIT binary patch literal 3043 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1310.h265 b/samples/h265SampleFrames/frame-1310.h265 new file mode 100644 index 0000000000000000000000000000000000000000..52e3e17faa3d28c8fbaa430eb9becc3055c5d5ad GIT binary patch literal 1862 zcmV-M2f6qF000330nq9H)I$OTP{CT_pacNmKn?={z$gl(z;Q*}`pSM@ahH*nU)@Z< zNrbnODwssujB=%5Aj>fWFxMf54`Qky!kC3X)ix9>0H5z21MfoSwtxI55B~S(2Md$ed zw=t?O|D8)EzRX3MEMCdqI1y_-!Fe#{ysJzLDNC^}mOH;A_tR(`(h3FJFm`KM$oX!k zlDfWBmg;E6uNiLRy>cLK>x#R9|)3G?jE`$!nvcch*>fzV}0&11UE?K{|q|j0AepBD6 zR02rKm$f5HK}Uxx;A%A8dPfQ(VI5Wf7DRKPKa0d-QY85I zsR#F;_9{aPno*UL%om60^)})d#lp=s2A6W^UZA0)O&-e~_~hI zCO&eo4xfR)s3pR9~tt z8!Btf_W)or#m87{p z`KIh<19&a)D+Q2Jy`BD7aCyb<Lb-PygX)IKY`c zA8Rw0z1b}(MXCS*5b#(Zbelx`6TN#s_y7AoaCLrS$#=r+&BDZAU&;Ldhs}Ivo{@q; zZ9p~VYW!aVuB#Kfg`8C&y0i~VvtZQbcj2)o1*7ARb*rJJ%UU8lxvI%t>z^5`c~bQl z;2c_6be3ETiWZGXywN|FZBR1;L{JRow7}BGEC7u1;L1H!EY6;vuJ9((Jo@dm?F-hF z!3sSdCC(n~Lsk9fwqX7*L4QNvzMh=UzU*>S42w=gO;pTu96{X5adLY564#>uKRj^c`o4HT)>1vrBgwWxY_o z5j?S*sIAbP#N2`9KqdntdwrVQuK_Xe&YR|DlvD7S%lj53fA6*OQ!9_i_)CBM@=4Yf zZ}Y!ClNjK%o<~YS8qL(GG<(N;2*TTElawp`qtUgYhGp;o017x*t;iNY002M0CDDnd z000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt`<=6 zzXk1eLH)$9%~v6HKZ=fuk&tpu@pP)mKp+R#=g8|Tl`=1vRQetO5`n^(r$=mKOSHsm zW6DaBY|O^o`@4MwLPT0%gBQI?N5*=fldQ>a6NKvp;vZE#tWhl-WW*n zyqc}_WsJasQma5P9XP&mz^6Sf?mhqY`l0(I$nYcq4yMi={1{LZ@K-suMAeen z3ajWO3SGzc_9w1W&&OQb1P*ini9z>~^-sN_*zDQt36UN2O0Z@ z&LLSDF&IHcZ@fqB`5#v>OWEW{?S9_3yW^k6mS#pehWj>7BQc78(bsMqirFS?8#FPJ z2YRFJ2T A82|tP literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1311.h265 b/samples/h265SampleFrames/frame-1311.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b6b2180bbeb2ebf2866c8eea1c5934ce2ad93349 GIT binary patch literal 3124 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1313.h265 b/samples/h265SampleFrames/frame-1313.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d68df8d87b98594d0599d7e7c57814213457f81b GIT binary patch literal 2169 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1316.h265 b/samples/h265SampleFrames/frame-1316.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c828a5ea1047987cab028639e28633df8b596c50 GIT binary patch literal 3283 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 bWrs0Hh6hXt?p>Op|Jp#cfC4F)CIA%hRf6UC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1320.h265 b/samples/h265SampleFrames/frame-1320.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e26c46eeb6cc103e9446702a74e625cffead512a GIT binary patch literal 1911 zcmV--2Z;Cp000330ns`C)I$OTSixGVzytu`Kn?={z$gnZKygLe`xQex<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_F03&H3-SaO!9GePTpTGWUrK^aPo6!y9 zr^%Ig8MmXv)L*`hM{M_kt`WrDw=_X;o!LcZ{DFFC>Hhel5kr#U@w7aQKDIA~-M1;* z#YpcD(Jd=gtg+dc*Z-acve8Ss&7ZjuLDUqhJ;8Y}<-Ds*3n@#nEtWgKBlpv29MT8L zNr5vcLyy4Jhb4L7pkLI{jb1YVOOJ(qpvCVhBnViS(jw)kWr2lw@25c^zx;+ltnd_s zx(_W~f0i>h>Z{TlW}@ro;UHbdD!Jso_Hd6KQZ5BOz?r#!A<(ZN5jD4BaF~kzroFyedO-qI$T2WR}dPp%!fzJ;9W>tK|YYY^ffvt ze+Jn|)cS;|5WR4AyZ{%G9%TW?IjRz4WR&eG&6{cU%@g{|j&}RUO7rZ{pkm|(bGMc* z(=rTx7@E(nVnEt&E16X@isosEyk0mPI57bdNYAs%evJlQGV-G!&&&|~&5Qs*o_;~}qJ&=wBN@|ERCvv$>Tt5Sn{W$AGf=Yj_*g+T^L zltOpQkZciS_6b$*_?=5PF5_F1U$Jajioa~o!Ffq}nw~d>7A9-T&4piyMBHF2Jn3SB9rDwSxv58j19f zKmZoMB&q*A#vCs#5w^h`R&bESzH#UA+tT$EdJ)!yhS+bA`T{ zD^$yf@_dSJv#w%K)+Oyy!Q(VFd0dA|iLQnr%TlN0U2N3KA`U@`0hU^lC|59Kw4tfh z1ip2>A;oR|DRaBeCum_BGn_g~2DA?ZKNI|S4jaKB3x~{xAIm2N`8_pv&X3E+7{;|q zi>n$r6R4mjCBJgQd%t-oVnk! zL>_Va+5PrZ@WlXJ{3fk;R52;Hmz{I4tCTA;nHk9kZQqn$!)KaQMb?uYxxxJ(v;$x* zYr%%?^U*f$S2J;>ahrR0S!7Ga7BSuKd4wJI_`N8}4*Of|hGu@9aVQ)xyRUribajdV z8kR7A?9(&dFmx*_+NUqI#Zy%F-TNuq8`1u<}pu@<=+BITu+_C8w9yf-zU z&fr}aYIK2$6gbl;*_@5|<7NEa`qYSkeE9ga$kgFkN$(F%V-Fd3tYpT%g84&NJKbFo xcmNO}054VyzT`2=~@q=KAz&PLnDVS^kE+COxs^$Oy literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1321.h265 b/samples/h265SampleFrames/frame-1321.h265 new file mode 100644 index 0000000000000000000000000000000000000000..70d4bb97181d36896eaa9440de08a0cbee8bd85d GIT binary patch literal 3561 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1322.h265 b/samples/h265SampleFrames/frame-1322.h265 new file mode 100644 index 0000000000000000000000000000000000000000..32bd857ca16fda9f36cf591cfd2349db8b8a1ac3 GIT binary patch literal 1945 zcmV;K2WI#H000330nthS)I$OTSixCBQUn0tKn?={z$#wdKygLe`x-brFn>_s`>%<; zu%3$``&_iPd)+Kbp*tw3?xw-K&NRS(&yYpIo*Rl3VAKEq|Nrqw%9iqCT8AL(B%{$G?2JMOXlHY%K3u;_HL!6)69>@NjNY_(g@|oj4Y38 z_3=CX&y|B2vT#sH3k}&RU8%%gI&iB8fK148u9I_)IUiS7i_0Q!I4$*}Wap{p8dN=L zQ$qR-m4sI$Kv9p`U#spmZ}C5xze(a62s_YhXfVK*b|C2|a^mRcr?z?@%MDEeD(bnoHaixQP=4$csQ#7-XfQ4oZ`{A`u*49xTE3fA<@H$pFZr+mG|x zvSi<*n=dn==VloUJzC-so72+W!jJ#OyL451>>g6E>blDK^UYF)CdM>RAe=3e?o?%* z>+)+;_T(6(k#}}?caD6Tpq|NQC?0Di4t~HA{B^hZXQAvI8W`yCszOrdbFJbo-Nb_p zmGMS?-X{E%|KmmN|IPrOTTPF9l0_IOqT~2?${(pqC#98{Ux!C}39L!Y(4T1TPY1k&XdpE!UL&X zjpG{kl{g-da0e&V?^nr_d(Hn-tA=F*8~yJxN`1`~cclx$&mfzTmpM@A|6^Gu4HO6h ziW|zzekK1^U7>9cy(RzS?pQKpmUqv6l3{Uc`(G~}xp|Cfl5;zL;U~3OnoQ&~4-jE=Er%(ai9(@O|16g%1KKZLC_H&2wC*m^N;~vW;Nx9)tF~M++kgpp zSgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neE$Z&Ma z+F}dT-|wwXUceSygj0$a+_IQd>@HgkUo?{kA=w)}fMZ5^MQ@nmhIDsV(Bc9j9#GC` zW`tuogi=J`!9~2OOew$)gk3bf=|t5}s?=l?{p~C#RgWzLt^Pl50BSW?I0}JN57%k2 zK(}fO3xpEdAy`zjESgc<=FFpGrifqm@W#-^9GaE|qcvag8p>8m>Uwen5bu9D`};rcRc=j@WxCLuP{#y5!~Yr zPF9Nyvj=6py#NRQ$wK8A3NG0N82=d!^y`v99)ctdSPp>dufscwj@tGpDc~So4Igq) zd_UqZVzEw2&yZu~5?%1~TQlML!#g3M-G4>h0eoW2=#H2C}5u#o$bSTM*oj&mq2aowz$jvmguy6Ikz84*I7QH6xKDQ fO*<5XL-4o{=3(o+b0tf1nLvQYfC4F)Yyd7GgR87> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1323.h265 b/samples/h265SampleFrames/frame-1323.h265 new file mode 100644 index 0000000000000000000000000000000000000000..002cf0ebf422feca55adc48f294acf224eec1d13 GIT binary patch literal 2305 zcmV+c3I6r~000330nt(a)I$OTP{ChYHUt3RKn?={z$;3-z;Q*~4NQ(oZMe_>zyIrn z=q%l(eM1YXWO*hMtGXe;Ip;~uWX;;XRUnm;Aq;2GpKUkQj^@q%qHN|xMn{%Ksb@BDj1uV&EmspCfAKISY-r>9b_^~sq$36uub>e*Sp(d_63y`8@<#t zxPLe7&^1l7jfb9!KbX*Z`v}9TS+jqDHN$|AAh2ODGho~z%=a!XDib=xZ5(4>K5A#B4=~16PNJ2P=2T$sC%AB*H3nhOsI%R$Du83yW%)y#JWm;Bg zUXpX3bqrfrZ{J{UAgG74oJS0!kL>1n6d>@`qt(Q61mkb0AlL*P~VLHsl#}EjlM2(N^?$)dhuQU2M8R3Ek8w3Mjh4vAPTBI;yOdq;A4j$q5C&6NyR&_q)39&>Q06k3}v zAaKjiFFeZoRV&DsK;M<4(7At=vfk`T|LvyGbd;x)0s2QVw`<^phT^u9rouGCXkh_2 zKGW+U@RRDRHGqpPBtgq7TA--^Z{eS}_|L|^zx@9F!-H|~lx7N* z8{ClD7gCxZB96%^wTejJZJsB${~}WG)*w6%DpN}!#qouhUcj~-X55ZA@*Ec)3yOB~ zd|DMS8>{|v{yqGE=>0!K#KD<7v6v^w_o&zG99!_Wrd3G<-@JW6gbTMgE zd{Qw0pep*mN@Xk8>02zYK%yp?EYIPtio;2No{#u_TQ6Wf9I1L+@phXmCsfxKgmUPb znVnG_EEvj#NP7YrOy9DWf*_`_MfVbB-QwB*4HDALd@^x8DJG`Zr*fnKj1H?WP283C z9UBFWgB!1UZSjy>*I}f zNk46jR|G;(9qDCsa79Fse?JMBjuksj)j`zIX+(DEF-q@UPF7NZS2o9t?@*#Fe1HH3 z3|Jp_2xDZS3VMJ2|Nq+0?4^WnUykLkz27X|C~v%RDOi{Mf3JUt>JOjcZjXivz5kl{ zfCDYA{Tf`B4F@ua)>VUxb`=Dk&E#+Ouz5~hrRvoVN6h=cDDJZKK231Ad#XAyN172@ zH*!9ALefMM>#DKfV>N~yzt1VVh4a;Ev}t@De|>xZtA4INL%0EJ6Lj(!JWTc76n_c- z0ChO&!C-JpuE?5P=?@)tMJ3k@7!7Ge(L4XkDiwJDR6y`C%zjpJ_cb1zJ)6{8w($Zn zeO;Zt_4?`AIPi$+QxS=i7*vv}#_CRF>mmXS05UG4FnXPm-&N$iFgB* zTcronRZYmYux}4+9QQ=o|JkjO72NH4tx%$;U@y)5UBey)M1dh6Tjjhj_g_iu^UOgO z3{genfB-@UCFLY00=Vg)FhMYHgq3?&dfNl>|L*(mC4wHMFPx*O=PosZ0S5jJ%nKTP z1LMrbl2;Ia={{##IdEudSZq%`5mW+;8(A!9UY=MMvPqi%GcOk{FAET&l3)N8P*|7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkE zP&-qZD@@|mOT#*`ftIr?W6R!H@9!#uHylqIgvjIdVvK@e84>l6YfWh z0x0Hy(Pp>jYc7=H|AU*Od~#)$0;~8zHaou=@Xj7zwF>MdY-SWu&x|Ws)`?fZw3*cepAh8Q#lMbn5ACR>2bL+Yj zH!vqf`WM1s-Qz(BiuZIq6A~^j81JhV(-lp0LV~F#S9B5m!|{G9uG-BCvRbP=#jnr* z!T3uqv^wfWRHngWEyN3^Eb#!*T`1z|U7?@J4NcccGlK8|qJ*-Py3L7hf7JJj*U6(E zYkboIs~}`Wrd;GJWB>TS{ks$&#>1M-J_0>Uo&kP4;_Zk-P~%WnC=y-;ZXH}g#ES|A z_%94jAqLdC9mn-+DrwMm%|7H|l-KjoP3g;Jc~25)w6AGBsQoRs=GKfvnN%<;p(YBh z(LGw!OhLapqhH1lTAP<)JA5|RgB}niGJ`Ahl@FbM_2LET$pj(dg`5J7p(UDs{^}~Tvpu$z z5cTFIx?<07pO8oqGTSDKsRveZ|9 btI&GH+%aiH)a*eVf19`qSOO`SYyd7GT- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1324.h265 b/samples/h265SampleFrames/frame-1324.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9fd88dca8030fae986ccca5791a67863a229de22 GIT binary patch literal 2837 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1325.h265 b/samples/h265SampleFrames/frame-1325.h265 new file mode 100644 index 0000000000000000000000000000000000000000..30e9a7edc98db73d2d9856fcef235d9e54231cf6 GIT binary patch literal 2003 zcmV;^2Q2si000330nuUq)I$OTSixF)rUU@sKn?={z%7&nKygLe`xO*C<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZ`eGuL-9GO>zqRI_g z!j6WWF$g;v<5D6@)^8_^7ft}tJqNTZIYVqAWRaEev^+uGYM3EhJT} zmocg@|D8)EzRWdrST~cta3a=wg7RU@c~+PfQkP;|EO&lK@21c>qz{sl0%lN$AAzY3 zO7p=$%c-Lpyk-EG9}4|Ji{4a75V0?$Maxji^tK;lQ3Qhj@*2NPPeD44{Bt8uzhuii z2;bZs4q$coSAe{#=aT!`!aQ|IxD@vSX65{b7Eb(9+^Ya$8T~Q|nN^QX%2RlWWR)Oz zy?i!7e%g<55hE6srY>;WqlePx!yu4jRNwCp9y|cBVSF@HRpc0#RyjncC{cngc_FJ! zTl5NU!K=x|ubN6hU~`^DULU9;bw0O*X%5pL^|7ZVYiO>9*{-5j9Kwbbz59qjo+EiW zqD=C9lQR^=u`fSei_(sC2XRiTM^Sy}`F7aa$pSboxCGn`cJ$V2L01zKYm4yJV%-qBjCFDbj)!(^hSi{u zlv(FyzZcm3S5x2z%C(H}vLf`EuJu#wf++r9xA&t(~ zr1l2;X`|e2@J~8S^ZTjePI`#ODFhRs^Hq@n$WxQn%*H}tyi39q5FMmzFjeER_bgH zlQwOiSY5cnrVbzw2^~MPzm?n`aeN!4S=!l9Kk*U83%AE^siRqeJ^EsNIo&~Uvap?j zgm}Te=|aYl7rrq6>!XjXR_(Q4EeC%3l*12$aajjHY#(BYVj2f_l62y1x+{{l2ymZS zsNd3?*$VsM^ARM=dKoAwCKl=vszZ{3c(KoUz!birL;;Z#AoDj+2@Ij(EOhEL00096 zidY|XpGH7OYy*W#|KI=dWnIwOP#zP~4+~3num30X0v|GbJv7n~NDb%)yJogP|3QnR zN&^|nzZOuHETWO>zoLsM6@iSou;sQ}TOiXL<$0aezwF52$g84F0f3MA*ljIObIkuc-xtw-E8NJ<9bZpEv znw6$&bIocOG#LQ=5&*H4F=`!;*0dVTq*3WK3s-K*lhEV^0DSRTyLS`SCk)fdwHo=5X%YCm9l4uiee4E~fJ~opkZNTB3dj+@a!W&6o zO!i)5#u-{qYjDadEZpT7ntjsO4y z0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEP&FZa5HnV~5r6;x{;d#pdrov_ z6Hv)uF+K#ymnrM){1?f^p+MiZ6m?zDX|q0JT;T#g6LTxT1Cx0KCM(A%KFBTZt*EX$ zc$nGrr*TC=Xo=x&^}}`yn@=F2D7r|b)@RiCp`XmrhqQb8q|G+^+UBie-km3uzc(Ri zVA;wTnN5|{QzZkcq!+k~ifI!`M{^DLscwU9B#k%zFnmhKDbZiuyp5(VmuB;z;HbOo z8pPIV8@!C2$oF_~F7z_Hvw0n%;n4~5m+2B`SB-$xKWQX?FinUJWfsme%~eV1SsV|A zKs}B)bCB>Pvha8D0bcDYqeV--JG@H`cJo?fNF!;uUwWmXS#@^gds`77ruOc1CgB}U$_5#LLk@jA`EoMGzc6C3w-9$pSu2>E5Po}J_<9F7)!n55jFyyi0>{q zNND;yUZ)0O{kud5+J$vU`+|da%>O2ryAnCdZ;5rlNF6ppJ};I!c>v3IAQCn`CKNZ6;(EXUg0)G zY)I(po0j{B4{Tp9AS2=5!b`ppxQeJOM;TtTZGZgG$j^Af{H`gta*{7%1Kl>3V>=U zMv3WgTM3!Welplg*gyFEZ9X(xJ3PWf`zEi889BdO$z8LtxtKZ<6H;Gm=kgAmeLfAR lonlJ{IcHkclXcu*+VK^D1L7dpL;sDC00%?@DVS^kE+A;%tyus7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1326.h265 b/samples/h265SampleFrames/frame-1326.h265 new file mode 100644 index 0000000000000000000000000000000000000000..23326badc3c0eccc2fc9522ef6cc748e605128d8 GIT binary patch literal 4022 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1327.h265 b/samples/h265SampleFrames/frame-1327.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5bdc0ad879591f881bc5e3397a7b6fa6f10c94a4 GIT binary patch literal 1898 zcmV-w2bK5$000330nu^))I$OTSixALcm#mpKn?={z%6P5z;Q+CilCazYOlqIEZ&ng z#H(xtt45aE3^~OTfy}G&tA|@cbpQX6|Nn|XyRw<6Go{7D9w&A#)z&xh{J78g{}<2q z^L(!d&ExzUIgj`UpY~^9wKvjZ_~y@q?SPS1A`jlr;a2Wfoh-SpS~H=3&*kzZ-gSP` zj_3^D>i_%owwMmRWZ+F~vUZdMeD^~?oF#pwKdbpa97D#aad+lM3IGU?4F9PQF`1dU z&)sTuGrTm*V$ZG}NSj=7R)KBMm8FOkxC=H7V5vio=`%TRENh@e2udtel3gFW02-Dd^&h4*i}LUb? zJf!F?Jn|rIRu&fmbXQN-d?i`$DOrioyE23k_F?rYcqZy_4TKPs^+Pcc0yOQJq$wm8 z&HK%daUWSj%%K<4722|qGeo*vLF(3>Cl89Rk&w9X)Hq@IVcku+6hOS*K^2!c@8C(P z7c*y})vSxCPg16*I;_0aC2e)($n!cq7$r|L!2F60zK+3gcP=?DEvec&4wDL&#fp~H zM|0zYJdp$ZwkUL>bYLwj7R$4MWg^Wz8CNQg{i(=ZhTmZ~*Ot6duT<7TSC6K@A`zU6 zB_qnRNmj5qI10qBTjcA`xyrbq&z;ZE^QHeHq#bLRK>C0FW&!^`jJD1~1>u8iH6xt3 zoX@8QQUWLc&6_kXL8*zaOy^HyzlLvVrC+{U+Jtq^>iWaJkKCWtYN|hw8Cz|PZH~y9 zu}YzVyTTGXCzGIY(_uVGa)5f-EL9QNCY*Uz29(O0%%|&iJ_kl+&H2?Ef8)$lifA~@ zgb$7om)o}TB^X+O*$MtO&6GP3-_TsNbf_w31`ySFpf>pPFh#<(LfVQdVm#)EY>#34 zDRFqCPL;}%^~72I1tXb1FO=}>yJTYq3uH;?cw zUt&1Lhh1lT5SeK0UQJ-XU`4`FP4J!(;%FgKq~{gaL8=tWcfB0qb*H2M{r?~dh4<-y zH8ZQv(QP7NWApgc`q3fnnqLczp5K930ZD|e^&UH_&N(pn`~A-UP$vyX&XdpEiRYn}YNbvytH->dxHgwpH|XZ!-yCLGIay_7qwM%ia-swtrj`e-hMSIfl;TzWJyc8j`%4k~rijKrtX# zuH!xc00RIMuqDxnrT_p1+$t-M00093+JG@neEP@#dUV;z5ddy2I|{^a!Vs4 z?uT1qb5br2)r{2YYA02UIDg8Klq`W1Y!&=w;$NrP4CemrVZ)B-tZNbgQPTawQaRVp z`KDh4^OIl;qkajF_b@uRFB&FQ9stuHr@dT>HdPD=FavIj%~ApnWD-a`3!Dy(f6OY7 z8|tW-Js31l6gFAMPb?Ri`V8|NP>|PG+)&?gDLmeegQu3UxVGXq%){q^)4>89z5hbO zKBYx%qW1}1iID>;l@9^X_D=I7OBHOD#hBVdbj~Pg?zy`d9K5va5pAZBq%|l(WpZUe zdZDIiQ*9o8w*gGENx=Ldq5f8H;jul*^6{;4ic2ue$?Y#oCaxvdX2_|Y9*1?^sI7EkCH%mKndI%za1JkI$v_vyhRtF9 z?Q`opGJt#|J0B9d>JtTV7Ly)ewtH`svj@Co&Pg5nal1Is=hmuM@zKpd$>-fQcs>@K z#0&IerAW`-qIUH+Hdpjppl6ZLFCk!0Kf|6up!K%htTP%%$~@+9;->%*Zc^8Y?gr-2 kQ$(bI4QrNn*9vtinP*>LzyJ^MA?;TH1L6WHm}~$pAo8BCMgRZ+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1328.h265 b/samples/h265SampleFrames/frame-1328.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0dd16422b7e9c389e2356f09dbb3f98b5581c75d GIT binary patch literal 2122 zcmV-Q2(|YB000330nvH?)I$OTSixV@J_G>ZKn?={#CwJUz;Q+8Tmp7=8(3lSpEk%r zXoQTE-BYD+{D=Sl`#ogL^1vkcoiO3fOnPnKq8tOBbez_lyIE?a60$@h9(iq*jMRs( zr@C|7muk_U$3#9TX3b!4%%3D%#?@fzl|%pqGOrXN{Dm`mTPeYCTczZZwwy-;fW*Q) z!#|&dYm-wL6UTb4zA%B!4R2rpJrCd|A03`nN^n-)ST3B)B4?cfKwE47|HP+8$#Z!0 z$mY1GCcI7WFD^-ROFOCWV*&OdcNqPrNjBtW`U}07qm~f8~adkW(oNFV>I@vhCd(u6E5H}Cm-St z2W!T(DUkdpTnWD4nfXb;fk(=t-^a8&N7R-?2hLOzN;)V2tNH0Z@w~MG`*PEaPk$Y* zR4d zL3s$+ShAYgITDKs>zHh!RkkRbI8?bjgb&_Zzg#T6=wsFbkL5}60M!UlQX89%n8#OZ z*m9-X%ZK}{cUCrZEnHc8B^Zx>(4R`TZ1-dw=fTpM)- zX|ZiDzQGwzg7^}OpWOWK5OvDG$`^?VB(p^SO>kvAgT zuk6%uMoUB6T>JnV{0esQ+6b zb;pAd87QV3^a~%&?Y7%GYey=#`9eAAjsC@t=;QO1om#cjc?%>-b8F8zkE0X)5>EVn z88@~EDCG+8T2zl#4u;fjFM&U>Q|Z>vjl1-FkE&m`LF4a5sU_4+<_+%KSa#DqN+IOm zRkIoJqip7Q-ipUJvl~-E2#FIPci&}B$v6QGzgD+*+cjZk1Fe!3i0;EGGfSBRxVyDd zG{Ln(C;l$vq+NYsW>c7|+$g^{A>%LBp>jj;HBw;(r3|;oi8~?mwYvTN1A>$DU}w)G;kM}Cl)*u4ZdhYO zm>fmsaEd+4<-{7>jBEoVYD^7!u}toKXxOB!r3@n(=Y;^vI1Jr4aL?wV#+dUJ?&5v^ z5_@p26_?{^8m;^6001YTSRNjj+op7vGIa=3)Bo@Ioggka*|u9gh>(>uI2$>>0+roM z{l1gmOV6JcSR<6^u5@=V*7W*;K-YeaF;@nInM7%%UxK`1F~UYWz~H3aP_v^vy&Hf! z4#<%eNSt+=g~Qkd;(2oWNfQ0N3T~1hsg($2)?KWiSg~HeR%5@f6asv-!$D#{n`x-kl_Ud zP_Rvs)e-j_QoEcF9z;!&ZUja7qdFPaYV5d-1o4z+nqH>7a$i}*s>p^%d2B-byawq& zess!UjLz5`DqjEq0{{>ZSgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neE~xhjaq!g@Iwq!EMf!K70hJ zEK=&{fbLc2$q_R?19En|E`&RU2_U&${pZJ6!6yCkfgKcyjl8!WG=Lu5GO?13y1O^; z9kci3k!x)5PXLA*!-q*tm%~e1@nZ2j)7*XkA(vzvgM*pl*&mFjd(CPTzUF-Z00RU3 z8~M8TMq(rn1AXI5I^Xd;_x{PptACg`UIqER47xg{42HC}#<#3JcrA_j7R+aef4m7ifv{`Jx z-w!njB~b>nn>N$?oVbY$$wRv)X0{Ea(Ce#;-mQNQ(8M61C@A+&}PD2qB-Fs{#vqTLE!0tlbp^05?KpK&6=|QcMct0#Ei1FbC?t) z41mTF%;2EOF`{clyM_B}qdMog0qq~3(b=3rQ}ik$<=w?^^I0?yz4b5T~Mn(9nX;4|{CdKlbd50EeKw?v}Ces;+jbumBfOA?;TH1L6WHm}~$pAetf! ATmS$7 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1329.h265 b/samples/h265SampleFrames/frame-1329.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9508bcf7db23d4bd23073ec9b7546ed5b8d26caf GIT binary patch literal 2536 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 y*e5E$0uCY96aWlp0x6hm04^Zr`uwE; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1330.h265 b/samples/h265SampleFrames/frame-1330.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3e6452708700a4b3a23606a65926dcf4f361968a GIT binary patch literal 1879 zcmV-d2dMY}000330nv&7)I$OTSixFamIMIcKn?={%^`dOz;Q*~4UG_9ahH*nU)@Z< zNrbnODwssujB=%5Aj>fWFxMf54`Qky!kC3X)ix9>0H58V#3(1EqpD zE6)W3E~boX@t6W!d@J<^FL_ZQLd3q27cE08(%5~GL=p@C$ZGvDJp}4I@yv}r{gW*4 zBY$vkIf2*VUIOx~o=fj%2=Ub-;8WZQo0svr1yVvshPDO=V}>vt#bsIBNe-Lw5P6^Y z3Q4U0&_57q$T%-x6z2(`IfAGp0jkl2i7y>6SRM8Ko_R4sr;BG1N%*rAMqM$k%3p^T z*{GYeEs*oFlb!~nP1mGwqKXmKUyWo(jPo#`lR<`bNS`a1zCK>2s+s5aTUyB7bpKW7 zjiPh0fsAUi?-Z5na4d)}=%!pgTe&FyEvnCHDmLD}xi8{f6WXeNfbsy}RfM?`huW9i zQbv$T)CEXV4O4%Or130}Hxlc6X}{`;ZKdL!Cu^8&xd1So=p3mI@nR|#ni!eZE!$pt zo?(eL@Lk$)u_dWC^X1$7uXcCH>z*gwGts@nG)HuRSyGnQ`XydBu!NP-^ObXGgO^uw zl{q)cBcVYT*NJ8pJgZvsfp7?7sWy(o{mmGck`Zg|HGkGT-LXyy8`?DJjba57c81mAh*pz=8qxV#v_HXS^k^ zm!i@fjS@o4sT6cBI0!9-9f1myR5Im%l{`aNERe=64!|GQ#p7XY@P%?oWrc(jHcG;K9Op(JC-%7 zM04$7#)~7|-_=})lXC?r@E3M&dSRa64WyHip~T_s4yV==$^|Vl|Nm$T62Jf=;8-7b zTL9rwzxV(ASyyy6R0oAEo5IrFtN+RU0Ee>tJoC~pNR{dayv<*W;C0nvcW}2wwHH=_ z>2_=OoX?ClB;d4san83)kN3MhW%qVh{L0n#qV}YENgmVavmp4c8xgGgzpsrL!d?{abho~z?NjvqHtpwaIg@>2_K zo=#6A@{a{m!Qth*#_#|I%vi0+7C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdP zKJownA|MsBFaQAWfEB&@b~XkW;>peLn9lSO!P6nz`K^fHr!|Pj;%rF?BhAy4=70Z_ z&O^vbQpyUrm}3TU6XF9{x{)@wK~xm>2a^!kQ^1bgs61Cw#qvoYoZ zrY$MT>2D{xdBm5b4uQ?jB7JI`C7_FdFnA$%LiE(CM@}X(j+jXI*bvh@w>iygF;ar9 zf8-{H^y}CN`)_31Odtl>BO-W(0dL8NMDT3`lDC_3FryOk`VROzgL<@hb<72LJ#E R>><|_01RjXDVS^kE+8Mmnn3^n literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1331.h265 b/samples/h265SampleFrames/frame-1331.h265 new file mode 100644 index 0000000000000000000000000000000000000000..47f8d18acf3c56942b50c34fe1f6c0edc6f45f29 GIT binary patch literal 2992 zcmV;h3s3X_000330nw5F)I$OTSiyOjJ^+vo0suG$0Lh>O09bKF)p2KV1LR97nu1km zqrwrH?0DG)rO)*mXY2vSEU z&S|1m{U1LtxPcEuYof&usk%H!Zc?pMDkz=M=~|q`Z+25I$1r6-l^Q`0)k+YcZXkK! zbU}_i)WuuHOmwW}jv=oEvM2ZH1ioKZaL<>edO22fZ*<~6x1dA7uNC9+=+ZKa!#Q4O z;i9$afD6iKz)6}1GP2iu5|z5Mb}m{KHbw=B$LV;@E(?2L4iUj{4TPwqUynJ)s{CXS z#bpvZD_U>;$y_jeGqCYM0?%zb`8ZS=ce{GreGkLh+b z^pqQY!aTr@Ea;0QZhTD%3qN3c7JF)yJ~mSGk4Cmc*=SXMMI6Q{dI^U|RI-cBma(5b z+SdkBtnl3ogh0I~I!<)O=_6S%?=E|RSmm{;VcFnmaGx+b2Ty`eH<-a-x<45%9#E_v zeeDurfcb>yp1E+?<-Ea;maG4&RiWyP)v|xUY21?XP_KW3yA#f|#wNX#;%clkG-v6i zPxeh3LB5rBDKYh?6fTpYiNiAnHl$}+64S^HHE>1UaKlJ{oVcN5b;ljKqAia3md}QX zew(@@tfD6aN&h|kMdSON-#6$j9v^?V^1p)YTj?u4L>}?>)m%Hx@7l8sG+0z2v1!rP zX0a!tdi@+qPFO>2=8zRCncgHXjkcp__xwxI^xbTefX?3(&lg#`&gNR5Q$H`a_g5CA zTV`3y-9m-kUNZLg--4~s!YxwR5L@tl-68K-;&Avb?k{|`L!4FJ9KR2f(x}6Zo5;mi z%|77Xg?{AZp&4z&ZMht3f!AyG^Qab9b!2j?LQS2tl^*BfB5xB49g@GzAC!|U86_5y zSirbLnOBDfFJ8a`Z>KIWfx(bjH_7jJK>cB}8@Liriv66q ze6$BZLlj^9Rd#x3e*LI^&0XUgQ|9mCliJL>*W5lw_iDX{9~sMq5MSh+-{~^HO54i0 zkNk_yxKI`N`;bkN6k*Vb6CzjpF+Z7(-)iHbxRP19r?Fn9iD3B%6!RVZ z9X^TW(7Cyg?kJNB`5sq_?mJypcGCKFf>JSvUY+szSECfGcur0mO zJrZC8nfKjxus*)-k}(OazC2-DkFDMtYcuK+J}CGbYzD|v?TmQW6036KSaMi{xrlBy zr-Q6%2YOWNf2;R>oO(yEliv89|A71_!u=4-Dck+aZZaX)9#30Yg%&u;~WtMcJN# zG(OanmsWfYO$hsH0{3>3oPjUb&&PEl#zb-36_w`cqF${*37? zgoyY=lBigF)o40x`ujQOAt}M>BWQ|A;~Z8&!CdKZ&UIA!uQ@RsmmS-83;|hF`xA?= zCVSzlA2RRv#Q0^rcGH+njO90X=dTR#4Vp$JC=WzTc+-*2q4IIjqBi`+i-JXU<~)NY zmy^uAh!|p13g}G^acrU+e@DpXE>SB>xEeTPFn~YQDgV)>W_c0+>&>J_(K0q^+ec8% zbmTVZnO44?Pi%?Vl$F zmYMDpGU~vrweN)#&7FEf`3cAywlrlRC$PfeQ#ZXhItYyC()xj$d}WZ=uCHPsBqy?8 z^_%uN!QDBa<9O8Rz*1>VzI@C#JGg=25a4W7PEj1}yLODPTplZ07i1)3+n2I$M{@CW z{b6C*GAlyxNrFboH$Z-BdyK-5b%M3^@vorK+EG(ZHnrgh*8mAADDka?M>_HS3pWL% z&dvoCItjILU=@f__naJ$c&i480NgYFgt+zR*+~Jo^BCI|b?3fPwQ%P~5)q?5ycYFQnU?7r5Ak;>pfy{>Y8e4)NB zI7)uqDa^$`F1I`S=E~9(8uRUTGOP_|!n}QPd(}awdiuMhE{{XGD{}Us?z|N}Zoi)! z8!lnrt}7-W>qr0t7FZuT{92M9`ak~v|KWfd{TVEP77Z1vtHLz8;0xLe@plFs9<{#! z9hP%BQtknc%o8(b^@CWRaEH34`r5>S+wO*x_DuSQtA^5KZShT#=9VF;6ay0VoGDi< zM8W>xAO8xBQ481DH;-67?l!-lk<7vf9to*HJgQ`|4aK^8alMP!Rgrc2x> z*mOOor$0yR+@5X!pt*4<;=uDcvOW9y{;Y9X@abt?B}7M+#=Zz5fz^0hpXSr!N-^5p zXbrGQ^x-Vgd2D0r=TCdX?MS`~B*KdH7|GB&vH zKI!obp*f6_6?+_oXke1MQ1sdKruvTxiX8Isf4gZy=1_g2^2XDIJRy!PFKz)ZxKkVG zRl)?eP|(~5dZlMiF>SxEKk!GHL`8g&VnM*Z)k2#eUD;W%5u`%5k&`@T*yVbsLU92F zbTJQ;;J>z=|I{o^|Dsm_FC>x2PkQ_@)iM$j^rN5|DaL-g#ySW~d|wf0VXGMe~;2jFv69v9iVQ<&C% z!O}*(r)?RS-19YBX)2HaA+!iWJ4=@VX`lLk$BO|Bk^D%w&Ch8WP$9Dov;hx@r?Zh$ zL0U2aK>$XJKonkJ06hsyJ~>sS2)O8qip-<30cY0{|1SCDDnd000HtDl3iv00RKp zfH6;f00096{1!g)001H&6|*n^0Plbd0O6iZw6(sgoB#Lzye`gt(xwt(Nmh}ZSS@LM zZa3%=e*P9!mFjJhTZr8rfU|J1Ey(4f$fjmOba1@Pw17xNt(ygXQq;3xNcN~2V9(xu zK1gE3Tm}Hot3#w;ew2d4elZ=!pwK=tQZ`eO@%-(?z#Zs5kFr_Vi|j*Es`})MIGwV1 z3_d3xht;nA>gNuDY;F0y2dap6z$cDsU3P8&gvO1r>;5}TCkPXI3V{m-aqT0;HBba3 zsFklf`iU^p;|eR6Y{5YwJe8nM$S|>~MU3;n3Sbh4?ngTI4e17OA(=v*&x9OytjXAL z5aFq;{l~l-&_PQ9-NP^-DICSnivl(zzs&#|7`^zcVEO75jS=VndyZZx3ZW!w?>-C0 ztm`S{g2-v9y;M$Ib)V)OgJ$vnUKhqbrw%cphFc{W{Z&}rVk7`Yi1NsGcSFd0aPOQ& z`OP;q?ysbG>UMZ!jTGKcwWRrsPc%?A8KbbeCTq9WKpQbdswe|oQt;wMe935Q-KZ4e z1guT;+7_Tb<;DU|C8|t8h_}sdUvI4WGB~xYZ1d4;fYfDVOcJzuF4>KVfD?9?oa+>P zBytU@SttpPOh43-B{QE~rQUSL|NDEq%Z9I#Z*O*yV#8j?oav;$;;ZcT$XsiTsm^NZ z^aRZ<6zF%ViCo}M@1prfmWV`o ze+Mt}_S!|gvqLc3DV5VYiG5ZsXXh})=YL~;qJKGxLXxbi3IngY10*RnSW(aPOOJvB mZuxlRD;+)?shKCWSO5a?hF8KKm^(4FawSmYs&)w literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1332.h265 b/samples/h265SampleFrames/frame-1332.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c4084e7bb54f10b7856ab3f73b56f62f2c9e3a90 GIT binary patch literal 1642 zcmV-w29@~$000330nwTN)I$OTP{CJPRs;axKn?={&wvU7z;Q*~4UI()IVNzF8|wf( z&Q*6k|9}7SKu&wY-U$PByy|W#Faq$;c7Ft-O&A6@n%!uXf_^VnzCP>grS zTzIg+*J2uFRK;bfvweUHOigm%{Hp)^@$m327%L=(BO*cLqtQK)xFjSYAJoD3%3vmX4}v|V!wB%I4MHnH($yW9e6wo*Fd)?5yOeo zhI&k@-G@Hs)_|+$!WLaf*xP-*CA$Or$(?sCM7MJHZo>@f)Om3?0w z6`b})Y{tb{oXwY#v-}3X!T~JWJp|9e*BT1q)<@YR%IZluN6UWSXHz48uC!uc6H5yTpz&54bmkOjN% z1l{R*5Z8|LuVW0?=5E{~J7F-K8YR|!ykN}7=Z`A@`Uc31K_jh+$NB{BYwZK;nxY9b z3L>j*Ce_VczgASb)ktBfd&<@Q)F&}hQ=N>dG>BV8Q?p)kSEb}INV9doD>h~eX>S^Q zz?>qa#N+Zepz%;XGAWaauc!btrF;qRsfOEJd<{Cv4(feIZ>GYIX$#NqW6;&S&q1Z+ zfFq`%U9`bMM*=?S1t%Mk1`Ij9NKPT{`d-^IdUHa4#p=gnQI4VKbwaIc~LMoA7H~c zr02>zbtStE-$S;Zy?tRvx$d_XK>{Orz}`_+@%|1CdE%|xV^<)MiGrMxYLd$m&_{uD`e^e>1j2jpv82|z2hEMWxq=1!l?hT_amQvS!U8uD~8)iC1^-S-gJpjc!p zOY_VRBgoTo3)gTp&AZ~a5MIJYY*rY4)t63;jDrH`Aatv?a|*#Xm)tB&ns5_tmlBI) zd;kE5fLI@P2rt0jNF#qA7tQ{FntaUv$7b7q$%S9D3T=AJ+UZ#lq_~PdXwCsR$tIh% zYYDp#KcwQe6XhQU3{71i;bk%#q5Z&pH%yx_k6_u8`7gd|$^8HSkOas38NQB^eUgZg zJ|T0eVA4Z(cdDo2vc6i0W?=sb*p=SbhU&YDOMGqq?{BVDB~o*R)L|oCL`eJ^==S;Z z1^tUSfSSu+)vmfH_$qG2&=(?MgWIqdvCO#gB4A< zfD+KEN=FCpDS6w{o&f#rbOL-omhh`2-QX38k4UP|E9>osl|XRR%1yu%Fj%d~7C-<1 zKfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfD8cQRra}4dWNt6 z|NqMn#yOMqMOCl)HuQo2EmMS0VJr{dk+Jg{T)(6K$T^_Aaog2HGjY%dj8go zWc3n4y^-+6mb2#iW-p8}~|?0^sv3hMY$4=5f+< z1r4;V>e9A{~p5@z4X2^bO2;67Yg# z*0m02??1JQZ7=pdGpFZjp^4~Dx8c)}O3-I=W7mrY(yE1UQGccN53t+LrC92?da#+g z;UG4-7gzC%4?%7~XQKl6>!adY{qG2z&`^bTIL2e4!?&2R%Ym(Fl@=g)fUl<}{`4GQ ziW>U+*3b$TDEu25AQM&-vyQk=9Z()CA#Ayb{Jn>kj|K#d(I#1xRjgew9pT62yqhQv zLay(f`2YX|19~IUL_h+r7%Gea9Pk2GS+oFSKzO+$K>z>% literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1333.h265 b/samples/h265SampleFrames/frame-1333.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a24531355afe9d445eb4b126711719d0a7e2c6d0 GIT binary patch literal 2114 zcmV-I2)*|J000330nwrV)I$OTSixU=G6VqNKn?>Ak3b3nz;Q*~4Pt&?ahQ_&d;b6b z>1Slm`P}`eufii=Nnb%0!=Oc z_cseXAlU=Apv0NA8LH?YTu7l0?uqWyH^|_!{m@-%ZyZMhJ*s`^g#EErOX#12Lj3sR zik9YdJk96#jdM%=G)GnfASkQ%NX~utp8((kBu@+f_WPeJ@Gza~j0Xy|qPYYU_0QNQ-$-njx%(5_1>AQy^4zZGDQ z&}`NJth)>>Y*~hv_WQ#ar@w_Tt{wZ%LiIZ#a~=rIDX=o93_xAsZQt1{L}Q!9n5 zc*>D3iAA*YoNZJgVe^lw^bmbT&9@#p9j)@|P8RGSRzA4(o}fw{NIX};Vi zMKo`IFE?t7y4qq#H5oTd?|Zg=+u~yBOhD(ik}~yt3mc(~Irxz`BHXX+)Nw{h6aQTN z02}-c55z$e_q=v9ZNznA%v_b#gCjTIZL{!9I;b5yMZc&CJ_8wsxsWv;&m3?EWupkW zt)8xG;`?pCV{6h-d+T_H+}85tz;(|#9fQ~$uQJLWnOEp)AwWYwdUi;9tTqV0d*w6V z7&8pa)?Nlb8hPj${YdpBW}A@hbLI`DD7Pl(UJyq!cG;`gkn;u+rvmHHjJaS4l{CpW zgsEI2P+u4mA9vqnPRTd{4Zl{mciS~#W&^E~6^FS@QS3M`D8jL=n z-iDoPfE-|`dz=H>i>sX7+<%E_ZDN|-y{aHLNo-8+u!#4?3OkY^P`C6<*a7zi&tb@6 z-xIoz>`3-p|Hl7e-+d3UJ!$sc_L{+Vm@ahXY038ZvGMnE^E<%#RThUCDe#PR5;j*i zgOdcE3nzUExsX)~m*fu+f6PHQ1!xebt7>~p+22C?qns=!64Np^{OVBTfoqLfOIozS zfB*o8fLI@QTMhd=(f{}V|7$<8mJs}YJNG{L{>$^9zVXDRVqfw8z5XMpK7WO}E*L8J z{%hhu47R)UX^OZs9LgcbBLXehR1$kPk-yf#gwh));pGJf@%*&sCxErRKF_9moH3ZAz8;L6k6=f-#@TYD~iP2Sm2<9PHkJ^^1vP^MtzS&`#RV>+EtM+5MHoCC^OQe!5SA(p=8J-N zEHJ2!M?Qc68K(nYA^bt|dly_NHmO44Hrk{V_VP9L-ov&xrq^;ew5u89yggDTZxysRZomL?z=w=qVswq$g6IDK+kN!pXXNs? zV_g!ZP-r9g+`8j3qk_JRD57 z_ICQ1uAJ8tDmBpH8cTaz^)ckXk6D;RI$NUfI%F6lDv;(qg77_1u7)t; z1DlRX`-DhSg=h5&9#?B8!h2Do)SUUG3L}iHM%YdYZMe_pX8yUrZ@~+eLs9Qw)r3*3 zd+(BR0MSyv?UF-0{01f55QtEV6kcQLaqw+~;FbEelt*UcB2kIPA$73i%m` z-IW&O%o$nQN~Rt<8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1334.h265 b/samples/h265SampleFrames/frame-1334.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d6624b176ef90c082ea7ee4edc99ca4f856f236f GIT binary patch literal 3036 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1336.h265 b/samples/h265SampleFrames/frame-1336.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ed1d5152895cecf58565b540b98920236112ad8b GIT binary patch literal 2964 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 K0;cyE0KI@EyS+UC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1337.h265 b/samples/h265SampleFrames/frame-1337.h265 new file mode 100644 index 0000000000000000000000000000000000000000..00c291157bf177352d08d7f2ce80670f7a149ad0 GIT binary patch literal 1834 zcmV+_2i5oh000330nx$#)I$OTP{CIsXaoS@Kn?>|ASem~KygLe`k5To@RS?t06fl2 zJJ@gk{wN8zSX*E}?ztZwkv0HcB$Z@ucxt}x9NAuCCMz^IdtbxK_r|p!45YGjiV|nV z%nf!Srd3Qj$svfykaqc4NEO%;>@ zJC_^#?sq;Avg$_0+wJKs!XJ>7NtDa&Yv-9YB48ViqyHgEIjF8$IFxbK2TXA>ZDu7YP<=a&~!$^L;mkGnfs>_~!50*I+| zNwsrruho?ws2l%F6sSx`k)+?K;Ey zJfP0XU3EJ`YIi9{ei+THN?VgO;|YpKh?IAD(ba}JQ$%DK3yj*C8n^g9bkd)Zo%fG7 z|1_7ks;x^pd7?p#BJOqXy_o}avSU-EuvAMc)DanH~{RG9zWKPNqMcH$OJk!1EVtaeCmo@>__U+ z`Ypro+vgH64HIjSgH^0y1o!4npUjy4^iNX$$FCalbTQR1^$y+_;cHE;h%lkxXont% zXNKVk^JcRND2ll^gRn~Wbpn7W6*;jptFMB}zu&(vtx^;ulC^@Q?dH7nz?pae0Rvbc zb^rVkzK};Uai|ylqDKJ`|Hqk@ue%LLw0h^IJfh8Q{eekkAGCBNiEv3YvA(ZDSDX4z z6M@dbh5s4FnIY^?IhRGFz#c26(1sS9V0{1k|3DKT>}L8pN%ZR?La_r3Mz4r1=}FK9 zsu^BC;PmzRDGE%0>JEJW)n>$}9{_l>$&|al1Zb8+I#iGcDDva6@%MTALL_)31yc~+ zZ}mF3W>7J|-t#2acRX=qv@Z)hf^J4!t%%p_&>#vX?14w&vGrBgUeNo}U;Ycy zQEC;%g~SWYAC~VHD>%KCYev4U`-0Per*)TLHnl7Kvu8y>;8{l;pX>mrV+c-tq9@b- z)$&eNrKkc7=cO}Q)-3%K-;4=n-rc>!2P*uVpZ{=U|NqU#$W6G@9B&)&5C;rct;iNY z002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&lXzW{_j_54tr?~N{V>&P zryrHQDA^&5G$n0sO3oybP?|<-zv2&u0DeZyA<7LH_hX$(L4x&irdxm~gGj9e-UF`N zRt8b)h(UAMi>1Q$2Je>W{Fc87Q-)JFXF4ff%V7%;shkxuDhfA5Os3Q^8 z5lRKli3G^CpI6?#oHYC1%&qmZszyHL3&e{O5?k%APn6MMZ^>QL&r;+sIucoIdmDiG z#^#VyADBeiLoa7jDjYU|QYBD={~v8e7_GGh-m;-;(wzC~yK2|)TQj98@RF!-m>?`K zt{7+4d7uTS;#$H$_!l3((8xwy4PTg;X=$2q14j%~VmH>?Gz{ZC)h7hFetXY2f#tnE z`#G;L52%(8Vz+q%#-1K|04yCQFc0xCK;&M)W+`5-li{oP={u}6^3w!Fcu5lX?rpL+ zxC(oqfnIELEAYM`M@1T*)-JD)-+ZAJ<-D9Ec1{27Eux#|d~RcFyv_}K3oHwVAz9eI zg}I}oYa;>>A)D}m_p)hPo0|u2?|R}X$;hbiz?jC$8$~rlc(iP=L**JH8Ha=yIzL** zt)s}em7_OJ;Q{mO-&n9M(tzw+UyedW^@P~Y7B^;2pXGXz7-4#PR;+O78E}_&UT_Z@ z*@C{%ZA`Y4b9IBDafEQzT)eCC!H>|)Nx(q3m1dSsgy>8jA~du|8#$PxL*x0Q5*967 zL;jm-(iTyNl6v3&3j!d4*bb1SS~C6rx#rx$D|_r>)+re7#1!?^IT-uK)kg8*KN6cnr54$Vrp6?_CXP$^B@p#jJc% zqru}u3UFhzR{YSbAEP`iue{T~+CuY439BFkq}fPV7S#NVb3Yp~Wuu`7$N7r@6!1>) YwE!0o8+&*F*?=F400V{uaM|Dsco*)23;+NC literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1338.h265 b/samples/h265SampleFrames/frame-1338.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d35c9519cea14e78a566f428191b15346d21328f GIT binary patch literal 2262 zcmV;{2r2gf000330ny3-)I$OTSixUYGz0+PKn{{RATSC7z;Q*}`k5S*+i{-5fB*Ee zvS>v9P^~+wB_2%RUnm;Aqd4o0NR=KdZ`*k*EDmDs`LRSmj8R3 zg`N;>f!okk#-f7^jovYfL*)i>>i2+C#}TnrGBeCe#Td)^LFmfp$LE zcq-3WhG)jZiSdWNXC!4J)qoX+w&CsAEPsFH~^a7AMM^O?fJ*m zUOK9H)7KcKH#trR0pz_9$E#F-Dl2vdK!g6Uh_mgahIfUp<%v^11}b~$Xbd2pPX?{s zrpf9L##~8&hYWPNd|O2j(p=p#Y3ma{Q5O2r=zY?iKO6cBqaEX`0S#_e5qZ8_BFKw6Ycc z!1@g^F?=N{O;~`~XTlTgT2#5LYe>481c6}8i`h`Dxg~(SDJWlC((5HN997T20l&cD z{7BJ1d&gro+(%X{#mQY(ilr>Qp?xokq*9+`=q3Dk5b$o-!3hn;Z6{5HX@=0j%f5c+ z>PDj;msad;`mJiAZYa5EQg1Gu}jQZ)N@LSep3Q6$*QjS@Om zxENMM!&UUD8(NuaR0a3=?Sqz!H)K!%+t+k9#HlLWZ&R{^#4JQGb}EQxoMbTjZZ|{b zH@bjz)%>z&(6)$`!9-i?`FS#$$n7B!G=9~sRf`u&A{6J?`y}OizyM<)1NepiwZC4y zeV*}4d27l=wzE2ym`%1`G*0 z7i%sPb0De}FUTGs|CoZ8RnQ?%R@C;Hv%ZD(M>tqcC8lI;`P8Atcdj)R&elNhKmY{% zSRZwO#>qky^#A+*CrAs9Hf@&Aq9i3v4hGI|fTed*|8J!C&$H*nmOSM;E1efh^}Rg+ zP&MD9OjW_4=204HFmZ1fjBt^T@Hi%kFGk=FgR&$=QYRf|p>XyAc%EFo(nP;+ zLYt(BDrIWBoD7|_X=GWOh+Za87w?5o+GHqtWV;v=MG5C89c%(_*>-O-qi^pd3 zDr`NtQ?FMSJXRA>?hY$0;U6o_J6o!@fM9L^rr3j|yBsxWaWtjsB2pHrGn(Wdi? zNHiLVmYFJyk}il45(gaPlKRaA<{+{=%VHc=;5SMG^QKb-cnbKRg%pzj0IGmkt;iNY z002M0CDDnd000HtDl3iv00RKpfH6;f00096{E|#ajRIHx(|^_*ruM)jeNjw!$BlUB z1miKC*6;vPeU!;c$$@xu7ARIob`-TMu%sWe8dfzeXNqw-fj5&+bGW+Mv`}z()qF;1 z=`d3O=%WP2{H8xy;JG7fYJW|Npil|SU7;s7tm)zSgXqn89m-SV4~{;BoLK+QA+h9R z7Gm-Y)#I=QBmu~sBC+V{dEbGrA^dQ1y}Tf`nxTb1MCwHUIm|dYYQx9`H6vJ!2l-`N z5sOX$BZFIyoW?HfJO{gyaFo}n(&bFzmsc*<;qIY5f~u9yiUk$P0{(VQ)zz zf8DE=W|QU3_dcPQ=2qD$)Q){Pq2;yzW#FkUI0*iHE>W1=z25e9Kr#O1WmeeCjs$o& z88Ba@J+K2whNhsG!9tYh7on*+sYlm|dvz)nQM}?d4;t8Y{r6)SybwVYAV%8^zb$+q zc_kxmuVlIqB0hbZ@CYQUKmU-ZRc`P)=?t3dyGN? k`qC_rfmj4&N-T$r0Q`U%YKed%pdTgofM>u1lH67T28`5G*8l(j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1339.h265 b/samples/h265SampleFrames/frame-1339.h265 new file mode 100644 index 0000000000000000000000000000000000000000..188d59ba48c8404de8a4fd76a9e8d6328cc60581 GIT binary patch literal 2984 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1342.h265 b/samples/h265SampleFrames/frame-1342.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9dbdb7fe104963ad192bddfc39c1bc84841c31f5 GIT binary patch literal 1648 zcmV-$29Nmw000330nzFI)I$OTP{CJfXaoS@K={3YpeP6eKygLf4T^qVa!lZMb0Xk` zEbA-%2@*%{KmY&E9ymN$5Pnm2n_~f1@+YR)KEFSp_#23$B*$QP11#NlM_O(vTYS(I z%ucCB(b0ezbdP%R)`_Sf2Q0{$50hNb_;0`eem))r!v$oJ#N9|cf_f*iHw1*M#%~zy zZH>BOPKXJ-0Gogud_VqE{14#%qIG>A%GX!PQGJK=IC}nOB+OYU z(?Y%6ACrAcTG(QFe|I#6bnx>BYFt@=i3vK&AzVMxLE5IQ;~ecH8U;^z-q(s;*%bPt zt-pT+#Gfr}jM~zJ%j^Z^m*nv%L^Xob4(y|&~${N<|G6Ss+R~=AEM)L zQyrpxA4`8^Nkxe~<;asj@K6u!xxX+5UPKM5!ouKAis|~#gsVN}D#R^*utFeMo!FbZ zc8Q!&cWDItvM{V7aXQ$fPrR$G%*)m;oX|LhiWW#0vpmAJ960}WiCeSq2cG=`cQy8b z_03TPnfcTr=96kNfnTdNoobYlDaMtmlc-H3Wh?3};yRM{X7K8Y9Xq-nd^xClF@)X! zDI7D!=Tf73xqL);8)O183XC#Nm-!?J$5zbw9lplXFhDY9b`*b630k@HBv6UT z`S{;ceC?itC!EWo(clji(`Z8rO|U+H{r{i|kNY{kj*@+d$dIf+ z!x5|E2xd~I202DojO0B%uZlvGAUcDe1NB+4DaXD(Eb?V8@4*@+kj|DX0m?kMX#9QN ze$Z$=g@IJWH(UKqt{IdJa5a2PyvC-1Tx*4e+O$MX{X5RbR(lAC6lMTeH^7FsKS(f< zr^P9zx+kc9l8aETEG{5kVEnguv026Jt4f-RBbAt)xEWL=RXLE%ulC^;f3WMXaE1CcCV4wf{XxN)K8e_%@ z;{XOkSgptwKmY(gz$MX%rT_p1+$t-M00093+JKhs`yt7!vL(64{^ImEK#KjcJmfmp z80OLg0s&|W=B0^a_If^qzxV2vkq8_qS-gkDEv- zXKbm$2Y1UFZLnQ3EAF00e}V zLL4+6m}`BVcU^&;_DX?H#`%#e94+{AnpIR!NDf$~T(ec?s{P5nEf8g{r@xuj=2TB= z<(B$D47BpAtS?1{O_bRIey8q~5XzW+cEEAmPOg4*T@EO}wW$pwG2v+khFmIassqi> zIq(lbe}!s4{Q(VEfe2q+4~y6jclH89M07Z9%U7Xa5=(G|O*ENX1*?xh(PWw^n1EG( z?#!ynq-n~J8j1Oww_W3?hM)ek?lR4r$xz5b9@yKXKtk#vq}Auko#_P%Z4~NiG>HS< zaI0h)RjM;AKuvU8Cy#m5#1ud8lXC2+W*{G3R72TNTGa9kb))SeVb4Id#17I@YHW|X zulje9U=VdN1bRuN3R=<(t02I&#{$^UJe>2pDnw1AGS7Collks&x>uI|9!`AFMAL=%O7zfy+sJ#D26Q{XYymVd=8yx<9@sz!>;^kofG!|9;3gOV literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1343.h265 b/samples/h265SampleFrames/frame-1343.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0ca5ac467472503cba6e88845f7898878b4622e6 GIT binary patch literal 2049 zcmV+c2>$l~000330nzdQ)I$OTSixV5R0IIvLO6JUpePCgKygLe+5}I_&NC8UPk-P4 z{VeR6N88l)qGKzl$5X&BXompjohLPuH(mKu9ITNDMk*Kv)X&G2NYC>~tgyUSpb0d$ zv)tSx@PQ-h-h$c59mUw|%UbU=UiL)@e<4qHi?T<|a9r%M-vi$&t`dGRtRUW|ni35< zBb@QoS6>)F=7zTC=6BXHlBzg$&;fo8U_YHu0g!C%0d$GnfBz4*`eWKWj?sDK?(4^* zE1g;W{HolDH0dr?sFjxy46^B%VNeZ=4MiEPd^@hqxk7H_%!-=PxVgFMTi+llaergv z7}7|y-5Nektyt%-fEC+sNMM@gBWS&+KE;psCzSn;v(sOLcmJ5pDy5zC2rd+d-v63k zxAI6ZRh_IvT{jZ{LulDdgJ~g5^K6-*w{tkeW2wT-rVtdzU|mkF$V+NoBvXSrfacAt z$a(2o&qri{JTSC7V73+=Bd+g=Y7$En*&zeSaCG{YT&c@B`U&?h3lQC#nbDWQ@{0=H z39}D2*rH`ILl5Py-#;zRS8ElTyWx94kPkw;st4LLbn zx-k~&0dDh8GQQPH@+HtWfs^jOwSE4lp>=%g*2rCP;KW8sDTe(5 z#bY~sx4zTqTgC+De}(d*D2-gg7iDKwt#uwk$r4=J^Uh=F#Q#K-zaNH8?SaZT(k%4S z6FL)kt(uaEloDCKKZeM1$2hA#$~bn((OQ?s+79Pa9jTRIw?9vUxS6u&)c)#rr_iO} z@Pq!Qw=;U`|D6Aie;@i!Ptf@GS@o zAfOHjTD6Q9$3Ax70iHw(y-9+YzcBvjH+6Lv$GL8hfdA1$nKy~(20QooO*MTSCHB2Od%9bf?F%yc{K zdF(Grcs)=+TU#6}c^MFG9L~BDSdaV$rTNrzF;R1XOeYWPh>JVG`BfH&87c68fcWkw zJ9$D$E>>Zb0h`C^G^?!RL9ctMtSyw-x?{_x$f`DMQ_s=@eulLFI`x+iGKCxlV7DZc zlK=n%0FHoIA9e{s2-^+&JJJ95{7#S;9BkVypF~JXnj8(B-vLVQrT*VZ@1^I@i!2e! zKvz00m+MA)0HABXMwqLELCm5YaxcHwF&N<^9pGaUZjP>W)HNfw(}%YY!d2&nc({^VMj4X?z`jeS80_es-E8xB+7}>Etq8 zx$C+p{uBNH>T%P8z~Gl%kuLC;d^U`M*KKH*(n$gQXOy6cYUd zox1l9-P{7+{oEjYnIk}jfoU3JgjAWx*uR;84rgOK6w$WG7$X}+RNG1m-cHm}^a>v} zD2?XP1A_qD)bK&4-T*FBHc5Mt1Z|lCzE$D$Qa%V~@*QE}nDycJlEDvBm(EetbC(*y z0E2%9<^_#D0rBQzNh^py^q(`W9Jn+!EH)>e2&w@^jjWb5FHbBBStQMWnU{)B4W7C` z|Irvf|NJ(*JYi&(&n>|K0;X84$QD2V06)Mb(TS!200rDCD~WP@KZ@wx94(z`Z;QVIq zmI1AGRPwpb?=r_jZL_tdRcPbftERzwreF>aa1^%0DJ!9DlAbKK10_)O%>6+|_HfP9 zuk%SvCG+kK#goIyDoEQzG&Ov-u*nYqIsjk>+Jfpvxg#TroUY)a6@Bs*uN~IWdnAf&Q~&@*z?MEg94DG|u&USJ+}6?<9xbx?Tpgl4gG$0wo}ncl$xTIq zT=w2+_@@^%6i4=pxZTWAaxtxw^|zCFVO)H~0o*3CSO$}%U?#?y;Vj0Y)y+*@8W#S0 zITGEy;95CEHrdSf>x=-l(fs>CLjq>ip`qsv$}~~396sj-B;MDGH;=*&!VH}24;=5L zKHmx`G@!AO{VOBHc&{?Lx?|K1U3?X4&8bui_-ME*t6CLbAY%P2+64nxg>;K4+FTl~ znn)#bJ#80y&|&2EhttV&fJ=beD%zXht+2lIi?8`Ue=J$;i9~LcpZ{8UGgidF07^hf fsX71x?iGi402YuJcPIcqU>uK-0S^OIp~wNX?wIs4 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1344.h265 b/samples/h265SampleFrames/frame-1344.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d5a4c09e7f9c3744671a299e851a6ee1ce450700 GIT binary patch literal 2653 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1346.h265 b/samples/h265SampleFrames/frame-1346.h265 new file mode 100644 index 0000000000000000000000000000000000000000..48dc1ed0b768d05c0aa31ecd7f352b695b4a77b1 GIT binary patch literal 3603 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 ZfFh${0zxQgAO)N&;b04>2fMleBp{lN?I8dF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1347.h265 b/samples/h265SampleFrames/frame-1347.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4bc23b4813eeda1af1292c7578b4dddbb9bd87fc GIT binary patch literal 1790 zcmV8q_{?R(FfR=gcZh$w-t6(A{A(nZEx-hS2p8R3ZP?g9CP%POwK^CkU zTvn6~?wL@sn^u<{^l$&aTWNsn74qX=+>?A1aKK{ffxyC|pVj=Ijv?bz7`yW$4FChK zk2laPj!J;J29E9B53|PAhkJaHecSmUhp2viK3{ry0bk6-DQ_nFXji*@@^+=#0}OQ^ zmqbb+I=$F5@=oH2;Xr9X{|&~6b+fwNFhTity?tN9fl+lf;`CcE2$=^=Zc%z*@}ouY z{^>p`3z=no4gnEB1+MyN3i}gDeU3|Q(9v?&j%E`eQ`Od(&%@;1mV!8&K{kxXD!8yeQr% zGLg&EJcGBP^93V8rJ1_ovVsRi<$p6Dp5wsd=o@vh1dg|IaQ=Aao8*(?iWa{TCl7%n zMo&EyFwzK|P^j%pn;({;Nek*U8?twHj9_e+Eqre1g(`WT2joy~^X3$uxddGOaq8o# zQe?R7t*@-)OfHW5t`JZszNeviq3}&g_j|U6nZBC}Ij`NV-^<9j+J$T|gLhKM37&8M zdJk{R@FT?&AQ1sv(UO*b(XKzq-TpkG4GnHd|9DKsAUcHGfB#682E{v-(F+Igc3`P$ z9)#IB{|oAEfB(fAG08(GkUIBLX~_ffNl>MLU67EVt1=>Ephl{knL>f8Nsppi7E0Dk z6Oqu{%~XDT5njKCUVnL5_8QMM)tE0tRMGhV2K_&q&Go$A-`W3k!}!Jz^eVFI6ypT{ ztwWy+4O1UNfcBXdmH45nKbs|f`I<~y8HkToQjv`qRX|oRP+IU1UFN8b$*s~Tp#6Q+ zGRr$Y`VIIn;ud5oHn|d^pRv)Tq|x#E|4aBEq%Oi?`oH79vd#AY$RB|+kKT?kumAuI zh*%$X2|@}8&=Jg>Y6bsjk-$Vh@#bZ#?!!^-9=YjHD6?CCU{YB}?HvgsToO$zZ>!Li z=Khn%!U*o+f5vfUNP82`WzlHx2a4&mA%&_gtW5v=|3DKOAf~^XmuDWZwTK!6dvv9> z0Pq_2x5)Vf_VuDJQWTj1@{W5LRcCrz4}62x%0p4}r1SRhfa+Hxc*ecuP6wnM0m=1y z)$(NC^MBOp;h8|}T(fFM?YK76S2lmGOs zv_$%U+P+E3%g=yJjB{Kk%5Q#;WF~M|z#tWs#{W7alm=V?1q4{F$QD2V06)Mb(TS!2 z00rEdE4C?61o<5P@Ie3KwL3WeljD>5OZML?u>1nj{^JdY`ynXSiU6bqJ!~+|`{GPi zE(!Pv$QjvXiQielZvtXD$bq!X9Qs1gx-dcyYmt%Gkq(v`)`614?!qK;3!3)OjJ!{r z+ScMvW4Y7xwg~f{_l6@zCYQFr#Of|bt`HcGG0#8(H~eJ?N8mjea{{p!pfzvdZ*&Jn zc5k!taV;p68xAAG=%=DAk7f1 z@8iOr+J9Hg?bkW=)&`A2ut7fP$!RzOS!%)NEmNqNr6`QBZ(0}?7k$P$|FNqV9MFbq zk8!J&Z)BjL3yaj`9|am`oF$SX6dxSeYlqE<`~S6R`ZS??yK0sVl^xiJQc~jCzx-zk zU<_*ZQHWs?QFJ4uz?n3{`xJ88<@&v0Xj~UP1^vQzU#a~ey$O9namqAny&W=hwil=EbfagRbVa6ZX3?oPIf24hBjdq$ zb?afff8|!da2RLC_W3f;^j85jZ~q<{L_nKrmANABG5TZj{l&3YCTjoyp@2Kg&;SB% g6JEps8&DS|C;&u28L$ul)qo*o@B%snNt^HltSmu(_5c6? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1348.h265 b/samples/h265SampleFrames/frame-1348.h265 new file mode 100644 index 0000000000000000000000000000000000000000..876f3eb261079caeff9f88ed6a64d1b79ac6e55f GIT binary patch literal 2040 zcmVlOpheORd+-<2R!LHteLx4%A^vqL?Mj&6YZw@vE13ev`w7KZ)mF=`S;R|xhd@fUIa=2vZgbR)_lJf@Y3w#ucp^N-Q zO??qoXuAS6@!HKoN;dxPIoV8=qGz1`vYWpD|GAAu#N?*T896Nb6_FS#Yf*o0P6~#3 zWFw$=&}Kh4F}yLkspvn2x8%tr%^mp0z#)SfAC*4bTh|~;IvcrVWCHO<+(K#(4eu7T z39)fj6MHbs_}F>qqxp>ouds|drJFbS16(NxoV9KKSlHB@!f{m#sw`kd=U+}z*ckX& zyFG-OhmDKn)KJ2~FEZDgN!h_Ed&jn%Bl;X#&=X)X?EhPdRizb50!2>v2)J3F>o%K* zLSQb5up@EwQM;Yy4PJS>+USZ&>v+UoAWVv*7>PfU$M~h`C0yFWFrFB*{HQUlQxg(- z3ME`>&k0F6B31Je&Xkpx5}>pb2G`z=O+mWXE<^-Hl4DAX!4U{438#axH6T2PXSscc zx3PWJO_W|T9smQ1I`;GKWVcSuEKCj(1pTNv#6HF$?Zm}xkK;| z0K-=G)_DN0@l?&{!AkK+%EfCl5B~dT z#MgLk_>#Ap)-#LB{MM@R+Cd0x34P{c)2+-umbB7`ZgD9_l#m_}v}v6w{hD6AOPFSilORJ&$^pa2(il z?5oVrvNvk^@>>2>{3YW^<)iGIBhz6J`*R_ug0B3yPcZUtl|cnQOE-ybnra>f_DEMr z-GkTS-C)!l#KcvlzAhUKZ&TA%mbI;R4cs&NsIjIz#e2A)e}tagPVKr5`i0x?C;$Kw z@K_&q2xDZS3VMJ2{}ZGI#~U`wXU{4Urj|ozM#ECOseiZAOX+#@<1-$49ZAlMrZTsu zpb7@N^l5TfG#tty$0iOf;}MP$G2R9-ChC&iAcg4M0nW}uhXO{6tkftI^Qn^Dg<-1YUAb`u2KJ>1$Wgj zM*Y~bqC>GY!(GAOd=>FYjIJB2$o3~kNdp99bd%Mzps~j7rVmy+#FJf=^lAG5Eg-I` zO^3HI0Afze(wvpYbnU8v)#3C~J_u&=9bw^^_7qeU6+*!_OH?^*w^k|lXD)TY7@w&Y zhZl7vL)IBVPDxYLpQ)Uqu{`iaPzo$l<|O;J5%8@K~+L7C-<1Kfoo?iKYMm1>Bk|yy(sFK<4xVdFNS|$-0cDm^A*~^Ll`) zA1Idz5x4WT2$D>2Fmf3GJ_55>81DIpr+T=OG7MITDm^%MJR$w6ZMK=%p;x#LO#T1f zU*om@-Hd^I-$LKY^FWU@$Rs(wTn&2zNPCkfS(q(Sv?uYUyqxU#m1^(^(RF+Ugyp=e zh{;B?p2kin78OK5P}j+ILW>=7d-Ic_!-u&sqF-uO0n^&37|OX7qME+gqLGL~C!1O1 zd7rE8fU$3%Qzb5Y4)q6c09Wh!Rv^x{y1;`O=ucN$hxwqdMnnJy2ZA$q(J$+e@zUgF z&2VL#D82c{5^vX$K{U)z>56JiTgbv2W*?%Uw!+Wh9*(bds0=e0tU@3=9`hm_uT{U` z8gjK{QlE?087_7SJ#fB3z&lLnecHw$S*_-AEY<^n{_jPjbJR@NGWbjCq*%5twRx!Q z{2i@)>?5Hrpx>M5vJgTKQfzp`qD%S}LNO&HVPRa`&9uK--N%gZBKjKkBEAGHI+O7o zCX*7(HT@`fB^NV>hyVZs0nMu($DcW}Gu3GwNN2Ot`fY0)Q0P@b8Pw@iI#9K0SLGRc zRvo7kI1i++^tEWhv)h9S5UV09?ei_d*LBS|01d@!@kUNJBD!KbHddYPVV#l-=Zj+B z+{NT3{jp8x<22n`{C01T)QIe-8(;1d@B W0Fi(cZ2$r)8My!ilmob601)sGs_Li! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1349.h265 b/samples/h265SampleFrames/frame-1349.h265 new file mode 100644 index 0000000000000000000000000000000000000000..28e660c7a98972c9bcb7e6e49586bc8a4005f650 GIT binary patch literal 2974 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 R0P27po`3<{1raMi1_a`~CdmK* literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1352.h265 b/samples/h265SampleFrames/frame-1352.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b5ef156597c9db75da752ce2674d3b8a18a35b62 GIT binary patch literal 1543 zcmV+i2Ke~^000330n$1D)I$OTSix8VOaz^z_zVJopeP6eKygLsd{FSlB>9TYsOJUn z)z-BxOk8vQ`v3kZ5!*GYYZ;qcaI!Zf>RF*m<;H){_}+iNpXGRdYaigz%zwZ<|Fcc5 zpdtVp0QMeIW`TF*>@DrET#&^2wgH^`M~_JgH@YkBGT6dtpZQh)_v7KtVK?n1i9K5DA&?1C%1aIzjcM+Co%x&QVrBAVtYYz^58TSahLxG%l z=Vcd*XFJHj?!QTO&4OVysSP%gI^(17G0)l&u}&z(@st_XN;NpR4OR z1y`QWUs&fL_*mOxs{`5Ih`5FnUMl2caoiY|3I4mdCb@qwX5M@?Wf;n^A$8ZGqXX!R zo|RX={4}aQLW-UEU2@4|xm7TmR-?WRKqn!~s_3ro{UJ;4Di>JF)FhOuIC=e_)wQm(e|6&aQs0dH%7TS@})c2(&TrHI}27vioH(d0P>>gyt?%^Qz0uQdZYq zT#qxO(bI){^L4;0Hf3dg8eI!4n|^}^AyMl=wTwLAS*~G-obxYC9k5yM z#J{X6E9>#qgKbMhs|K4&mMano{cWaFLRXJtKdBL%dR7CadQ=W#Pnx(6|o>|#QK61%0f^7+cJloFauBK(%n_y zXEse^|ITJH|2DC3tup3%1A7g&<{WZg3%II4N7|1$s1QSst}~iALm_qYIp)8Cdsvcc&?j57+Rw0 z#XtYQ{s5R?ewXu8I=uZBu>(MFRrBRg7kJ*jSsx$T5A;RKLX#jaV!we3tnW)a}eYf`_0UUA3{=f>itB6S5q9@b-)$&eOUVH*%W18VUQ+xD#Av1!$0RXJ7 zH}f=2x8DF4Fj%hRJ^%m%028pDROY_KK=p;g@CDWxid=7vu1oblh#pZj-V+-z^`T6| zF``X}6GP;n7|l7{Y0NDgK-!B!3-rZx?cyT-1pyTIHEj6-Fp(UFAj%_hT;yB*2*S^~ z!--RYcI^&DTr?bzdT;jVIXfD!QaEob5u+*tq2C|_fgSIgA}Hfszx`of?#P)Vm*1si z?F5o)TmdBgbQ9KCDH-e6u-9s@(#$q^-b>tNiMbf3phoAIUo4q%+^qMOA(Sj%h_G)<@E`R_5LzpOZ z4dSXTZm4V`z7{SSw-Ze#Tg`jKFREYTN09ZmFLd-vm>=`$jgU*s)CA;m;3fnK45JzR z&oJsgn9S7MKmo@{B~KKgou*JtxlI3CE8qYBONrbHY+wQB3ZWgnG$Hl2O>3<=tAH?& zdE=cyhk6ugFJw*;e8UE4?0(mSR1P=7D%CQVm4d8NtNG)j>_Mmn+0XCVqyQH17qhqkJD?rnkO2cA;jjVw1QvI21BTP~0S^EG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1353.h265 b/samples/h265SampleFrames/frame-1353.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c6e88e70b6ef531fbff9182ec672e149624153fa GIT binary patch literal 2086 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 Ng&+YP1f#;B15#k4$WQ

?ii?7Fot#Mp=J# zGW{kJ-bkup6K*lem4JgR#0oF-UjKD}?!rP8<9DHaUxgkcl4Lr|AyM_%CJGq3#i5?BV{4V| zFgbR6;(c9NlVXcZ2Fuj^5uf53?2=ix$uc}_m&yEw`8sBIw57SiWEC1!xnYbvK~S{N z#Lls9+Vj-&3`w_w?$d>dElIbZF4dfWwZF44X(60m_+5fU#)7X?j-E(Pt-J4qLY`KN zn5Qs@_l8kxp3CO`Yrthm!LyQrE5Lc5yZe14+B*;TDuP}}MX$8g|5)?I!|;*4Rfi4x zmy&h%j~ZumdieBL={fe5L6m<&1Yjab0D^5#(UcK}Sve&4X3aEJc%g31NVm2Dn6G_* z4Sc}(v2L3U$A!2_kc8a>zgv?bb6Z}h6evQtJtf{ z?cUq0$plTa>kGFSRKdgo6~_vFig){kx%pF=pWQEOXpk< z1D`X4*=SJhy2*(M^ zEW7{#S6Cl*2wvgQ&&jcthc5VJ<;I*ak3*yXVBIm|N@V}E)FECg z^2hX|C@}v`sjm*SOOGQlPF^ufcSbR-sDP@9MZ-xyUGOHUy!xL=2mE|ouP`Xkz>PwW zBNs7WI+qxx2`GS};Jq&6J@(5d1@5r45K0H(-a=G2>rQ|L zjX+?&fDnO)%7E2MPg^f}8%nR-HL%g$)A}$tWNHxY$McnjZc-uDyoQ77MEo>I9#|xf zWWFL{Z59Hvk7|90_&t&6n)$soF5T3CGC5e$Eb(4gbT4S zn0u_W+iQ6H$p_f~eLq6ferBl_)o0;i@D~;JhB87p2Ez z-<8XdSvhYw|7`eLQBCV5J#VxSW`S-twQ&jK36BVJWB_`+Z>dTwxpjsu#74HzfDkk; z1B~M?$cHD#l2F)p=Zi=lk=onG%nK6%zzO7?C?8}J|CMuF$aOIm6HK!}LIo||SmnVu z%r-9lF>~sOmhwCn$bObvFiixZ(_L?ek}hgbq!_18#TT7|Mzp56yxQUnhzeLs@*VIu z?{PuJUD3Y%L2{{mOp=tToi z4V}I_GvJ}a%2+?~PNYdFbLFvAKWlhbQVk=IL(Cx#H$kx{g?~*Db4^94liRru;_*uW z}LV^P7*8Qv1xCeALJE5-=LK56;e24{k8*I}>;6G&hcv1MLjCy)RNh&9_V r02uHQP2d1}z!YU*0TUP8fCNMxPQVE`By4~cuqHWxL%;`B$N<)Wo7CZs literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1356.h265 b/samples/h265SampleFrames/frame-1356.h265 new file mode 100644 index 0000000000000000000000000000000000000000..728405a05b998899aeff5f6ccfa34dd9e41796e6 GIT binary patch literal 2909 zcmV-j3!?M@000330n%Cj)I$OTSiyP0J`yqX0e~3mck+yMC!%4VRI zS}5>@W_unw@;s$Eo5chy3`DX=?!~f@HT_Xp(T;Yjf#%dkUe-JcG`3Zz05b>5s{+F@ z$>ys4Z*wB{;t%E)6&(jvfS%9vPGUsQE;G})_d}&?{$IugkZ*zh%pObOPoeNSk4RE6 zP}5CY_3Gd93wvM=5y5Z`gs7xqC7zC? z;A_)U^P^ut==1v;ddfpV=Ou4j_yLyIUAY%{IN{`ONF^_Ya`vrW{dnT`FDMqgQhj#; zZuJsB4#4aK{rvt1C#InI(tkgqmy(#Y|4&J8;XzeXGhAH>P4N>fu8s;aZf2B82eS2y z6s!@GckGlb)kI6tA04F*)hf{SMrzqV->%FZ1OqowK{UR`eGG9Oy_xS? z;SCF0{x?205`XsyiO(SW-(Hu|1L=^^PYGg6`t?%TzhVUD3<%`BW?A zZAopO(wU0ecfF2oL-IBkt|EvZo*p>d=XH{nr#+y0&Bq{-3UNY^8`EwDjtxWANSWSi z1fEq6U&EC@fBhcDr;yyo4 z&z;T>Fic940QZo{UWj<7aLLjOSh14dGz8u6_Gh|@<-Ve2J2Tu8DwQKkNa6^p$cInDAj|$2 z^b68i?OHF4ToUx)8?iIEF#S%FaYcWD(cmw~75rTX5DmY~gpUK%Pgi86>U+Kg4N9)@ z@;j{;W_kqB`?DKuW-8RsQw?f7_lr&S2&5G;&N)?Ts>CN#X=oXV5n4}i!k>; zE{dZl<{IFfJ5t{nI&ZbrBAqcHEvi_H%P8s=63E_j`W@6dnLhvYU+027=n*{Oom_r4 z&zkumnHUS^2WS`OLn*4^L_y_x9>}bCo^F4K;Phy0$ROe3@SuAn3{E>E{IuYFuE!)! zg>!OM?GP`oGO~(}%J+aD;2sjBv5!vA&&!?Sx!JJS5mqS{AguBluT%kO%!`tIyChakiPg*iwH+ep!EeBoQ~RS$j3~m+0*Ef0 zYXD)#y*v-cP8%|+ z2sz(BeUq$6KW7oUbUE7ecNlLi=iH)t^pgYq=7nradgYj%ThdA4zqKrm$#!3BL&)WD zAl}zGKR!_37aS!&Zj|O?pQ2}Pme4KQJzVarXxt27 zSB<;&Xbr+liPv8Cv_s2G4_E*I0|U}nA3FS6k{|j%{{R2sfEx;aE8zuG1#0T>jV;tQ zb}L=|9rX3V#GSJ9Hzib@0NXU1T{V|->chZ9_8`e^VnFTpL%N>HS5Va`teG2pQ{E^W zh-yUu#J%dO#0cDyg$iA&Y-L|U_4WdewW=(PH`y^ZOZ3{v>J)1dBxl(@fF2VV}7eWw}u)*bu3I={&bbHq^{PtC`^Eh$mC|KkT%$1DaL7 zy$#q7vhTsxaJb;`<8qZXqZJ?MdMsu#Ayx)&x*hs)50A~ja|yp`c-@kvmu}`nost-Z zm95F`YOAw;fW`9f8vK^7yQb1!nOm|Je#?*N=>q$vVpI?yCgs zLN_UaY~;HohD`WW_#ha0=z2H-fV zG2gQ+(OHl9Z&=nXo}Wbip@L~Qq1*z=O^IR`2esAAw0&%|rx5wTA+`H18lKNj8|V_A zhoK6V_$$>)>a9D@b!6!(iU94EqEQuUh8v!A=cy z14xKN73=d+#ouV~<5_&b0Tlc9z|-MBwZZPg4jn6XgAZtGBXo!%Uua>JM0?-KjNHlL zoja;#=&(%aZ38Tz005?doR?HnsQ*U1uk@r9ZhgLHZ&)*wIGQ5&R|S6KmALsmM|M`*&;Eg|ct zjV~%A2VlQ$ZdB4^myp|DH<^#-Ya5o?J_kcry5Nanme0e<$1zckV zgBJr`)JiV65mYJB4-F(>BndFwx*BIM7njCA2kR-iB|rf76z53b*f1Mc;{T^xP%}~M z=FEd|00R~}lMR3XHlRX)rT_q8Konu700Y_=o*V!bFdOYK045+Hs89fPz$24T0rdo) H-p~VvKx?9$ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1357.h265 b/samples/h265SampleFrames/frame-1357.h265 new file mode 100644 index 0000000000000000000000000000000000000000..41cfaf78006d7ef02de0e335e61af9a39601e435 GIT binary patch literal 1807 zcmV+q2k`g+000330n%ar)I$OTP{CJPPWKleFbo3#pePCgz;Q+7|C~|P(zB9h2|>QF z1I*;Zy@vn);((iVg|-R?>v_@H6JQ16NmfSphN&)z&6VaNVzWbcwfsDK~s^m)@R7SMxCnV#scr)qdYR znky&*cP=;g-0plKWz>z0x7*TNgg+rDlPQ4XIM4Vrq^Jz;U*dKt(JPb zJ*$`@y{nhWefFX6ZZvL;w^ulFu9I_)IUiAXi_0Q!EN%6}yLaR_Usn{K7K1=Qj77rG zCRtPgixgF^6U+;yN`+M<6A$d~4Zowbp-}oi8OiHE3;?GXPg(hup8W!MHTHJ3*p{T3 z`O#IjlWH=qU#luzS5(MHC7S9Jn7K>Nt1mT4TU~i_JkF0tP8ILX*8r^9m6iBubqdet z+I5HYc|o0(C67LWYIk1dei+Y8N?VgO;`+=VYT0ww8`XvXQ$%DK3y8KjHE-~I=$|ga zH0d61{%J38QsN{`6Cy1ERAL!)ztMp>i8_i+{j2F6Y;Viu0Xt@^xpX)xG{S4cKNEp= z6_*3{vU}FZc0aJzwn>ot+QT`ByPbRQWdPkQnEog1I+25)6I%fnoYnl9F>0%QK!d>X zQ)}>XXK`sxaqpJA1( z7%u}Qpylq|TzP@}L~5P9FCTjxR#i<_$sb~G;%{3=!FiKL?|pJ@trl@<(U}h{<(m+6 ze`>x`_AvB7QzR#5-q#`Tse2q7z*@DxBN_Ppf2I5n(idTH{a^9l*<$-YxL0rB zd;kDNz*rx42rt0jNF$jz)C>O6BY=p1%c9ZX4;9mBLkmr?K7alHpb3xmGkqN-`y~+}Sb>Hk zSHuv^n3w``jIST?cV{#Pbf!Rc2R;Yr(_&MPfIL~`%3a@rG)p0!Do6uTxpCO|`@HQi z(0dC4sfcd3`kh=eC=r;Y?CRN+%zs{@CFQ)qN(`rwwfY+oSs#<^Z>LC zs3gcG3Y{FeJ%Cq4UVtFZdX+Vw=A-maelR7Qdv^B>Bfv`iNaV}{o}tB)QI}zv|M&m@ zH~Okw8^3uY7rG*==VCdVjf?>iH#|rIcsSKy>Mpp`DbSmW9Rs~k2p|$)s>HA-#*SuK zX`JEi_@n&y8>X1YP)=X#x?N`B)n_E;G4*zNx74_-mCyoDt<4ICJFYxx05j1W^Ca z(2@r4Ay+W*YD+W$kwaRNU=0XUR*6!?ApfkkH2d>fOxcVdq;ah?7Z4Fi$ONWUzo9BB z`U-`&o7q%Ln9=k0P-=iwoH=l@DP!|>3ZiX>CLDFgK&%aD(pFk|5Nwqp$1KN5VZvD_ zHjp%#Wu{lUX(CaMY~0E%l^ z37=v5NwM(h8e-JT)eplJHW5F)(vX*f3nW-PkxLFS_*i&G-ikQ?v)N*F0um?$TcjTS!bA=ZV z>4_89Q0|_;&BN?4fJS+26$<2+>>FAILyM>c7cMUP4(-aG_^+5>h%3qVuFCJ_*}r#+ zSn2J~bVww71DB;h000h%oSOfstZ{OHwpYJ|fp=)0Pjtop6xpTR4b(C*w(4&U#ANKh zSy7I%jZ_{=ex!G--|XUD{bW^zk;>d)eLgGi)*W$u?+C856Ns$;#(5H+?jZMmP$LNR zc-Fn5AqbWC!hPQaPqksDD$Hq&3_>~6wL7zC*s<8Uu3U>CAWKjU7D;7GZ z=FZV!a_7q5;*Y7wcDZr=sK_QIpeP6eKygLf4Pt&?ahQ_&d;b6b z>1Slm`P}`eufii=Nnb%0!=Oc z_cseXAlU=Apv0NA8LH?YTu7l0lMnL;=hfVSb;X2N@j}_ts$f_}jqdb-@j&}*;ZzpjWrP{~bZ?EfQF1YcAwKog8XQ5*r z{kz?VU}8XD0Zs&h7(*s1JL#n5XI8Cs9zw|yT-uRNW9Y>HO1oU45N3^m%2G6Vp!COu z-SF^5gzoHsb480M-#?liyahl6OO*YtT=T|C70d|v&m9CZ;zS(tZ@UTl7kH;>kgJEX z_8v2~jQn+f&VR?hj{O&>=zO2fenIr#M<>_^)U}34qVIldLcY+_8ssL~*&{HkZ-1eS zN~8lQ(~^Lw1_UDEuys5K03*5uPvZ6}um=(Qm}0)UhQR|KMxXz70IQ-Fu5&QJPRB1v z*5;jSfFbR;tqq?3!-?CS0e@Nf|B48i*_4t5=f$h%JTo6DNa`Y)obr(S7y(jFvmqkj zabp^m0L!en14GxKBCwuNKyIWEDoxTBOhS-%;k*il$bbK?t8&9248XFlGlW}Y@@};s zA!`G4w(9YhFio-f2~`-SMNP9(_BL}AG|@w}ix!7eli)>EUvfb+8k#6Ja-Q-ynhA@7 z00093hk#fgcUuknJJJ95|Nm=0vX&71emnO*`2NfDpT6A!R2Ijtt(VHA2aU*Q{~Ih`8C4f?x^U+ z9%w~q-N^af3rP@5uByj@jMf--|Bmla3+E2gXwkb`{`&X-j=b$OM{okhZnDT^xpUWa zQz|iRnCHZLg23RHU6NwC(jGeOf-9~TFk8}zqIiLhGphCKn1SG9nEb5c#uJ`EdpD@H zZT59Ni300`aMp+Q<=UaD&4+lY{FbHvn;>Te(%K39L+f3PKdLTMy%3Z5Xdac~(WzP= z_W*q!l>qomcQ_1K|KmEO+5^xEl7OsPa_y^KcoOgn^Ph{jwNck`Mu!39Wo2kFML7|Vai|m8crSp_?HALYLH%r&B z#I=*9Rikfi@>I32mL%3{sjmI-C*K^G)^RGbA(7r&5Wg=0x=568{e;ycN!0^_1=y3pXAHrt%CZb#>s}ha+E8s{vnv1cpR0SGZibCW1i6kb`!TPb%OH*#|nAM|$zZ zfr1Sb`lSw4~b3tj}N+F7}$;Zv)udlAB5uQD8_2<6HmK=FI`h z#u(2=B(tXZMRS4>o{AISn}4XoeA%Z;UxrB+DA{eOJhKiVGrX%K&{TAb#Oxa3I3RDL z7Pe3Q?U75Jy94{RE~lZjcfhBdp(kz&y+Thj+@-lv=N*4L{Rqg~p1qoU-Zl<6zolI?Z916x2Ni9u0ssxKPDOM`_95Q@t=#Hb9gKPlqm+VF%fLIL#K z`tA2K1ock(ajwo0lR8-I0+lN$Tk*tL=s&@Owwl* z|2}v!f6Cg)%aMi|{pTPlDclR^VB5fe01^;9=oY9T00s<2O^5&hUceLN)&K+I6{&Cl h5KtS*AOI(z9>iDxNkAiMumK4wS1%01D#oZASd3OIIYUv`-_pC7;#xRNa=U`y%u#oD)qIYwiwRig@%)wu-_v?Ey|1Ufp6+yI-))RCUpP#Y`as9XC0s<4OB&rHM zy`NI1E1lnI>;clIHyFu&&21~oyE?}T!98nl?tN1(mo$v{jB^%ftp3w{ zhw5H^qsR1_SyRLb>xeC?mEEHp?BVdPtNex%Aqjd!pf6o3921U(RtA?7it=dZA-}Qa&`My0+{|UHou<8li9P#O9Cjt&@^XmOMRS z(y-k)yIu@W)V(vi%53X`g;x(i^p7549-_j|V3 z>JDIy2Vr^%_oT)PEfSo_&MNQic%zkcdo!)qp1b7|f`5IM@`c;J#TsbisUqKt+d=%P zYGX(Sy9^1j_CKhgANB#F^da|;bdqyXCnNfAw*}W1%iDEy*gB~w;5s~PJ}pci2l;4t zap{7|n1mm0ag)?N)AOoRCUTQFr51YEEp zC{m^D@MxqWOm;tbMY!B#Gl372d3pGF_y4{# z`x({|=dtKC|38-1R!g>v zGK~EvsrEvgfS4bTV+kD` z%MW_53BZ$Tms9Iv&g6F*to)A?r3&ydB^kZR7yD}+>eUo8TY_#a5zr1b4uAl`fLI?o z{AK*-|G)ZXrQ??50u-SV&=0eYMNWx(TQrWX&pWw5lS4>b9QMmCVa-3IWB|!YmY%LR zi;~@OU*nn-Y~c2kMAB8Hg998dU=u{=-=BQtJoMt^(KwxV8{lE0n=00@o#xP+jwGRL z=ZdUTti!4>DyEgnwiVQa2q453bn{TZ|0$TuQIr%@>ojDckvYg$51s^Mq~*~L!ER&~ zn)`|s!AXWEb%>i#<1w;U9KRtt^rCo7gi=zT^#G36e7L4O@7pVMXZ6;$6fB1V_dIp_ z)fzRI5FZSXhxLk(zsaM)>a}nB@lJBT$WKAqgOgR>9xL%@UV8G-)1>u??E{>$(dNe2H>=69XMxutf5T4Y4-$WV z@v5f@XV=C6-Gk^PWdmHKa6!MuZUV3d5|qcosgm}s84QawYo66|3zy-k)+%yI^mA(p zP`$MxbK}Ree$bQENI|Ho!E`eYYb zBcHgdG=r6&98rgeiCgqV*ii5lWOD{s-r4<%rOlt#4AXeBu_XtAi-nvEK_MD6PO7;|mMTl^g3; zAP&_Xzle@2mbP1D>)yzcY(K;PH{!#t;>W zevo>JIu3pQeDJGJ;Jjg|vPhSL?ak*lf6SXNa!M>smtH_?&@U9S-CFp+k)bVCM-}>{ zYA9=%i1c&};w>Jrhx*&{>}dB!jqUg4J*ydyRZTO|0y##S6EHR=UlcjsVm7XfFl zXuLtYugV>g?NuRi-ZcqnxE5}9_ZIA=>z8@L(f}~p5A)R8JQdjgY>n;vDjryp8^i{n zn5(^QxA1|Vc>7;5hrpatUqF1F?G#)n#YEUUMazQ^r4=Og6yLR>c&veT(ssa?r0b0@ z`&m~&jAMEEt<-hz&2o+7GSD1;kQTENbf{H5Wfjk>4x(1V0Dp+^*OV zmZOKR5bN$+Vvjtw_;(anO^yW=WTj&WYTf-~sy?3)d6;nBKZVH_8PMcV_ouBslo>g~`@MXazc5I+BDp33$81(m=C%KT@&sZ?4-o= z+>u{c46#Mt1k5{h(k8ng>qD3nfLxdL{vAK=7=$ebtF^3!BT$-8{9yOS)A(gSztwc!H}V0laBe;s#|FC~BE-n2mNM;zozwI)695lOtU2Ft zsFk3&h8RdCvr%ut%{U8eYK$Lcvg7u%_2k4b4c9Wf&sB?(`g}D4M515T#pwxC(<0pw z#y}f~&22F@MswQe;G_`dJ;M^7KljF1*hT5B1w~(A><)GSy;xCqrG1qx5{(Ez26h>o z4xsMWP0h*fbR`ldO;TReUXqtKAml8>IXOscrIpdbhWKygLe`x+p;<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLSny%5S497b1#qRI_g z+s=laF$g;v<4}%D)@arD7n9BT0`QZb2cFjKu9lMTC6_q@Fl#=YRvQAG>VPiiKJLf^ zzHa1X%3mJX)hGY+z_wZ`cX_k-A}Bh7{=;xyOgV2V(*nv;>`P^i@5uf1+6Od&@={<- z$`Ir5H6h7fcqkY3G-Fqcz!Kx(U#KyA%83FNCG?27Y8gDQ`e-?6&wVmcYYeroVhchN z3;)P${V_cR>O1m`jXwR8Ebt?LaBw++*Wq3KLOh4H5%qj|9P;OaLo0tA5K({g!5hmK zsh#E%VgfpTG6btxQ{~P_B?WdQGE?C;hExD$sc*7u~A{JJi+zT3R zbfRq7)P=MZ;KI!&U~pIoSgR{kqj)JH487X}m{_bTX)zPg#NB;&EUpQG8kKz2HQnrG>7fmVHyZ*<vS*O=_fkhKJWnp=@ctRL`bpXMx6Dwo% zvWUH;KvZ?;=1F=C00093Q$U2V6}Yv|(T-}@|F%{B*xsW&o9XP>asnh16m{U<5kcDi zN)+sLjQpU2YlcAnC8{X7^Rj0aD4tBS6wSeCMa~ZYgYGKzY9G`hKBgCi)J7qtJx-w8 z>$R5#nlwwFL)9Yh22me9A3k|nH;=<9kY5vWfX5_|3id@#a(6ruuXhWsCd}04+-_)m zx%M`s1`qb2#8wv9;(n!HO|oACl#S(GwEhd&%J1`yGQbruBjbC*#&9InA{G zG1@UWfQOG20Y-t+KuwQgtjltsC+G0nqiri=hhro*(U_auo>7T}SbR@h4@l!5Od26@cT%jxb6vajVmHAZGr(R{~op~w?3pVbY9)NJ9iE&OdQ94=T8I?4cW z7yG<=_2z_ih{vHFY0)l!82MhPdWk;;SHvV49*Op|J*{=T1->`>b3O~^p1d7&FH8%% zjqjmIfd-EgHtpES3K@%hYv(PJxwB3cn>!#SGKv0_p zX^N?Sb?;7OqE&(6oD*H<15e-YVH+xT<6PE))9BzR92mpbtho~9kh1&BMc54$!Ka(^ zVd7K4i+;2iv<#jG-m3vYn!EB#yeZ)rCoOHCmtEIKY|@|O z5udIfD(aD-2tN+hWTlU3+45ovYE9fNrSzLy)XW!C<4h>xoOQV?1retjxnffj6y^-g zC{{gLHrbH(!E6IVP!HTnbvX9$+y~v_xyNXp(xJy>00eX--p)Z&W`P0GezX8{Kt$#& zcz_VFK?KWq0NQ{P5ZoXFsuf%G01$8(otyxDz#l6x0zxD-zy*{jJm3r12g2t7D4-H1 BiADeb literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1361.h265 b/samples/h265SampleFrames/frame-1361.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7ae12259fadda28e0007f3843defc7a937a1f1ae GIT binary patch literal 3076 zcmV+f4Eyr{000330n&m0)I$OTSiyQNy&A9z0YE4P0Duqz07!8~<-|2YLt0G~PygIs z{;`y)FnagcmtnZ$9y)PWP4AVZp?QEAa{xNnNkqmW{tqaCsCE>$>`3D1>w88^Y$bi! z#=+c*IRl8BT5DHt7jQ6!5DyW7th6RI-F4-iX@ zr_9c@#(T=zs3CgkThN6qVIcvq8! zq%JqWz#amjOE9u8Cqi;B4qzVsAz=T=#g059c_jRg@C<*nvNo_wD+nR!*yiX zjzK7AM2z>+Jbs5g6R>IAnnS!%o{?NMdL+!bB>w?b2!iPU;m)RDd@H96N#`>UG%&nd zS562T|HTWx@>m7&1vR;IUYlVs05d{KYEQYYs-lYg04MI)I7>8q&fj_{s zA6^i*Ac}%(kjqF_(Ae(WKPRC#$)C@aW;TZ?!w2Xv7Y1gGsoTxbfPbv0~7VWWkPy{d2}q-X_tBH {>L(8#lG@rezgs79o@Tc)+^7M!iua57{|MHo-sU{v!Rx{eA_-3Zi%E zZK_&5f0Ko9LjG0{htS&7>sNkJVhJ(eWG-6t77A$>!i4MV%CsX2l-T(6!|3=@RnKkR zKMphC*KcQL;EgLv@iYRg`X8x!);~p+oid+iZ^^1rkAoXqNjCL#X~UyIdfEa2CD#l; ztOa~Xo1h)N!;zdoG$lsWt}D681W^L+<1CXuVz;k|kSnbi{BGaSyg^`HXsmQz*LRuZ z*UyM9TT7iGlyc{AitcXZ%feG zZa)3u%&m%RmaHa#g+dsd{%Xfrk~~W5nHALEOr6vCEi5`zw2rP!OprT+S*5Fq{_b#+ z4zv$EcifX#qaT7n?ZflcdDlNc0s&QDRWdQjz7iB`a-yz{9`Q(rByIV@HXog8;1bI< zStx|#jgu7Fbv>=RtZj@{;*Fbxpxpk==vvsym&((#Kb?v6r1O@7PQ#rmth{Hg)C-^! zr-@7SomGqmS~ca(v{v`OQYTKNBD)oiRY?I`ZP)2Cv&DW)NFf?+4dGMF2jD9Y+Q8aI(W`fE)#*G*23FXUHKFrQE_-FaVm|C`c8bxVj;+L#VVoTvG;n zlQ@5)(Cv!E$e!C&X;?gLIFU`sZcXc)101dd8`|e5=gJ%6q2QuDelF)={|+tuhM=YgQW9 z$n7Z)Vgl3|s&dl^!J4jr`j#O}Fd<0;>w0LU0L&W?5AMX>C$Gk}T{?A!?A5m_*1n-y zd1qi((GD%+1(Gv6<4^2v2l=TSU;I!Gmu@hOsS;{xV~sk!2#s|E)Bc$ONpSA}FCZ=j zbSIuX5Bvbrs!d`n);fwvqiohv!~Q2ua5Cg#>YdEv0x$*iJmw=kW|6Kx)4}F_VtwmP zhgS`U%itP~^x#cWR4QVCfHw;!TwG_ zc51G~u!B!h8`8*p@aa~Zr3tM|4L`1_v?@xFJ${D;hX)97Z+pH4-hfaPN4 zg-o{*Jqld4N`9Un$)!~cVa3?Ln@s%skS*XZAE_`tX_ioRYN}GIoH9v!mTO_WS;h37 z&Mg6l!T5<>A7gts^|twf?8TstaIdSrDuOmTY}|XDP;@#2r3!Ac!)GQRv(X!32@t?k zO{B}8rf9ifLPes%_VxR9@CekXxl7`}AOZuOP@u7307LViz+;x`F{rozSnd^0D!I=v zRStU&5$|Qc|KrZQ7y~hl>d~#JvQIwn^*VH#!Et{ zuM9-ZVR^x7Sc04Y9`9SvrnIR8qg@qkL0w(E3fI)}@fLfupzsHOe7+$q=m5D^QH4=G zqA}q#Ha=!$*_-GK0h^{YY&r>%UvKYkXrTDm`f?8=GteOkrK(+{qep+IHwb}`9n$MmPP z`s7rSM>C`4Z`P39RPZ3{s5=8Zg(q=cKw*e#Zd{*~9~i;pZGMmBGLn;1^Bh`YNaZ1$ zDGyq^ek5ETxH;=gVpWVJKHp;a=Zr9y3m4z0sSXfE_#>1z9ZN9%RfcRqhE;OnG{JLO zh4B22C(Lh~CKXz!gk%?VGZiI)#SCa}8oga=17mbxb;q>@mR79@yd~}dv6_YpCs$)3 zINYcHWSDXTBQ0Tj!>lkC&M9NQ_Eo(k86rdBF~}K0P39>AWzRPc%sdz7Yi7f0j#>ln zWVI3m)-Uvg$Sd=~tx`|obu&2)o=pL?^_yV59_Kvi?2h2CJ>|_x>5)67Q%gnYBEgmC zT9c|EA3k$g*524-PgKqJY3PaC(j#HD=*J0X?RNob^)Rm9O1F=W=$g`DaF}YAGcs^U z9Ks;s9Pm2D6Ofa8KiTnyE;kfZyAtI?&&EcCSELdW*B5}7&(4> z0N>?jpA~taUEZR8ndSf%P)z5Jr~wTUJz$^(1Qp}U05zZ&kAwh%fEaAx0@fZIpb2;( SyZ{a8CV;>uAPUE70NQ{VP3(>U literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1362.h265 b/samples/h265SampleFrames/frame-1362.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1c54c3cd76cdc047752ea88bef71c2beea8b5866 GIT binary patch literal 1717 zcmV;m21@w=000330n&;8)I$OTSix6Z=zsvgFbV>IpdbhWKygLf4UI()HM_GIRZLb~+c+R5n40Ct`Li$g`P#2`On#LG4_jw5O`VnRoSBe>e^Utc zJkpgW^P&I=4FdsN;~(o8&c=2xAjurnVO+^hpXcGTSP$HgL(+dfpD(>bhp*;h6w{KO zFvEW0yrC^>*26aLv-9#k&p_=Uk}k+D>!_^$hlRsuuee5BB;F&fKZgRM>TSj6=U!~O z4w7V?cE3@g_%CtK4~5K%Zh`>VpaR;&TXI3!5(UPW;o|njLck|cBwQ>QOf>GaqBz0= zck({S7mw0)j(j0GNLZ7D=r~*qi_SE#D_r!S6J8(gX+z*G&!XXI%$t6e{%||Bc zb@NJ08uc$^uZ-govR@^^SLuA!$(e2T$Wk!49L$~?zOQD*!XKN5ngi@*w{pKm%8M8c zmE8KWqga|ugc!sx%p@$6(P8O6+=BXR(h!@0>Uy1^^Q6H9y^b+~pUstDZV5HTl&zTn z^0EKv5fG?~0T6V^uLG7jYN81!=%KKpxJ%krL%(viO6-$PKh}>*Wlf<0^}8Pex02@> z>W%c-T>r_*DkWu!pjXrjGN{teEsP+Z{K?b$AHm_o^oqW*hVvi7+SrhRUDG1g83mZY zw1$Ec@@1BGee@gfVZFa!g*&xN0Y*HLfCQ`c2Csp}XfE1`4K@mbdC zQvzVYbGMYj>JoV=eAsdg9-0XW=>8=4dHK0Tx=um%4@T)po%@riD(E?UL{Y*6)i;3x zemPF-?C`h{{vPb1B2M|VEbY@rg+btsO@8 z<$&$m$uQX7AEpGUc)`(+FGoz+N+2gVJ|$5tf~O_i@*r#R`btM9Yu=(e$?=z5-7Gmn z{G0%fVA+%TK(Nn~@h^h4IA8Mftulc<62D?Ha0k=4BN5HdhzaT>50VYwIFKVfq2H=W zI+!7KPp$ww7-Vo1l2(0B2MCTVp`8u|`YU2T5fCKvf7W0^xwWRGg{!*gL4?s*Y!d%{_$~~_u!1Ow@N(di=k$vW>2CaqXEfxv=c*f6#2|YFt zNokT7FPb##O7F7c;(MRG$~XXUI} zroAc30009388EKFeM=ajfqq~A{*$~d6S22}LaWHjIK9+G-a39tMo@!SR66^rk~6Wm z@F3?xH{N6Rxt*P%+5wByq7?3W;xSx*!yRo8Semt=fhkxzstzbAZIHGzix^;xJWKJ^ z=_q@5cy*a|7&&WwZR!}IX}#0L!R5Pu3D!f{t+s=u3xP%wy~IVdsS=z9TzWvJKxY7( zSu1a01|DN^_rN-X*I4&nlzwOUKu+z62ZwOu2bw|N0&(B-MJ L2BZdB6aW_Rbx>7o literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1363.h265 b/samples/h265SampleFrames/frame-1363.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ba843eaa9fccef525f254a0c388327e8cf292f17 GIT binary patch literal 2194 zcmV;D2yOQO000330n(BG)I$OTP{Cg(q(%UsCcX{n>P>1(P$=#8lg-+qAdnojGJ{1oETOM;?r8OD5Bs255J#_lL z>Yq!HiPwq6Dp=8G^+P@B`C^qp6Flejl->9L{mg1MCnYvu$;oHfsw~}GWJ~&Z6tLgI z`rRD@@J`J^JOtyjlvO~O7;`qX^=}}Jf%u@yTS|z=$Xsn9L`=}& zV!^Hq)XnABUc;rINxz1o{L}Q%jp?%;TZc9gjQh2Rd{_9^D$ukpwHTVg!v+nj9`I8N z_eig`7g@D=gNK$KRGv9P#g2JyP}GDK=+j*46EVVg zdD*UR;c=YzfE<-Ekf8n$14vI6Yg#S4;GZOB{MrSAQy~@|)<%JOLzw+@c#^C!#oOzH zl<}rF5MK8eU>_Oef0tEAEWl@VG4)?5gvnN2Eu*Bh-lF@U*bepMjnSK5S!+G^P1RY<3@%QYslt{ryN#Tq}hH-V35>y2uyYEbVZId**!bS?4B|^54mVV zmF8B-9WX51dYV7^AG`bq==wj5Bjf(t_-F0@Gx4vl|3ANQzkTPQ+Rc6T(TT3`-SH)F zHLPbBmHDgfELG>;T<#Qx=D7~J*M49@YIW$sQ$qe9YDG3zuO}=-Qvr8I93?J(Onu*d zl{+usv^M=(h2Lz|hWGehJ%T!e0`eg6&#V+uC%|0k0U7V;Q`D&~)S4e;#B%H2T2wRQ ziOs7oXLC4@8Do_?c2_h)vWgDyOj(t4*U9(RT=Qs_>Vil}W-xjeF^W!I&U{xW^fT|{ zKTJL`_JldF(6720vs&%bX7W{=`Z!eRvpY-6hi>=4w*{oUaH&EW9i7~O#63&B=?wkI2)jV7bTm-hkVzyw8Yl3$$epmS?);E zR4T7jsm%0|2hS>nn=$~iB<69NXxC{BDY_uhSD;o~(l68HEq)Pp`^o?S1iYkfc$POj zs{H%=|NoZXcBN#v1fcv8qkt{{3Uh}%WDVBlJecNGhR6~1R#=uL%~$P?1mTsjb`&BB z>vbVz)6|Z{LT=*`hX8lsV*T8Y!4|9O;CN87YEGgZzSYDh);jA8w?!Yf+lq*%BM7?u zyAN{Jl#k%s6+tOp5j>)`j;lI%l@oFXJK9pbuwp*MoRcVJO)Kq1?J4lH7A4w8clT!!Z-S94 zYXnP{ElWwaT zY7~7XN$O^j$U=)71B4iVZvI{SluZuL|9D{PN7>{=>~<0}&&z|2lo)uw@+&Ppt`EB9 z*`jxFvsFi7=R2XH*QQrJd7vJ_51IN*((dT#(0vJ=nOL=(uT7ZL7c z71*D)?DR?PwTF~~Hg6JFSOGS==aFtH%7|BAuN%d$!su&zSdl!shmNz6|-T-q{tXhwQ>iDAhxhi)xwoCb2Q08D@3 zz!MiL1&Rk$RDakkGGAU@H~N$S!+<;aGe8Ga6{Mg5aX=YK3IR_Uqi_c_9WcNUa3z1B U6YwY$fHB}MD*%ju4hgIR>bwa^x&QzG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1364.h265 b/samples/h265SampleFrames/frame-1364.h265 new file mode 100644 index 0000000000000000000000000000000000000000..60868ff46d50eb8d9ed4d1b4ff79f30866420ff0 GIT binary patch literal 2997 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1365.h265 b/samples/h265SampleFrames/frame-1365.h265 new file mode 100644 index 0000000000000000000000000000000000000000..75aa5ce0bf051f552b2a396d12e830246f6682cc GIT binary patch literal 2018 zcmV<82OanT000330n(xW)I$OTSix;_764!h0YE4P0Duqz07!8~<-}f5)-1D(yo|E` z>Sg*&CA^VT!Y15fl`8=TS%?{ixePFS6;TEh#3}}wyqDZwPdDTX(??mS#J(~gT1&i^T;vJ^B>Ht&YzoAw|8Eg_ z{y;6vYK#BpQps<_(PUAVu1C%UTF-D^OgV2V(*nv;>`P^i@5ueGng=w3e$rq&K6K>? zH&e-8cq&VEG-Fqcz!LvqUyQ1o%81JrCAx)j)HM{}{kso6$-?9NfBSdspyQG91_41J zzx;;J(-Y86qrWJ~)9=|b&jL612LqTLeih%xD!Jso_Hd6KQZ5BOz?r#!AyQBN2;Nw= zOz%dWAz>l>#0i>w{m|9ZyES-@J&)6j5>ILZi5Qa9#m*gbD(25(2*9HxmA;u6@B+Mk zn5^?aMzE@d=YQT)YQCvA>5hX^{5ZcgQwJ@O^RkY-Nx?FC$u%w`pw}}{p>nyE@#RG_ zndOj56(SKTetsqa`TE0GXrW(YDz_MfKE9m%m97J)N3m5n|+DN!0T`aAx)dd*V}4>?Oko90au!s_&5R+RovKMW2M_%WGbVxUFaT? zb7N1yi-b_DBWzIWDiw0P@yDI6oMu$;%5tKF4Px&T9S2LX!JLEwB$1z5)cqMj7-eXT z`1ScbOb1xM{UDFMpiiU^vlbl0tu{XiYvt&)+NCUecrXB%Q?m-Ru&j#4YV_-HvNqWm#>=UUvN^fW)ZQ~N?T9e>Y9+cim zm#Wjb@%17h%583lgCkX$oIXkX;h}|nbF|TorbQL9L#|gUt$%8txqv|cL=3v1iswb8 zs%j)~v(8?>>&$=v02uHz{HvBI`)WVwp(?RwFgnhaMV{kFOE;8kStyo6H030cJ54GW*+O5TdN4-uk@{e; zKuI%~n~nPasyIV3Kf4yvK|(a_609Hp&mU03a(L+STT+foM@6X~)K{ZzGnS_z{r~R8 zuVD-)HJS6>Hk&8Hw)XhImFnCV@#jR*IY#4ogf)?emN64+bzaa{w|*(4$T+SXj?qPh zHGlGAskr z`t?28-HbI12X-;P-NYJ8TKp*}lG7XHwT0;r48=f6a_v&9b+V}EHVX63$-{g`dy>dL zmQK@++2Lt%crylMI0*eF>(umVBY9Ql02C8r8`j(B44{(ITIdcJ(TCb5j8HcdmnKLj z13cSH+Fm(1$V(f#DH5_DEd>SI5u!+O;`lh@?OXr=35neo{iHH65(+neW4tSWVTkk! zQG^Pb@oWi`e$H4ldVw1en+RXMp&W3~B}?9cC)l}NI9A3lw;5Kt3;+*cFc|mNd0p7| z!`W%zIgK4`AAQR-!i%IrlF!mWvqS8wbgR+ZeMf1}uFkXTKv?abm$BoGfrCuzJF}e@ z6bRSN1FZOvhF|kJ#V6e<0QmQ=MwU@TAEu$4VC=9if>HGVJX)VtwD>di8kBK+JAjI0 zMfG^~N;oKQs!1=dZA4?R^{esPI8<3b)}o0=@)ppq=8qREyEg89b1Ds9-h;KK68kUa4&a)k7$G5y-450?HAPwt;4 zbd<_^ztr6U&uICveo{NqhW7k_KfB{gcZ%}{4110SAged`ewC>F>!;Iy*3;Std1ee{ zPk(Sk=H3oZ75(qR!dw%h5y*7|0_Qw`y-KnRjKLgUQXM;Wc~-f;2uwEdcj()vddkyi zxO5TV_Q9b?1HjY)>?uiAeTr5{9|S$XFY?hL3JKxO8AQsw;ly*BX~tWb(PR;u-PM;y z$6(pEPyhT#TG1lf*{x$_Lm9|%O#*Gzcza@f-<~296RyXQ* zpn#`9g=LWA1uQZd58tIl(5T*0;=-Inlsq5*xMT1C_kV>gL4E+(003-2RwmtF02+`f z>9@cF(kyz0Kn$1_uG|1xz!@h_0ONog_@D#o9ns(mcq9ja63{E0z$+jN9)keSfG?8V Axc~qF literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1366.h265 b/samples/h265SampleFrames/frame-1366.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2678ee979ad352971d390b6fab1da97417351f2d GIT binary patch literal 3614 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1367.h265 b/samples/h265SampleFrames/frame-1367.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9b9b8e55fbd5b55ad2fd13a94879110caa154d24 GIT binary patch literal 2526 zcmV<42_g0X000330n)Mm)I$OTP{DGpX#j8x0e~TfHKOOC#)MiNAeJu%AB6mwmCI0V#hJ9I|xbo2VjV zSH%{Hng2h3D89Yq)b(=gD>^LX`)fL?=CiIeMy-gkRk*<39}u-orRI%F>shN6N+Px{ z*nA7bO$)K@!RFFp-ZOb$y(gLiG`1G9DAwL(*1e3M3SqP&miOFOh%a>{#{+`vS1&e( z1rVlWr!D)tmC(^fT9-84y-B+1Ag#h51f|$hF(s54IwX?l&!HQXUj|u!Jq@I(VKG~d{vfWa5L+jbupM;m`rep#(W==Lj!?dL%#ak!B_LOR9 zxs_$&bX~>WN6_aUw~$_scyew;*ImpO6DNHnaBO;NHDR6saim8Vr->^a=T!CGVfUU? z<#d`Z!)boED88kbXw?%|(tRnbhq-VohIK1>jphwl|GXIxl;?+(G6fANs?k-7yyg+D z{|~X#TJ(tkr6g(#%nukFRt@kY2@C`*1?`!u07YgJ9J~Yv-zZc+onccX!gNeQFVUL0 zu_qy;=>1a{rKgel65Ii{+a?eH-8_kd3locWA7nkCz6FWFIvUvR3#VcQeMtv1Mt&e- zq)hM(_u2EiqScyS0NL8^vZb;oe7jFm-1gQuL?mwWEu%r80$shzXCgC!F{RBEW}Q;h z-&vz^`v`woAL5$9?W4kg6ZRMVbb}DhTnN-WGKd)PXdGm|NLqWr1Hnv>I?|f{=*+JlU6f z9FI??n`jmFm@gRZ-jj^w(wegEg7PDntdQCD(ue0*7v#N2E7NFplK^Yb zw(jXv*uUs_*AsC&(3ne#Y&}qO;b$+`4?x8abln}%%%;*y&?y+u^WB#ilrHXcs!7qa zfB(`y{@Cs5SV%BqsiXf}C8An44%zwfgh_QL~bWg9STEKs@wNNskT`Her6v zr~R#|5nvzR%fA5+t9>~)>bYv>B*`-o=P;NaPVHf(2T9DOx5BOvJ~k5AFY?dk6MvkR z|MD6?|MvXn5SVC=b8+J+vMpd-;BYTPxPie2Sqhpd>?4K0|GWRoBfy^Ii7o38>i1)I zF(?hQ7)>=F;!bPzpbC#-L|zjeK_QFLrJXz2&by*ba`!OK$CZA z8uS{{@Xr;PE19#l$B)E=cw16hLF7#+e$i1%-B`CTZ#=E4XGV&SnKqRcv{R{8sMl`0 zc`C^nbW_yV5Z0KN=i-*g0)`JS2hDeRv@soDA$8WN+r2)G5=^gaafhpTY0$q)k4s}z zWL!t@icaKgOUE53=3}hqViNgo85@R?l;rnxkU|uHTs0jF$7a$C-Z7d6*?S&!@LcWL zd!GDtp3ca3C_((3!tRj+#R?h?Rs~4oP ze$x$AB@78*UQ3CO$61}*UlGl2BkprL`8z~pH!h**ol%4TERJAI$?G*>J%I0zKX8CG zH-%8XLS&s1JlRsO$PFJFlk^l2T3ewoSb$Tc)UfXVtxs3Ck1#9w5H=-gCDscA+s$sC zbW(%NyHH6+4$T7ndpb0WzBF}^(}J>4gW^^!pYzYb5qNnb9@`H!Z1&ZKL#|{g`*%-! zEtwHex;xHSJT+t70o_p9$^A-t!zM4rxB6Bm-_vSCUH`4!51E;sm)2U=tS4+$SAP|>jx0}icOAVlX# z;Ve8!8k)l1WVh81sR(sV64uOIsIjwJ{}=jykNJPW&-5O*!F_Mo{uTHa=(V+qc%R~g zM!D+U=FV^hvqKm9bq$#f_eOYA8C4%UVo}ZlY8YTdI%!6@>Ucl@)dimY5QZND_ z$)*b5SCKA7q%VA*4lvHpE^n+WQKSS0d`TsU#k2qe?j3u_9RL9f3|U$X01Ai@qxb*- oLckHdB0vF$6R^Yp67U#5hyXI69Pq#ZlYk&BfB|O&R_gErQmYx!$N&HU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1368.h265 b/samples/h265SampleFrames/frame-1368.h265 new file mode 100644 index 0000000000000000000000000000000000000000..eabf76405f613d3b52d2322cdf301d4f474bb3c3 GIT binary patch literal 2924 zcmV-y3zPH!000330n)ku)I$OTP{DfUDgbZ{0e~n40H72C07!9q;bt)_{@wKdtN;J2 zn+?25!!MWA?@BAn*=^kAkGyezH}$`d_I$^K>v{hT_*d3z>i2(C04ktGXC(a=%8S}* zzybu2_W^ZTaz4%S#^1Wm=Giy8Xm0dRp>ug)n4-b0 zYxA6}wJtr+I@V9Mn1vNDEXBpio+o*_;i8kPR+AGLD_=)=Yg!jzRm}Bu7Ry|r8sKBZ zw-FTvLyy!2ENzlbCEbRC?f_gPi(Q5j>dq_j|sZB$VO2N-FwKig%ZwpQS&JgYMJEHy(d=fdecswuXaw;9Ka(U)7)5^F_;ylZf=LO&b?#ZT%eIZ z*ZGp0ua~wqI5a46=ft?($6dtg*#X~vvgJHjdE?<(Mh&NGK;9_goE4 zS)-&K|-TSk+6ngWEQAaq)(vE*I>Gh(kC8HWb=qhns)!JXUa67=tR;0 z;>>pU#^oR)1Y+-cqYS`w6EzzZbKQKofM9@c*OtcLZ~M3ZkzE}jC@v4MKZWN#6?n&j zmod1a4RGqs?Z_7D97e2gV_ZK$b0PgQ74f{ITcK&QD`Ux1ia`4keOs?{2k-lOokPlj zt1OeQ)!Nbh1f?P?)Cjjdn8Xr84Twb-7pQ{4`rO)p7P}BlxiJ}k zi7T&YiH+E5d>K&H@-$6J{2Axx^Y9z(2#GpLp&@fUigirWl52))bw&7p_NLB-1PeQD zD8zgAg!)yxXS8EFHFz=oeFAPSHoO289=~3 z-XznNIDP&;lgUd)y&9#{%2XJ*An4kfS4@<)3WBd)7i39@T#jhZ<{6zvOL-Y{S zhRt>wcVj@>-}jS+Z$bc>?aUVmCTh1If8Y{sa2Dj$f?S8*O)80Sl5ItsTp2GR&u?{4 z^$vnd^nR}SGWbDIzzho?yQM5oV*d1R^pZRF@1rc%No{W5ViJ`uQho5_=WI}CRZpPs zU9y|>L_3>nK@Q4;*SsPnvvuTHCftvi7&Un;8aue(_SXM(<{6t@8{~v0n%x002)wNP(esOZWe} zOMp5T8%xg{sqVt8{&y+dkE0jXCR-jr1@fAjxB z8wq!EQ;(^qmR87Iyv#LXe4giw#zKp59Qc!+80Ye@WjZA>(=ICiS*oT`HwL)(2)0%s z{>LR^N*j6`VD*h_=^+oi1tQk4$Y+*B;y{1?t%zC)c?*jT=&QfD;CcGD+t9^6N`0>I zk1N}0Ri8^`wpAwqrko;~Qwfaa*FsGB;3Bv7E-e=5R!4O1Uq5k-kPIW+J@3fX8=?piyx!vg%vUeS{FjB^OTd1(!``c8Xyfxbj_kUP~qyAryH&dDU13_;GW8b-9BHUbacP zYfyS@wl#5sKVLE95Ju2z8GfM<&HC!0!#yz^3Gw#GFSi+wVT0e|y_I)4NB>5C zAxNFp3xS4DMew$%^ff(0FNM<-4ZG%8g7uk}*@>;k4- zZn`O_)8MB)P1^85_w@BjD=`&i$=Io(0-%75TDsR-tCR%Z+ zf^#ZfP6mfvU5%C!=G^?BjlV{W0%n?k?DO_pIVlFVe%HmrKv3((2EZn1xmr*bKs{0P z{2I18fo0u(PY6_`0ZWrUyW@oJ{VZcFdtd4#AqBMnD=QK_y;FTr%)kn18?|da$)&3v z_u$D|f&; W0FrV*l%d>er0Y@H4uszdPM^yeb2m=R+} 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1370.h265 b/samples/h265SampleFrames/frame-1370.h265 new file mode 100644 index 0000000000000000000000000000000000000000..024ea6e50aa8815a749cbf0860def3365ad4f552 GIT binary patch literal 3017 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1376.h265 b/samples/h265SampleFrames/frame-1376.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b1ed23548fd1cf2ce0d15e4a46d76ff17edf203 GIT binary patch literal 3846 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1377.h265 b/samples/h265SampleFrames/frame-1377.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cb0d0b1d0016bafe3ea9fbfdd9ec5e5180b4b182 GIT binary patch literal 2065 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1379.h265 b/samples/h265SampleFrames/frame-1379.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0c83b7e39b95c3c6992e4805efb20ec4a4a0be7d GIT binary patch literal 2396 zcmV-i38VG^000330n-ux)I$OTSiyN2Re+EV0suG$0KgOifLL)w>!M3<6mZun2nAJSo!;ycsHDEFAQoi>kUiMKT`G!{$#PB2qgq3vq<5*DnSPKBZEcsb z=lG*#uKW~1!7$OM7O2FTM^e%Vf;0+kG5AB+5+4VSR?~B=zQbuB@e|Puq}PI=k6siI0`L2E9_^s%zz#(&nWe&e zaLhIEcm^D;pDW24k|vWG?b&v_rnyfV;2OwRMvm7*;ZS0GlM^ebnkBNAQ6)J_;%I4a zu4Cz|Q4{7I(iXVF3)i)lZdIAg6}W86JnSUZ>xye}3);}P?vaG9O^n+auK&}?-$c|` z?P5jy-MhWeds--4q!rvLhe1_}RZVlb|A)*w%hd`yf#C$;jbO04H_WaZ3uyJQwf7Di zCa}sH_ASATf@()YWKf#qbiw`_Mtdzk>I>@0-lN}y-DAOT?{h8NKC;r4${_`Kt27#4 z>pS>>^J1y!6%ZYw{(0-&&3yhxUS?HRf^5DaU{S=hoWGTTDn9U};(8QCuTu-fl!2=_ z!5EC)1-OL>aHeMf?fclihWIkyy+xc4RDO4KsIH(HW1egAx>4)~=qg(AgEw=1L(xK} zO$fCwGX2bGn>H5SoCgh6nnF&^0sOP0lL$)#4n;3B{A)O2tQ2A1iExHwyhdP}HLO6j<4;mNNVg=L(rGL^h8i|6*E_O6owCeumz2$x%b zNa-ha;JZ#m8{FujE$KpWvYQ?qwl?A5AsRF=v=#_w0!^q<=#+Ou;2rrdV618ztt?c! zq-+5~8Q|Reu*$%m@lmFI%}-FNF8$Wom}XAp6ut$= zaDnsT2-h+~n(rFu1>X8Ldw>D04x+C0q7e@&l9sK!QiUaLtt^dU7=j!t$Vp~T zZ#t-k4+?l%7zrPb+Oh^ELUwAXN`?%4cqLM~`l@IoKDP^%d|25swmJkZ>QK@i)*0l_ z(k=*v2sfEKBD}CaofV~{RpU1*Z_cl6SaD%|RRw`gmQp0-r!yg?cK8sPEW<DZvF}ao@diGzg z>x}NL)d}OBSc3dIy?5Jywe-Fm!6?nY|FhJ*55lxEgt&Md*4Y|b3jLu-3;J~I{etwX zPh9-c6Is%{qLQU1ZF9dpc?bc;2U-bJ%y@dIlX$Sr4kMM3h%Me@tRD2es=78SPvIWB zFg5IzrVeAQ%iAnI;I@nx?3lfMoCu+|pH-?)12eSEXd;sbS+A6Bok;!%XW!zbuJTgJ z`;4~LvQ62x8Ase{eGMjV9`*tkwf*ck;m*q2oLa|GB(ce#+uYBF&JL!DoQOvrv*v-c z*B2im7Z2B!%A+ldmQLTOo-2LK<^>VqbDY+^tD|NrTL zsHI(l)PQi#d(P($kN#oArZq3e)%|Pr=YjUTq?@)RsXt8T@e zrjtxpTVt(B7=+m4ul5(0)!MT%8%R*0=n`Fo1T$4^*VKun#>T?A{=sTP(5~)slz54q zxr1Wd{L}Y4!M=ba)cB)%hQ$);|K6a}aDIDq^i4&TV(&F>z%wp;GVWHj$b;6bWlvUp z=jg~!w|g6RICn(fc6+yNnp5=%3*EHr7g{s0ZGd_x2)4|CO1E8*QDPE?=i-IoCD7t_ zB3Qlcb*Cr8tbX|Zjvb1Sjx=DfE52Y0?^ZX>$NI6n4=N7#lrrrT>?SGDuajzrHwn&a z;hl2iAdmgB0K{26J9SzKT^d629k{bu|NUq*OW>L2`uAv>I^(8ubN>sP?0$(b<$jsg ztstOE-?`>Ajv8006p@v$|ATzW8KL0(6dbTSQ^B-nP zmZo_=8ini1$hb5YR+|+shO%d40(u5;Q`87DnwvB}oSo{UFz2=aBWux*D)5xESQGE< z@O(b&-Z1nHcIsgIh9h{f|2lybZ Or~n{f0x6hm04^Y+qODi} literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1380.h265 b/samples/h265SampleFrames/frame-1380.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9adc96b3791618b1da64585d49245c93cd3f32ac GIT binary patch literal 1856 zcmV-G2fz3L000330n-`()I$OTP{DQ(sQ`cu0suG$0KgOifLL)w>x86jVA zgJX{12P5foPx1{!-J(EZ9H4s6A z)d5>1RE@Wkt(0-redo;Vg<^5Fmmg(LJRkptOghb_?DuHXI7~OtHbdZ2cW-pNz}4Ws z%T=2NE%({V=#=8TaTbL~oHP2iXw*uLwNDSITeq{ebLR}a%wKcl{UJB@EZy;_-|v}u zR|(UYe{Uw8`Mz;&h8M!naGxE#2XR-s{nn=Sr+g3Pr=|{EQmmvD^2cHN)Ykm1! ziSd1C0~)RlG-smJ59?1r#Dm!d_~yU!vi+u=K=RHi|J}atg9Eug>$GM?!8vKXG(vp( zItA{zcTEClRz2gu^iJvnagpHf3lD1_jDVfM=}+&#Ygtq~LMF_94;?#|6o3Q0(S;Ks$c=;qLCrEoFX!+-G#EDxAB@DJhU5L zETf(J-Bh7d`h+?F#0aNmBEf8T>`p`*V9P56K}l#Y)0nNO1IDbNgxr_`RP2!w(xOwqoofj?8IKpzkt9YC5)H9p} z52T-w%b)xGRu%-iq~el-gXVQy)3H#U{YVNfx{XI_qO9%jfn8`Ob&{sVFi2+~5qDjU zVf(cS79$2iPrq)}S;&z6L+;Qw8+vnrds9l#=G)<9N+0$5n|kF0mL9iGTkp#QfKhF2 zDGPZey99}h_UrQX9%@Qi9!Msm!J7S`fjf^ZqDDj4%B%>h)LQE%5FJj30J>4eGbwzB z*pKXt+BKoCYQz6i-|GK6x5D+m9>u%ozbbdteih}|irZpKZz9l(wgAxwK^8apM8c(H z<+UCQT#|LzxCdo8j>*QHS(^-nQL0-eIF~nHazpWDudXOZSwdHz@ceRz6Tsoj6;eLX zPB5`+W7YEXSOr*UcEk8Es2v)5l( zkr)T%C=e&4BDJbc6ZMxnkaE9@IO9HQ&&=NaDN@svVC=-sSTw^{RDH}H7Sriwqm z0jsBp!gsD`gh>=tlepAH?j8{@P_{cGDFQS(U{KYP>=`gyqO6R@{{C)d=ZbXw!>~TA z>klHvBw0aq<4Qxbdxjk7Khv=Qu9CZpg2PbNBWXDFO`D5J217E^{4i8Ya_({LuJ6-C zvx|`oG-0ByD!E0&R4Hh9sBEBbHJ`^`M*e#I{?`t-onaKC=WY85*&6gN*}Spg1`diH zO9HEClp>K$d{^82v51Q8YXPdp^2EUXve6CUq2fuYw^kuWR* zQt%)ed1fGKD2A2Vj~M_592}hX6CO1Ro!4Xm?5R;z>}?LF-?2AlD`?CjA`A_(!4Xb=F3R$NL&|~+cLd^F|KRX zLxxjxR6xxS(GHmGeBvB)uF5m1(&YBi_oY{J$y7>hjws;)7TZ8q*kLt}1~)E{qENV# z$dGQqA;W_k5f#x5>g5PNO0EZv(wHv5Fm4rB6~B zJCZ>IFKF{2-5=wp+a+je)Agl6EpdD}VIGG^{=vFq#FgZu1=EiH)@J~LoACes-wbmh zi`DHY(SgUCvSdirA7=zmKV1NsKV9%9tVH^sQhS7aT(2-F%z%wTk0Tc``#lFgrQ#@n z4B)*lCOposbb1Z(Id=8cVL(R84z}kQ4&_`u>qUj{n~#*jj)*OQ34e=ZI(qw+!9{>o zS2jTZT~(T~`qqR=Sc*Lefg4x|cH{ZV!#61q>fUQTa0!nHhPS*#tSwVUMJfP-EmD^U zoo-AfJ{jT}P7rhDmIBM#Z@o3s5w}S-#YZx;Kf*H=BWJvvFewPr;bw>%CG3$xAs$8% zkV3M4H1=!jGkn3>JMbTV<6VFNtbkap$QD2V06)Mb(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^Y@je$P^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1381.h265 b/samples/h265SampleFrames/frame-1381.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5a994a13501d93e3889a30b248da2a744f0afce6 GIT binary patch literal 2912 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 K0x6hm04^ZSsi_$N literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1382.h265 b/samples/h265SampleFrames/frame-1382.h265 new file mode 100644 index 0000000000000000000000000000000000000000..244c2597f58295bc4b263d7ce186ef660070bc45 GIT binary patch literal 1768 zcmVrk>lK9erGc^k z0%8;B61-*f;W&Jm`zpxYuLW*xPbG0uHB)0uwW2Hk^`QAVNwNndrjXPCIPY?o04RBY z1n`8I+43!)vmmQ6DgwjPJ~lxYK}}H+8g}_`p14h~aFe9-;8IBQl6jXO&c?|?ibAobj*q6-ceciI^SL7*14hX%Yy8B;qb015B$q_IxdRq14f z`#SO5fp32(IBcxLh^j=$IIzm-I8kgl*fTZ_{i0p&;p_1hVhRl?r7#f(2mNKD7}As* z#Z=%%Nk`a`QDiTC#Ntf|KucJ2&^NnV+^h#Fb%6a(saou9#OLk`R@X(EuQ7D>rBq4P zba_@Y%2SVle<7R8-3k!#(RY)65W^f{#of<%}X_m9QYG;KE5`Ny!`H z5sT~dE@e7~jYJ@KxoE6|QKYG|I?)RCDh*tP;%D6_vTcth+9{qHjzGm8*03p+2O`v} zNJlIhr03%* zodOM@So^?#)P59V1UV=8PGTTn{Zk$ESc22|Wlqvapo3$I0lWK?p+ue2wJl|!XI^6lTuyfwzR z@}9F#-^J95^@am?N0eMFM0m+bXJ#no+Ts6#YyuLlD^CsWO z){}b(B{Z-L_B&&bHwR*CI`!~4EeavSQ@RX+h=i(Dp{4?S%a=Mioqu6hNKA`9$Yo)jWMxlmS(!QR!Bb$N6k7ra?m`ffKs!q@2qzr#zHf*r#A*bVS2A=CbAcRq zL$$QL+~q;qu;+BZvZ}qs%GnBWh^LkdF5UP5)s0f2+8tglv$E^`Pgu_$_jtQZcKmvs zCQr3s0iL>d1}^nXFf07BoD{$+;Nc*wp5XYF`TtLt(U21)oGIqKmP=G;>L>`yA;U0j zT5<-0(%7EP;n%t2zhFKYGdc&tXqwQf7(5;^0U7;|J`|Rud3SaA`jr} zxJuMK=c={>I9&#R`zh_Mv_cbxiKvC!eAYdK^{q{j(uTGRV9Veajx;kC7SqJ`3d5bc zUAm|H|J+MTK1h{mph)ccR5f0L{0WYBWi13XOi1mr_z|GsvJHZkBW9oA3N4cN3s=Xv zxBZ>DeyZAaBbXr;iv0RtF~jNbqY~R8XmeZlqd0{i54gwFMGEm`Uh~qKGOcH#1syT( zi(8qqHI^<&%9y|!g1t`R@pk={swP}4P!&fZf;JeSz(EO1y{=$gGQD~1Foib``M>}Y z5Lh2|f~SGLkVi6cs2BaBM*$H3$C;L|yA4OQdgrA)qRnmnfk|Z_v~(nia7i?=zOO=8 zoBB@^fzH8&{~5)ZA?!~%mqnw%9xJBMh8C#0u`~bg{QyiazfCVWc3x`>Sb?B7w@O=3 z4%3N~e2;_wZ(1VdAxV)X%sK2~Rh{Wuk;*`@} z6V(^PtVM&`k4G0kwFDZTnVkeR_>0Dx9k8~FlRu#|uR=zv(Q$QD2V06)Mb(TS!2 z00rDCD~HcIsgIh9h{f|2lybZr~n{f K0x6hm04^X5(mj9x literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1383.h265 b/samples/h265SampleFrames/frame-1383.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2a670e70e2d01654b4c89c490fb81a4cdc48f2d0 GIT binary patch literal 2152 zcmV-u2$%N&000330n;)6)I$OTSiyOS&H#W80suG$0KgOifLL)w+u8(FG(4OaUpWR% znl?Udg>{CS5Rm(Ev59Jc%P+H<@H?W%VIMETTlz>3;_y}(3Jt`QM+lKTXj+E|bmSp% z4xwf=bniHYNXi;AHjy#?jmQ1L{ru3MQh1C$f1>AHS>$ijgO^M}ngK2Qx`R!Xb^Ttp zxIQK)qv>@|xTUMb%H}xG?fT6n=F~$vgxG~O(?< ztH2h69g#Bl@4jrvS&_<>ah~t}SF<5}`u$&|!Nzwz0*9-4RDe0mA@dAlJ8DG!7eN6x zf(93b*Nz^+**9g5)ZOzx-b^!IUgE+*85Z^ie5a_2{-y}8gs_?ty%6BZQhJI>mFSPR z{x`5MT%oYSht!m8k5r(a7qM_f#(G|pF2waQuj1HG)vOv;4vOn&uJA_6T1)DYm@jq| z0bS$NUH*f4HB%o>9a(iVM=!tF20d$Rr7W^@borD{tpmwFBTq>&ffPz~wKn&`CJ_w{T4G^RZ&cFhggNcXp8JYfY*{@|oEHmQGLoA0@=cecgs z3n~G3d#5RI{&d-(YMgy2svx5%G@Hw_Ue*50-4Pg>UNK{eaK59=%yls8s@piA;Tg`v z{Wi8;9eW3|xLJE`z(q&HWGN9Fuv|i7zbVq$Le9^mrxUWV1L3Jd#t3C-zxdl|@1C@x1(2&Z8lKs$|;WH*v;P)ABW2!1y)C~|f*(>urD3=^z z5eL+$V!0HRb*_mYj{$-I`_fQQa~3M|q3JeTxc1+~rmAmK~QfT2C< zNxue*fd+$%rSX4m`*QKJ!eOQ+K3poicOLVGGHPOV98oh*Vc^g3vlDDTYLt(r6&CS# zQNmvxLl>r>xh?57IE^&Z$u_(tFrv@YPKlIT~?ggM1vgQ;4xL^<9&jfoEh9Gqpt=fDxofebH$O$EdE zf<}5HC@bZfzER!IzmQP2U#KkPk66HaVz?Xe#T)*jG)#BxaIgifblKUE0IeBUEJ5Jy zBqv%gZ5Sd+6pyO`xt`UkoG0OG^DbiX%q~&2saqwh-X=9oLPcx|ctdeNxFg^dJEk6A z_W)5Y3m#6zA^=<8h}#wFzy;u7uoZMe zi;U*;=)hD`v+@U@RRW%s&5j}D+do-9Bk_Z#cAuU9ebKv*8MhL+kw4A-UwKi2H#VvVA2JdLA>2x+Rj$`t(kGW1{ z+~QiI)whTdho5(W4T!IxHO^`yHXUj%!b?g6k*+bEUiX{w9d7X^JTIfL!;AQ+5fP8A z!RaJWOn?twgjhN6JzA@o*h$yJ-d!Zy6F139tn;x zOalv`0qt0=$QD2V06)Mb(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^Zb;Rzi8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1384.h265 b/samples/h265SampleFrames/frame-1384.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b6b40767d12e173b97c86f0c086fec0a6ab23592 GIT binary patch literal 2441 zcmV;433m1X000330n<7E)I$OTSiyWX2!N0d0suG$0KgOifLL)w)p2KAhDD$MfB*G! zLMTi@z(94esnp{o_)BE^nb4Y7E}m!kjcU$KreRHB`?r6uUX@+q#Nhd|b7{gtb`t?6P0 zfQk8_W$^yq#Pu6mPO@>GbfDMP@dQISdb(RYJDuhKF}8o)TQ(SgGbFh!MqXZ{>mnf% z1f1zi(_~34l3?QVSqWx0>~fvNmRJa9k|?Y*$m---N>%Zpm!5 zzwwR7rQT@acLZCyxPYEpURP*zSD5$qg_?t$*N*BcL7msn{t41)B%-mYrGebI_&rYc zCs~5zM{$0qQ@4<{v|NvGqXk=Guk$|t)-SoZqsQ*+k$SryFQzWE?4_Sh2R9B&9hVHF z_MSGn%5JB0(%Zdv{!$T384UmWnZ}+!F87#UYf4{&e`bepd%OX-lgK-=B(>;YOH_{1 z6>EP{1mTZ@BX?!rjJu=NQuVmT6djEq4UTmdK>~$-2(~@ui=|A{tFYr~ZJ_ zvW&kCgtiu1?Jgj@nQAK24}I<%gAMO2cLSnzqWi+=ySwl+(MFTL(o?}?)@Z(Mi8ZVx z^aT9EG}lr_(#0r-!+;M&P?2h)rsg~yW{ceFrbF;*nx_Mn_Im(?f#eO7?^KD?FqTw! zhwtP_be+bw3>OvMgy9w$auwHI8`+c<&;!(eFwFJs)%Yj9+ZSlK2IU9ihxM&&(EKw5 zP7UDY)x3)pth-KAwW1^4z}!t(`fWJ%F?&pBy_L=zWi*%kOY{3mWOAK;ULYEN>z~S` zCCUOY8Cx5Je;wX(U8=$xLy<+7dU9|P3B>$n(x+>u(KvUK#n{Yg(xr*nq|IHP@C@$z z<>>-}+!F^T(S2CyoO)dcr&J;WgI@!@x$51~sp61iU6Gz-+$ROkda4yW>gCw}i`@sC>$ zEf(>2_-qgBspIrBiBU?nk@V^U7LkTR7%nh$TObkHmI~M5MMMKGztN?ShJ#jK8H>!H z{(kPS9H3F+Hf%^DL|?-OKcf@5Az0hB+=ij4sVyR%EjgzJr(i4cfDtw6&zij53_>eL{OffwI zP5&t?@u4Ai+)9^_#P51S{Lus$uz{KzyQG5(k*c=h_l79zS#=s9000GCQH|w41pOG* zh9zVzD*xlgs(o*KVR)+qG7J9M4TV~7oG}OK_~iusr2XD}yVc{K6SpG(|1B@p(J6}; zfzMn&ww>bhCk=ecr4$+p6hx}TxF$hbz@kaV3CTN?uy`rY)vwuoUF=yA|63M`(h0_Y zM;lftqW}Mb-#Ab7@60cOFF|fPV0fwSAR2vgl10tzsFciw=@!QvP#Ou{;km+dzY^rv zvI?spgnA%zv~>6GwelD1VH}`C1T_u5`SPYa#C%+N$dRb@EpS-k7(8KPRNrAS6Xfta z6iqx{VqQ@9zh6a1QUWncro@w=4ffEn`k8lts6U-HBb7CE##l;vYSl1aE5@cZaEZbL z2G=rUk=Oj6Jas=h+LB9G3v2HHR2)9Nx#Nx-BI{kg^)nhT$-@klaj#J)iT;dyP+@s4 zEN0pl(FOT~=pI|ffikC8UNP$8jJ`@BvDy5aPfi1}-ST*{{1EA+DdC!j((|g&i4p=& zJEDnAY{r!b8agL2>^riKsL*Zx6Ll6j!-LTY}wB)y$JGnrULr7a3_RB3{%|D}L0Le*~o~}2GlHGA%TYUrj^RJ71VE@w-{!=lQ zqbMk+)@aE?B6Ek&4g#$#lxIetQQ=|u3E2&APw z>H!_B`BRJf;AL`yE_TDM=y~m>iswUepr>&dP$Q12?Vr5W##F8b*YEk9ae@a9xF0NsP=BxM6!q;NsM#%=Y1b%$k$>N-dq2`gT)UaZrX-OC%8v8#YpPC9fP+avc$@wiR5o zWGD&Z8Gzfkd+aB;l>$~!8~w5vG`9NZ)KXHPA?&UITR>Q@<30cY0{|1SCDDnd000Ht zDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(a HYyd7G!05n( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1385.h265 b/samples/h265SampleFrames/frame-1385.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a69f9b0e737d41efcc23decf829ad61c02cb3578 GIT binary patch literal 2167 zcmV--2#EIp000330n37(7k1evHxZypO`|$U zt5~U56#}Q}Hes1tfBkkXmWo~8Z2icJ4xqoW<~``(*|r>$z__S+lSB~s90)d;s+&j> zpU@vImDXyN1?AFaR#$c%&36WD5h?>1+odBZ8adc6!kz{?&nF{{YfCFn|9X#}qIwC` zcjK8FefuU^;70!7;By17!n^q8S3H;A&Jp9PMZl-H6E`p9%O1MPUChD&^w2omUI%Nf)a!Y z1LyXN^wfcFU&IaNIibOl)w3&6;-l2MWQ)ED?;ncy*66On{-pT!j$NN0RXb6=uT_8n zN{67Bmv;Su6GVck!K==|!&y!#WMD!CZ?yqR2mAKK79|XN%E%Tm&@t%-|468|Sb*1V|P*WaGJNCS*4{Vrelm zkh{8T0QRs%cG^|{nA)J$qgq2slb>#Y6uhG5=KRbiSaAq-%XF1D0#l+A5DP^&rc>Kj zBSS!aRlPRvirBDkfgfr>AfvgMZV;hn4!^&0@V>muxvOQClVBmP0bIrBT-Wd4btt{b zhXiluRm0t?sOwEJCI9YVSJ)>vezR?q&H=X`U;Q|41Ms{@1QlQr>T93>{%ZBFJm~-Y zuM*sdO4N^@T2dZ{8g&Z$DfSCu!hR#apROW*-0-e3TnV97EYAQ{Pzq(lm^2MBp3iyH zO+6enipHiqY49UI*P9#^CN=Aq6ZxYfIN`c<0f8^U3)CKX1Enfit0GBxDayq0L)AvB5rQ6bCz4&()7U@D(ih`w5on zb(ukX&Ts>UK8En5WjTTxDdzxF192%j=;xxyCEEbR?g!6%{0&P#MtPGQh`Z(!4+eDY z2AuilKL2XUf;+kX+iA5;E7VDFBnz3ueNRLbn@hBh<_h(Y@5R$HeD8S{6#@(mxqVf2 zZOq5T-!lFr{7YR#s-bc3F`|?^OGYK0Y%bEhSX%3PWN1r{jA6kzBBQwwy}63-7uDoD zCplbgyA$J%DL+@&F{>gn~ z#rn^)n@)vlb3L&S+d8KJB*dIc>+U8CMwJyOWpFe{b*Td2E9BNx4h1)Closf{Scm$?X zNh|V9P(XHzb^3iMe6H2_TXGLBT=|9}!p~n$Kh3#?QZsYCNf_VmtkMiuCaReYnq_mf zhFz=@xT`%a;wLv#5}Jf4u_}Bn2X&J6`lZn5B;ao{GESZX8-|=kb_`#iuI@mW%LBnw zueu$qkdWP2T8ULTU;Kp_M`E6}qr2BxT*1X*YR2*Y>gL;C|a)eZk3wg0aj(5Pi|%2ZfF{wQHyoKSP7Nc-!Da1Ib??LjNYwVy)mVtA1y20${A)&8M!xX4JdPbYB41 zBWIV{eQtv)r~Ze(3^np3?lda*|DzT<1**BrS1}bEJD%v1WWztlnV{GN9Rf&P|MNy0 zx$cuqB=Q%$gr)QE7^O-JA*<3-Y2IcE%wCIY4l(tr)a9@9v)5~#hER(%ujuPrn}1jS zb9GIAkvaBJ1;X8Nea<#<_GR#;zjgu?DZHiO8qWvv%Mv!5@lh1D^1HG29KC50&=1GU zS7rsub3|?#O{@t44>@Jcnj#j3s@g^ z0EWcxUeEpi{}xr<4VKa44IuaQw`=F})U4FY>Ibn=Y5)Z;|zW zkU-1YJjiqR`04}+S{iiXZkXc^s>BukL;&XZT=>mf%9p6dh65OkdZA{Q<(;yOrln2y z>W1aRC~BW`h!T_HWv5;t^8)Zdg7v=m{-I%JTQG;!Rhu3qW`TDB7`1DLjYY_j_zRn{ z0ZgnlrnRg2pisNU?}7=(^Yh_97$k`y3-Fb-aQCf?h3}3(Op3CIEr1DiHG0}F;aHUlNubYlaE+X6;hT-32O7ntjsO4y0NQ{tPkjIY t0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+B^b89M*~ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1386.h265 b/samples/h265SampleFrames/frame-1386.h265 new file mode 100644 index 0000000000000000000000000000000000000000..aca0bf90e8e89ecdb15facd115a47b0d9364434c GIT binary patch literal 3252 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1387.h265 b/samples/h265SampleFrames/frame-1387.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d75c7a58cdd862c6ed4ad047e15d1ec3cf9f9522 GIT binary patch literal 1875 zcmV-Z2dwx2000330n<_c)I$OTSiyG?l7N5?0suG$0KgOifLL)w)n+PdHMTro%6IAS zA|ORmYW>0F%@tXyfV}gp^=^dOURH<6-Hi}vqb_GBu4$^sXGd@U|Nr=)Cq3bB9F?lx zrEv@>3%}b3*XQ&f192RLoXiIDP}-R79cj3wUo%xR6V_J$!P*P}%cOhaQIBHmb{w-I z7o_++-~WEL(*f2i<;K1YCip1U_d`7dC4HqotNA}1L&m5vcjrb500@r^|EUi%IkUL` z-D-6+z0~CT&#oOvm|SsIfo;&0qW~47^R?xIsY8$HHNk^yVS-wtwU3K?Iq8+|CsUP3 ziX(*)y~}?Um)HqR8jAY8*(rVC)C@@%bB03JL}%nmT+B=bm$e!%hxZ)uNL@ixe3P3GSiM^w9s_%K%v4(4+&uze< z@ah6!7#xb&>r$v03Dquf`;OL=-fxw2>xbP?eHnb>OhA$$t9)&)(s3D20*OU-*U|8> z>zZ6xBV+#t)#7`k=TG;P2)z>}9*>NNl5E~E=YlT-0^uDeni7P!%tTzK4f$L>I zF#w?ujymuRdNZZ9l&vYQ(ymGCTnh50vRuXO3~FMbXk4~nh#MDzn`TCK&L*ChsfN6Q z%{d-1mCuN6;V=iNHptqV?I2ct5B4Y`~Zp4TJ_z*Q+l@yb278 zJ27nF!&$ncXL)e!R%wNwUVOuu+Xm>r+ek2&z(} zTudfCrg(8qwPyRp00~(o85)SQ+m`a^c*a8H&LevwZg`)C2$3Mbn)?{@qefnV*SEEv{%$4_}5K2XABn?oIb zGY0pRJ05SD9^B~z){@H^F!Tr@fA=8@u&DvmNcFB~CX&pm-MW%_4Z>A|LfqcJ)5J^y zUE2IWJR6Ia*Byu}rg#dep*xg*fW_G#vQ-LEe?g|S0w=&^FIBV1s(}C&3=68w*>5Ms zB7}SZ02h#0AA&kjEG(RA1^;M~z(has=4Gqy!%^)Xx#>?Rvs-^)Qdvjs9SI^_5=|^` ztI(C^{*%R$2Zv#Q#&KpydlSxO(P;1ois`f=g{IgaKmPyF1jh_HzJ>~O(uk0(K*JHM z;tOs3eL-r3&5!s!J$_0;lOQc)pFj0ku_?#E9xTmpYO*E1(h})^i(@lVkHI4egB$-R zo9IOo2%F~rsnx?WfsOw6nI^lr7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ N03cujDVS^kE+G3WjrRZm literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1388.h265 b/samples/h265SampleFrames/frame-1388.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9617a1ca0c4890f15db54ad5725d530abf2f4178 GIT binary patch literal 2121 zcmV-P2)6eC000330n=Ik)I$OTP{DZ+&47Ro0suG$0KgOifLL)w+u8w<$xXKz|M&m> zaJ>a<=~1N&6^VsZq}s0NhXCiDCpD8dYWY-xR!D>aQeo}dan;efnK*-v8NJ`22|8Q- z?rs)%L9z#LL1PLC)pvh#-4#>$3%D-<;R>E^##2^4#w5(rPK*yTI)-u zxprgs$yU1xjaCJ|OU$+A(spo4Ugj1j2ZnFOw)D(QyFb(NRcS?1e=QhcA2abjLNQQO z@c5Ji9aW14@Epz+c?K(B!mwk!PM?uaq3ym(BBk4A>V|Qi05YrXn7?0Dq~+h`bt@)pv^%t}i;DK;YX8#2h=LD|fqd1|NZ^JU7< z$ML-<1}ljMDn<8=_?g2w($&B=LG=I~obos1jS}{pM_k2vK30voAloOGE1~ z*Ef?s#ANEYBkIDkC^P19HIiCdeQUgi;Fm>$cPE(U3AcThb)cW7iZ1*1Yy*j~1L6LV z2e3bJaL4n-IbprN!wNDpD?P$o_}5P(E&yBwBaXz9(0=A4lR%Y&Fzfy$e3eMxP&B7M{;(=P3S; zGC(8hXQK#AeJ6_{ykaaot5D(Y0Cv)ft4$DhuD>jCX#E^)y)AX}OaL1{KY#X>fj3-O z+>%`GS5u+yaxzZ`!8n&$qXaW_1MYVzH+hQ=0XIzhTGWGkJ!XLH*-IHl(OEV}3Q6Pv z@1NKgPooMJ`QdMpy|x<0yNE#=$udl^Ara$GFRyFPJwFN!0B&|9P zcY>TMOs@<4G?)B;2cgS`)rQ$!D|W%y`ujs!LY= zXEMLQ4`PaY{pWaXYZ=tF{Xm~OH~(ksH(ew>V}OVxg-NVU(%wN<+a|T zOjV!s>>2zZPU)oa2?&DI$W``n!o%L-X10nU=l!3i#;Ae@Snud#d%2@JQ+aw^KS{|u z4N9gJb>W(Jq9JBEGa|^zZ22)#Zy-wUH*o52FzU8F>7;v6Nz{%Vzl3yL1w4fo=9T2j zAReTb6cpD8wUAJNPJf7Ei=ue=vK%PTp7ew~$@*3Mr=;(e1$_zboPp};9=6K&$;?#L z04nE~)e0TqOsQ)o20Rb#-Xm)2v*o+ht)CKSAhI0b0Pdsqtjcsn zAoo3a4mcO>YN<{pxrhU_*vC-ANSfdtVkD)kI~DC`t|Ps*7K|Pr|BU=!9MD8-;Q;6X zI6~GYY(1i#O(MecJ(wXES+?nPiGeM%!(P{i{;;HX3!pI#kjbZP3GHixSHyX4JC|rP z9BHw(0TxMP!k~VU7-zS-r~1RT%-+%9ho!*ep9UuFJiwLvtv7THKmhfmP)1CJMu({- zj1qO$Y~4O3%z0sic23lHb5x%t;3HR9#AfObAQ<0$pP(z$zVjaE#>?AywD_#**3c1& zwaMJoYMa)PgHAtmc1{8{8><8v75DhV3fHzk0F;1OA9e_1WT6UrfBpXxqy@(tHp^$v zDiWraLuW?AQoE^tx6*s*dGq5l9(f%~177Abx2K>A2D|iWa#%DR$|1(YjunFujuJ86 z2L&eR>T?<8=-dI$&MF52MB}W~E*`)y6U&#{NSE#CQ*@C9Os!XQfs?jvEQ|v}i`gXs ze#aJVF;888{$Y;?bgnCCOun~h91X)@tw?1@C4|&FevGw;gV?V+ z3^4fe{6p(qj6bR_GPwBD_-G)d;?b#K=K26veNzO7AZKTu4r?%}lPgMWp|lMveL;^G z2$-yx1^Lg#+;QSmNDvgSuL(j-JsCP3lqM<>Qed2IjotB+E+pP_NJ&@K(80ETC+sNRxwQ=cBSc_c;F|FOY1n5 zSrEwYEr?&2fZZq$&Y4URf#5ZaoW7F)0P28Pt;iNY002M0CDDnd000HtDl3iv00RKp zfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7GYaR%d literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1389.h265 b/samples/h265SampleFrames/frame-1389.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f5199737306f204f1506f7c317824732c922b59c GIT binary patch literal 2929 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1392.h265 b/samples/h265SampleFrames/frame-1392.h265 new file mode 100644 index 0000000000000000000000000000000000000000..639947af1973ab48d8c935dfa059cb69e584d71f GIT binary patch literal 1761 zcmV<71|InU000330n>T^)I$OTSixVd1_S`$Kn?={z$gj=z;Q*~4T^qVa!lZPVdzmHvcJe*S;|^M{TP76FTt-DcNzRh9%Y*gn5Mp!i#eqa^2GcLgmZ4Sx?S-y2lC z5|YW12jIX89V6bnjC&Vju;rNu2Te!dNB`x$TeUX*<2Xx>(Uz~JybH)6+fK;MR8hN1X{~!xNVpy$-?+H19 zyGwXS;tW=8Fi`-3R6=G7sDKG3(~39L z>~1e5L5EdQrQx~#`T4!;lq5T|!elNM*)&Cp?$K>G3O)aW5I)BYWMw{U}BaRQfoQ>1fS(4LXMZ!^b!9*;L2?-RZNjH!Hj0`j~P8lH{s4m zLB|>Tj6DbSj~v9KlU@^@-dNu9E-M820|`R8AfT`KhXCAdqf1aVRV0su^(>p>&XFu1 zj(4$-NQkrvl!AuOEI3QOfo}#;E;v37gA_`8Qw1;WnWv0`-!Ie4gf?ZvJe#^WU~82l z;2veznNXq`(}%wl>rv05K6*KsWS1fV3zy{e9+t&?R?MZ$g)jT+60z677}(WgH|55U zqbPsU?NBlQ|BNw!*`Z5PhY!tigIVBk)6+?InqGnbMO7P(ynn&z>+(_*nE~S*_#djxiB3KM@n&lSap+OH{zmcY}(`j z;tVc@u;nvxC{!xH<&xNdNRo5}KvFb;^{5vlut;t-wd97((Mmu6j6cc$l-_=u@jw49 z<4kzKf8(W!Y@FMls|6f)B)0Q$JqCggg(h%s1Eqe5z&<~8p^W0KWk4RWOKNdgSRSPz zE8ghkf~aY_C~EAV;S`iAm)%F9G1^Jf2y7NOSkcRc;4qW?=nzn%$0$#+d#xtX`?H{z z!q8g4meYr35-nRm4aLO-YTalG9s+rzxaPCl6Q6^yJ985l?tK=1qxuo}5G4ldkx!VB zYk#3iF7jbW!9#22#Cf(kaE}>U82HW^nZh^?VyNz=U=n(!X$H>Px+^GKDme@W<0F`- z4cJY!)gt7GgxvwO>t&+4=tNKYfG4YIPUyed?}Sb_Vv0 zeVW>_e8$nFb~sp#1JC7FkwzmJe^o8(m0pJK;@Rn-UofyjV)lG_?u8UGj_k8$%}Bhm zU}sJ^BKE37i%zNOQ^zpLU77F~3|D#cB~%%}0FQuJt;isD000aqCDDnd000HtDl3iv z00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G DKCfh; literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1393.h265 b/samples/h265SampleFrames/frame-1393.h265 new file mode 100644 index 0000000000000000000000000000000000000000..16b479b278664d1894afc00c7a4a0171355b1f04 GIT binary patch literal 2175 zcmV-_2!Qth000330n>s1)I$OTSiy10(SU#s0suG$0KgOifLL)w+u8(A%g!?rUr+zP z|LcY5D_=^DC}6BiDy1gXcSJY`Jn1>CnY&lYq!O}3APSQYZqtsgjnv7+9B|F<{QybQ z-|us9v%(FKJ9-NkP)4h}&ugNDKai2HMcE_fI4*Wx%7HD*WwrKAnnQp2>M-@T)n*qr zlXLN)9YGIWZBX=-d~*98`cz#MfwI~8FV8vQ+tg0G@BjNPE=yauu66H>04nXoC6%=-UYyy_o=Isk04Hp*rlg>*iVLMza9rco8 zSk}7I>d{@8{qj|=z86)cPjT~=1k#R*04n~0ILvP?Kz`h@YZKqdNtFxbV=;gO7}4Hm z5+NC*uUt2v$mBO86YyfeW3#n3ScqVO4P-yfKTOfw<1y8^b72;uNALaRoBmqrLGxM( z+nrbFNf65U^(NSbb{sE@HtF!lBcw6v)gQ`=-GPs}aoWmJ9lc-?rF-_<#-AzDU=q1G zQ@({X(wJE-(a7*4`lY=SJP74#>$mN2ZL7y*oZ<69R?@)SN=rK_Hvs|(5$fJ~kxZt3 z6HKH5H@OL(5P_b4bT5%Ags=@Fcs12@UZA`jCB26u^HE6wz*A-Jui>9CD3+8B#} z&HUd%v2m~J3^CbwH^?Bjj7OS3`5(Ld2k81gj3eXz+xTbg{xk8fum3;4aKz)P1?2GL zTHVyqwEbPG`J8>qQWv4KCh!-&k^Gvm0W_$T7p@-yB_bn6_rFwxX;G6CSQ+`VXE@h- zVi6xyhwA^F|Brti`ae(6`9GZehv~kGPp=QFj=C%4*!KW+2;?esC1cX(a9k@}-JPjY zasSNJ?PU7;{&K`b46-oq)5DnOW`-OIL!;u18&PS%tr6jRKDjVeJ_s~`5%5hT1UcgQ z0!<09N$l8bsB`p&3BCX<3diV3$-Ib{ib(m6;!p9i!F)055-VU!y1R-646|6vxae$@ z8cH3SxIQY8^DUT{G~lNA!dQyG{n{L%q1cmi?;nMC7CKmow#4Y(5M7IoES&>PXR;w!}39!*nGwMk@tXu8I(qb3GODPuw|w&}HF-(l z+(TJ`8ifbgkZnyY2XAahbpv>5(}4egHSZ8sn|_W@f}#FgB^kJshCi(i*v^a3zn8ed zacSyv|1pHv_rAyJ*71lc*H?M*6IfBp)c_@-XW#$_Y*-(52|@_vCHp(k|M&b(kQW?X zn=PL_s7jhy4V>N$O75lp-%0PK=g*AHdE|8{4SSf%-kyLc8t>7jD&Wv_D2E)32)B$z zI7r8M92A?X6wGIrqi_d7*%BNFaxSw_XuIXn%>~r03%j`=JD?p=$V+fL2eK)3>~{Y= zrl3C0Ri@FU=CxuS$NzI}N|pLH1TdMfai7GKnFcV;aFwtdEj}~~;e`hH5gno9uE-*~ z;Uo#A29hU#_~SaSUh0h6ApjVUIv;r@B#uUBW2|38m1J{Pd>+x#)dk1-JVItvej|UkGmtI%e$;zs}uX zlv*~%5h@xSVS%Z0l6Ra_5c5O*K2BQKrKPo}Ns+aVN@#1M?fSA`K*&k8H+6O%ovF}~ z9egt7n5qPp?1N&1C-Z@R7rc&%$Ap0gZKyq)m9WKMNsM#YCPCJ6HAvW;^uIW-Q4R6`e|vP@d8w`>cg^Sm9ANKUsJjNJgb zP>+0535Pa0h?kg-VK?5~tamTeUp&*goGv;0@Dli=vzl((7lC|zIv!cmZ&i(j60jA~ zD(SeBE>e)%ShSDH)w{1by5gK-d`p}RrU7%g0VFrJ?iDN@lpmSP17q~%wLqOsL(`w3 z7fZ$RSO5R>?{$SKi3FeZSaJ@_%J^!=B~$7ntjsO4y z0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+7fB BE{OmD literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1394.h265 b/samples/h265SampleFrames/frame-1394.h265 new file mode 100644 index 0000000000000000000000000000000000000000..62a8595fe1dd0efb2eae7251762d1f1368be7d03 GIT binary patch literal 2596 zcmV+<3fuJn000330n>^9)I$OTP{DLQRe*pF0suG$0KgOifLL)w)p2H4yx@2L%GeEr zSklCf0lM^*oPW3QzAuf_E}uh#zr*Agpd=F7a1rZC`f>Qh$O7&TzDRZyy(HEFPK~fR z3jW)i*%eBmngk^W?TMx?5n&2R~C5P+#oVX|tZCYtnr zfAifkP-i+S$iE1KzOHG(=DcAS8__zIuJYo42OV7N9dP;aWk)-SrB$W*#aC=UZc5lj zEwNEWzKOwE`Fp<$sKGO3Fpu^SLYh!NuaIh`HUywBR zC8T1sO{^~M*Ftur7)D){!^)KD?|kuqi+z z`qHa1)tk9UmJKY=OqLHLXuSKFKk!Y{(z1BSHkq1yhe`#XRl==q%a*WnTH4b>@1L3n z62!YBkZ2gX+wT-io@BTOESB+L^a1ChMUW1Fdz>qNuQAB6D1-g#*5ksd-9r8-&%-;C=q*os{v!PW**{bS=6s<<)P$?SFUr z!Tv|k{%l|D|Jl|1Q-4DLZmZ~2)LF%7G{>MAdQq$brKa_@9OKbe``rsCXtj3*6#ESQsVNYyO$<9D4R% z%Ep+!mNwtI>sso_Ht?)5_{XM^?_=CPwHT%ku6=&7t!eyN17g|$_%rS6o|r&b=kXzP zr3m)^&mEPJ7iI9BKE6%GgOtbJZpy3zU;aN|5spd@jH9wNJAfL0%FLdv>;*yJhD1GN zAFPu(TiDWDpHvbSlXhjtpmWYY>3xf!V$8+k+R%c@jU~7_un$O(y_6uHWOpf#6h}+# zn%P6(IVC8Es{p9|u09G0u&2SMEMEI`@62J3Sw9Q@vDlUh7O1t< zSJN|(rGEn%yodK*|NG#~3M=Hx6b~OD>kJ733tp z2ce2SQ?fk8$7tr>2l_MXoz^1Ajbvo*Ebovxv2#h&+fS`)ann<1BHNDEk<8hPq2P@c zn6J9I7Z>3PIB-jEUH(m2e~TE2%@!5uVDSIn2;hJK1|(P?I)fY}ry)RjaI^?eYyMyV z>bV#n^R)29^kGDUekg&O#^V4rW$wT{fBD(*pOdgFh+q-XL1tWBL5IBoO}Rw7mcQ&w zyz3{Z1$Z9rE%cAih!;*>DW!U@K`t ze6iHRm**5z99G#E`^xyy;{N}mR`kYhRy7uGhM_U)u)xOfQ$&BQxGZifbFnm8hZ)8H zewfatN8AV;5JJ2%gy@AiHKY^^m*QN^X4WVkzYf%7uK@eyf2cTUpp=5)8Nnrd< z-M2ZLnDLzRdat>#6@C}LK?eg$x{{Z_|M697eEU3QnnpkO1KeCe9!)h}kY>W@4&7tE z0$RfDRoeESr+2&IA}Bs=Y*Y%jE=c+CmR!JYR4C_x6YSY6zh5@?pQuaeeUY*sw16GW zd!msfD8fN=p)D+<5qy@s!#L@lCYM!>S7uBH@FXA${&MdI^H2bWaY)rW@F?}GQen+@ zsdoDJuc;=DsqJ`#DY;Vcj?uOzU-aXwiB$G~r{)Yc^bJ1~Hl`8`R!b=lNa_8X zruAv4Atooshniq$t$p(@Gx>qTJ*Mh)nZs!h^1XAgc1cuI#2X<49M}`_s;7qL`lAF} zE*O6FwFJex2{Yzd-sph{JdnQ`e&YQTNnm|FNQ?{l=_j2lDIRM=(Qit~t`B&&(ts%u zLK2*P^Q|TjvGjvwk1PPwT+Zby=hlrjemnF~GNlG?U|+e} zM@C7s<_M1SJYpmxe6@y#0M^j1L_~mV`sFI;P&eQv1=mCQg4a$Y`=&`c=&MBGxqM6I zLGr^d-R3es=lt%wTyG$Zw{bxM7_p@wwwBl@M^K++b4NFU)-38{T(PI?!s*YLuAaiO zQ%gx~iHcIsgIh9h{f|2lybZr~n{f0x6hm G04^YM-wYH0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1395.h265 b/samples/h265SampleFrames/frame-1395.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d478d8be8b9bde68f6be97bc6cb1251af3a9585f GIT binary patch literal 1852 zcmV-C2gCRP000330n?HH)I$OTSixGx_5=XnKn?={z$gj=z;Q*}`xQex<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_F03&H3-SaO!9GePTpTGWUrLem}ThR^U z0m+qk8MmXv)NJfrCX^6|8jdFIy!t@|?#e4SV|MS4MS}nkVQ2VkujX_GY+!vD$TgSk_u@Z!Kq653~KWnc^%^-Y~ zm=iOb2OliE@>jtrd3{Y7*1s?WxcEG33|{i0K!#;~2CiCz1DIEi`g9Tt|Hxz-&jCnF zpz_t%`C~JFs=Xn$YA(Kh5(V6HtDZ~mX9)4tBH&Zp37ePl9N4uP-2CU4{B>vS+r|h- z(vOo0$lJQInlRNwCp9y|cA&&d-=vZSUUuR!;k zQ+c{Zd?}B{-@tMKzHYXuWh1GfS)3CmoReGhIt_C*92YCSUnTA-*bM;m*6lKY$1mvf zmm04qBbYPQsWlG~9#Tj!>CQM0_4n}@@Csl*2?yS|bcPv~((~loh7yf>3kP&YCg{*G zF4p4ysI=5TLn#^J!1$PztfH#^#wV$r8LbxMaVffz->QcFR0vhcK$t34+`p3YHi3R9 zLKHDGuV=Qr^*qB8XUJMK;bKctZRg8#NHOfEzJVRlE9{`(il>El3@-QcQHO7E(JIgW zk|eU}Uc*qxIeDg^yVx8rEi1$~OT3Wfx&M=zZAH|ljsJiD8vOs#_*uO_%oF%e;2)cQ zQSbTRdn#_k&iG+^Zz?lYICrL+yRR3G+717$ZMMp~%!xDWQ;LJUcC9+^Z{lb8hdMk% zdE^p=1M7E(F@Dc@OJ6TVrqqj)CkRtMySbVykfu`(c19&a)D+SQKrcRgN+$({aT15WpYfGuyhQ@e6t}@89o@8P! zUy+G4AYuH?`+Y+iLW0TKMg={Q)r%>EytuZu&c9Ql$ecmFS@i{IuIG}Pm%2dPEm87; z1gP7Rwg~knEYx}OSbnXQFmbjx5-AUa^-|zh*C8|Ke@oBaewYZEg-nfAeT;tx$%i$n z^>^nZ7r+1jseo7?belx`6TN#s_y7D^S9CU12ZXwV!qVKs|H>eMhunw5&phD-fnI=W z&QZKk?z2y|`2L|`E?Y2%&R0zyC1!zi z0k{+?Wdqu=)s^bl7Kl)6M+4oLdRqj~1#Btmas2%FOU4OfKtlW_ZCpL;V&Qw{kCz8tB@Kki)6bcJt&R*Ph5ssE)Me`SLC8EQt!}LP! z;smnmfL!x}SMKw=SrjG*zX%?AJWW!XW<|+#@4fW49Wu>3(6Qw zHIjhRwtVyis8=&1WeczUhEvkBa^eQUUW=z9XQWFZVU(L^i< zA{oO%{DTNnfSP9Pb<|Ma4@3k;|ppIDOs5^WQuJvYnlt< zG8>z>zEN;NiXhXXm^&J};2)Slf~Wjb^%{~~djcn*?{Y+AY@iw6ykLqpw$J^0{tGf6 zuQ=2&ibM(D@glPxsY5vc3aD7E$QV7q01X%=(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^Yqbc-_p literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1396.h265 b/samples/h265SampleFrames/frame-1396.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3bb0ea61b4eecc196b83325b707fda60ee2f7f10 GIT binary patch literal 3589 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 LU;-(aYyd7GmBZ-i literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1397.h265 b/samples/h265SampleFrames/frame-1397.h265 new file mode 100644 index 0000000000000000000000000000000000000000..67f168a199492d17400d63af0cfae71fb25606de GIT binary patch literal 1860 zcmV-K2fO$H000330n?%X)I$OTSixBSSWE!mKn?={z$gj=z;Q*}+61G6&Pkjl2Iy*s z-|Mu?G{?I{N+8q_{?R(FfR=gcZh$w-t6(A{A(nZEx-hS2p8R3ZP?g9CP%POwK^CkU zTvn6~?wL@sn^u<{^l$&aTWNsn74qX=+>?A1aKK{ffxyC|pVj=Ijv?bz7`yW$4FChK zk2laPj!J;J29E9B53|PAhkJaHecSmUhp2viK3{ry0bk6-DQ_nFXji*@@^+=#0}OQ^ zmqbb+I=$F5@=oH2;Xr9X{|&~6b+fwNFhTity?tN9fl+lf;`CcE2$=^=Zc%z*@}ouY z{^>p`3z=no4gnEB1+Mya5@Rht&h5;;tw;~ z12gpU6vuuEsCf*L24v97kppV5u(%VVx_-0aD$jXJz&W72hM!7$A#7Dr9&JDqKi7Cs z;1t~??nHN7Tl&AS)=hV+*?Jl&elPozcdjdm^*zsgf-Y=?_oS=z3EbD(2iG-Pl4ulA zi<(WVnz??g)^-+S1%w6vP@^SHO|_BQ(u?zCIA(_O`rsaXIjDOvgx&us95cSBU6aLR zZSr5!p-DGN-7n(nrru9c*1s<268W5Y9;ZLLiY&7naJ1q(2u&pUu$Ge5nn0SHdES-F zG}>UHBY_`uktxRHGoub~QWJ=Kz%Xz)ijgmn{)z8P{^P9-)z9)D|NZSM$V}p>jW0va z%rY2ywfY4&r=`1ppZ|+?=&JYL1{zUib(QhwnxzX;7>+B<<&l{aqHuM+`l(Qi+{fa%R1U?y?GG||y{%X#2+*Ma3Bu=zUgRtj*3gZiP~RO6Vx|Dx&xzfXP3XzAYope)l$?xOV%*v# zfB*nxKv*Ak2~)xd&=Jg>Y6bsjk-$Vh@#bZ#?!!^-9=YjHD6?CCU{YB}?HvgsToO$z zZ>!Li=Khn%!U*o+f5vfUNP82`WzlHx2a4&mA%&_gtW5v=|3DKOAg0qAmuDa7wTK!6 zdas|1`o%ak^2qo<_Vxs>QWTj1@{W5LRcCrz4}62x%0p4}r1SRh5b9SWc*ecu76+sp z0m=1k)+%J)^MBOp;h8|j|9i}nUEJ}-lF+;?@(H;abCnECKDHxYuRwq(o3aHThR4-c zU3)|CNq_kF!>nS#?MJ4wA`DtyxMH8;USk?$oX+34N$pl~TJIuMg)#ra&G7RXA zC{$|sA^Iu=A0qfGbTOCbB#kvygt4>FCK^J5G2Wx)6SsW%Sn{WA$iVT0va zcm9RXh;L~`y-n6c&m;wn1Z;{3%P@np3mNkY;)BVHswl-~SV?TZUDN zo<&T^)odQ)w;Ef+j*@>x(h<53SVsv*Q$P~pQ=$E`Sp<|u4E&t%b(9gowM?>c(tdYT zSdC)p2Mh#igBagjVO!lAE~>D&^9|YkZF@QGcW-&OWGR_?%HtQ3#lSVo27eQ9AIP1< z!|81cxv!no2_Qkp1uuK;O5^U{+kJZh8(w$+`xSB6ozn{E&HzPr@z~M|Qj8g6&cdxu zg_q9R_%1ajLy3(iR%&eeW?V<?6wA0=;|Rpv^U#|Z$g_zJpFC(P)1ZdBr= ztZ6}~&JX*$TP2N`6Gf+4mQgMOT1Zs4k^&&#t8`G-0syRNe2v+uX*FEXpa@rXx~6oZ z>X#`A%wy!ztxqtd$iATiL*`BD&y;EQd`vk$H?yWd0B0hAF(6p2$QI_QY1%nSu(4O- zg~%bBF-PVTD(@X8g3i5gKj-r$DC{4nGiLA*MV>y3HcIsgIh9h{f|2lybZr~n{f0x6hm04^XE`j+MZ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1398.h265 b/samples/h265SampleFrames/frame-1398.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4937a9301d385898c0b111bc4e587374b3ddcb55 GIT binary patch literal 2221 zcmV;e2vYX|000330n@4f)I$OTP{Chr5UYUTKn?={z$gj=z;Q*}`k5S*+i{=&fB)AD z&{?}m`i2)&$ns1jS9C*wbIy~R$(yx&szECxLKx4XKH6`q9nG8jMA^)y`A0-PC}$+K zm*)OLgYGN*=n~g?Rk7Hi5AKA?UfV;S5VtJ1!sRxXD~3*pK)B->FEDPPx4}rN7{A0+ z*U=Sbi?AbK9jw$Oqi^oxos`L1CV9{6DZB6g`hPD*USlakM|SrLM^wHNl};HYPo zLOKV124nMs8^ar#o`d*XeoT@~(cg@00vIuo`BUx1y>bMjp}Uq=Kra++#3rEd-tlWd zn->*fH?s`Sjfb9!KbX*Z`v}9TS+jqDHNudI%U0jzjg3jnClye-qQ(SXb@b&efsciY zv)DyZ?HFVROWQ_Gq|#N4A87dj+-_~!Xl|%Az0~yf&#L1E%9sc$r(g|)>g@n zio>9@C60|F#Fis{bZ#hE>{kWLRK5j-%2ovC4=261&pT>!xOXwgg{V_GCf*I3a=|8B zkf0Fa(G2o^bCemHoW3!z6F0k*#IXh(KXl!fL$IvY+%sGfR@0$IIa8A&jw}>-t-|Ma zAJ9t~Gds*mKgn?lgY}=(T9q7O1|yuKqmy8RKg>6RZnb&VPhQ8OOx;4hz+-N?_y9Nf z93P1qC+~RdX4{DB#hAG(s?k)Xm$)A5iwc3Rqc?LXSV|g%FxN5$quJw*0PM737l*sk z?LJsa#mQ`^i|z}G!S-&AI&wexAG`bq==wj5Bjf(t_-F0@Gx4vl|3ANQ%PmxCNH;Ih zcRAacUD#L2h$l+VoZ+Q>(N7v z(D{w+qID}m?6SLkmG?KAHvjXo#5FT|ep2+5qk95U^GplN5e^F*M#OmF4Dtvm8qLrd zx}nlFQeg#|?RWqgXy_0QqPt>-%xPw;Bv-8y$V>#SZ+};?1dqWxjd$J^2v4{r*t)^I zsFc+wlow!lezC8;);~$NB8dhr@ijuwv`{O=+6L@P@&iXT+dB}BXP2XJ2Rk^Z90?PSvrxEu0K88w zUuhy=x1mkaL=`f%UCsth*|f4O&BR{GC=2(zi)o5_>;LSZt93`kzZ%zy2=%1p?aisOsV*sNy#P0R5MQ;M5sY+|z{lb2sN#`BJFoYG z$WI-c%&D_^$Bw-;F%HyCL%Q@}b8{Vut4_jZZ!g3?wbrw8g5xXEjX#Eh3SKQ5mJV;A z1$WgjNJCh&E*7=`d9{y0o3V)z#@m>=KbnYPe06Y5<^~sCi;%I26>7;p3A7jT<^XsT+86cQ<*gZ;LIY%+MtDtMy7mqXO z{&0e?Wj{Bp2__jqPDxYLpQ)U@7g?Ti?0DYH>s-wFCosEO_Vow|Rkfx9tUfLoLv^*D1P4JHmBZ~vXl!9$+2|P#=N|>dk znt!-)ydpcyceB`FMa48&up-R?xh&UgPF;95vTt^?57J*PoEs|hC1^cTz_6Ba5}5R{ zkxNC{H1DA7v^77gK#t8Hg?-Y+9EreUNW`5xYX8N08GhsbieUUiP)qI1);lHgqssbo zJ^y9^c56x0JirxqoOru<0)OWs%;_E#DYTu>e50ARDQ|F?s_o)kdYSp~Plnw(Q2-%e zSgptwmX_>YzxV&v$QeZE@D_Y<0F`T{{szFt(xhR|8xGa8|fNV_R0F)B(uEvAOWch#m|E`U42@8JnfLnZPW(gwx@D3d4 z7HrH5m{NQ|pp!f#?GR|mGVX|Ho^N&ppHv(!9&`U^XUs-@F9!_Ft$%8F5qki?j;K}A zHPNrGR5JSDVveXeN18)wQXbfrZ8?EgS2WP$$OaJcq$+kX_cK!=z#1R^MH$+eW!!C% z{qnu*k$mq|tudvA5Yci3HsR?KvP)ljoK8kCypSPq_4}62p0?#nua! zqwzjIA#CNXp+Y!|ZZX}*gvOl#FiWHR8v6@1n_v#eCDDnfHUI%dDl3iv00RKpfH6;f v00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7GvtCPp literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1399.h265 b/samples/h265SampleFrames/frame-1399.h265 new file mode 100644 index 0000000000000000000000000000000000000000..89017d8916f5c8f99fbdd08bd20c67d55ee313e5 GIT binary patch literal 2868 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 S2lybZr~n{f0x6hm04^X+?tA_K literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1400.h265 b/samples/h265SampleFrames/frame-1400.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a2485a11b2601e1807c72c54e797b3df2b59334b GIT binary patch literal 1905 zcmV-%2afmv000330n@qv)I$OTSixF~!7qT|Kn?={z$gj=z;Q*}`o%*$<1ZsDzq*-z zv+ezILU9vrG0A9x3uQWj&Oo7O_x%Jp66xCb_>CwJ(Z9?fRN91(XJU*c>H%Sn+tK1` zHh0<+6o_6;M;a#HeISB&XQ%IsR}awM&uE&$UKz<}!gUTBY#0~0OHz&Lp(c#U&}iTm z<~2qC^Qlb2ZB5_wQ2g!L1k%rNUQ9V}D$@eWQtV4*j_=6*^x6kBf$~ydOv(`B@HHXH zUU(=Obu?pFjKC7(;a{jRd&-Fd7A5qExoR0+mc#6d9`w@md^Tx`=qFL%j$~=~?3rhQ z8~cNS%nrW_@E4U_@?U#6M~=o;N|`iOQTdKpG^$G%y3=Bt5I5)HB=Oc$lKHMhFW9xGGk z(e4jPz%|}Po`7M`A7$r=(b|)M;jq8=?prWYjc5=NQj2f+n&kWFwohD42|UMTDOV8p zaU(`b$)9lyn)=dE>oT6VTHi_0>d8A;-nx3}kOwBsiRU>H;l{l}!9A|#dv{2P47&c^ zvHuz$*AXj_h1S!v8VsG1MCaKxmLz7eL+SR0cu##YKD+;G?d|3HtzWqNG5&%5px%$L z{d$^#nr!GJuxE~I@M$#FI>-lUFNQTCpWC+8J5Q|W3RCU~dM@nDHWyEd*=uFKq>qBj z#0S}n5dK!A8le2BHjv@^c}6RM1=I!LL3%$pPw}IE0Hcsc2@(-I2yB!IERo|6Uxx`w zCAil`)?A3Y<`WMSb-f0-x7S1cWDf(+f>E04HXe>;J7ucJ!t}L7)d>y)%Z5;dZP^3i z*O46U(mWxO!LozL!dm`l8iE{`xJgP1JU!Ia<3jMT*TRoSLT@m`Z11flkIS=Jwn1+Y zV-3oH#z#nNC`y)5NcD=*MQs&sId*=UTFl?eG1Oix8HMamg z;*t%}8mUSFW#k=hRr`jv8gII@Mh6WcF|+}Mw}3!8iru_`w{=9(hsJr_?fLR)-9nKN zHKRmwKx&&khpd{-qfaw-p@A!ek+onPE6Gf*KO^BS|MSTwRRAN>4Q8jEN~KYYSX2Ru zTHve0q$685AX^jv<(KR~;9#A;`>+4PczxNaFa-8VVIUIFSgptwQ<6@6 zKr}ow;Y^jVlpCMYC6N}e+0?~9N5*e69KAYg4on{Pc-dbvql#2H}+o1%;*>73_fONc#v^u0LKX7_*o z=d)!ZoY&a;&xeI5+t!_Fd)id98G0@|^d+=o1jQ9Ni`(+QpORa(K(N1#Qo{v*dfzwB z8M>FS-5!1B+o3*&Dy%hJG9fMZ+_8w;Ur$R622L2@qYepZ44>l^%N8fX&S0@+@gXs; zJUuH`4R#IzzZ%J=Khfb!zny#IN@aON%q4_c4wQ*fXfD9DO_z8|QgK;$u(r}v?($A! zPYp@Y3mvWl8EIf%S4Gk-JCwB?4+k%}`Fzo>$*vbfxk&nou-1l{_22e0GZ&Om+5=I! zvz+-Ru&(;-sHF=C-H{7;6c;K^H&wN})j)#Y`wAhx+`*Wu&3%n;yXF@EC19`COJ?Vree@Bu+TmZzQ&Z@h}h)3vhz z6~20?%kY{tAjhv+A8=p5ut=lT=J_KzLY9tci?B?%PPbn*!uj|VPvUt?H*dTp6z1~e z9K^6koE(hDEuh@wmS?kXfiRH4PUhYMzlWw|`g_U%Pys%>q0z3fLpb$nf4QP?Kz4=}uVIboxi$*3a(F z)Xi&!Sn}>#0}SEdaqUTMt$tEQBRGpmuW%I78RklZmaG1R<2PYy7wz!VmpRG{SKlCX zFOv)9<>O<61P2)p8J)Px)qMi|%Q7=9vFX86u?Cad7hKY@71@^X#*kk9*=MGT4)1kt z&`;v5u!BhQ%Pugs8`OXg+ol#K=P0&6^Fg7nNX4iIcBjBalx#4mrn&ccJPMq$g7(=c zM4y>MA;Vw!r9_v!O+)0zv~9)o0Nq1e?q-yj^0noLxBF*t?#~9kJ;2rH#qIFR$bZTO z#2?Z5ekkSE1SZT4lC>?!4ue_Jc;U*=lst7Q#SZ!NmTXqo#Qr9y4X9ghb1VoTYUHc} z&%OW4$mMm8zx##z#iKM@o&R3idPyllZ-y&=%+Ig&f_fHjaX&&%(wa+ghe-PhA{%{I z*iOQwq-BLiH#GLjB5ksQSy;XB+>A&h4my#H#t3kSiBU{|KI8neCprUgO$0u}w70KR znHZ)Be_hy!MA8E%Pa-Couc}g;Rq{Pub72M(ZA!zP<;eRQ8jd07eujz0yKW>$UtO%l zWo~Kr0d`g#OG5t;ZJ}2@eBA8vcC`tq)Q9XysifRtZm|-6K9AsQMJR|?=zFG z<J zNY(B!VZLa%QtxxyP}JP4F=WfzHl?>XXZNM@ki3qwW$`08MXyFB$)jvAA)s#p13_&^ zO@2#BC>?@^;MGvPz`Z&}o=?VZwsq8`|21cifw)zKAK|?*l0!!FG8A83+LK8G{sQtj zLU2fj{7u${$zjxJ%_VbcvPzrp=3Jdi!c7XdZf3FNMhe9t5ep(#xOKHSMc#d?FlZIU9OgXd? zG;Zm+R_17R|5#QJg%HfjMxP|Z^M@;^SvK5bVNZBE_7qRC<7M%51V`<)P<|^v23(Dj z%t~7KapzeoHFbhqVfb~nXUehzb3gq~Q&8Ha6&gq+oJKo#WC2h_(OW)XqV1Fs>85K5 z5NAaF6NAUpLV-lv`)$n%?HkYgQ*62$bH&M9(h7FQc}4s3Tdlgmc<49y%)5{v0&V}S zQ=(UnnKj-+;r;jintRB1e?GA0rQY7U@N-7?1nqr**H`s3t-MNq{>f_>5({LfVw&fw zb+4*79(u<#0b+b}eIcs4Wg2*p5-C>ERq`h-e#&GmN)`$jx-Z-sv5Ra-7*kB62tHgN zlG7Mn9@nnjqy4>*NxS;3Z(F1N3vPyoYyRUirhpp$n76&u0F1NOboRe@ z0<&ByW{Jn-t4Kn`m6nk>GYdm3grPefpxv@q3enu$m9&YG0|`$|Xr)};Ot7@O+rdo1{OX@VQY z!g8o9vygl%JYaAYh&%K)+|DzE&8JloC%)~9b!WsvYw>CKV4t&SQn<5|CZv&E zE?4EV_`l0xam&xz{}f%gwW;RfME5RE7i(~e0UWNR9UBvQ{8)v_jN13gym&WcZcfrc z4%}K^J_?2P`*1}(L=d_cz-7b*v@T7E3hwce9p`j;kFOq z3^sA$M8=ME{-1iu*B-8obnj`YE-l;BR&WvY;YBF_sl2#nN^cXj7J0d^wwYK6$kss! z`p#e|wC<67=9=5AHg@k$Fo4cYyaQDovY*FLDfKB{NQSgyr>21#DLUdK1>c(3O`ZPu zW{7I#(7Q~Y&)0a%deAnR3zD91v%)~7&N%W2h3cT9iGAB3qH{gDCC`Z%<<##+1&P~ckU(L7G+R=MHU~?r3}A7S<>~q3nV`kl+xf=z7JHjtST?33y|-5^XNKD zEEUJJ##eY2goHgVNh;#Sw8tGh$TaT`iczl$QXrXYGfh?wQ zahe5b)VR}_s9E2stYVV8^-fV%y)}dT>x^MDj=_#LjXlHL%x&afEqSm_|k8!^>*rF z;#x_}!N@=jVih`u3ts@T`Axnv_E6Wo{+yH0Vbq}QYQ*7qu!V^DASM5|77;$b!5?O~ zF99&gixhQBN?cMQ!hx5lBXhCUvZNz@+rS%(#yjlC^K>wjQ$w^dtX9xpdUFeRr@Lm; zJOH#~=GuCprA^?+8S!jUmWcDVW}}Cu6U~b6j~+|l000CeSRPrguXoXZ)&Ku9;GXWj z*?W2cv0N!@^Xpje6qf^%CZJ&eGuYzgEISVBEM+vs3-*NJw)K)*8 z`(jSi7IOix1Bt&Tt7C#PmzuGrOu4d$PzC-i^JD+OLjU_OL&aLB-)H(iyHo%G@`6wQk5`mD zWW|GK$n3?|1Urm+ zB>y@^6B+1)IiumzbvW0wGT7LkBPrpVUp_Pnt&(P_tC$k{Sukq8IvffyT?HT;wvt$s zu15*;ONNNZ=&%+QIoN!qa(Wd%*=Tk?G zv2WK~J4ODM3C5BV<$oor9BktP&A088b^~Gpczb)pbU?H8AU_X@rs{;%dxV|;#k)f0 z|H7cx>A!yhHWsV}njfHO6G#-}Lu9q@)mIcB7s6{evMPG9-P<~Nv}V_SO_J~E`u9i( z?1yY~74Vd9+YOH@y-E0Ped9L`)lHg&XeJx6x zRXd$&%EZRv4$6iEe`nfy@3%pKjGdAB@xhNdv-*P*$lGqAVK_)JdEr@E7XCfErf(3& z#=52%IZHx2-OKQI_e;;KPu5H@49H|bBr=K6KRrgmL4=ups}!+)@oUHQ$(3UM0rvU= zDSqtjr)3KeKn}O?DdNsxy7Qm?Xb^7X(WZ7S41S|_6oFXfTulMn1ZtSG_|7%}qww8y zFbPB801sEIgMfUSwG}JS6mwkg0Oo*LuH!xmxidEU(iz!^zy9uZd8{E+w*)_EhJP}V z>O9C^*d+2bU5%-ssk19f{TjSI`w~OIvweqNO;3d%HVeahPO)^-YJ>f$cWDk3=dfKB z2ZIDmcnP1|^3ek%F5XchT9^=d*+o;ePuI0)QuU+QJKSKPUpf|HrUVY8TmNJ0JE;Jl ze>dW;NFZb&A~Nm|QfUb2!?2;<{d+!eY6*4NJeom8k4uuO`|bPpj(EIQ&3ynqXu&33 zgjbKZ5OiqnDqkrr{8Hm6HQ+Ax_F`xL~A^Q(;xtZMOJ>| z$dRr)z%g-cxeHeGi$3MFjB8b7bg44D8Q)GMz03cAWh(#n69R+d2FQ-!A)|bgU%$O? z$u$BGEFk>SZHu&16Pok-J{u^|gSuj4W046xUdAh+q0)(Fyfgphwu|QGel6g189^4C zR=2fy?kqFcU97pihR>^rSgJF5h~HP&qtyF+GP$IXI+|!Y(@t~z`J(+^gK}ute*}|wYY$*%E6^_>f* z`C4(8%7zkQzE)z=BIkM&{~uF;8(C+*tX>a4{;BRde}0z?dZIK8Zw40G1*WLf zZ36)|VS45(ws+T|-}ZaRV{b_IyySC)NOl!5GhuRtU_JQIwuLo@hIT7^PfXTkt$!CDDndRqz3GDl3iv00RKpfH6;f00096{1!g) n001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G&Et@# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1402.h265 b/samples/h265SampleFrames/frame-1402.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b7590e8fd0e41bdfda3e630f90b5fe9b645abf22 GIT binary patch literal 1778 zcmVd#^Spk@&(wtvShY?}=6w3=yk$Sps6tvXn|v@)F0ub9$Sz8kGwR3x`A7f$ ziX|I9O>l+#%*;S?-`>$HH2e2I6RU$mpa^*7~z{{5_4|G$1r!*xe2toRDP7k~vT zclNb{pAi|Qf*jl;mGCJ}2*kgK&7uijS@zx&SzW%DG?4Z=i=%BON1`aUj=N@{^Jq2; z)c|gk$YV}!G(2>jw_^hf&TsFfLXcy8#W!=N*j|W!NFd4NXL7&6o=$c%;5Zs|n@eb} z_P+FWP}!DG9a-t3d0(0@g7+No_*}@Q=pYS>04-U?#n)Yv_*Vy-Ec{;*Tz6SlJ`AMC zV4PY|Sw;DTiwkQN-@^&g!HR51s4;%QROX|ld{G1L1VGxX#x4ZtuAi+Q%Cp{5t^KDK z-RR7XkDX^$I)|LM?&*P;>i(%a-fVxdyTHaHtcph7W#3Jg%iK*b%N?@^-6Vc1F&*Bb zDsDUIp0DRuKURqUSkA2b^6qS3xSpIdQOnzK6pe_#s7+R;nTKNhUZnj+xc8IeKPEF#AG1Cj_FNdn_`f9E*(J zhOov#w~*1-RxHx_^!iX6?4Pr~<#!dQOWlQ?Pa}q#p?C)%`lEoSkB|6ZCNTlj zCZGTD`Be8^Xz_-L7k2m#GXuK)aIPT@lq)~}u+Wsvh6af9Q8xIT&0Cbcj&N(<(TFUk zbTyLK=v}05_gH{y7S|JQikhZENonTvX#J(?g zWEo+{J|n>2HG>!}oM)x+Silsop6JYkCpITQRF+o@No_n*!3$QVUW?|C!j%8iWIEya zkRZFwQ5%z6q)|co`>9Ana{9n-0dTLhTef(I9n{;#Ew(X(qaz@|x(FRA?VQ4}P389s z6DFJl+eO2Y|3Cl$8E{x09yu}e0+fT8Qdn6y)C>O6BY=p1N)ITRh{WGOsv_$%U+P+E3%g=yJjB{Kk%5Q#;WF~M|z#tWs#{NQ)_V%X$ zRX|v-<30oNZhyr$31L|sNA_?3^*R_{?AxxMzsnyK%)(27;Xj7l7X=caa<(VImL>fr z+B@O+&c*bNkSjV66{DVlSu?+&cio5Sx@eDqBGI| zvG^aZM{#evbjNDb!*v^mBf90Op^C=?rES+sPjEGshclyn+4Cray_yHWPL#0T zM#sm+gtkN?E7ix%_t{looh)J9hu-=lvSUBOo<$)+AM65&)7NKSIOwoLP@etW#f}IT zpUlsP6756=x?YCCy|+biXc*2t883n*|Jp$t14&x639EP09iLb8(iSZ=UzvtW^-XK_ zsaUZ#cDxDz+imH~IJZ>bp?uMC&eSNj(?B??lvQT6;8vliS4pE4bvSeZtu1IR%cTD@ zeiM$LRp9-1yc{QWB!4UYF-#C@5u&4Wd9s1W;DZj2n^Uojj zql2?*Z-^HS_jvA+K+y8FDNF>08~<-5(GT|r5Z*88kYu*p`t6>EdI*x46&T}p!%l`^ zKfUAU=IG!i#k2$(&28P;0ULgx8*k-`FG4>}9|9|0SKid{x~CDDndSMUJDfGR7F00093+JG@neETb9dX;bxbRTkC3{Hncx%cNAxp zYhK^~`e@`2rkDD-jw**4SrT#8wG)V-4gF;|egFSurO9h|70$i!fCaL$Y)V{9$RBlE zbt3KPBvAz{$SGECdAa$jWP>i^{rFq44KdDtqWmU1678jyK$LVVlFG;h;*hX})E*n& zEoc*B;;bh2VVUL7-Ce7+`UAf?xna9W_5n+4^LB-g{j-aGN_2tk@SUy|j{3C5)ct17O_ma=u~Knw#5sVpbp#(J00ujPh9haFhFxpRz}je{lLIcouHqBqU9odi7uBLTSgT^da=a%Ig38I{-ZY~`9yF_KGZ~2Di-O;n5K?2U@ z!Z9Ax!9IX~*_zx8EtgJbM!$txlz*w16Yw3-c|GmEdD~N+!~HM@Ny;F}HvwX-Pub?n z;)HvQoRH|m{&TMhtLH35trGht@&oT{QxQHy)h~^~5!(9rtMCQZDq0^*@ie#F^vjqs zGLM`l^}PE}StITM_a^VFG%u!i_pt<}q#LGyR73p3cqbbF3l*zpEQ~fVkLS0snk`M2 zkT_-MpdysHlsxZm&>X&qNgi>edIiK2#QW3}u~F>;$#Gx4)@qK&%b&BTmd45LMykf| z@4oxOCU_u;Vgg{>P?&48 zV2Sdaf$IO9|Brti`ae(6`9GZehv~kGPp=QFhMXvfD1Z+n>`}%v;YCy;Fa)E6MmD8M z%E~(ehRL7cd{YK_5GwU13S*_hsiq~>)L$Ou`)Qp?P<`?lo4>g&zvXs;&9GrBMS@x7 z;8h>|1Uqv`xpG6hpf6i#1ymRD1-J~gy4S0>!!Vep=0>=P^(0x#K=4688iC*Pq?tTr zarOhkgd6{0SMMS68n?2!rhzX2aeV+QR*f}ZOAB>3O#4XXJvb%E?BIpC51?*bKs%?i zKHxW)6OOyX0N{8eDsbL`r6w+Au726a?c7~ouKlysH-2@Pe=$hyN z0Yz9Jb%LjXwj1_$qyO*!{?>nGAP{!)kGYk({(PAI_l_ki6913%@9{k%^ZYH*@j+j} ze9y!H8Etpy(+^oII1Wa#tQ=d$BOD}SybNMZ)g*#dq`Ki_1-&SmCx{s1I*#6{h{_=V67cv#SOm5v^lMg! zFFeb$Br|!HF=t^h*QSOxOBt~-702EfiQ2?LL2Vnzb-Tovk-m<@4kQAgM>|Hg2PzX# z1Y3KdcGTv`-k+^C^k267Bb)OXg9u)l7(4FTcM=s=rn*1T&RGL*j%2Ptrz(`U{h zLg(B@Ji$Bz+)c@>~RW!@(tm1B2hTw5B-Se${Oceph(69 zYu$*BLN_Jv2*lqEc6yh?*B!2VJ`aHNE|oJgv7kDjO~C`JhX`!gu(N$EEYD8$Lu$9V z^<0C;|DOjFm$gVa4=|!ZVJaYqa(sPwCtulD`u~68>f|R$iczep#_u`22W>eld=Pq- z#WDXpPPaw~7%i?$Qe%-Xnx-ssdElppoax2&bMlmRnit@S6K}WvN*{~%zj?)|MEhV& z{Nn)>a@AZaF6=rg>_I)|P$J;;ZGW}-nd&0ctqao}8=8$n%*B~n0s~%3NR<@qODvg%)v(~9S?%?7? zhD;46z{y|$BUMHCty8q^j;~pQnAE8^*#ToeB3hF<9d8P?U>C#~u|rSzXuF**e@8s` z$P*p-`{wm~aoxE%u9@&i$Li6te;ekBi1~6gLW>al}=r$ z3;Mqb@ISNWL*+iJ_>|gav#RQ|Eca>wO+t3V+jDl3ivhk#JPF;9H}00RU37C!O-03sk2voHVv e?|>HcIsgIh9h{f|2lybZr~n{f0x6hm04^X33^Z&2 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1404.h265 b/samples/h265SampleFrames/frame-1404.h265 new file mode 100644 index 0000000000000000000000000000000000000000..454d751aa3bdf2cb49ecc3526766364ccd35ca07 GIT binary patch literal 2378 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1406.h265 b/samples/h265SampleFrames/frame-1406.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c96bf0db55c8f252254ba53ab381fc977e9c50f0 GIT binary patch literal 3092 zcmV+v4D0g%000330n_RK)I$OTP{Db%KY)dd0l+v00KgOifLL)w>4kJ2+yMC!%4VRI zS}5>@W_unw@;s$Eo5chy3`DX=?!~f@HT_Xp(T;Yjf#%dkUfLHXW7#r5fO|KU8~_Z* zC!&G<%YMFoVR0eojdWO{^*2X|^bCvg%S$zUAR!K6{tj4r#_l?FpFo$J+Qj-M+{$^O z$8XU!=UVV4J3r4m*#6c(jQ8BX-=Aor2%xHmbCzHIV4wps|3?)ibUxn&PP=V+WQIYh zXwIl-n{XL*u5L&P>9B1tO847_nDWjsjj;GbiO1=9%`OXjU=9(%a1Dg0q+gFZxwL;J zcl}S(DY4oX#4uXdf->Hm@C!Y(@8s{A$9uRSM_zqX{@9m^4>f@) zHIqP~+&Ixbk#6WL-pEQsaui`MYQsTAN8^$^3`(QU!MpOe9fQu3YAQaFr)U{QM3F0B_;Z9zDFT{I`-42-k;%SnD;TxH2A;D41!Sy$3D!Lj{&4M~KDG3bz+2wzukjHDL+0{=9VGIntb zlv+t>`U~02tHX_mUMk0EU)?>cB;O)J&H+dXYd`ew@_7Cq^8a7_;QtwatVtwM+)dPkCManQl*hE&4O&VMeMQ!&psQms(1B&b-nNf%f0*byMI!?i2Uc` z@2Ve%qkFrzc)T3qViY>13L2)7gP7n38&7cAdr|ao#$f<|s8sEtg|>6=GXWg7AVfbF zPBc$JA8MKXpC8VxyF}aYM0n_|?Rei8g0U*4`tEzpyQ+1t=o8ymj|zzruv)zHc7*FP zZmWx3Ub$tX_ElUUJo1j_ATD zHKP1^&>(jo2?CsV+lhI?_|N>0cu9f&^Fp>Iy>iS>t?4B2-`bW(WVJeA`sjqlM*^Eo3LMbL3159$1o?A~$ChGf?i1jDtZ7n)&@v#AgmHQP=y9t1n5QV+ zp{XLC0xh+D8-PlxR#R1u001AbSRXq4T9P07KmPy!;eZd%)$sB{HZ`Zs${VZ!)fWt(&thN!7ter zk~v+vCt2*Lje9J9u)_ZadIlSIcYaT4nW4-n%E}O*zN~b^UqfI_J3A)G#NTG|lw&=MX2J?9?q7723MYnGY2( z-Z- zxhc!z5D8s#?UuC1`r}J+M~;og@s!BTY9CWMsx!<)&(!s0L#sV{sGgYRNsGtJH=D}td3eDq3|B(IL8V6NRMo%N^_K}qW z8!+2I6EZn~DAXV%08vEemBj8Sgzwf01FTU_9fAYrVe!) zjps4JIQdXN99~`LeKy8=5_^G$R7Vs~WDKhlPQ#71`+#Q@#ee(dO`a4!sXyksQvp3P zNon9e`jjYFAl(+Lmi5kperteB3Ov$eoas*R6p~(rLdS6z^Db68vJe%6ZoDSM9* ztV3j}7J%8`b#mXY|xaWR?7!Z*@+^vg^(gI%;yX9 z_dL!s9!k7_&&8&jnc?3b)@Ry`rix5Nb$sMpBsALBrcFF5WQk@Cb4YYx*;maBal&uB z?s;LyGCgG3WO?(n;pw8l1{zG#^kYp6pAbuP#9zkODZqN44QKc2l8*)CK{E8mrs961 zJ#BgV(+dWKy<}t!P|lE)adn*}%&+`ibpy6Dpj!4MT0f->)hxdgollbQ>FIaYX($x4 z10b`#B^g;8V!=(p!GisNw6a9n3%gY&ed>8S@kTCn@v%<_zDiym2_Uaz z>b_Yo&d0r$7{_*{1vcQpd{_dk9Jfs#Wj3B%+00Z!W?(uo+&gqQ*~9jOauwU_Mux^b zn$A|6Bypm;&1k_{8a7?B8~snT0$S5eZ>)H6oXRhQj}_4H_oCN=wV4 zC1n|HG`K-YsjPHnH`F;LM_7K;jZna7Q{cp$&iw+_FYffPGNDf{zS>(jJoH)cWBgQ% zkc3q1(PDkMhFKR0Mh`{1zts_Hu*iF(UvN1fDl3ivln@+HF;9H}00RU37C!O-03sk2 ivoHVv?|>HcIsgIh9h{f|2lybZr~n{f0x6hm04^X`gZt$G literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1407.h265 b/samples/h265SampleFrames/frame-1407.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0f99d92a950961ece057876a27627e6deb90a160 GIT binary patch literal 1747 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 Z00HkEoR|Oy_#myQ03cujDVS^kE+9fe2JZj> literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1409.h265 b/samples/h265SampleFrames/frame-1409.h265 new file mode 100644 index 0000000000000000000000000000000000000000..58375d985c233734d6db36176c8bdfcebc6feb8d GIT binary patch literal 2959 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 X?;V_&00;OWt*8JXU;-(aYyd7Gbb#jU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1414.h265 b/samples/h265SampleFrames/frame-1414.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3af1bf6c9106241d7535c3460b9342469c90732a GIT binary patch literal 2751 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 AHUIzs literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1416.h265 b/samples/h265SampleFrames/frame-1416.h265 new file mode 100644 index 0000000000000000000000000000000000000000..82b9a20b0fc59619931ba3531587e4de28435deb GIT binary patch literal 3188 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1418.h265 b/samples/h265SampleFrames/frame-1418.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d089d969fcfbab2e55e327d0bfdc0da9dfc3be2b GIT binary patch literal 1921 zcmV-{2Y&bf000330n|zV)I$OTSixU|JOlvXKr+7oz$gj=z;Q*}+5}I_&NC8UPyfIF z>xJkmUrLQAVRcL@v9{HBL^uaL=xMB(y6?)M%VdZ^6(%0tryhA5sijCb;hX`z07<32 zp620agc~1L^c)lss_ygJ=%EkpiR7Ch6#0$|bQiLqOLEz4cnwu#H~)?!6K`riM)Fmw zxj?Qksxa6oT#RI^pcm=o3H-fB^SeJA<(;2dP2Ye2*=cfG-NkdSd|&}=teX;-67mP# zR^3RudI=OkOEL;oo1SidYMCI*xW9fD>_bd*pXk2{j>NlZN022Q3goh~0eGY=AvFhv z_lsHt*tn|+y_jZvY)7`27lf&tQD_+w6N-`KI7XOrbh0_OB6c3|?=9_$UOfk829;Ux ziU2hnmoe~C=Q*NLF3#FsWv@1qvw~9hjEj_1;k(5-o~b?nd;zT_gd>P>bpEGYsmnR~8|G_)dz2~P70nPt3oSr( z18&=F$>|O@>X6%$uCh1dcabQsIAx;0u)va(~T-yi-Lt`KYy&7{ueUl=-JSq zfo15vLOrK~eJb6v+(oftjZ?E*)^JLxQ*@xH%Yvl>Iuojl%kX{ z?XK8=I80>GUoj+(-oz=$)_+XZMcrCS&Ndot#HuVNmc;(@h^X0L5tz<#l7hB?-R@8I1W`s`sPz zFDCSnR5av>I{-KWN8p{tyYC8wyGb!w z($nnL+~DP*_&kYs1B6b%05Xk@6tYD625jUOCmDz-*w0}apliQIn5%<9%%U{XFTq|h7~vxw;A0YQjRn!3UX8#V2V$U#q)s}`LgCrB zx)aK%YzZMTokX)RF9BWkTL%Lp>JlHQ0E>Z;E+KMvLQF=+kMI8{J$^@{@jK6JkT4SZ zX97u)6OJi7T)kXgru-4Lisp4V!5*}?J-Nblg3d23c}O8~3K=%EU5JLpCJDgD;p{mC zS*Lri_kze!A1MgFjZJXfaXE0L*Z-P$DKRr1<07!k)o&+MY5s4}aLwGdM4;(KDn$gp zJwO$&4S)mq3T2i|w^AWxXdvt8yfyvf>*Y0YS_&o?G%S+8Sl)d~3+B{)6{w5aGI(8-D@nQu)d`jm=#H zUdX(8pGWhA6?-Z9y7ntjsO4y0NQ{tPkjIa*RPJ6E9XSt&)U3)Jd=$> zCuDIrfEGUT03PCtr43#TE5^STzmRgz^Xlc5hs+(-SIz8Z!)5 z{Ma%%O!MLtreS*cn_y}i+I<02#DxFZFts0>f5g(G3z>^`?MX_}9k8zfBbzx#3C;t-+Z^v(^};3dChe^?HB_^wXaEi zbuLLn3I6=ee~;(?S66@k6^H%v0ECXC6|*n^V+Y_C^f~|m?;V_&00;OWt*8JXU;-(a HYyd7G{AZdO literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1419.h265 b/samples/h265SampleFrames/frame-1419.h265 new file mode 100644 index 0000000000000000000000000000000000000000..14d656dc52218308f30c16e0895ee4cbf743ddfc GIT binary patch literal 2606 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 QAg!nXAYcM1m}~$pAc9E(>;M1& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1420.h265 b/samples/h265SampleFrames/frame-1420.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6538fb3194ca14b1ad25b8e26be98424620ad105 GIT binary patch literal 1903 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1422.h265 b/samples/h265SampleFrames/frame-1422.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9a434744c7e992799ad8a19fd1546cec628c595f GIT binary patch literal 1881 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 AuK)l5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1424.h265 b/samples/h265SampleFrames/frame-1424.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9bfc653412f3d8bc02be9d578164c66d94bd37b8 GIT binary patch literal 2788 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�{{XweFt8>5M8MQjBZM*8g9S7+*t~ei3$-2A? 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 B(;ff- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1427.h265 b/samples/h265SampleFrames/frame-1427.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e1982e65a4fd335a77fb9450f4f778e1ff5ebc56 GIT binary patch literal 1862 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 MAYcM1m}~$pAV~=r2mk;8 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1429.h265 b/samples/h265SampleFrames/frame-1429.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ac3253d2e54bb3f156928b307dfb09ae0da96772 GIT binary patch literal 2491 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 FE+8$x)8POB literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1430.h265 b/samples/h265SampleFrames/frame-1430.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4b5e44d8a6c8a4031d8f0a183c6a3cf32c58c81a GIT binary patch literal 2002 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1432.h265 b/samples/h265SampleFrames/frame-1432.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0c0d8b0f06ea9898cac1be2b6a864f90f29dc470 GIT binary patch literal 1697 zcmV;S24499000330o1ww)I$OTP{CJXNCW`jKn?={!+VATz;Q*~4T^qVa!lbUH`V}o zoS1j8-~aqj6K=4#fm$lmbPecU;+yu?gaXm0kuhn4S*sy-P>WXTjH z&x@EE>_v>KnLM=;a6n;S{px@H`1p7i3>A_?6Llc&3Fw~4+!7KEjNUQY+Z%Mmoe&dv z0XG0O(*3{hy_Od~ak<*0!^8xkp^;!h!bbNdN9BD*l z^E~yShHtC~>aXvD1t$|Aa;}qejyWGucZurg>imKf-z1*Bai^cYN0J56 z{W44E-2`WV7@Xj$agWu=CV}m<`&6CY)`&&{VEg#@xQTb?FX$7v`?IyKYKSDy&Wf#B zGgmco{aI4#x~7p8tNW-Axv#B zP?5lox=57cav9NwH>nB4J>N`(61bj<&+Tm7i(siR*>rbQAOl`cnZ&B1a3uhA`2DrC zr}wAjw2=+x0!Wd$*;rNVju`G2OwL*NavY7}q=lYA{c5G?yd-zZ`2HIE=%Otk)96=yMe?2IhQD?4oZ*O`}~NwVb5nW0(!C zaTkC94(M1Pb_g%P-$)~wIMfUN(IbF}f8)%{SKWrA+C6j9o>6AD{=lTNkJ>sCM7SiH zSl?HnE6x2UiNNPzQLcQczm+m6bqpBKBq0{*=Y7RCj#S$OAOGL~08DJgZ8P%iWTGT8 zA}fg1{fAmGiHr_TlC?l0Zyi_z8uJASap+OH{zmcY})Jr;tVc@ zu;nvxC{!xH<&z44UU6_|xo3FqLo#bb$y&gL1wr~?y`&M6Fba5Bt;iNY002M0CDDnd z000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|x%BGZW!$5&*sx7zr zq(H?4fYv+Ps2G65@iv1K&TO7ic$>8<_!iOko3tvA$lib2UWug`7|Ov?Ez_Mw7_Wfb zo}-@K?v@N>`me4p8=4NVs8q>}NUtkY*RDg31$NK_qQONsuY(Hkh*+#0oR|Pc)c2Xc zg-2my0NJm&tOlP{WVJG#sG)_&|3kVCOIchHCtfv=+qYtTg!Lzv!Y%8st;A6kTMN4+ zxqt51HYPs+7`nU2lJQ_y^(r5SRFekBV+$9o6_YRtr?E_ExrgKXfe{y*3Y)(cTsO5j zo&6>oe1iG!Vi5HvF%I^8Lj8`5yb0cs3H-Ank@M?PmJcD5NsO1$R*nFvl--I*Mtm84 z3qScFyr+u5@?s=&KOXfQa+Pj!~kFhuE+Gov>`emF?SFj|30y8#sm4fmuS5Y#Wm#Wd@ zpem#z# z@tO8ytx(m$miJW$o`*Eo_|uBGdzdUhG&pIcmjj1Ow;$J3__co$c0UeU$p6Wwm`cLK r3$5n0A~3#2_+_>!H&27`g`*E;0dOnO2hZLht*8K(BmyazYyd7G_slnX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1433.h265 b/samples/h265SampleFrames/frame-1433.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d9eb742c5339cbe4324b466eec41fb53b8dd56aa GIT binary patch literal 2064 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1436.h265 b/samples/h265SampleFrames/frame-1436.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b6b6ae6d37155f845298af878bd3435cd8a8cdc4 GIT binary patch literal 3054 zcmVz1@6HKfr*|NX`P z>lsRu2d{mJb{mc{kT{98rnPqQcLNAv0Pz?a%R^Z(AkvZnzb2*`Er5Ug9_V*S{QTDXkI&n8Hb9(2GWfa2)Qsgebq!(%yOL#8+TS96`U{(LYR?;IO?R7A4BQrJrZu@dUWq ze9fZ5FgzIDmw+xvsle`*oE5A+yEJdA4NjHtIwrKRp(=aUSK&UIE_0PL`Gei4V>Z=~ zu=&c5PH3xI1;{hMqr-ztsF-WGM+kj?7!ZyYU#(qx7>4<+hbjf?+`lh~Y4kV7-k5TD z_HQ9H^DG-_8C`tFTq>76RCA2VWw8+zm+{*W@ce*otaz2h&vZdjZccNAeBQQag?Tty zLgRc6R8X}bRV5LXplH9%V=D6uI5kg;(=B$C z&LSz{D~*m%{z~A!Af~r2Ytw8d00obv@+{yuVl~`e00UYyY<)R|%n+@R>)8H86a?;n z=Z8wPsRDttV3XR}LUM%llk&+T94*hY&FMPq@H!$rYmk)!&?(P_>kjymsY>fXKk+FKk$Fre|7i1x94{Kb|2&4*ngY9M34JF@FrOC z$w8NXvC42PDM-43!ZA%Q;E1s|_xP6U8waz=cUxPxU9{}*_qMRCN>|A=%FZmQPAhxD zH>eaz*);=h*hvGZy^$Sj(RV%)Wg8c!XTVH6w$pg#H6|-8AaT)~Xb! zL-N5aPE)_9*V~=|*y)gf3pj5v&VX}*xIq+`T;F1!em;Dw+9l?1KcxSJ@9Db@_^Z8) z5hwxmchSB2j=4lUcg|RJyg}O^Iivg(a-xJO&e`L{h4KRvR+@Sar2PmQZf;b&4AN?! zKOEo@y1iMwI~)p&%2{36x63b%yeQ<*G(KOw&-{=3KO6^sYQc?1jp=9z;&+?s1<|v; z`SFM=QRZWWOXpEsZx`t5fAvpnAycvUuE%#;GJ$dd##r z0(@edbf{1jv$TAu*|kXj#W^|s#fuWR4ouR`ftV#OXGiu<$!t$6XiXXw+2-{gOXSb+ z^k{gAXis}5+1OR`iRui;zZehi-mW1&mJPpIz!K`)~xrSA6KyPo4I=aWC$jZ9otu2Tku%l#PN|kboM*Ds>DNz5!(L%z|tH1Wh^u0GY)hs_?@! z&C6t3j)1yZzy2*+2a76gp;L$~*(a3UUk2wlMbnzM5{>!iA67Z7d;_?we z&e1r8f{t8SzY#2sW%?s7^Q9mA<#n%igb`u}OEt^fK8aw6P^crXCru7&0lon)z{=E0 z+ao8l2--^Kkw`{wAmO#<%d)M^S_s(2Kzm(Zgia1yAp07nZqQ`Eq$LQJ`Ta((uT3qf zKJn8|^%));T^RjJ0(cCS6iSSxi~y^9OHvSFEC39K7>+kY005v3sygL3rbu9Uz(ttv zNKN&Z1aB5^-t5*G|No$;)5(!

- Coverage Status + Coverage Status

@@ -395,7 +395,7 @@ https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html Note: "kinesisvideo:CreateSignalingChannel" can be removed if you are running with existing KVS signaling channels. Viewer sample requires "kinesisvideo:ConnectAsViewer" permission. Integration test requires both "kinesisvideo:ConnectAsViewer" and "kinesisvideo:DeleteSignalingChannel" permission. -* With the IoT certificate, IoT credentials provider endpoint (Note: it is not the endpoint on IoT AWS Console!), public key and private key ready, you can replace the static credentials provider createStaticCredentialProvider() and freeStaticCredentialProvider() with IoT credentials provider like below, the credentials provider for [samples](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/samples/Common.c) is in createSampleConfiguration(): +* With the IoT certificate, IoT credentials provider endpoint (Note: it is not the endpoint on IoT AWS Console!), public key and private key ready, you can replace the static credentials provider createStaticCredentialProvider() and freeStaticCredentialProvider() with IoT credentials provider like below, the credentials provider for [samples](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/main/samples/Common.c) is in createSampleConfiguration(): ```c createLwsIotCredentialProvider( @@ -489,7 +489,7 @@ If you would like to print out the SDPs, run this command: `export DEBUG_LOG_SDP=TRUE` ### Adjust MTU -If ICE connection can be established successfully but media can not be transferred, make sure the actual MTU is higher than the MTU setting here: https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/source/PeerConnection/Rtp.h#L12. +If ICE connection can be established successfully but media can not be transferred, make sure the actual MTU is higher than the MTU setting here: https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/main/src/source/PeerConnection/Rtp.h#L12. You can also change settings such as buffer size, number of log files for rotation and log file path in the samples @@ -588,13 +588,13 @@ Let us look into when each of these could be changed: 4. `iceConnectionCheckPollingInterval`: This value is set to a default of 50 ms per [spec](https://datatracker.ietf.org/doc/html/rfc8445#section-14.2). Changing this would change the frequency of connectivity checks and essentially, the ICE state machine transitions. Decreasing the value could help in faster connection establishment in a reliable high performant network setting with good system resources. Increasing the value could help in reducing the network load, however, the connection establishment could slow down. Unless there is a strong reasoning, it is **NOT** recommended to deviate from spec/default. ## Documentation -All Public APIs are documented in our [Include.h](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h), we also generate a [Doxygen](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/) each commit for easier navigation. +All Public APIs are documented in our [Include.h](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/main/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h), we also generate a [Doxygen](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-c/) each commit for easier navigation. Refer to [related](#related) for more about WebRTC and KVS. ## Development -If you would like to contribute to the development of this project, please base your pull requests off of the `origin/develop` branch, and to the `origin/develop` branch. Commits from `develop` will be merged into master periodically as a part of each release cycle. +If you would like to contribute to the development of this project, please base your pull requests off of the `origin/develop` branch, and to the `origin/develop` branch. Commits from `develop` will be merged into main periodically as a part of each release cycle. ## Outbound hostname and port requirements * KVS endpoint : TCP 443 (ex: kinesisvideo.us-west-2.amazonaws.com) From 86aed1d21bdce7fabcce8a95a5f5d936880fc8b3 Mon Sep 17 00:00:00 2001 From: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:16:12 -0700 Subject: [PATCH 21/21] Update libkvsCommonLws-CMakeLists.txt to new release --- CMake/Dependencies/libkvsCommonLws-CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt index 734da87ea3..d8117701c1 100644 --- a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt +++ b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt @@ -6,7 +6,7 @@ include(ExternalProject) ExternalProject_Add(libkvsCommonLws-download GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git - GIT_TAG link-mbedtls-properly + GIT_TAG v1.5.3 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build LIST_SEPARATOR | CMAKE_ARGS

mhA@`dh-QplfMqh^qRe~fq3Hkz7OEoK*EB0jT; z>xdTj-?fv%k{uKQ+u_+p!X%?4 z=Hl?bf@>pQaEHEryA5co8R+StF*u9pQ-2VM1zZEm6A}kaPtY9mrB&OKJVw#H$rCfS z9^hg`*v#wwR6|-un$g2oR0P!%riHw2pr?PLubhPVujN!4DSX)Qgz0X*2v?}tGhIDY zOU}ea2}Sapkmt6vif)0IjIdeSoy|l4!Y+6d4APsYev^t7wFoi#TfG7E>|M;4{8iqD zX@`1+Jl{m%^9jC6$n;`-MdXDCnDfHN!$U|>D$6T_ansTDevZ<&??$iBKhW+9QX-(s z7PiB#P)oU;zUv_eeJ|Z00*tVr25OKpRg^|Et`; z;vRT`Y;ma)F*#iX&org_!%M(<4P(WkW|w;U`tz3{d0g1YjsHo_6a$x?CUco1>rVa7 z{vGL3xAJ?RJFhni591gPr$Sb;OE>#_g!Oo`Z>)|5lM3-!9>}+_scIz)tt?3(t*8KB zb&%SA!q_Am}~$pAS%D^b^rhX literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1437.h265 b/samples/h265SampleFrames/frame-1437.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cb3aafbf32b578b28c8ff1e3bffbda35372050a0 GIT binary patch literal 1951 zcmV;Q2VnRB000330o39D)I$OTP{CK4Rs;axKn?={z$)g~z;Q+Chy@<8Wt!dDjB>H0 z8>f!P&-5fnPq6?0{NdxR1lw$oH(9mY76!zLuLsNX`TPsOat?Da8^Uh?U;byxeNuxa z?9A6k*iiA}<_5bE(*~w1Elqdq6HHBVmx+Q1W0S^WM_PXl1x3``i_gxy z*>oKw$vEwPqebvu@wTR0V$KdOY1$Hk;sS?y51MA$U4+T;rjnyO( z!WSDiG*+hdLyEv=ex5>@@4+<>A(9}>oI&u_lwoebh1Xt&i=d(|dR2WI&E#TF>f)2a z&}Tz|EI3-8v{Ug-9uarSbmeQ+3wo2KKVaFRvH|LALtXg zue1-YYPBTK&We`Wn^BYs{aI4$Rmk061Xjdup*f3`yy~*^RF$>Ymm|#R^km^){M~R0 z&6!zWhL==yxbIHz{r=HUeTBq`JS{5%UecY!9xtEK6H=+V8jvXZDCkQ7p-K@RUHO_? z)1L7%9|Ay(X|@OB&Hv3M?fISri2Gzkpevd~E|~`+!1;Zdlfzfj{#y-buIQephXa_qxy`D+1(kCeqTA%ezR$K!Y6a6nCblA!>?CR1k@gQzgdZ4hn``T z%k?$O8u;Idy1&`A+`s6)so1xU>pJ`DH@5oktUqlAD*XAic@-VGNHqdN)h1gc8$L&x zwsIH9okWp2EC2v~Kv*Ak03U&aWaM;<=|;c5QE&T1jshY7k25V_b{dap_0LLqMVj0D z0+GCbfq?t4jAFxOCwR_RDD7TO7X2M({xgd*L)e~kE{jHldj`y($$j%yGynYSXWS*C z^)U;yAWXjoRSW%J(fhmho=~d%efkgZ4VVDCB3F7|JF4zEF7dbfy}r0fPxKM;(Rkhn zbvM`Wf#WZFhQhwZD#~>JGj}z=)RZA&GwJc5aP`Ei&QkGrA3TC?O6283qz|$X;Yiuw z3MTA7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R z00HkEoR|P14gKXPU!Ib58vEGMw-7BYjg?CcCv?;i>U=*Nc*_t0^#$WZ7l)KL9VCxK z!e8@Ta&bs&UU_B=9OMzee{gaG;{Z+`r;>ujkrq9%rqah2zQuWO>+)yx9TH{s21nRp zy60CdiCHx%%dhznjpw_7rrM(!@n?bR!eEP#;kxwJgRErh0ev3e$_ezbg4>@dt()TS z1|QN9V%YA8M=!ef=W;0^#Nv-sa(Gi_wb*{^Ag`N?mE90RcFESd9(Y>KiiZ?OsJSZ< zyH$|G-Ldqyh#+l*0ul1m|60S@6tcsJG}tk}GryG_c>jc8DHaKWs>W3$efq#mR=T{7 zxoY~>3-N?p{j_SrwjodSO9sK}Djc;-0a785fY_@9{Lmdj`{0-O-jq(GrT5SPsSf$N^j9=V_16M8D#2r0Au2x4nbX$BsPn(F&AGK$h&rvAyy+RWcd!(H)l;~=mTJ)^ zHn};Wd|2a}e+`t>fLgP1aSPdWK>#8Mz=LGCFABWk5bIIqT4!)kCMVqaEIkc#?)8!$ zBV+#v>vf{USV$@@S_s-!H30jKV&iPJ%$aR{u`RVu{d7*4o6(6zJ zZ95}m-p=f6g#pSNWn*4gj1~Dcx_VCKOsPx+essZ3Srv>wVin581O9OKJkoRew?d|4 zWusPR0hwr(B?*!!H0_i~qqUpj6YmBe+l7@}+=O#;=fj$HQ2VH@^7-*v6#|vgxcp`O zv7j&R=kZn_hc;xe&wGQqfbGS&0g91-RMQtV>Jm`kme9y(Hd62vUsIpQoMFLMC6R14 lL8*IQodx%-1>Dz}Gc>0{wVJDpz6C3#t#iNvDVS^kE+D?7*7N`X literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1438.h265 b/samples/h265SampleFrames/frame-1438.h265 new file mode 100644 index 0000000000000000000000000000000000000000..62094e01528cdda4a98a54e9eda6e8e99aeccb09 GIT binary patch literal 2192 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 Dl!d)Q literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1440.h265 b/samples/h265SampleFrames/frame-1440.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e6b7085511b65ee80ba85282d2d7cef5e657a586 GIT binary patch literal 1887 zcmV-l2cY->000330o3{b)I$OTP{CUongjsgKn?={z$g%!@%P;Px zU!=lY$rVf@ZN@oLun=XKftYKM!w0cd5MfM0plX{66@X9qs+O)IQg1{zwTC8E;b^jh zR<@7>Yjmw0Gglgs5?R}MFSxv(Z^##`W}rO@d=|d6mw7C?b|UDHyND-x&z?jrO2 zfLoZ=7yr(slHX<`%@!|Y@0TROodWYKGd+qGx=v z@y~MtrX(9=Mwl;4YHM$Gnr1;>Zauzw$6nw(tK5l2AQykwBjy-)pSJC#<`>EQhWR>X zceJIs!ekX1Rk>k|J9Fi$3$!UXSdXB18#@QN^775 zhP_tWdDDYkn`{G4#U}cKC(+H2`Gkrh}Y~ST&bqH$|WqyUuC7ma~oUCx%Z+$fKh^$ zW=6XI2P0JQl0S9GvpMqs00RIDcvv2(1To+{*R%hB|HYMeLuIsh!$>?Wo;tt$pU?<< zFT>9~;{=G_plh~kWESxTFx;pNWORnIgsEi|k65h~R?%1(%bO11l}10_?Dd!3*C!6DWz2_9^!?QZC!)GgW|Q^b0&OGDuLOXo zJ*6Yz!i}m3)F|>Xa~1Qcaf)D)htTg0-Ti%5^OLZg+E#J={rEuqV3s5VFTzigDJc=N z(3sPby}Cu)Xz2P9bOCoX8WME{0X98~qb)_~mjBc9PsuoETTb-(OwKf#yV`-GE+g@j z{QL0qzl|+gp;GTdl1=osRwE+8xDL)+t@^R>&YS5ei&4TI$GC<-6MJBrdF11I9Qj&I zdA9&IT28EPd+Lqu5zx=H>BTL2b>Y$xt(-%teIQ^d3=lLTv6TMs0Diz&t;iNY002M0 zCDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&021>J zWCS-c=;bcky^URi%-T5@oMYx+mLwgKUH6h{4?fW%0v7*%n z7N|?plQJllJ6dXgrUiWv_`O^Gc;b@{G?U*?(QazI&XjHA=fot)h9EC#d6uQk(m5}!cp)Ge zgXVReS6%9pvmH-~G8&NHq|a6$U^5^l4N^2TaJ-A-50hKzIKIz<2b}7#>&fnbOQrYk zL#~!c>%5nIc$X@jQreeA1VAPj`nqW^yXbci-B#qgSYaU9yLDr}fwc3H2V`>v z2b1RM(^h;Vxd2hY?PJDY0jZQ$RAhyqr;DuMPae`y;+gbW{%pZ7EC-75FM^3&=ty+< zR6&?3(dk#PbOBDREsI_K{bb_eaXk6S6-j|+INe}~K`b?=x|q?=tbSm(&Ld@fI=q9( zh!qiYGxi2SbNUlC$DIBydy9JSlyXIX(ES=>?oXFAc)}vl;(v?}-%s{2#(le~*b&8( Z&24BAfqi|^{LssCd%!pXDVS^kE+DXeqg((0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1441.h265 b/samples/h265SampleFrames/frame-1441.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c11b0686f008ba2913d65f1e51d595d519ccabe3 GIT binary patch literal 3295 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 de5Qpd& literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1442.h265 b/samples/h265SampleFrames/frame-1442.h265 new file mode 100644 index 0000000000000000000000000000000000000000..412d28e1bc05996177d2ec64333017e6c4e4439b GIT binary patch literal 1687 zcmV;I259*J000330o4ir)I$OTP{CKaXaoS@Kn?={z$gm?z;Q*}+61Vf<75iYv(cqr zUleCnWBfW}EAues!#vJaGkgC3|K|@J9xMYFDZ051?NB5o;z?FU_lBu1iOrSfB4V=m zqP6@yuY7A!@XAYONK3Qg!vkH2X_ZqImZr`204Xswg z(!>C~8QSu2RG&Zjshqr~E3@u|b8+2hE%clrWz>z0x7*TOBtIc2lPQv`;ar!AyNi*G>4XIM4UrLW0lwx5`9Y&~>IZ|Gt+j!U zoG15~53iT7_vcFF-S0wDexPhp5>ckCiE9*=-iGa{!Gq334XVPz;7*F^`p<-`J>@E} zEq>Zq8>3MLy^0)2L-Wc3Yr;E8l9!Zy6rM0SW{9U2=DK`6|8|d5V&0T{9hBmdC#<91 zU}^ZKzn(dkxg6N4p`XN&;n-0zlu<$ibm$&8dpc4eh1VB|7hFvf6MUFg?#N3WwW1(d^cEd{e zk{@8OBxYaS$8%xnP?Exynvcu5s6hbeYOxhTGjN{2=JeUX)@a|16X`dK7`Bc1n*Q>qn%# z*3e`E9UFnsnR>o;M*3{7jOCWwBp!U?MfGKd+QlFNfYlPVhQu99>jfK56wG7Jl#fzqzo%qs-m zUvRN9X~0dlXmSbK000965?CL02|@_pNF$jz)C>O6BY=p1%c9ZX4;9mBLkmr?K7alHpb3xm zGkqN-`gM^ZSb>HkSHu?dr04?G46h&XdV2hng(g6C2R?u5vtm<^fIL~`%3a@rG)p0! zDo6vAd2!hI`@H?35Y>s_?dZ)O#-;r3k$Vqh@1L%osO*b5e_KK z0I+X?4Q_srVIxn9Q%!VFQ2iwqp&; zO@!ZyiKVk^kOzn`x)#Hf&BUQls{fWqrU7}y!Jg%vYtrI0{0u&Vo$7EMC|Khj1$HH42W2*$QD2V06)Mb(TS!200rDCD~HcIsgIh9h{f|2lybZr~p=riLifJx?yENrBMqPhG#JbP&Om{Ori)L zG2(5dic2=7kZ0+nA#&ii*Lyn++^tIo_t+Vd*k&fc-kkfnI9Gis{q_kLD7G+L1~*#y zD0uQ@oD7ei&Vw5(h0G0}NJA~CjY!h%WYo7Wk3DCZmi(MT88CTu zw9%^kP4~yhqO`7j(%O1)hjwNCQ~g5~M2ODaRmC3xy&Lflm`JbL)D~7>9h4PBrJg); z{8ns51+ktUt`sIpS4;G)Rd3+T_zZ{;`jex}J}~xd7tJAub($1Z#SUdEJWY!lk*fLH z^6IpgV`^&1uF%a`6p>1$=S$`HvMI=_4t?MC3v~}EL?69e?b(RMW?w0#Bl`iPbwJG9 zS>7O6(%94roe_FmbLM2vf}Lh+eIUh!u@ohh#X4q#LBl`nk6CIKm7JvWxZ+NUYwZ!3 zM$(TISt?;E-uYlAVx(RXo-M;OlWQp4<_95J zyininT)W`JCEyN-1mrAo6*<}JU?uBe3kEQd7@y?SL$urml$03gh-FIle9=T|QfeZHDJ4nKc5;uNuAEcM%n{nU>^xqd*HW*ET2KNpT7uJV{nDG` hIFA0+?6~44sY10eU}yUaGR{ksD`)~Km}~$SDu5r*G{pb_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1443.h265 b/samples/h265SampleFrames/frame-1443.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0af74fb0f3bcb4640f97f038032ce7cb860de229 GIT binary patch literal 2139 zcmV-h2&DG_000330o4)z)I$OTP{Ch&R0IIvKn?={z$gnZKygLe`o#Ra<1r=l|NH;` zxL$&_^r+H?7gmEjZMLhrA;3B3NzG)<+P+mFm69O<9nh^^*)66wQ5hU5$o# zO{+o`m3)(ep`KX?=pFPKkIoEl3~p+A51?h-U%v}>A*MOc^k0O>VqLVO$P$i)a#>jb zyiyhrnuEi8#jOHtTvdeNj5kL-iLnx#h2!x#Uf^+Q5VluYUl3Q0&y zY9N`>yQWF@GUkw?$`TKk$!<$QO!I7+pto~4#AB(#%(L(m!=ZILw;?U5dtru>h;bYr z6K0SV5xr-rK7vab3kEuGff=V5cS%qJJR06H7l;wMsF@;76iYm{pH=dJ`Qw_s{@BMgp!uCsn6BHn93J44*j{e^4^ z9U)mfPSjusw3Bhh(LaZaT^ot|)ZN1)^)G>8Fxu3bww4CsQd!wau^13YmPYf;ie)EP z8JVz%EEwLE=7t3$q35D8E#BK42BQO50A< zNorw&pLy+u9(CqnMa6i5@y_aF^@&CDMdWP9hw4IadTbDmn>JK2TR{;^zLhFwPA~I1-H|Q2I z@7uk*b_Wav@D-#a5W)(vQQu7`D>}7nsPYy_lIGW*b00=0`XrtB{4#HB4pG)|=rpMx zmRbp}55JBTH@Ni`z-zOQEjKs2)&&4u=QuH|>lRGuE1CNu%3>+@{)>#}!HD!#|7A@m z=6}z73wjz%ecyeRJ38Q8HvL+K-)!rMSK_up)+9WEz|A%G5d&HnQ#w%c^Ns)5e*OJZ zUUYl6QH&a5Y~^5ammi(Fy)F_IbE1E10Hh1C}g8)0jw~199 zyq(QRx}vxJ*}D{~RIw2k-fBl%`%%hf;0JTKq$JSN`sk!L7LU=!%sba#9uxtdK?NgO zx&s2#I!3BY6O%o!0R=4`0RPliY*5*YDAi<&^&t2OaO=8njxKkB;ifH;GE-gHDV0~H zAnd){{$GV)S2{RGBn&?l-Bfgvg>+35gR3SREJ0bC={vah@6zToD_@vx%e#b~Ynrsd zfB*o8fLI@P2~)u3CHp(k|M&b(kQW?m+by3&NJ^R<4V>QrO75lp-%0PK=g*5Q5z2H| zIy;x^dVN5kYrjUAtAjzzqBPPk!Co;K;UgX3a8holS<#+ejldlTWJrpnPCCs&qVJbS zG#65|F7D)f?tpbiAuYh{9>}HFvD^Ient=N~R+~nbn$?Hbzxuc8<)S-)7Bh90LnX_e zyP}yN(4eV1Plt zgL4ALp8)vtF{G8mANo(3){a~n8kQRq&jeKfqQ=%s8W*RQ1+0>0zs$?UxU?j~kN@@S zFaQ5_`xK!8+ZjnSzyPa&SgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neE|{ zjfh01)L+$m@l-!u@pGd~?vmD@UJhanUm^Nl0>EKX7CfS=^)K zM+IhA-tXHjaH3)9b!@3$|NnYsy$=UyrBc1Z*F`plV1;&feJ~rEO_K4aKAzXAGx+Jm zKuP`6MXg|mYB|35Upm-lAmn)g|2Msrd(nlXRc*_Mqmp-tMiaP%QJ+MDXN1ojbZ-T; z7BX$IaBhMCY!Y&z zU_pV)L~Z|;Z1P~bF|kJlT2CHM2!NShSWKEr6Sr9H2tU4*wvr24B`3C7n_}fHV+aXQ z!ilMvY!R$$F9g~oW^QB1wLWMZDxN7h=Ks2o0>~Oy0*S{&2j2YH*&`}4x7na+G--TH z6r!U|eS@k!kd*d6eAwcB=cB;7!y5GeVMfH|O->+Kc0j!lT%R6i<_hyH>Y7Y^eaM!O z8=Z4BBRkbmTIbBqBG{FH7Oc(;j0#9(WJ|IuQ41%Hp1i)ovu5)yk=9E4`5m_SxTrmr R6l?9O@$Pg2DVS^kHi?906d3>j literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1444.h265 b/samples/h265SampleFrames/frame-1444.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1431cfa906161cff293652bfc39cb2d93fdc5972 GIT binary patch literal 2577 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 e&~2Tb5>7X4u^zK&a7t zKe|tfLgratLx4n30c*aR0=~r3UtF@=dfi-pJATuN+G~s5Xun1`NowGTjey%GnHW%Sr8Os z{4)Ude!sDTVZJ($z*r0ih%@P{BzayXI4|I5oiAif(b*cV;Qydbw}C> zoBx_i+w(k72>WCLAS#SQE|>Wy%3$u&J+F9bU(fmRBt`<9%dh|RiBN1)xm^&ie-?Kk zI4gZ37(k55o6mp!G-$Ro3i5kI&*`%^-irRIxrwFGQ zC;e&};H1?t^e7K$k!fFvg0uOwor-=3FBf!4*5Wpen1`w)oM|X)v|{s5R^#{+5%0x+ zeV#&G=PQz~4yQvXPorqk2|``VA#$bZkgpw}WopVD&)MK^`e-hMSIfl;TzWJyc8j`CoKZF16<1hd9HNjhkg-crKfB*@& zSgptwKmY(gz$MX%rT_p1+$t-M00093+JG@neEPlRWKoIG941JR*pha5BD!et&*}Oxmn7PQ zw%1ZChcLc0I|3$>eTFr6#Asz2RDh(M)!K*We!i~x<8=_OvpuG*4+A}*7`8Y=oz7`1 z)l%`ew;3H5$!mr$fsZ~hIBN`VfwE+LIxcf^qya=&1J#>14+i~^Yv%m9n;Vs|VLPnl ze3RgMxA^VxS z#dfOPjzTS>r;LR5KX})js78AZ8PJ6mFst)CXzYKyS1P~pTb?$@Mm)y>kr2NwG#n^= z0AQQNC8RtkKn#asg!J-0fZqZ>d(*}FHgPGG&c%9B>ym5TGJZy#V(yiMdMI~^l0&#b(aIC zthjKFKe>%l^d4e?Q^ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1448.h265 b/samples/h265SampleFrames/frame-1448.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a07be996e59f8ff683092692d77884b792ca03a7 GIT binary patch literal 2038 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 A-2eap literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1451.h265 b/samples/h265SampleFrames/frame-1451.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4cfbf14069a21fec1ee50a3e39cb29719d0973c2 GIT binary patch literal 4598 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1452.h265 b/samples/h265SampleFrames/frame-1452.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d6843d7165ec1bd54424b461e6d61efac435b580 GIT binary patch literal 1826 zcmV+-2i^Dp000330o7Um)I$OTSixE{SOkFJKn?={z$gluz;Q+8#5E4YgbD-z022>^ z$G=?4Ij9LMV{CP(B~-^0^ctKkUA`M0x(jvjPz&yuRt!!+>8zoBQmxX0@cN*I@mA zY~}j9!MrJ7XD4C^dcWt><@cy?_58|-n6fvf_;1_ileIls*k+l3c>~u&1~|2bRY59+$jQn?B(bQEPK{UFBQ|4VtWIXj$yxpbU*Q0n zR~GUTx9=eyfe%qkiIM;d7f^9$oql`HK{J*7K1_do=a3SD28@Dg^4oLEla@G{!ft6G ztwnq_W%kOjA$CTgqUb1#rFTTW{k;K|J1>D+?PY6hgyu(pY3qA2=DEVs&ZZ+XeU|WY z{Q;3Dqqz?TL{yW?f4C`3&JHuqYjLM!?n2|kP~nH+hjlk4Q3CUM1Xp15|A8l{T!ic+ z293*}X@##2aA^4eHVzma>|1?ow@7e5qTO%`&6%uR`1bG1Cgqh2oDG;t3#7p?;stKc z=DIk8iWH6uXGe|}0RCb|L* zI%UduqVoHB%&_>6Zr1+bdCe(Av#bl4n3ua=>D-7o-86U`=UHO~v-%MU0>GHW!?UO> z68|3vZC7^!iptV5t&%=l$2-xSLXZdCW9lM>cNK}Q!W(H|*E0-Ho76T!ZruE{tLYtC zdCvHP;)*R|dyMs3J5!qzI=c8QtNr`(`qd#qNh???PTpFTs$}uP005JKSRNjz!SnXH z2QZ|tem#c&tP$B=z0>cZl|qU5N~X%s4?(A)5!vg<_!h6R9Ad++v%F_3k~XeULC)}1 z5PzL@>8aodjGHFb0phxC2%7JDDO6opVgL94z!MI!>83R^u0PRh5Htq$Uq2cF+Ho-D zk@5-c>h*KOUM!?mBmyo1;KW$5fgt-^Rd;Q!Xd>OfEEq#A+68S3?ymsN@=c%>Wksl zF<|zi(^-)QEiYU#Px&dr4mkbRej+F;n`3SM6^fiXg6Ue$-$!W|`~e`SE)rEQF@_0x zJ_e*oi-1gwb6h9NZ+?$tCU954AQhFy{z8z@fB*m-P*|?xJ^%m%028n!(TS!200rDC zD~HcIsgIh9h{f|2lybZr~o~sIIKz> zcRwrCe6d26)L9@^DjnSbo@Hz}_5reh_R*{YRuO;y*i-JYEDV>!_sSOVGL!4@ra|{{c4KT50Pfm^++$e=!iv|YOjV-i|5-$d zua9(9hI_zgKFT%u(J8xUDi3s=L<8-e-iCkrDkoPo-S|HAD70%%K6eB!6jD90MstMO!&PlFj^i}&`47Ge-G zzfF+vqoNam4@SgSURr(in#LznlJQM(Byfuk@)X_}%*wd$hn+Y?0x6hm06?g)|Hq%> zP1kL8^;FnSoaex=ff5`xC$4ZU=_<1{I6c&>Fn!F>A|$rN_U7we38=>~Os|2J!f6X| z87C)lXCWg`mIOupkwuU}2?4<>sRg8a@xcuPVsc7ADMC|x2j0Qi$e?=Bvk~T`TZnnyDV8)4{a{ zef#NdoI~m2f{_Jspc^ul`vBQ>lSy<(Lc-D98W2s@`4^~ zGH0`J*1`=&TqUZx`*tBuzsX{L7~^Mq-iW6!R3Rj;$_xsV_8Nx_&}~=RPnz7Qq2DtS Q!fADVW&+EcB9KT&fHnqxuK)l5 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1453.h265 b/samples/h265SampleFrames/frame-1453.h265 new file mode 100644 index 0000000000000000000000000000000000000000..7fb14ecb1e4f82b9d21d4fe0cb4c8d17eb920bcf GIT binary patch literal 2200 zcmV;J2xs>I000330o7su)I$OTSixV*Gz0+PKn?={z$gmBKygLn{&(7vF+9uE-D>i| zNtB1n2IK$#|Ns4Py#;IOQKbwOiG@_HvnTvxiTpp0;M6^3n%~$GY@Xlj;@W= z$;2FR&DfBgB|!E=EW|=vcEP5zmCvD==*xHG724hTg<{!khGh+s2WD+(n$&|#Dv6B^ z&%Dh;h>ml9qBNZ(UX0TVzvgFN#+D3ZtE59a*lwa6pj3u?VXW;50d2E?{}Qgw*4x<0 z%92vRxM2rN^UVAUdSowMK*kZn8urG{`URU6Ay}gQkpfY}xQ)SxKr3ERqa-@QysoM0*S$VfHJNqCr~2_}b5+J2 z5;F;VX&~(N2T_uCAI~otGs(wj{@ti4$ku;aN>p)VV&JjMxmG(c5ca?a>h0VLD8b)X zlK@7G!~u?pi&JIf4jFmqCz)SrrFjzQ8}hVz7cc9MI_&uEH&QLn1zT*{Ds8zT_v>UX zxbR{lB^1McfnM1?)ZItFmzE31ka`fmd2)l3Dc+tgLgoRCo+`xxn0u?#KJV- zU3w9hECCXxnI`a+D}+i5R7SWtGa-i$uO3Qk*=r6-AZxS2~(*fY$zj_%T z$fUppgLA!fFJD+$l;$e83NOvbc+2&uT$4haF_SM}IpG<5ro0$JLf0e=AG%1eG}n}H({0v;o8J6Lu)aLGv#^!NsiJi|1o*g&;jZhqGLyW6Q0ykn zo`J>i0@dy@Wc2~Ey1MDdY__~$>%JS#aUBt`9F2=(NW~Kr8%pop`oxrsuyPq30VEqv z;sy7GLUEAAP;h(7?KcZo&b}x?N@+CncSYD)9^Z!ZmUTY+Q}Tnzz_*Ag#2>%~{aUnt z|CMFGbrfSst8AhG00jhCA9e{-z}pS`JJJ95|Nm=0vXBTnc}LvJ-2XmIe*4D~m5G1H z`gi!Ak$L_W==h+o;67*K01URf^l68zm7E77Sym1$;}MP$G2R9-ChC%N8Ri3A0nW}u zhXO?7tkf69^T}T@baQq86><^RFyuR&Z01rbXq4^G-TL zLHs4+*>hkDBjiUc7{vV)DLmM4#~eF32+d;4$j0WMGnXnZ=0#$Ms@_hh)BN9{;hVW} zi9-^KRALE4csblaE$>&*J`*C3HcIsgIh9h{f|2lybZr~o~r{;Wvve>oaWf9~UeuxBy)Cxnja7^K(HLplth zY)!n9+0-TgdgT$-?JH_XWDvy6G!zm>3{Hc56N2^YVKU_cBjzSXTNT|~(Y;oii-)?s zZ9OTf3ZXg(C>(;pa`1@&U3=h377Wkuu58>N;|+yRjsy4!8DIHkqQ2v5=J64NM}Sm} zFA6Y@~k<&U9b5F{^cP)3^c(Uw}~43-RdMCIyU|GFpj4$ZFFf(m>_)P!7NV zFs>2wX1RyB;TU>rNz02oB><)68hz->jG~Gz@fEPKLWO-?dz#se70EI$t+7TaCZFyDVS^kK4>j} z{l$Xa%K#9#B&8I_Bk4%Jq5>?#DFO7CGMS@zrgb#E6?TaU&mctW1-G6=eC}kVH9__h zKF{1r8MwYZTRU@iAb5<@z3o~PRVu0kGi|uQ4m5cbPe)_^$?wV9%lTBsfxr-vB#aGG z|2FyD9=U$826Ri2mxGK=m&)MBN#CBlF(|aAN+4D$B(bh-7ddj&R4igOHtO{^QN*ANhBd(e literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1454.h265 b/samples/h265SampleFrames/frame-1454.h265 new file mode 100644 index 0000000000000000000000000000000000000000..453f0c7f1bc967379285234fe548a6a181330ea7 GIT binary patch literal 2517 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1456.h265 b/samples/h265SampleFrames/frame-1456.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ad12cd29c29997cb91694fb17dc8706193ca2ad1 GIT binary patch literal 2949 zcmV;03wrbb000330o8f`)I$OTP{DbzKmd>q0suG$0KgOinkaEa)p2KV1LR97nu1km zqrwrH?0DO01*=7>+_mY56(GrAnbS-SCoWEv+#UHAaAwb+f z^TsYMT=TUN(nRX)UgJ8T$o6DU@6ri;zO3P&FG}=s68BJ}`)PE_NA|L+RZMIuJTh%d zMs-6x+knf+0&y(G+@}J={&2*pd@Mha&xN-DAnPgnoi%L~5QV6%sDNxj8IigeNN6Qv zHp@#+J>Q0lR&JLJp}CJ-*FzIX(6!jk}jTQz}ZQ%p!`9?q1=R;h8&J za)82UZEi#y-&eAjdslXtZJ_bozPMFi6O7f4g>;ZnFW5L*ll zyZ9M66bG+>it18h>r5zM0|R=RtFq~SkxC+pkTX&FYcaOM3D(R{vs3bM6qVT}z_pE$ zR~I#Ws*o4OMCDJuGdCsub(E4M$7?5w&s5-s*70X$!&6`F6Ty7D4hmy57}J{ey(5K) z04iOSEVGc7kWhgI(5|@)9gKg&6LU1m`>l*A+q!YcCGp%p$}?)?54eBWadpp?n~(Ah zw7#NFHY^cUW{vFR_O@Gl4bZ|2lGqSi@O}K5|2gmOFQ4k-@?G&zeSg-o#hgQ0FP%7r z?eRKmqCKoYL@?ml*#*zFFRO&e^1QQ|EaZlHVMl&?M7cZrNBuXg(Eu?pSd*y z>IiVj#Zv&evq9SqR{QtuL-uO#7}}pVe+-`1W!Apo@;|#(>@fJwguPV#+$!~_*B(6m zS+x+%#_aP(i5U+R{C5B6P26B;hd&Z7t?DzV;Olb2H#EV-5SxFi3OzxB{B*bJiAd|P zhXU?ojs%UaaLxeQFuvTRzlxRW9k(C|@&&xku@8#g0^Elqi^M_lX^vx(@OjlE;SYc> zpi-qB6n-e42(}}%d;;M%o+)frKeXi(q#U=bXv}Fg14*$`!7?&VZh-^n451z;rYcX% zdI)CB@8~tGsvFxEd6ar#&5{HGO1Vyd60Afc-a1U4%2 zeyERW^P%m!-ddk*s^&)r zVcgf-Kq)+0i}50bL#Yg>E51*y3DVP4mN)mkMm$xErJr5-dgg}EwK~?>Kci=N^md+` z{Tb3&niYgf?=Z0Us?c^x@bRs*$9-8lZt|Yps*M80k`x@mfgzLIz3`otXm|PZb`9Pt zc-D!N{3wsOmczhPynLwU`(6sDdfmJ8Rw)=ju}13i9S`>Xn_CQq=&GIEu9O7XgQ4~! zSm&(C1AZKr$~~b7s!n%b@Ec~%*S%rlzW^PUb2(D(0glWQGiUXKSe|f)x~BTt#DUxHhLrY9`i859(qwJ%O_Ju8A*mDt z67`%ZS1d%q{@@?~3XD+;*Vs3YSUv7Gzn_uJ!U!JxsX#ocWU&p!x_WZ7xzvKNO9n+` zi%Os$ zn6+l3>t69^i^9W_4Oc9PP zFKz)ZxKyd=Rlz;BP|(~5dZlMiF`NHs^iS3@h>H0o!v_f3K7}?uyR>OwBTBt*BPMv( zk-0Q7mZAa*=SCkV!GCRtS~M%!6lv)zp-Zg3`%id{6oXURUN>Z^W!t%tCuFhVXeWLM z`Q<8GFE4L=g;36F2p8@V-(TcUg%~*Z1MV_?T|QjKE)KGM|Gk$+r($~A^^D6>nU;m0 zf+YNqMTY54VARcHgbj3DY&(*%6kU$*mCyo~9-G7^F?KG?|Dj;&O$#7=-Vj74{>Fu0 z_K0xHyq*N_`A0l-jDS!;3_{Qa7nlGO*jnk2)V|md3Lp`1Sgzwf000936R;)GiKYMm z1>7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ06nDu z=@NhWL%Bs#0@My8r!BRDhZ`O_k#dTH9fW@apsN{aCJL|659dhBxVfrDXpW;prFukB zGMQxtb$|QC{>mhmQ#Q(j&_J14(J(K_YOf?L--ru#ceD%s8=rBAEmnorxDvRh!|yb6 zgR6YR#R^{=;ZC1`Gxl_ofUlZ(T%`AhtqK~yy%R7S_}K$uP+wkB`^pE3i)_G@#NaA% zrDp#UKPH@~5=cJgl|l9Q?q=Pd@?4V z`rs#Mi_NTr+t{1ZhNKY&xm)$OPzZZ!XPq<<;Kk@ufo=W$;0X@Q>3FiYVRc5Wci1;0 zfg%DgSC@Xxs0@$h-87SS-&+iI+?1bg52sUR`u0XDDMl?!-=94kQL~|JQOCLwRQH!w8Dp@n621R885Z zV)zoz!R-Ie03TyGfZ|+1sgqtHFhL`!OWz_MgJcy}V**QM&szp_&g|J9JQAK@0x6hm z08FDt-s|PnNM!oNF$a05BO?d{4u740 zCT@H>Pno+2A~@JH0uN>3t(wZK$_oJBaiJwb7F+arfT+jj;8H`qlw_G9;dYHx;W9tP v?TZl%ae1z(!2!OnUtItIK$^CuHU|QHf#d)O+q}hKg#=j-R9R{SQbY8(qm;UG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1457.h265 b/samples/h265SampleFrames/frame-1457.h265 new file mode 100644 index 0000000000000000000000000000000000000000..57dc8333149930ec964a9697a3bd69430b1f5925 GIT binary patch literal 1744 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1460.h265 b/samples/h265SampleFrames/frame-1460.h265 new file mode 100644 index 0000000000000000000000000000000000000000..664a28728c6704fb7380c4b0b80ebfaa0c7af3df GIT binary patch literal 1862 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 XjQ}Ni!v|R7i0%LMkpd~0Yyd7GE78)R literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1462.h265 b/samples/h265SampleFrames/frame-1462.h265 new file mode 100644 index 0000000000000000000000000000000000000000..45fe6b7e3a9ab0bfbee8b5eef2ba2712fa63f691 GIT binary patch literal 1767 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 HYyd7GL(1v< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1465.h265 b/samples/h265SampleFrames/frame-1465.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a135b444f9984741902b368c3b9083824b01781c GIT binary patch literal 1964 zcmV;d2UGX}000330oB3()I$OTP{CUwkOTnWKn?={z$-d}KygLe`xN}V<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxy%65k9GO>zqRI_g z+CUAh(zJ8{G-^aiXKm!Z;_`XFAYQGSfb=L_U((WD5JbB~S(2=jZtV zw=t?O|D8)EzYj%`%pK5~I1y_-!Fe#{ynGA`5hzD$AUnS!_PX?((g(>&fipRIXSv_C1JQ%RgD;0w9;?tSg|dP{jZ=TTJb3T|ysNmM zLEtOV(x@AwEfT+0u5FxsP+FdR5!fbd6Eb@nvaoT%GI_~0zeAwcGf}~EyVddFv|Faj z`ntOb@XE<0k`G_xmgZU>9@u-me|G?A^U~q=b~1aL7L!1EqdPAnKW)#h!@&hO@0MOU zs^C<-6KstM_oeMkY~XLmkT~%)Ktm}R;=uTrm8_L;L8vYD1|lhXR@fF*lL)$d6+F<8 zh(10P@mO`ouV79~qQ`jo(waLG9|FmboU8+<;BgVgXe?jgy&s#GR!aptuYt`A_gHp2 z5(!sb5#}}%oy`7s9d^!#Xv&ayIh8~ct5oo8KP-fw*0c{`MCCy9UGtvU77r`7R}0TT z^pl$!eghyPg<%_FhfygjmFJE-Ak>G40}`AB+`m%YtLuJI2|-U=fG;_g+ZBDUL3A{Q zU;V?et9O%~n=`kcWV1`f)oSP;W-K|0T99gk-V+wHj^uM0bYc)l11NzkbLMWRejlj5 z0IGHQ){ntqz15cLx6qRhUxx`wCAikBTC&`WzF{!%cY@lP0p8xSeN zNb5q3AYq!$AGGB8l7aB#Z9#Cb@RosQrShBk8Z<+P0Y`c08`0MXRO<1Rn~no^opx=$ z7fgDZP2fly8L140YKDc$TLgNOmTEq(1IsqE2JYIauVi@z^Dy$)HPf_n@9W$5l{g4p zvR_wd32_FseHdr34QL+lU;qFE0-9JKb_ip@cduvu|No0B?uN@~@rICiTRe4t`9Gi# z_FspddBzD5y+GG&*2pd53}LxY7|7`jWeHNsDIT#}D6OKfF_$(S!77Y@z1iz8yRyIL zR<4m9exo#%Ao5-Z7@~CzRfb;&La)^$Q7d*@QlF zx@hq$Gzv%$*s_GVIRY?@P5hM}xR=KM`{~SU?#CoC!0IyX>#D+ljg%d2&M+YB-C<}T zgO9`hjC42akbni5M}7V7ZwlW!fYnM*TQ7LQ(y!b#u+x3h`YQ! zAM<~m`gEAb1+4QrRtKtXr9q?KJLIMqTHKtTN97*%(sX}#06$<@t;iNY002M0CDDnd z000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&03i+i+)bOi zfzO1%0m>|?Q^z33v zrfL;KQXv-%Atn9u6fgN<*uiDZptmhs9c-xE|H}DbpAL9n2)7zQ+*N))FQN+1P74!& zQ1MUi_|PQ*W_U^usR7gig4;{~q8BCZ16!Gg<%<&i{9*IGQngD%(rIJ?REjX2O;ajc zn}Gsm?EgYc5i+xn1yzd+QGiKnq;PN%@W!P$y%*BNB8!k86X6bU5mbOD2VjVW!leg} zkp=JpI(9aZmzh;B&vQ6ve?_;!v-dktgfYF5|G-E73f@2S3Fc9iR`qMpp#y7p{QF~@ zkM*XPCmC{6LQUP}XExkvh@0->@l*s!o&cIO6+nfs3t@3ucc{Q)gD`vKWIizekdp0~X^2+wncc&e)3*OaYLF{IcAP~+5=nM8 zxs-$i*`0|3_bcyFvGkP?w&J`4RVm(68u3Q!N&+B|{dD}|(gv(i{mkj*S*n6>7JD)| z3=l6gQ&FfWC=7*U?T%D0E-`d}H|Y}HMz}gBSKF9t7#1bA%IgYD0x6hm04^XdSg!*B literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1466.h265 b/samples/h265SampleFrames/frame-1466.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c7348684b5679fd28c102adb812f6f2a63c713fe GIT binary patch literal 3255 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1468.h265 b/samples/h265SampleFrames/frame-1468.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2315161e9888477e8bd3a2cbe6bc2272d5119c19 GIT binary patch literal 2166 zcmV-+2#NOq000330oB?6)I$OTP{Ci@SOfszKn?={z%14Rz;Q*}+5}I_&NC8UPyfIF z>xJkmUrLQAVRdLT#@lMUq8tOBbez^q-K*tN30Wc#1xbguX~&*M>S)DzvSz}kN>w$ zHf;!ZdryPKd|>YcieS|*0^XQ)*HAHpaK^o{v&Z3P#Yk2ni3n2WB7YCk;FTZAE<*6T zR%$(xrTv8OzUIB&+IO%ls0H2boTbD0(`JFHZpr*BV?t6z1v~#R0GJVlw4)fLzyETs z-Zw&Fj;S!-s+TH!C$-%Ikj{+Z_ue=dw<>0aE~D_~_eQwUqzG|?| zb52*-vO)rr8->%jxjP5OIfXxcTi3d^A2KrB=;nCYc zKzvy~P1R^x9e|g<~puj{rX1~~B`G}(%?&SX_s!7(wS6CWuzFvufed=z415qqM zWxL0BNhkb@nh(be0|T7s4U}rX!^m^ba;~v(%_P9BGS_Yf9Zj+({+daS^VYmesOY{A zYR<_fh)XE%S7pgwuHqH`vU(e{(VPMbQ&yBV60WrSFsolM+?*Rj8e{y!cqadJZC~jp zLoseKeSr6MiY-l-kT_-MmZFrolsxZm&>X&qNgi;gQ~$u~e5V~*lX+cqGGG=iY`w37 z5*v!zPMZkR4WWr8T-{B~5tA)?pQ<1gmP{Dg=vYOg|B?H@zwNe*=6m^0GZva0h|=x??DdHjQWznA-q!}5n12X=XoB}f15K|O z)=+jCl5zVoERM&RMrtO`ZP2EZ zB-MV}Qm-nb?D<@*EXs2~+kd@A^FW{VO~S97Bt(Ko!qsvFVCWo=PO<>gWnZg?D(DAp+qa@} zJX70RLVz>K9{_7NKxXQPNYzP#a+EUPA|&jG($dTu^bQJ7$z7j3e&*04jdx`!#ndEL zz?XG*6bcnO*>a~yM-ZuRS0VpIy;!DqJ~V7nR?>zJuA{<$Wt;|Xo49B5QDaPbiuZ9o z{|P;~fOlp2si`q=KmY&`@K_&q2~)u3CHp(k|M&b(kQW?m+by3&NJ^R<4V>QrO75lp z-%0PK=g*5Q5z2H|Iy;x^dVN5kYrjUAtAjzzqBPPk!Co;K;UgX3a8holS<#+ejldlT zWJrpnPCCs&qVJbSG#65|F7D)f?tpbiAuYh{9>}HFvD^Ient)uItu}~HHLvflfAw$G z%S3koEn;rEBPWTTyP}WbKj03hBh;-21iI{rrOJYWJ!x)xbA;@zoL*Y*KtkTc7wu@f z5e4W0Hu9#awpM*eIL?f-pB?IqvV$6U;qoEwO}f1W=ObSc+wkGp>UgRQVM%{8u_FG zJ0c#XFPx*9=f7qrt5G_DG;MC9;8cn^er!ipMyIiK=PKirSvA&YoVy-3!4<>f7H49< zXR&5YQ?(WEcDjfE|3aYu|M1%V@&ujJSfnHX5YSky$QD2V06)Mb(TS!200rDCD~HcIsgIh9h{f|Ar09wEu~55)N84}*yL?j z!CGNv>*nL9HDYYWjffG|rN7}1OQ>#yB{GTz=|{vQUDu|(XuFI@8)+jW{_WWSS0<8P zj)nK7IL(zx@$|}+=v`6(&@25?I(FuXBD~JTDWj==%v7JP4Fuj4I`jES zUOfr@3qMdpC}pX7RzJl z4lO+CfDp;kh|Mu1tDG5G`qo`r}; s>r_|)Y%6+Bc21O#RvI6PDaGLH#Hd4YoP68JAg!nXNhks-m}~$pAm1e-Pyhe` literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1469.h265 b/samples/h265SampleFrames/frame-1469.h265 new file mode 100644 index 0000000000000000000000000000000000000000..534a47c3d348e0421543ae325c3536dedfa22161 GIT binary patch literal 2505 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 T|6*7mt*8K(BmyazYyd7Gg3icE literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1470.h265 b/samples/h265SampleFrames/frame-1470.h265 new file mode 100644 index 0000000000000000000000000000000000000000..563ecb9e52f9f781ca6af4bf99e91785e03672d5 GIT binary patch literal 1885 zcmV-j2cq}@000330oCdM)I$OTP{CS~t^@$!Kn?={$MUWMz;Q*}`o#Ra<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxy%63ye3@5;qRI_g z+CUAh&x~}`BJy+T)}^p35~A(AMd$ed zw=t?O|D8)EzRWdrST~cta3a=wg7RU@c~+PfQkP;|EO&lK@21c>qz{sl0%lN$AAzY3 zO7p=$%c-Lpyk-EG9}4|Ji{4a75V0?$Maxji^tK;lQ3Qhj@*2NPPeD44{Bt8uzhuii z2;bZs4q$coSAe{#=aT!`!aQ|IxD@vSX65{a#MTkKv1*@Yjdc>Ze=`DPSwPd#TLJ#3V)Rph~|lDLq+VX$&N{o>nu&NGWw zPl05{=2ijl@HV*PG!`+;ADGL(4vbLZo(1{EJE^t}OhKGTI=`VIE~m>i3qbHuud`1( z!?jM7tUIX5!0`wL&NCk)?>%nBsGU9U%cr!*ZO3emED zDnBK%`G&<}_1wN)t6mV;j5YjaZhh_igb~t#a~(GNXmkHlLENbr3$20Oi4j~-gl*X} z;Tw@1GcB6;z#5Aw-8F$b`P=V07uDV^kS4v?g`2jkj9)tV6vwCx-5Pgcpv2V0g85CY z(GX;6vo4S#_Mc1jh29tuuotJ51-a=_8WX?PfwPA$fED+18O<=F7A`mtuc9F}%TR8h z000K0SRZtoOZVQ`2MU${zyIROyP>k6JSlA67MAT_{!i!xJ(uCP-{-I$mTQ`T*S3ey>8#H>SIH+vp zy@&PjipSV@GEJ3Pe)@WII{UH7400_w5j9gX8T^`39{XjL-CRBEV(44u9mX zFU*#CtQP9x#*ka|1laZ}%(tf6n7{P=)ACL8t*3=A+X#6L7`nqZDG=(>W;>#E#yCR6 zl}i5Cj$MgVQsU?$>e@f*PD%eYY+$opl3LxQC z!SlB_t-OQ3P|EkD3cNuaxcMKwI@xi$H*-H#vPH_Dp@TVul=hl{p25@J`u%n}ovn~@ z9HQ6fPPKBO{O%_3CO3MXDV>Hwws%>PyabK~yi*j(`uRSrrf~;iH<}+?%WS|v>AGzM zO>yy7z$b!1iJ~5 z4nXKYr|KXVUX_ynNEQUo0m4`v(p%;esyT0E8=%rjH3fL|M2+DBr}CJHCpb86bVv> z-eCBKp)l9IDf;kk^=CnlZs5xpc5)Ixq+3YaX{?Hd*%mMMJANHWPiUBiNX$Z!_pUxS zB2;69HFA4vpRkTOo7&R5rcd7x;fE>ru;=+Zu%d X#B%tL@;!zit*8K(BmyazYyd7Gj#-`_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1471.h265 b/samples/h265SampleFrames/frame-1471.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2b8a78e7f7bd8d0e193ba277509a6e00a31e01f7 GIT binary patch literal 3393 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1473.h265 b/samples/h265SampleFrames/frame-1473.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d03f93e216f9117d5402b16e776dc04186bb2c73 GIT binary patch literal 2240 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 Pt*8JXU;-(aYyd7GFuRix literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1475.h265 b/samples/h265SampleFrames/frame-1475.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9c6db00fe29edc7175fc498b05053cdb3b8e350d GIT binary patch literal 1918 zcmV-^2Z8ti000330oD=!)I$OTSixGNwgdp+Kn?>Si)ac0z;Q*}+5}NU&NA{c%loO9 z>ptJtBqtFz;~bWVAhuJeEaVCne}B+JkuIIDkBHKM{Tuwk1x=_(_I4=3UZ55j?Y$l* zqi21gF=IqH)N!J1=h6r#c6xsJ#c;RiS^h&pD zE6)W3E~boX@t6W!d@J<^FL_ZQLd3q27cE08(%5~GL*ANRkA}@LJp}4I@yv}r{gW*4 zBY$vkIf2*VUIOx~o=fj%2=Ub-;8WZQo0swz8U13LJ21Goxbj4-%B{zaQk%q4ZpAMV zlT12eM9C_(sv#JX)Wz9bf%LieWoTigd4K5M3X~X+ww(1(Z4o6n3jpJuX4a0+3cn#| z*haOU#hNH~8G-tv91|y;lUwvU4RbXd7c0GAB%=+9=f&P`e0-AsP0)TC-F0Y^(_Fw* zg@|9aam6Qqe&H!Mw@VVh$AZd9MBj2=Y!UB499Rcx%i8iL8PcvEDv( zrjEpiz_MfKD*);E97J)N3m5n=QCA=h>!*EHVUOrS+~2le{`DfD*#@k^&5P)0$k&`@ zKrZ=ozj8zkLIpEXcj$>B;K-=vNyJ*KIia>PqAkZq>%aEC-rirD)%%aLALt+24e0w1 z*Qd)u0S5xLBRq3ogG-vKb+K_0UmW^Ea0GG)P;{^WzG?PxFr?cJmkjmv3jn-nBGLwi zO1<^`Me_E81q{_(WTV8^H*=#4O8^U~3&4W(esG`TM*IOpE7Q6X*dQ(cN@$BS$G)*( z7P^A6^~RLB5qHcc9wzI04RL8dJNtU2;BIlkWTv!lODLpzujr!61z=+?Y&r6k82@{-)?asJf6T34YB8+zE4Jh0w;VU~ z+4$f8?eNDk7`+~{jTjl1R^tjD*QriaZnXo96XX3tyIi(m51c-lJVZ8V6W%PCw35eg zA*(^bQ=`gBwd!btCDTZ7L1@dH~|5bjwC%|uYg`k2CKM(pb(BG~?02XAX zO-MW5&jQYXk!;xfeK~cTf9d(BcT}D4jIW*E8gltc zb}3;3IP3nH6dk!RnD}Q+?zrq1w8v>on>oYE?8I%-O>t4otk3X_#YoxjCkzTgH27Jf z2FXgf5|};)rSMX>y?SVuVdTM@Z%XO4|M61q|MxXGkyaWvw54zWR=`-T$QD2V06)Mb z(TS!200rDCD~vi z@#Q(u)bUA{XCh_*Hvs(6pbW91KKzH`MIh><4h>6JEjLHD;j3c zUB7A?A=G7LimtQVt!cLh!s&mrcFtU?dHGzwO%P$-6&8xVW`48r0lmn86&t~R z>vTCk47nGRx|*`}7B`7iANhxohBA>zL6wURXnjTd?oXeolMRd6-5i8oH~383mN?lL zTu{aar#F!jkEvnl&SVl&@+AU%GcZ%9Ov<~MYe<4{7W6s*AM<3Av%(VwpgR7bUf_Lh ztKI(&-#P&<_QuR6MjEVI!eZP#M$!p5q0C(QIliq;nzV_!mGneO5>DvIwo%!}IX7iF z7qATnvg-7CMP3dT9AN34yyf!18}Un#veON7tJ52H4uPc7$+eX3QI=u!;+X_{nFrp2 z5Uc*K#VDTJqXONN{5Ca(CTxa}Sr5>587Kbbz(5kY!Si7TN$A;Y3PpkvWq>|sXJqy6 zB?mqiZQIMdCXS>$pCn<}7bjrzOc$=OwUFNvB5T{n@KAeI(HD^G4Tn~Yqz=w9%&-%D zu4qBWXCI~4wiEC2zB0=R_8L9;Ae|GKL=LGWV&$IVEbe5fzgJ$OQMw{=nn#RzhTym% ziKSNgEdL9U-+f#>ZU^48mT7lHwlfl`N&ix`Ni$@g9BKC8*)e5ngd}c+soc`|-6iV+ zCXspe>0?uXwgSS)5*@ksUE<+seBESHhE~iw&lb@r0W%$(m;hI;Ag!nXAYcM1m}~$p EAn|OgMgRZ+ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1476.h265 b/samples/h265SampleFrames/frame-1476.h265 new file mode 100644 index 0000000000000000000000000000000000000000..bcfddc2cb60398052e1eabcc17ce32f6c1df71ba GIT binary patch literal 4387 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1478.h265 b/samples/h265SampleFrames/frame-1478.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9ecb415163aafe37aed342381715714decd0bad2 GIT binary patch literal 2217 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1481.h265 b/samples/h265SampleFrames/frame-1481.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a95e8cb2a3edee2c79a8b5919bae4128c1f24f0c GIT binary patch literal 3085 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 bIsh_1fE}Ee00;OWt*8JXU;-(aYyd7GVuk(P literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1482.h265 b/samples/h265SampleFrames/frame-1482.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2eaa9129d471ce7664464ffd76c46a115b404241 GIT binary patch literal 1680 zcmV;B25EU>PBfLm#8 z87-v|JYur2{U5r)dIOb-@by$k#Io=o^u*E^I5i%V6wzyX%=w9O!<3LcNKAiK_N{8oNEF_9p zhYo!Lj#(m@Xa{7^Q}=|L_QzK>Mx~&cV)|ZfIMVy?D2#n3#}dB*;}K-x%DPR?H*9@H z-Y+bRG~zPSFk1x<8Lsl?OM6M*7n{Gc-HZ)KX3ES?d+ab?@h9m}FZ8xb#_N8&ytw23 zQJWfybic(J!tY(f+PHny2ho?#Tf_)P8mbhU?I#j&^O#*$cysg$hzpLPMZ}tqs?Q{C zwd>!hCW@3h!Gq)E)IFHOZw1rF;mEw7`mQ+?3<`c^IgKXnf0%jv;5NCcrTL4{xcMMJ z6KJ=^UY)2`fmmHRja~FI@ZFd(21_BjPTtyJyyJl%bdf2>s~%giw3xr{ZHG?Nbr3BStg zszF|mcgCQe8$0vLP(1uRbw#ZcGO~B0z#X%s<}r{j=R+Xp+xbxNd4oJ{f#Posz=7){ zqw)R`dH*(->$*L^vi|9Z@thy%QU!6*4+=&c0t!2Ghj7nq{!!u3&D(t>9!3`(7*pLf zZ{0C%QF3Yh2GL>~9HzGI@2|4-n>vU=Fxo#pG~BqPQK&%O^(CKxcksJ6Gdkao*ZN<; z{ULT257qx2{gyAY{yh8mU~vw&>;M2bpjaPv2rt3}u`Dc{Y6bsjk-$Vh@#bZ#?!!^- z9=YjHD6?CCU{YB}?HvgsToO$zZ>!Li=Khn!;Btjwf5vfUNP82`WzlHx2a4&mA%&*c zA3y&8&;-Z}4ud1|pJbvWD-bZmYVum%lM?_=Q8UJV4@^svkfg{9Szo~YR&WY&?~jW- znM=FyMu}uIrAYv4S1vmtEq9%!B1d6hRWS|L|5K}mWdk{2xi3h!Z>g%e&SEP?n&Pr^ zKMBuF7#A)`01#FrVoJ$bH`>!SVSTW&0=^HgSoDc>E2e-BnPYXjs~DGcK6UunYL@#l z7q`DoWHT%}$*`O8Q8cz~q5!LUxP*<`B7HyYUnJ#ant&kAdX+Vw=A-maelR7Qdv^B> zBfvqqc+{{1npmyK7C-<1Kfoo?iKYMm1>7ntjsO4y0NQ{tPkjIY0|WdPKJowxmHeS@ z(>TDeVKU9 zXvWP%Spd7KGP0;wm-AK?yg=CLzi`3(;8!s)b11e~UU%eZLW86&K_f9|5}4D~Kg_5Q z`$C5)W5Ad(00j4gu{d>iEr8*2)B%la77Ncx8Ob2*hcBk9-5jsFPyei2#ew^ufO?qc z_2E805T2A=^MABoLs}am#vJi1Sj!1_-wFSSt);ozNGwLx6M6lbXr3wU(+uF{D1xiiQES>}d5;G=jcp=NdQA1f4DZ z_chV@L9z#LL1PLC)pv9TQ~_S^ZP#TStdRh}HLP_kuJ_cR-nOT#R9Qjf&*LfMy=_go@nw3UB+_MsakUg$D1RKKuI_uSXJ+fMcclHEe)2O|y-Md#*|$ePOtm{*B&f21t)$LMG5#Q5Hego*7i(L|%(8QF=7PDn?;o z{$yCvz{eJE8t+awYD>(u=F)a>N?zs`K8J>H#kTa=47)$m@>OX?Qh#d!w^7P|KIfxc zS~2^kTYXD?1$V_?Qo{0AmIwn>Z)vFrM-cHUe@@AhmUsj=#RV-Toh8Ts=WvD&O1UKh z(0lb~P@%TeMfXB*q`1`MP{8{uhiqL~ z>zl-tVU9F0><8QpF}Q`B54!-)nY0$yc@5J*Qs<*4%&hqIUp;p|a89LmOTqW5gmJnv zYwIm)5uRmzs+HtRpl{02=v=;JdIiKp;MlEpqHsX`$tHr>X7l4+JdC&ja1@R^5=%k* z?C#FDat!fzp>qLGZr$b*#}%C){EyxK1N40##u4%VZTvI#{~7q#*Z-g2xMFTqYcmqv z+hY6Hr|Wt(!?&;IyN&q|$}WjCugmGzqGB#gVt8Ln(+68#ktcbB_v z|0V{VNGiKM_v7?<-+aYVWft|O>~@yVX@MJhC@E6wX#X~->%#9-L+Xf9Ytj95ns*$4 z01dcUA9e^Yz}pS`JJJ95{7#S;9BkVypF~JXnj8(B-vLVQrT*VZ@1^I@i!2e!bXPh% zm+N|cK%i^CMwqLELCm5w(l5bYF&N<^9pG?MZm3z&o?eZ>9S3Acilk0D%|hYq0`WY# zeWZzg-i0?w5LC+5cQ`UK!;t+zvwB%-IEBgG2{9WOQJ?>1V_Unppx{fpLv;PC%^sQV z`#It>lIf8p;ZL^f#Y4BDD0A4^o%TQO%9qokp+*)v-Sq z!vOF&>H&SrPf>od+>j~n2M;qi+zv0pRTvnHw9il@`pV>{T$;1dv7 zt;iNY002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g)021squI&n-v;T`f@IO_q z@)ET12F1<+rwA9P5Sw_EjQRa_7Lvm!E%5_x``|yCy0uasK&Gs5ze#;I>n0dw=izhT zlj^OIOE;>lZ0b^zhpU1UMkiBgpk6$Lw(Uo9=F9j~jh`wB0Id(PO1{WZ74rs;!GDk|+>R9sRz1my^nrs-B`bl^|KFsXoqQ7NKz#eQuX;Z_K7@c8Pwh1I4!TF50%=o(eh-g-p-z9NG*=1*vb_{y}eC_H}4Y6QAdl|K< zDK4}lC1Mj#*`9j$NZdcQ%H~;_xO5X;lNYa(xiH@%22+!Y6)0}i;iAmKEh(I9zh!@U zWQ%cXN8`2m5LI~lzBxxV$n~#2R_vK!0KP1-*F?6wbv3NESQQUK02Vv&? zY48z2$r%Q?L=QHFRVf{|RgNfD)MxE^9>4|0#N+nV#qK(^upZsvZqzXWtmINpL&PSs ze7p8EgLGrpHry46Pp5oVSHdaknyqaceX)UAm@8~~yjYVhh+f$i9&fugFBTmH9)E z;iG?mC_7Zq3hP5}ybTcGquqRFPP=ugbIQZ{0?aQT4*BV8;FIQ!VsmUPDSYbEdI8*Y zi>p|?_(6#X$(#g&Io2HJ>qkO@Q@9Uo(>{zD@s7W^AI1l7E1n&;&@5U#4G((dr@(~j z$tr@6Z)eo0hoH~~N#oNX^m&vK3+;dUw7X37#H4HlaK-rl!UB+z#AA%eCicoaw?$Ww z3)sja?SkwTy_61Ccz73^Ukz8RDTTykCAQUxw(E?#geVT^8F8x;JpadZP>zQMmW6(82*D8hT&BEby_qoR4W2qws$Aj! zUpwfb@f_H=KpE|kXvRpj)(R*`;L*=}u{KRPD58iG6TQMB9AA{c53enj%eiL&WnMup zii8n!-8LLzi{p+gzN6P`^y{<~^GIVy{+8gyPx1WFy%(ZMkzCZC?R(aCuq6Ib0LqOh zL2V~AfATkX(R^$Te*nR+5f^NG530Mvau&Tr%!+^@OTzt~;iTyFCsfg0fhGx1AYMj#--Ru>U0_EvO&J+I3oT#v%SduWj+3<4M_4Gj;0YiMq z25Y14!EGmql7GhWWmhskxvOMpy>^0-4o{~F2gn1Z)9$?njSKbM?8g#sz3*~D(}gXp ziDcZ}zCnuwtH1wr(0nH|{Ud#wv-S=X3mAy?Eihnn#`;9_THC+*jMa zgWc}iW2iZTG#!QLC*G48ytGPlBRH$Swc?Id(d^E*UV878N(ue;Tga=4&uxl)h*FMf zXt;hXwQDzYZKVS0lRS!MjG?+oc=WHw;(8xig~Pl&oSAwwOP?E6g63r@k5al=<)>hjmtfn*Nr8Zq^XVv+xZIyr2?vw`YiQi~Q<^0+3`l zc#2yO5_qVi0{p{1R}5e%WX-#XPiC!WN`ghfuG^n*xiUy#TNc~#gzyup#T+U>S(tci#l;x>CLua#ft;}{BO|)B!OA2Puf9o>DRmwD z6i6Z-mGaN@#z0)H~WDwuSo(e(_rUI$trlK&gPjABn+csN^oe* z^fal10_}~mR;t_XGJb_uq|#)zkdmZ8eo@=DKkvf26ih4qunzL$Up1;2{9;&O!2_!;P2;D(~o?QciR=v!Z*#FXt}C1No&$K{qRwD+`l8Y6=(-9E8`p zlGPGi;O^Bd_B(On!q>W|jgH)gZW%o|^gZx|(kI;6QR*Cs;=1i#@A!K8k>>5Fi(B_Z z0WA%vpB^8k9WUd6|6G4rLD4Vx9WUC!Iy0g)5zkMDmt%r@>d%C_@0l{$+;lwh)~w5vj>`Fp<&pu)lAh1r_qCbw>Bxyq6|oVk#Py9@LmXHgJ0)f60}#i?_DJjnbMO z9HOU@7ytuiSRXq4W&G#=zxrmS)y$JGnrULr7a3_RB3{ z%|D}L0Le*~o~}2GlHGA%TYUrj^RJ71V#b}kSq=s6crsOJ{cho>lGn?lShNqYTxzZoaKLzo`baqCab(W zSK`jR_2r?bNqrr8EvkU1sZ1B&8OoohN0ZW&!ZDhr`2pzi1+tmi2RUV<&5f>aSCeAT z1Fk~w&5RZbGmuZ#h^2hd2$2DwP!gMW)dM=z>} zhZ*mpUC5`?AiBvM`)65wd0FwrJ0W*0>N0sYFlx6m6TjJZiiI#;t4^M54rw1re-;gh zHHoD2s-VxJ)#;v-i>0={DR=~;fgH>cLsT98ALnc3h|rp?eDbk;;ufo`gI`&(-wPxt zt-u@O3k$+XmT{IK4%Hr`h>k0kwp(a>+__75N2Lm^w5dKz8)g!UT~p5I-k%>RfhL}N z9lC>>`h2s+pv<9*Md(j%4cunrS*s{e)tBhO*uENWrKgdgM04Ydhh)B-(ZZp-cz05P zsTe2|-)A>dlDTjD*Q*EEIrsVV!mU4o@rI(wB3=u(H=No3GHkucD6uwOc>%9Lyi&_` zYvTS!gtb{5SL%_dp{`;h(a!dcKPO0aB3s~rGdKv=Hh zJ^%m%028n!(TS!200rDCD~7)Xr#*Pdu?{xE%`%E2bJ!U;P!c%H?R#BHgP!{A+-wv9 zzJV44a~|deWr_?4{+7}hLh>dUmlkx1-d0}gND*;tCkMy4x%fnY^UXCGsfE8x+rO^!}=ktBUKvtpbgZ2WvQ4 z$?XiAo&35L;_@;^f>)P*5;M}FYot072Nj3sxE^1wtm)Fo0vt&!t>wA*nUWW^8tucC zdGR0ZgA1Dz6Xd^F=sbH*EG8)tf26nB!tTI@L&RWiiOA_+oA}#qWGDbTstv2F2~R0N zW*Qn4mD7}V*J*h3v2G#G*1B6ze*^k%+=9{+KU#dP#(dC>Z(O~uz%mm+OF@+}B5U`s ziXlgC%4bvdV7rUXCInp74a<$$s_hkP%%q+VMYn~`1D0uNI%JUeo%~@Q&f^5^@v>s? z2GRK{V3GwFo`b}BvpOSZSO6OEq<L&9)z$?=CLZ_q}Q6%62`fg tEUxr!Z~#A>L0A>DFaTo*;1={c00HkEoR|Oy_#myQ03cujDVS^kE+DbsjM)GH literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1485.h265 b/samples/h265SampleFrames/frame-1485.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f22ab45d5f5cd9c554185fd98381c0a3d1e3f8a6 GIT binary patch literal 1837 zcmV+|2h#We000330oGyv)I$OTSixHYq67foLe^SDmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTMLOx31i;Y9GNZ!qRI_g z+s+}H6{tHJ<5D6^J80GSe3Q-j0`$`6)0a zWe9Qj8j$3#JQNH1nlY=!U2$5e}fPjDt~U&wz-mub>GgsZXdKn}30T&!7z zZfd|WlFaDBWLE++F6N}%0Ub0>iUFN!W6w7fBJrMSDgM>MJNHY%OiJ$90(!TjHk@2N2+L38g~*H^>-aOSb23 z$$AIbixB=+q$rlYUW-ks0CPUPXqW??t=*5);@xt%r#b+`7z(s?Ej$wXU&j_)!QW|y zEu>%04)#Xs+>5?pFz|To2OzzsX?VZo-g()oC%e~I2fHiRInn&tm0y#-d*ugc29AJE zwBN=`GGVAm6qVotli5=EFS=qjb<%kPhF&I^)Qq*M8_*FRL+Gvf&fnp0mHi;Z;?i)6 zS(3UMi60oSM~BFtU>xaE92O$({J<*m(|NZjzDHwsTLAyRPpt5^!aMnGCVgFO-3v)i zssH>f{zZRHuZ=;3!-`-40+LuCbelxh`ZOUs5n;a)|NsC05Ys;jvisHvFe2;(2d_@? z4rV*9b-{-%x^)Aww8~JI`8N74vZ7n>8zFeK4@%QmPPfh7`Y?yU(E9f#(5!^Y=9@eT1qxuOPI0ZH>XA^}s?wM?eEls{+OP z$q*UcOu65F0smrdgytrU!uEK@mMJqv+5PW+9TZvsU2cBL2pg2LE|*3B*ufhkM9DKo z&sP_VE{l;VmBt_-8n>!b>X#%?h)0oxVf3t@jXj%z%-@B4vn&7r0{}!oSgptwKmY(g zz$MX%rT_p1+$t-M00093+JG@neELpng@+XZ0eJvL zZn__gN)e^SeEPoUQ=oi${fR@0%*EjCMIN%1#SC<_jQ{Mm&ynZ8@`UTz+)m$JP(UkY z-UAd!dkQC>nfzc!mLu|uwE}NGfNeNDOfJ6HLByrfKI`QkUFyVs9WQyCOX1H}1p!rx zr?dZHg)EwNNh38cfi$X?hjth`Q=Dsdv{o!*y$}tA2+Fj@DGJVtiU_15aE&xqE9A)u zbbE{=4qxDBVy1NWK=+uPuo&$&na9ks(pokkY2(~%csCQ^vHD(4*&zA`BlyzgE~_Z) zde>7^X7uN+7bR)dwoo67U~EzCv})JU(&7(-lUt!ho?mX#B#g8r7>*(PXS;KtBd6dE zyO5}^L!A7X0?xUFM(OTh_JbN0F7@h@Bs`E zNCr69D>J0*6LNh>mg%UH{K+4+*4ZTBk#TtGPJK;hyb3OV042=Uo-x(L`o4F-+HR=W&QC^D%={mk*70xeoarve5MLP36|*n^S6RRo b^f~|m?;V_&00;OWt*8JXU;-(aYyd7G2i|m( literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1486.h265 b/samples/h265SampleFrames/frame-1486.h265 new file mode 100644 index 0000000000000000000000000000000000000000..54daf5d9f56312345fa563494dc64aa5c2b80b5e GIT binary patch literal 2971 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 R_#myQ03cujDVS^kE+F83xa9x< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1487.h265 b/samples/h265SampleFrames/frame-1487.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ad91ff18e7105e81935b2c1ac1c01fc8969b7250 GIT binary patch literal 1907 zcmV-(2aNat000330oHN<)I$OTP{CI!SOfszMgRinD4(hbwc zW9Rx2I{W|s|K|@KXeQv1stq}|fU7nnP53^)Kc~XnMDE@AQD`0F<<|FJ{|?b1!R!KWJo)LiAS0G-X{{mDszgN)w`d#l@60%|Kiq2X}Z>+TVk2{(xAI^GSJDQ!tTK-V^*YdTY} zrxUhDY{tb{oXwY#v-}3X!T~NCJrM7~*BT1!UXfBIs6GeRxi}VYHvRQQ2u?48U)p#_ zb2k|v1dq0K0At_w&ax*CU%0P&53Z zJUa>|GI{8shLA+w^17&i`DzoGxl7KgFEvS9U3qdm&W}b;74Oa00Ib=SmH26Pgw%}i zKne`(sVk}3Ltwc|GxP>+VSS9D2g2WI*J~Tr)R$bMHpq{`_lmMV?FDWXITtez5<86Z zfAdLueqRwHV3`qU3ZoFrv_Z(S(%C&OM=!Dz1Y?9s`7G*vfb3+~(kMjfMEr0v+gzWU z0&9hvlr>fsqgTa9ILP%FMcnJ)yD|puWXI=8gzAv00JS-?tL?!ixU!ZF4g`iI9}7t@ zq`dyvlXhkO1_7vx=&dp2e@cXd6F3vpcqiU?t9IDc$Rr|QrzD!Bvc$9kOxbSF_Ilx` z%pJK4{(ZX?s=m3ree03~U*!bm${w-YTQ!oj+3D3A{|gMKAOcCW;*Iq?8;i+MVbxVY zYwIe_e9s!Px-3^GK9(V0qkL6|-|_nYOZXq8F2dpZzvI8M#rA*4pMMl7THpDA012pA zA9e^Yz`^|qCHW)ZM!3IGZ~H`!0wMp8Gc8|s8joo8&q{ekn%nyVl!`xS=t&abl4)ao zUWBhV^qx)@{T*d~GmA1q*q(DPi%CR#2F#zyee+f`|NH+y6Cdnm`Z`JU>mow2CtOCa zh%MaD#3GPBQbDyi;(9$2)ADssJ^{Nq)TjFGyrtV8?Dt@G|re~%O^DH?u^>3%+|H3U*()wD8j&F50KDSh&vMT3-iBn>iITP83JQbW5F9l!lW+vgSgptwKmY(gz$MX% zrT_p1+$t-M00093+JG@neE<;DfMe7RmRTFGQ6Xp?Zhkz>aVQT&i&>(W8GYaO$wcdS z-CP(`w^?JHwM)vi^*9%NdB)*4CT!XQuVkzku)&f7-_?yNeMAThxO}^WQS1DKt5SPC z4t;9ynGN4!S`BO)&psS_GR}vZ=`HSRh20`D=Bv zzh)wI1UFUZUv3fDzHg()amB8<*3Z!E44YoL z;b<*x_P)}gJS}tMm9A$nYTORr4BalV;xvi^AwP9wWWQTybRNpVBi0|+_r@p=4*K}P%7T#+ zfAGM`-sRgP{j!4{a1$(c`Eb@%@@?AIjU{!jZ=!}>ShcQ!a(J-)r1~hUC4BAOiN|pr zl|I{+1ZYk36UkArhI%93EO6a}>uHbv#-HuB&onP$Q$G5D^F+fA36M{rO;UpL;KixR z=15rSpfNj%Q@KxIC@Q?Gyd50OR#e3)Ot|K-F4ep?bLmoDY`_r~4im_W#kp(V4Xi*W tr0Ad)KJoxBEnF3|FaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+8fgmJ9#@ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1488.h265 b/samples/h265SampleFrames/frame-1488.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ec0f89a63f3488f397cb64a05dd4ae7d7d07c99d GIT binary patch literal 2348 zcmV+{3Dfof000330oHl{)I$OTSixU2JOlvjTZRJwz$gj=z;Q*}`k5S*+i{=&fB)AD z&{?hPvW5!AgFFc~&0J%P_n=oYLv+PwCZmqH<{eJ4U>P6eo zNTLc^kW#GN^K-YJm>0>*X+PaS%*ilUZ_VQCvB7A1B5{HuZaS^Sk*-`LI+6i*N zim*ecgGXrTBW0b%tuPs(SdnlfNOj1R&wk;Pk$7Q1K20 z`0Gy_gbPwd!qW1n@MC|VqSye<-sHW4R17eT+8+4Wnn4$-FNDpuCeHgP(`X*5~{DH zsgMLnNn4}<(zspd|Kxt}@E@b-{xFY^`)}c&xA@P-zQ6qb{lf(qR>*`E-&mHGrLCw8w6S(QwSX!YwcnmZ20GMq;mNmQU zRe%Kr~a-FN=O3R0|6z^QmLaTs(U{C>|kRjK3vgFVOl+|wz7`|KfQ9~MNk!9=b zGv}w|(aCJEccLZ+4OB(+yq1K_mRX|!idXO--lFVix%AIn_iwmt6rID5vHLP_I0xn5 zGYxoxZZu7=*1o^xY`x*_ZK)L^m~5;)1!=|38n(%DXN!Iq05*Pp|LrWiZtwBAnD~xY zQ=#v2GD_FMIlJhriu-mr@V_r#GMme001bUSRZs< zuk4f|Pf!29|NB|}l(2{6@!z@kyXIf14fl>ED-!>Y_3!Z=LG!#V(eS}vzw=)Z0A;n` zqf3&(pyp8yny_%I!l0Acyp8_04=W?JXAwy%k3me2J|Xa zkp)bxS960SEIAL<3pb!-3v-;E&}im?g&F_$Pt{esiVg(3v^P)MywT~N@3Wqdxh|O! zUKIOo@{~L}x*=;gBrRL=XI@y)tl+03OpD78=A3kg0BlP=N7&jhWvhAkhu^C7voD3W zxT;KAt8rv25*Ak^L3w2jG{Ba7*CDe>{6p(qYd2~xGQAkXcxWDy>mM`RwIBe|$(4x@ zZwP`*SlTYNCIB)`z;8!;EkT|5E5Wpioq)eL@bwIM5b^}2eRHgul54V_jYMpiz6@dc z6d?=%3XWmb#Q65pzPxpdKjy*-Z<=nV{_O^Z(ylOX{xHwjFr{C}*NWcpybR##aX0VM zXf$q08e@I>rWqxOlQn5h`FjRCKv zb5jI`lI&Jdx3imKF7nzk4QR)2?g}gq6gGSGo;C*dP>5L$+tL(Qk zhH13sIp36eFfwJO(HeP+(e!dj(20sDlP2g4iG|<`F?d&gPNxO5Gv0SnEIkV9p5k9S zR>yCWF?&sy9Ss>%ve~d}YgvzHo`!XTzY8IV^!@zsR@|4=i{Ec;F;LNPEUh+qY=D72 zZb9MMVXcqudm+RccqT$T{ERQQC39qy?zu0V1o!{mZCC&R3E;`RyqBZy>{2Qp#E!KY zf_c73v%c4CE*ouQF+K-Nu9{}#qCLq(t2hbfWpb}CL{vEb#}!{it6|SjBu+KG+yasg z3%VL6^UW8)Bd3&Q*yE!aF$x47z6Kug@$UfHk~d*j2f7Q!dC2^B2(qMrF;9H}5Y-Lk zriy_-AV16EZt@`v(A1L1{SRgjpENVov$l4&o-`suJ2~VzjT8r*$`+X87K=lpqZW#i zKa!q{^?v}6lj^Llz8uIxDO{$%e6Fj#K25g%yW{ErFXl{kgN6O{ZQF}N*K`IGco@kDmTQ@*jdNp2$p7U9MGS z^e4TaL7v6Fbb+LS%egp7QDSLo`Yhw5G?Dy}9nAr04J@*Yhy)#!xsV9%h|ehELaI(6 zX?<`(qyPqbfb@HNEVFqp&}UKTaa7Iu*LR5kPVvI3U|R-fGlNvr+~RF*kZR3vgznQ^ zO)kNUtVUu(%Eji${0~hGkQ?=^pLDYeZ#kuKO)`U{KTzTb!|p5XgOLX%KR-+ofsAx8 z-)#-dh#qJ@EsuOD4GT(G;Kn~?)bnAZepk18G4j(OX5X%u>hN|m3}PFYYmepoF7$En z0kC-U@&%M*RzQm!g=?HcIsgIh9h{f| S2lybZr~n{f0x6hm04^Xz3xWUu literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1489.h265 b/samples/h265SampleFrames/frame-1489.h265 new file mode 100644 index 0000000000000000000000000000000000000000..26b7c76e9730ebedb0e867ee19751c6e5b721244 GIT binary patch literal 2386 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1492.h265 b/samples/h265SampleFrames/frame-1492.h265 new file mode 100644 index 0000000000000000000000000000000000000000..3b553bc2264701f9e5275b8216c26f4f545fe5bc GIT binary patch literal 1988 zcmV;#2Rrxx000330oIxS)I$OTP{CL7Vgwb`XbuAaz$gj=z;Q*~4T^qVG=V7-1Be3O z11E*TX}WOT6lCBIMjxuY&Q(DD$N&HN!^a1U0L98~u0y+24(Rj02iNEH_#1%aB<5f@ zg9Sp{Jv(~Ic7ot!{pbWX8Aw=->tO3b&C0MuWm`c z3OH5J&p@`kYS5_CXK#4s`72ayc_soyg>v$@arY!w~kZkq$2+M?% zM)dgVKk^inSc>#1-WVRSH8C$2eUY0nu~sKDW#p{?0jIElY#xt4p6m_oXTL`Rg6GD# z|I74VJp6C^T_Wa$iI7R-PJEQ!bW?hYf2j8uWv)Y&beo)U$oh-CURe`) zV{fdmwfm>+Kf=n1*C){?7FY80O6BY=p1%c9ZX4;9mBLkmr?K7alH zpb3qb&Gdd#o|HwsVg?wEUl3c;W9mBu3cP>8-J9}K6qx~BEBGI(&H+w70P$y&DR+Jd z(JY2^sUQtX_BUhW>eu#!NbD>MrXjlD>UD6;pksln;$`MFGz#NfEH2feB5b~>}z zL^z``0>QonHM#mhgpEEaO*PRyL-dqdg>hkV0`mvuyTyvmFJ)R()KMI)#O=V!p(3fw zhGmCYHWPj-CYH^vKpr5%=vxj`Hxh+HtNvLcm<8t-278uwj`TAov`m$(2vAfX9g$qm z|BD3w|Jz2y*|^glEAapTl7LvP$QD2V06)Mb(TS!3f|hRZYfTjd4sZWq|NaAm1eyW$ zjr32L5uvhKC>xb1uSn$%ywL$(3DR1os?Yc0FLCNQ4gNMcdbQ2ltIN#r^y1?}t;`nD zdoL#TS3K>NUoIT-AUpe8w1E zM_H;={*`LNWYPWUdEMFZulU(;6Mp^QfdSq%qC*l3=u3J_XD;FTt`f1tz*{U!g| z@WAyp6U0d7b#pP90gz%FlQ`}Fp$K%CeXt;K1DGIQew<_Zd`9m%ILJYxHgoN-l$xZ% zM4wYADl4}dLbm*H+w0{Y`fIsF<9t_)0c8LJi#IYqD$C5~7m=r!Rie~f+U=TX(k;D% zzgha;-F-I>wF~4^blqNE_C=SlRq-OW{(tr3EWb-HfBU`h65=__a<&?QmHztNFzA40 z*`7zkT}eTbSodzV?^-qm%N%ft&xy27LA_`Gk+uRw*gRC2b*;gq*|J8}+9Do&Hk;L$ z1BV~lHB|3f=D++&F|$Q@coOK?$*8mppO~*iqi3w}wA>%n6E*G@+O14k5EYs;;e*AT z-}>m_@m8)x1FIZT{P?9IfcI5g%4L;dt+jxiow2TdUR~adt$SK^>B&Ba3J%-UCa{5B z8GH&jFdg{LW2wGP5?wc7A70)+G1p+68oAwlQO9?O=-P zhZrae{*hH5z8N;m#SHb6c`&VSIWCLw_SmHDbo*nk*p8{O89!D3bBp< zeEIcT8Wx#f13tI()2Z<<4%1}Ol7tj_z&nkna0)W$6X%dcNCR$~r{0Oktk5!ghYt|d z5O2!2lNJTp3+y6+B_nV6UI$;%gm~@?oyLpPFqc2LJk zIo?qA?|JeP#QFop&PpjhvrA)70yEQqF;9H}9^|ip7C!O-03sk2voHVv?|>HcIsgIh W9h{f|2lybZr~n{f0x6hm04^XnfX^@h literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1493.h265 b/samples/h265SampleFrames/frame-1493.h265 new file mode 100644 index 0000000000000000000000000000000000000000..209acf4c82b8788e1f77b1a4e882af03d7f210f7 GIT binary patch literal 2221 zcmV;e2vYX|000330oI}a)I$OTSixVLR0Jz(;0yx*z$gj=z;Q*}+5wTtO}82BH~;@j zJ0?-~^*yMV%IY!H@C(`@z&Ynh&1B8jepLr6Btj92h5@xR@#Ru8{L(8dFBRwlO)c#A zHwgS7Ncy*+wsJ>tb~^IbyUiE9kwPEHNqwU1k@FlD=qz`@_sWpOG>o8#H>swCgInab z&$mfROid!No-l=;1m{Ud$4zo*$x(GO2Fyp~zdYyy=@YpB{vU1h$FzAJqVvh!+5mFb zFq`}NRk;vp(p;-iD=s1#Wz#Uipc@t%iZfdHcU_xugx$%R6*Z%Ab92(SzJgNX{>R86 zB#~#jG<=&{vCmxqE4JQGt69Kppbq+ckC1;&gEM7RGcq^FmKjB#`ow!MZ$`LKFPTHRRzjI&&B%(o* zZT`pP2xSO^TZIIAxSDk^(t3umO_7HYg6Gd|F4n@0_E{sN2H%-A6{7W>fNq0R>Ey!i z1aot}ZPz!6D!_PXIYW=Q8e<%ge9d+NNV7jzWA`3Sn|4MY<{QB|+oNj#Nje#eaf|FJ zyR1=aY`lTPFFdsrrOct{dwziB^g>AUhl$yM({6&!RVXfQo2g#B^>f_d(8GvKMLuQ}nm zfi^KV*vz?urC(iN^PlnWd^|8;T^}L?o@=nDYcuo{mLL&f5 zItpJ{S(N5~w+b)Ko%qY`s9cjmoH3IxUrtdOd#1f#LPFEVJuY2@>Jsp(M0SLDUkB_< z!Hyhj<~?}b*Ia`xxO6J9qtKnc(%B6Y<)|Zm?ih9!dTj(^Pl~_qajREZQb5IYuYeY> zaziJlRg&Jn1y(YosWOl79R5>1p!~mnZ){yx% z!r|_y=*1prMQGi~`P~ai5KFGA$Aco5UOogj!evpC;ua?C#>n}fz5ms}J3k@Z0I{2N z@!@V<_1zSI3I70fIO)M)a7(Vpnq27*9d|Ha7Xj6{1-<*YK>0D$eNTpotFk=VV?oJ-bigPe0wk4e*KANy=|QrdXb~dM^>1(z zK59`L&7D4s0cmz=r>DRGQbK9>w}*WgzF9f5{%jzY`KIb`?$Bss_?}AyJxX6WM^n2W zSaXS?!A51fL|Apg>Q&a`si(A2Qlo_Hdt1r|24SkS#Zuq|YhHU4H^EybZd zbbtS%Fn|B}ZFqQvgMB=BE&v96SgptwKmY(gz$MX%rU8PFD^@k%$xF_+3H?=FGIDjt z{yucC_^U*z&t{E4Wnp46S%1-xyn}VwN zy1yG1;7~c=Ri5OY+;}#4(V*fS+LhJz7&rH=>fmy$HZ3#}1{U60bM0!VZRK6sJ_^Aa zF=HLxP5{1k6}L0#;+ZVVGxuaUMTXD*z?_ys2xI##g$={!I%2Y(IT^+!xrrV~lYD#` zfaQefY<$$noAh0%ypd~kgFP{Ai_H(aqZr#{H;=B%ij7p5uOTgmMR-SrAtcvOUYaef zHo(KhPIZQ04p!3Bb16a*_f}>y#kdfxLVEGFJY6=O45;d6#vqr7xu%D0U5^0kW1 z4K;NCf&=?3n+!ui?kwEGI%^ILN`}$VJ;uCpPr z_~;@WSjZNQ0tXBy`Ij^z6!C}C0{ILpv&vZ)W2-uC`;^D&E4gbi_0X$!ZZoHhbv-+# zRR!xiN-|4bgVP8JcM6u@PZ)OGh34TnBu(r+?WUIer9-vRsvzP(rhK*l>`7=^`W+Ch z1kBhnZqT$#s7N&VYjw3dl9y+GjA}4x0e?PJZFnrXU`4-0-Er;N2XffzMxAeIRWw1I z3Qh$O7&TzDRZyy(HEFPK~fR z3jW)i*%eBmngk^W?TMx?5n&2R~C5P+#oVX|tZCYtnr zfAifkP-i+S$iE1KzOHG(=DcAS8__zIuJYo42OV7N9dP;aWk)-SrB$W*#aC=UZc5lj zEwNEWzKOwGJzJt%0$Y;+0y%kv5J8xojOIL`d)*7oPqn@)3UfF)g9D6*7d*>vV}Ova zFWur+JTRskc4EvuD=*C+d=T=0*UGBt^2!O%+gPzz0^Xrqr~b}i!lp5&AEL>mo<5bP zv?#n9tDzcF+cJ~bJU+HDttFk#-z*$-_dt)6Ssz;0F6lvFoV>>+&gpwZgll>hBKcsp z^*lD6?bxb5mp+;^A;A=UA?%%c+u3?O8sJ|XbQ)k`wnPmZF5bFsJ;u#H-hU_8m4-Fz zCg_n!txEv>5B&70CNd45ey-Y%cysSJ+lnL$#<0-cR1G0_ zkhi{WdQLMK_D^)Sb6O&`%BxtukU>AY*oH*p>p`;+>Sl!cgSZ3O^SZN=z}?JvaCh+j zI7NZsqD8InfH&EmB3(fOPZx{yOnc-)nz7urUDBqyQab4-0#@J4dO=T(G>n(L3gI$* z9Hc9>zI5){CAf1n@3!TVoH=b z4qE-LL&Pgn?g5yWi&^Th&9bt&xG{EPn~D6mbOExbRI2!zBEL47J>YoNh1obOjDv}Q z%H@;4pECGo$etB>+a0H!bt&#;{G1E)JnH!0>A)j>!XO0my(Dmd_rJO$=V0{}ZEYKjJ^Lqt5kkbE2u`zZ=8V z0~2Z*rm(NW4WM5&8%Hd|sw+r@Gi$12CwO#n&GV!P6k}Q^I>V~`51ZS1i)=m%lqjP> z_#pX>@3Bf)8Un1$3*FC7t?v>Q(mmvISr;*`YYu?kHNUk1&6Di4NBR=Uz+uIh*L;Vp?s zj28d~<8d`C@cs}sVia$~LoV`wf;xn71qi2dDM`sx|Mn2%L69IZh%NeLL%Z@;oSB-~ z$eJs12mK-)P{i8B@lE}>>t>YN+uMf2bStu7!oHx2G9TKTsHyb_!690>iYpXnEXzsO1oGk|togK7( zM7MCWMQ6ArPd6@u0)v;3R9$VtoLy?djYQ; zf8;v*xX6(v+8|?P-P2`5WHASUY2q=L>)%9nn^(Op>zp2{QY5^$N)9qeJ}pi~QTV)l zhVP?{L6LU(KVE`RcU|xUo#~>E#PnfAgMKK1n#SV*HD&I=Jb(Gw@t>2hD~Mnb(LrWhTtSDu0Zq9? zyOzJ~Oyk->gyUAhEx>SbVct%>_zi%~j0^_v?K$n)AScaHul-Ia1Re77BOty~7uj$O z=U^*oLVU5*!k6b1R2*0Pumt#%_@y!Wj=W7T1Sjo}WzbJ{Jl*8%ed z#?2_c%r;3gAVXTbz;Hnd@X8alRv6ZhP%dAdHbb>AS#SsN>;Sbu02Kna!_9YiN8mx4 zqy+mxN(bWatVa?5Tlillj-})~&1Oinn7(@egU2^}I~di#Hzx51D^f@TVdS2eyxiAf z9#F=jnvv!?t6uY*TJZ6X5O~WzlY%pGt-H;#s*|Y@04~)2$Kol&evC?#tF1w0fpl?c zVePm&!N9_J@XB+36%;ElkoIvo>+SYy}_Avhq^FRWyY8qSTQL*#4 zlZV?mJN^~x#S3qElZ&m*%Zg{=I3V!TVg6{qoeJ`Bg37~sw5*d~E8q95SOIVzl0g1= z`lk+<=)pVpji)ZZ6C(8JQYos}PgX9*Aq>|l&uf3bTQ+%a-5rjGTIZfcVH`@ubTi5! z-*hi-=WB2*x}VXX7)A;dZ#@f=`jISQIiF2t$+<05o1?Y={>%FR|KELx8l^N*t6Dw) z;ec4K<30cY0{|1SCDDnd2Fg7W=*~8c$iwZlg=1j44l4AOZKAJH|BL|+Rf-}FO365=Fz&3N+&Yn@Hj zh@?@J>j3Yw!gKyoBqKAOHUMN}-xVSrJR-vq48>gi{t({7;atv}bT_}&iv!Wm`q{kK zUUI;~JhFD$XX_)w`8f8%88(1Iw5MbZse}1JyAz23k_*UsxJG00+9tQ4wn=1 zB^4PfQ17O1y!YTix`bJ3xgA-xyDmt{!@>GZcb9`W4T z`2BqLq@cEd z;GTLqACR6a$jhL@7pTWWnilyszU@frC<@6Kzfq6f46kseN`J^v{+$MDLnn5rPsadP zck7J!(edg1lDmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$7$0YB!dTDXZxy%63ye3@5;qRI_g z+CUAh&x~}`BJy+T)}^p35~A(AMd$ed zw=t?O|D8)EzRWdrST~cta3a=wg7RU@c~+PfQkP;|EO&lK@21c>qz{sl0%lN$AAzY3 zO7p=$%c-Lpyk-EG9}4|Ji{4a75V0?$Maxji^tK;lQ3Qhj@*2NPPeD44{Bt8uzhuii z2;bZs4q$coSAe{#=aT!`!aQ|IxD@vSX65{DfmD!*zcSH;gNcj>aZ5rN!*FQE(HJxS z5vet~eNwu6Yy`89eF3|PFSfY^gMz02c#`qp1%B%8D6r>6GfjncdNo+{;$-RMr65!y z$w({~Vh_013QjYEWb=}0UW>u9=AlI;b1UFQZk_tAC>j=jfmeGMbLUvPxKW|ms$T+m za~V8&pW=8DR#x;!uC1rm*Vl?1&~|VkBT(Lan{dKTHG`KbNW|S5A;sFQV ze7zQ%Qx`Zi=Yjfd>w7J|BN z#$Y#s-vY2(lJ67t!2MYrVZCbrS3e_O)w$weN&iJl#t(*TZjp^s;mc|ZcZY(%IoNqOQrY3PTy?kr02lCBA9e^H z``ZBFQor~A{8?9YHdF_T`J2Mh+{6FMAb^L=r^C}tAq0TlfNIWByixBayVK2}Kn{{h z5~Y+?Te|J&h? zVljHPWePAJ@c&a^JnuL;+FM@eH+}K_Lc7eiZxL#%8aztP0|x@EkyA2s(fBb&!k>_0 zN1(soeL0PN*yM&eH5`bVqJa$lO$@JnvdYAnNl1;GjK-*UROuIagQMzBvs<2PP`Wqh z39;-|nQkiQcmAK6eo4M|wC_)@J_rBRDmQ+6=Q(tBHm zQCVi^D%1-PSx%W>;PCN;A$mptKVVp`$QD2V06)Mb(TS!8%389r(@hXQrK1)j+DeTY z035s_tTa9Xy>L;$&>dxm-aQj^Za6!v&b+uP^G?}9espM zsRZ~Zrf=`DSAU(x6%EC)S)OfD68)03FaOD~3mclNK6>9aM}O9 zqxqU4HqxZrOFjR~Y2ab_tqo+%8Yx+WI(*bg?(EstkO`=eHPRe?@KkniX&Oi>Gkl}i zSN8~?RCPs56^ZP%>~byQ`SlNL6NZ@sRww`B-?{(*??=gjhh8{CT@U}*nD?FsKs@+3 z75!H4-aArKheaacf!)z8Rt|S8m9gW)r8T|i7FklmHesT49HGX<6Qqt;to?w`gsJ8v zUV%>NDNV_^TR2>Vp3Dh+lx<2+*6N)?M8K8Ce~=q`GQ~2Bsm}TWx7HZp)woh^%dU0l zxP85Sf$u(uBjCblL_tB9eb)`g(B})ci!iLa2yC14E!^}blV^}&t@d!by}!#((7B<} zjK-WEo^7J-vd*(*+ee^eru{}FcbR_iByKhAMSS^%Gs9UhluBzwJ9BfW7Q(66Du{rp zU0jOZY!}H59+;(xsGakub<2pAI0K`l)LH0UhS@agl`-Iqp)IKu+=Ctj+UTV3 z`x9@p!d4J_eT=WIcla~vn=HB8m9@oP8S_B`ykW*YAK`0eqe3<{66nl`xM20yQ1`Od z0L`&kVPnF^!>xg$KcGuU2^LnBI6|ww(X!=Y%I=%Fi^i|jX~X5oG^3oWs(wPlEh_c| z6ts2zmvdzoqs(l8ISG}YSHXNB-hb^l4%Sf|J2w z7kI8GKM1HqJLIfqqZIJZWU-X4OGA2g2-=K!$w?G|m?zX9%idH)Hoq7$I~3gPcSfq6+WE1~03O!AyQu(7di2(+V~U01)+FLTI`mYqH|h$m ze@WhUWiW_Jq3UIKxFTj{;+fDv0l4CCz}$^M<3|?mzc;=_=}qy;)QdTWSZX!FOP==9 zMG30)G%8hNI8IRmT@J`1y>V{LpcnmAwh#`3y3S(-S@^05k>V*1CHA8_7j`EA#pXyd z0KxZV*EoK~g&)vf7-v=5(P4UwyYgui-DNyy#X#uPN{NP5rtFpb^?LSob-m}U&nnyV>{aF3NhAmvU!wmS60=WMurpFYsa>m%h zCdjXOr786YDgINX!1k>tb9NfXX~+lh^teq$Em5uwE%d5j=$K43yfC}$B4MGtx+Adz z#3B4BSjAgyngsCsAyyiPn(Wdm+kCaJeuIj#oUek2duXc6YjGb!rMwt6t7vnmj*5f@ z!tMxx!dP)mRA_S8NvQB%8R|YAL5rAjE6Hq(=2)-@io;0}<~A&Uh5Hx;#2cv)q8VI3-eugZdEm#FHmx{~pOy7Ngs>{59|X$=bg z_8zs>v0K&LYQ;N`f%rm@$;DWSh-O0e;?wzGBh3k|9B=GOL&m})8-X3FKXG>3+EC2ccE zpD!65-YXbXo$$=+pynbP5U)B1rDLbRqsms!^xeoBXY1Sz22pb#ab)8Y(xk&+m)=DV z{l!9b(aYpR3JiRigQI$k#giixk0zq0IiEBjStSD1+Gzh;gF#fT&Mh})sX@4C^;}2hoa>)$LyM`3n zp}kU{+!G27*2VrIK83iW(JvH@><{w8PteMB=$8)mv}I^^v48#TwsP_HU7MVDqSl4k zKMp9MpXA3H>{%V?&Zq-NA!>ODg{mRVoecf?0i(Z*7~`3<`a@9>@V@Sl`#Jw?fYE4W zsf}kLHN89BB5L#E?1kh-kFl!Q)PHLe%sx^KAL?xhx#S_aKh+sjJkD{+q9uhcxTY3#~lzsg0tOK4-Ot}m>wv~g)}TVhzP z^jBHN(e9eQ5mR&*HWk9cQi#s|S3MT7m60((1j$eU03%>nA3B5Gz|a57|2z`azP`Q5 z`c#QwPC+k3iCm>u^zg>Hyzb-5nce_1mH?@~r)BmOhZAA7tdk#OhSw(#e{cB@6^hqf zuDK?B;;~yg9y~m^YH}1%mjfAB*Z<%C`sD^K4a@vqnF=(^47cR2CbUn--Z`EC#sY-q z4g6CAhT^w7omY#3XiV8+EvJwnP3n!I5A;k zx4IL=n#`6Pd&4ldUkZ%-_G|(lsC)ZUCuMQzl&);XjYy-rnfH%O{Q%T|=yC0}1<-pE z)W8XuC@2wsuXDX;#gvqRz!N)z{S*QxdWP6Cu3l~EaI^1+II;!h+9_CTO6a@$Q%2VN z@PKuyC0G%e{}Wtr6$DPYzu-qWjy~NDdLORUxv*xr&dhsf;4X&IWk!X@M38JB7Ghp{ z9=}%7R)!`bi`ML~D+k0ilf;Ky_niLZ3u<&keas2?KSk-HnU zcMP~uzKIq8fZc}QZTZlPgjBxqriJQ%`0CIA00RJgb4G59-9Z?%PR`pVhhY_CUOBsm zYVzz*71uK@r1M|R^UsvH&I3LILmNOla@Y~y8rIRvPq9YW;i}jM4tf$x7;M>OmvjJ< zG348j0IE{{Ne6jVm@JZDO<@ObvL4C}7>L)Ef(iy@W~X zk|_OSHDF9QA^k@%A9TBJjv{_<#nQT>Pss=y_G+D23eY{P8; zKeYTcHqaUT0y6fwJrAi$<(BRQ3VZC=kP@m(94;>B4+~E7L z0ZbPbR|*pi7&+CFmf=z&f)yW<8cTs~ZwHIRq@Tv**buuXF5?bMBA-LM0Y}srhXJQ^ z=kzD2gXkaUHbF6!EKmj0NwS!q-&WEZH<@uQh&^2~OzUPo&S$z<<*w1aP5MnRjCop= zQp5pXh_aCoh4%NvDI<|nM7>>yOdVgY6=lj-vc`-HsQ|AJ^@SBK*ZZkWF>!UL_-I^r zU?RB1J|DU26sRRV&_q{};-V_K&j~J{A$u}`#H%UuNiT$oLlqBKxGxuL*K2~9VI3uYJ6GOtZ4chwS~FouiKFT`btYWc|sEAs+1RzPoi%|Mcm$XErx z{O#I62UOcWG7X!~L7LoCftrsdIhHEf&&`!Eb$ou|l*T0+X zvLny7I6|1iQ4qIs>s|(^Oe(X^og&m%%z!`-qaDH{d0EV{&b)qf@P@l9V=QSg z3fC*1Q?Y6mjO)})ii6JHuTVs0b1czgO7YZ}&3~cMY_bk%BG=HPA-BEUa!IQdvTXwC zz(Z|R*GlXy(uT-2eKS6FhTdrrwGlAEg{#OUY(f$LXfXqSO#n=Ouw0Y*INgYR$y%r+ zxNByG&`ECQhOZc5*U#rL)1Pgxs&4CNz_DoOfGR7F03zrdP%%$^00096{1!g)001H& j6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7GyHfQd literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1497.h265 b/samples/h265SampleFrames/frame-1497.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a429c5f321adeecc531724fb94cbac81c0b4ba02 GIT binary patch literal 1953 zcmV;S2VVF9000330oK9))I$OTP{CPRP>Z|3I1U2_s`>%<; zu%3$``&_iPd)+Kbp*tw3?xw-K&NRS(&yYpIo*Rl3VAKEq|Nrqw%9iqCT8AL(B%{$G?2JMOXl=KTIrU^Cu-Bu$f{UecA_5ybpn(K$uc_r;>8uMxCit>Ud(F2y{>@R&|tj$pjeB(MuIR)_w132Zw<10%ZPp z=9}b`;)(`;5=Vz&M8;7?6f)W=8_r-s;`a56np=P)i`$Hr7YZ5ssVX!+4RNv^jg>kg z&@HUh4q)xwU7E#H9>|&16j4K1}PU|HDnhR76R;Bad%=gl& z`z?Y%jN(A>IjU2zfZAZ8BY_`uf|HHNg9aSlq$d#ff1e&)MNpT=f{uO!f4J*IHFNxB z|No>)gJPY^=!Ir^_o#4EY3S*!RqoE;L;vw^-4$N@z{5%`uCl&7^Hia4l$TO4Oyc=- znA0d*hA0eAS}czWJOR7{K7^X+2sG)I;XDR$Ri|C@55$APkp-3@^K^JsAt`gY*6|l^ z;z5SW_@h5>6MjtleD0wC>rmHf2x7jebB&&rar`$GpUtIy*{fM)hd0Z06>i;Y^Mj5) znWRGpw*s~d9v0E|(8Z`iQ;6NRzFi|=;ve@JF(lGe;9S{e&w6R(h|58-MH#a4w01YS zDPmV#@1Z){dK6nkumAuIs8}C%2~)u72qT#|)C>O6BY=p1%c9ZX4;9mBLkm=0SegI#{(vSl zK}~-(F3vq+YY;RB_UTJ%0pK<5Z;|o|?dwEbq$x53^cB#rG(aGL5Ym_3{(6|%wtTGncMdXJ*v#oXEGU< z9c0)|_^6s&Hn{+JgA1W-IZWJ26$-EUWXfP0mRoVv(iu2vh^idf&SC)}GVks5zk@me z0*+X%$QD66Yf(Vj|6T`wnqU7jkL;HYSK#o65m~5dU`)`WPfpx~p-?%Z;=nEGs+E1p z+s8KMC+&2%q0HFPW1G;*=41IpJd?LieHJrn=Mi~1TF3T1MX^oA7R%wMDmr*zKD5u( zTSSbGgCmua5Sp&NtO0;*j(+un5J6qBoWz0c3SzcDKm{#-NwUbFgbxC0{RKmB#N0jt ziUtXiu!O-zazkKcnYy%566|%9E6Rg{T2j%ZRS{aScGy0;N~=#yt2}i)dk;K5Jn#4>p=Z`sm0%#FI8Bk~+Ac;N!~NUq<7ps& zFsBzq+jD~&f~l__>VwtF_Ko0N%x`uw8jvw4R>kC`W%0DRD>ic{C+X>i^qi5hFQt?S zw>yjn;(1Ckh@F!dQP1)4snwy342IV$Ub)Fzkc{SvXF`k{Z%$lk@kAyE z_FGn6EZT+Lo{hZdL>5g#y1zPr$2Ekh(q&PrLarZCq3kPyxI?qESNxmjx6ea|c%x0L z`>|+e&QoUNQHw>d3>JvSk??4(p`#xNh*`@EQyKyl`{ODvU`U2B8RZPX)vu(woy{6E zDBT>40n`R_^^tGC}*+@cnX(NWW&ZmJM9U@9w)0F)3MP%%$^00096{1!g) n001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G7;nfw literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1498.h265 b/samples/h265SampleFrames/frame-1498.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c003c411eb29753e4d476fa2138ffa48f9d731b2 GIT binary patch literal 2242 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 S2lybZr~n{f0x6hm04^Z#j 3) { + if (!STRCMP(argv[3], AUDIO_CODEC_NAME_OPUS)) { + audioCodec = RTC_CODEC_OPUS; + } + } + + if (argc > 4) { + if (!STRCMP(argv[4], VIDEO_CODEC_NAME_H265)) { + videoCodec = RTC_CODEC_H265; + } else { + DLOGI("[KVS Master] Defaulting to H264 as the specified codec's sample frames may not be available"); + } + } + // Set the audio and video handlers pSampleConfiguration->audioSource = sendAudioPackets; pSampleConfiguration->videoSource = sendVideoPackets; pSampleConfiguration->receiveAudioVideoSource = sampleReceiveAudioVideoFrame; + pSampleConfiguration->audioCodec = audioCodec; + pSampleConfiguration->videoCodec = videoCodec; if (argc > 2 && STRNCMP(argv[2], "1", 2) == 0) { pSampleConfiguration->channelInfo.useMediaStorage = TRUE; @@ -44,11 +62,18 @@ INT32 main(INT32 argc, CHAR* argv[]) // Check if the samples are present - CHK_STATUS(readFrameFromDisk(NULL, &frameSize, "./h264SampleFrames/frame-0001.h264")); - DLOGI("[KVS Master] Checked sample video frame availability....available"); + if (videoCodec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE) { + CHK_STATUS(readFrameFromDisk(NULL, &frameSize, "./h264SampleFrames/frame-0001.h264")); + DLOGI("[KVS Master] Checked H264 sample video frame availability....available"); + } else if (videoCodec == RTC_CODEC_H265) { + CHK_STATUS(readFrameFromDisk(NULL, &frameSize, "./h265SampleFrames/frame-0001.h265")); + DLOGI("[KVS Master] Checked H265 sample video frame availability....available"); + } - CHK_STATUS(readFrameFromDisk(NULL, &frameSize, "./opusSampleFrames/sample-001.opus")); - DLOGI("[KVS Master] Checked sample audio frame availability....available"); + if (audioCodec == RTC_CODEC_OPUS) { + CHK_STATUS(readFrameFromDisk(NULL, &frameSize, "./opusSampleFrames/sample-001.opus")); + DLOGI("[KVS Master] Checked Opus sample audio frame availability....available"); + } // Initialize KVS WebRTC. This must be done before anything else, and must only be done once. CHK_STATUS(initKvsWebRtc()); @@ -146,7 +171,11 @@ PVOID sendVideoPackets(PVOID args) while (!ATOMIC_LOAD_BOOL(&pSampleConfiguration->appTerminateFlag)) { fileIndex = fileIndex % NUMBER_OF_H264_FRAME_FILES + 1; - SNPRINTF(filePath, MAX_PATH_LEN, "./h264SampleFrames/frame-%04d.h264", fileIndex); + if (pSampleConfiguration->videoCodec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE) { + SNPRINTF(filePath, MAX_PATH_LEN, "./h264SampleFrames/frame-%04d.h264", fileIndex); + } else if (pSampleConfiguration->videoCodec == RTC_CODEC_H265) { + SNPRINTF(filePath, MAX_PATH_LEN, "./h265SampleFrames/frame-%04d.h265", fileIndex); + } CHK_STATUS(readFrameFromDisk(NULL, &frameSize, filePath)); @@ -218,7 +247,10 @@ PVOID sendAudioPackets(PVOID args) while (!ATOMIC_LOAD_BOOL(&pSampleConfiguration->appTerminateFlag)) { fileIndex = fileIndex % NUMBER_OF_OPUS_FRAME_FILES + 1; - SNPRINTF(filePath, MAX_PATH_LEN, "./opusSampleFrames/sample-%03d.opus", fileIndex); + + if (pSampleConfiguration->audioCodec == RTC_CODEC_OPUS) { + SNPRINTF(filePath, MAX_PATH_LEN, "./opusSampleFrames/sample-%03d.opus", fileIndex); + } CHK_STATUS(readFrameFromDisk(NULL, &frameSize, filePath)); diff --git a/samples/kvsWebRTCClientViewer.c b/samples/kvsWebRTCClientViewer.c index bde875ce6e..a4730d06b1 100644 --- a/samples/kvsWebRTCClientViewer.c +++ b/samples/kvsWebRTCClientViewer.c @@ -39,6 +39,8 @@ INT32 main(INT32 argc, CHAR* argv[]) SignalingMessage message; PSampleConfiguration pSampleConfiguration = NULL; PSampleStreamingSession pSampleStreamingSession = NULL; + RTC_CODEC audioCodec = RTC_CODEC_OPUS; + RTC_CODEC videoCodec = RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE; BOOL locked = FALSE; PCHAR pChannelName; CHAR clientId[256]; @@ -57,7 +59,32 @@ INT32 main(INT32 argc, CHAR* argv[]) pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME; #endif + if (argc > 2) { + if (!STRCMP(argv[2], AUDIO_CODEC_NAME_OPUS)) { + audioCodec = RTC_CODEC_OPUS; + } else if (!STRCMP(argv[2], AUDIO_CODEC_NAME_ALAW)) { + audioCodec = RTC_CODEC_ALAW; + } else if (!STRCMP(argv[2], AUDIO_CODEC_NAME_MULAW)) { + audioCodec = RTC_CODEC_MULAW; + } else { + DLOGI("[KVS Viewer] Defaulting to Opus audio codec"); + } + } + + if (argc > 3) { + if (!STRCMP(argv[3], VIDEO_CODEC_NAME_H265)) { + videoCodec = RTC_CODEC_H265; + } else if (!STRCMP(argv[3], VIDEO_CODEC_NAME_VP8)) { + videoCodec = RTC_CODEC_VP8; + } else { + DLOGI("[KVS Viewer] Defaulting to H264 video codec"); + } + } + CHK_STATUS(createSampleConfiguration(pChannelName, SIGNALING_CHANNEL_ROLE_TYPE_VIEWER, TRUE, TRUE, logLevel, &pSampleConfiguration)); + pSampleConfiguration->mediaType = SAMPLE_STREAMING_AUDIO_VIDEO; + pSampleConfiguration->audioCodec = audioCodec; + pSampleConfiguration->videoCodec = videoCodec; // Initialize KVS WebRTC. This must be done before anything else, and must only be done once. CHK_STATUS(initKvsWebRtc()); @@ -88,6 +115,7 @@ INT32 main(INT32 argc, CHAR* argv[]) DLOGI("[KVS Viewer] Completed setting local description"); CHK_STATUS(transceiverOnFrame(pSampleStreamingSession->pAudioRtcRtpTransceiver, (UINT64) pSampleStreamingSession, sampleAudioFrameHandler)); + CHK_STATUS(transceiverOnFrame(pSampleStreamingSession->pVideoRtcRtpTransceiver, (UINT64) pSampleStreamingSession, sampleVideoFrameHandler)); if (!pSampleConfiguration->trickleIce) { DLOGI("[KVS Viewer] Non trickle ice. Wait for Candidate collection to complete"); diff --git a/samples/kvsWebRTCClientViewerGstSample.c b/samples/kvsWebRTCClientViewerGstSample.c new file mode 100644 index 0000000000..d31676d1db --- /dev/null +++ b/samples/kvsWebRTCClientViewerGstSample.c @@ -0,0 +1,219 @@ +#include "Samples.h" + +extern PSampleConfiguration gSampleConfiguration; + +#ifdef ENABLE_DATA_CHANNEL + +// onMessage callback for a message received by the viewer on a data channel +VOID dataChannelOnMessageCallback(UINT64 customData, PRtcDataChannel pDataChannel, BOOL isBinary, PBYTE pMessage, UINT32 pMessageLen) +{ + UNUSED_PARAM(customData); + UNUSED_PARAM(pDataChannel); + if (isBinary) { + DLOGI("DataChannel Binary Message"); + } else { + DLOGI("DataChannel String Message: %.*s", pMessageLen, pMessage); + } +} + +// onOpen callback for the onOpen event of a viewer created data channel +VOID dataChannelOnOpenCallback(UINT64 customData, PRtcDataChannel pDataChannel) +{ + STATUS retStatus = STATUS_SUCCESS; + DLOGI("New DataChannel has been opened %s ", pDataChannel->name); + dataChannelOnMessage(pDataChannel, customData, dataChannelOnMessageCallback); + ATOMIC_INCREMENT((PSIZE_T) customData); + // Sending first message to the master over the data channel + retStatus = dataChannelSend(pDataChannel, FALSE, (PBYTE) VIEWER_DATA_CHANNEL_MESSAGE, STRLEN(VIEWER_DATA_CHANNEL_MESSAGE)); + if (retStatus != STATUS_SUCCESS) { + DLOGI("[KVS Gstreamer Viewer] dataChannelSend(): operation returned status code: 0x%08x ", retStatus); + } +} +#endif + +INT32 main(INT32 argc, CHAR* argv[]) +{ + STATUS retStatus = STATUS_SUCCESS; + RtcSessionDescriptionInit offerSessionDescriptionInit; + UINT32 buffLen = 0; + SignalingMessage message; + PSampleConfiguration pSampleConfiguration = NULL; + PSampleStreamingSession pSampleStreamingSession = NULL; + RTC_CODEC audioCodec = RTC_CODEC_OPUS; + RTC_CODEC videoCodec = RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE; + BOOL locked = FALSE; + PCHAR pChannelName; + CHAR clientId[256]; + + SET_INSTRUMENTED_ALLOCATORS(); + UINT32 logLevel = setLogLevel(); + +#ifndef _WIN32 + signal(SIGINT, sigintHandler); +#endif + +#ifdef IOT_CORE_ENABLE_CREDENTIALS + CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, + "AWS_IOT_CORE_THING_NAME must be set"); +#else + pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME; +#endif + + if (argc > 3) { + if (!STRCMP(argv[3], AUDIO_CODEC_NAME_OPUS)) { + audioCodec = RTC_CODEC_OPUS; + } else { + DLOGI("[KVS Gstreamer Viewer] Defaulting to Opus audio codec"); + } + } + + if (argc > 4) { + if (!STRCMP(argv[4], VIDEO_CODEC_NAME_H265)) { + videoCodec = RTC_CODEC_H265; + } else { + DLOGI("[KVS Gstreamer Viewer] Defaulting to H264 video codec"); + } + } + + CHK_STATUS(createSampleConfiguration(pChannelName, SIGNALING_CHANNEL_ROLE_TYPE_VIEWER, TRUE, TRUE, logLevel, &pSampleConfiguration)); + pSampleConfiguration->mediaType = SAMPLE_STREAMING_AUDIO_VIDEO; + pSampleConfiguration->receiveAudioVideoSource = receiveGstreamerAudioVideo; + pSampleConfiguration->audioCodec = audioCodec; + pSampleConfiguration->videoCodec = videoCodec; + + if (argc > 2) { + if (STRCMP(argv[2], "video-only") == 0) { + pSampleConfiguration->mediaType = SAMPLE_STREAMING_VIDEO_ONLY; + DLOGI("[KVS Gstreamer Viewer] Streaming video only"); + } else if (STRCMP(argv[2], "audio-video") == 0) { + pSampleConfiguration->mediaType = SAMPLE_STREAMING_AUDIO_VIDEO; + DLOGI("[KVS Gstreamer Viewer] Streaming audio and video"); + } else { + DLOGI("[KVS Gstreamer Viewer] Unrecognized streaming type. Default to video-only"); + } + } else { + DLOGI("[KVS Gstreamer Viewer] Streaming video only"); + } + + // Initialize KVS WebRTC. This must be done before anything else, and must only be done once. + CHK_STATUS(initKvsWebRtc()); + DLOGI("[KVS Gstreamer Viewer] KVS WebRTC initialization completed successfully"); + +#ifdef ENABLE_DATA_CHANNEL + pSampleConfiguration->onDataChannel = onDataChannel; +#endif + + SPRINTF(clientId, "%s_%u", SAMPLE_VIEWER_CLIENT_ID, RAND() % MAX_UINT32); + CHK_STATUS(initSignaling(pSampleConfiguration, clientId)); + DLOGI("[KVS Gstreamer Viewer] Signaling client connection established"); + + // Initialize streaming session + MUTEX_LOCK(pSampleConfiguration->sampleConfigurationObjLock); + locked = TRUE; + CHK_STATUS(createSampleStreamingSession(pSampleConfiguration, NULL, FALSE, &pSampleStreamingSession)); + DLOGI("[KVS Gstreamer Viewer] Creating streaming session...completed"); + pSampleConfiguration->sampleStreamingSessionList[pSampleConfiguration->streamingSessionCount++] = pSampleStreamingSession; + + MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock); + locked = FALSE; + + MEMSET(&offerSessionDescriptionInit, 0x00, SIZEOF(RtcSessionDescriptionInit)); + + offerSessionDescriptionInit.useTrickleIce = pSampleStreamingSession->remoteCanTrickleIce; + CHK_STATUS(setLocalDescription(pSampleStreamingSession->pPeerConnection, &offerSessionDescriptionInit)); + DLOGI("[KVS Gstreamer Viewer] Completed setting local description"); + + if (!pSampleConfiguration->trickleIce) { + DLOGI("[KVS Gstreamer Viewer] Non trickle ice. Wait for Candidate collection to complete"); + MUTEX_LOCK(pSampleConfiguration->sampleConfigurationObjLock); + locked = TRUE; + + while (!ATOMIC_LOAD_BOOL(&pSampleStreamingSession->candidateGatheringDone)) { + CHK_WARN(!ATOMIC_LOAD_BOOL(&pSampleStreamingSession->terminateFlag), STATUS_OPERATION_TIMED_OUT, + "application terminated and candidate gathering still not done"); + CVAR_WAIT(pSampleConfiguration->cvar, pSampleConfiguration->sampleConfigurationObjLock, 5 * HUNDREDS_OF_NANOS_IN_A_SECOND); + } + + MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock); + locked = FALSE; + + DLOGI("[KVS Gstreamer Viewer] Candidate collection completed"); + } + + CHK_STATUS(createOffer(pSampleStreamingSession->pPeerConnection, &offerSessionDescriptionInit)); + DLOGI("[KVS Gstreamer Viewer] Offer creation successful"); + + DLOGI("[KVS Gstreamer Viewer] Generating JSON of session description...."); + CHK_STATUS(serializeSessionDescriptionInit(&offerSessionDescriptionInit, NULL, &buffLen)); + + if (buffLen >= SIZEOF(message.payload)) { + DLOGE("[KVS Gstreamer Viewer] serializeSessionDescriptionInit(): operation returned status code: 0x%08x ", STATUS_INVALID_OPERATION); + retStatus = STATUS_INVALID_OPERATION; + goto CleanUp; + } + + CHK_STATUS(serializeSessionDescriptionInit(&offerSessionDescriptionInit, message.payload, &buffLen)); + + message.version = SIGNALING_MESSAGE_CURRENT_VERSION; + message.messageType = SIGNALING_MESSAGE_TYPE_OFFER; + STRCPY(message.peerClientId, SAMPLE_MASTER_CLIENT_ID); + message.payloadLen = (buffLen / SIZEOF(CHAR)) - 1; + message.correlationId[0] = '\0'; + + CHK_STATUS(signalingClientSendMessageSync(pSampleConfiguration->signalingClientHandle, &message)); +#ifdef ENABLE_DATA_CHANNEL + PRtcDataChannel pDataChannel = NULL; + PRtcPeerConnection pPeerConnection = pSampleStreamingSession->pPeerConnection; + SIZE_T datachannelLocalOpenCount = 0; + + // Creating a new datachannel on the peer connection of the existing sample streaming session + CHK_STATUS(createDataChannel(pPeerConnection, pChannelName, NULL, &pDataChannel)); + DLOGI("[KVS Gstreamer Viewer] Creating data channel...completed"); + + // Setting a callback for when the data channel is open + CHK_STATUS(dataChannelOnOpen(pDataChannel, (UINT64) &datachannelLocalOpenCount, dataChannelOnOpenCallback)); + DLOGI("[KVS Gstreamer Viewer] Data Channel open now..."); +#endif + + // Block until interrupted + while (!ATOMIC_LOAD_BOOL(&pSampleConfiguration->interrupted) && !ATOMIC_LOAD_BOOL(&pSampleStreamingSession->terminateFlag)) { + THREAD_SLEEP(HUNDREDS_OF_NANOS_IN_A_SECOND); + } + +CleanUp: + + if (retStatus != STATUS_SUCCESS) { + DLOGE("[KVS Gstreamer Viewer] Terminated with status code 0x%08x", retStatus); + } + + DLOGI("[KVS Gstreamer Viewer] Cleaning up...."); + + if (locked) { + MUTEX_UNLOCK(pSampleConfiguration->sampleConfigurationObjLock); + } + + if (pSampleConfiguration->enableFileLogging) { + freeFileLogger(); + } + if (pSampleConfiguration != NULL) { + retStatus = freeSignalingClient(&pSampleConfiguration->signalingClientHandle); + if (retStatus != STATUS_SUCCESS) { + DLOGE("[KVS Gstreamer Viewer] freeSignalingClient(): operation returned status code: 0x%08x ", retStatus); + } + + retStatus = freeSampleConfiguration(&pSampleConfiguration); + if (retStatus != STATUS_SUCCESS) { + DLOGE("[KVS Gstreamer Viewer] freeSampleConfiguration(): operation returned status code: 0x%08x ", retStatus); + } + } + DLOGI("[KVS Gstreamer Viewer] Cleanup done"); + + RESET_INSTRUMENTED_ALLOCATORS(); + + // https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html + // We can only return with 0 - 127. Some platforms treat exit code >= 128 + // to be a success code, which might give an unintended behaviour. + // Some platforms also treat 1 or 0 differently, so it's better to use + // EXIT_FAILURE and EXIT_SUCCESS macros for portability. + return STATUS_FAILED(retStatus) ? EXIT_FAILURE : EXIT_SUCCESS; +} diff --git a/samples/kvsWebrtcClientMasterGstSample.c b/samples/kvsWebrtcClientMasterGstSample.c index 2cd75ba181..bb5036db8a 100644 --- a/samples/kvsWebrtcClientMasterGstSample.c +++ b/samples/kvsWebrtcClientMasterGstSample.c @@ -3,9 +3,10 @@ #include extern PSampleConfiguration gSampleConfiguration; - // #define VERBOSE +GstElement* senderPipeline = NULL; + GstFlowReturn on_new_sample(GstElement* sink, gpointer data, UINT64 trackid) { GstBuffer* buffer; @@ -22,6 +23,7 @@ GstFlowReturn on_new_sample(GstElement* sink, gpointer data, UINT64 trackid) PSampleStreamingSession pSampleStreamingSession = NULL; PRtcRtpTransceiver pRtcRtpTransceiver = NULL; UINT32 i; + guint bitrate; CHK_ERR(pSampleConfiguration != NULL, STATUS_NULL_ARG, "NULL sample configuration"); @@ -64,12 +66,40 @@ GstFlowReturn on_new_sample(GstElement* sink, gpointer data, UINT64 trackid) frame.index = (UINT32) ATOMIC_INCREMENT(&pSampleStreamingSession->frameIndex); if (trackid == DEFAULT_AUDIO_TRACK_ID) { + if (pSampleStreamingSession->pSampleConfiguration->enableTwcc && senderPipeline != NULL) { + GstElement* encoder = gst_bin_get_by_name(GST_BIN(senderPipeline), "sampleAudioEncoder"); + if (encoder != NULL) { + g_object_get(G_OBJECT(encoder), "bitrate", &bitrate, NULL); + MUTEX_LOCK(pSampleStreamingSession->twccMetadata.updateLock); + pSampleStreamingSession->twccMetadata.currentAudioBitrate = (UINT64) bitrate; + if (pSampleStreamingSession->twccMetadata.newAudioBitrate != 0) { + bitrate = (guint) (pSampleStreamingSession->twccMetadata.newAudioBitrate); + pSampleStreamingSession->twccMetadata.newAudioBitrate = 0; + g_object_set(G_OBJECT(encoder), "bitrate", bitrate, NULL); + } + MUTEX_UNLOCK(pSampleStreamingSession->twccMetadata.updateLock); + } + } pRtcRtpTransceiver = pSampleStreamingSession->pAudioRtcRtpTransceiver; frame.presentationTs = pSampleStreamingSession->audioTimestamp; frame.decodingTs = frame.presentationTs; pSampleStreamingSession->audioTimestamp += SAMPLE_AUDIO_FRAME_DURATION; // assume audio frame size is 20ms, which is default in opusenc } else { + if (pSampleStreamingSession->pSampleConfiguration->enableTwcc && senderPipeline != NULL) { + GstElement* encoder = gst_bin_get_by_name(GST_BIN(senderPipeline), "sampleVideoEncoder"); + if (encoder != NULL) { + g_object_get(G_OBJECT(encoder), "bitrate", &bitrate, NULL); + MUTEX_LOCK(pSampleStreamingSession->twccMetadata.updateLock); + pSampleStreamingSession->twccMetadata.currentVideoBitrate = (UINT64) bitrate; + if (pSampleStreamingSession->twccMetadata.newVideoBitrate != 0) { + bitrate = (guint) (pSampleStreamingSession->twccMetadata.newVideoBitrate); + pSampleStreamingSession->twccMetadata.newVideoBitrate = 0; + g_object_set(G_OBJECT(encoder), "bitrate", bitrate, NULL); + } + MUTEX_UNLOCK(pSampleStreamingSession->twccMetadata.updateLock); + } + } pRtcRtpTransceiver = pSampleStreamingSession->pVideoRtcRtpTransceiver; frame.presentationTs = pSampleStreamingSession->videoTimestamp; frame.decodingTs = frame.presentationTs; @@ -120,7 +150,7 @@ GstFlowReturn on_new_sample_audio(GstElement* sink, gpointer data) PVOID sendGstreamerAudioVideo(PVOID args) { STATUS retStatus = STATUS_SUCCESS; - GstElement *appsinkVideo = NULL, *appsinkAudio = NULL, *pipeline = NULL; + GstElement *appsinkVideo = NULL, *appsinkAudio = NULL; GstBus* bus; GstMessage* msg; GError* error = NULL; @@ -141,6 +171,7 @@ PVOID sendGstreamerAudioVideo(PVOID args) * vp8enc error-resilient=partitions keyframe-max-dist=10 auto-alt-ref=true cpu-used=5 deadline=1 ! * appsink sync=TRUE emit-signals=TRUE name=appsink-video * + * * Raspberry Pi Hardware Encode Example * "v4l2src device=\"/dev/video0\" ! queue ! v4l2convert ! " * "video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! " @@ -156,36 +187,51 @@ PVOID sendGstreamerAudioVideo(PVOID args) case SAMPLE_STREAMING_VIDEO_ONLY: switch (pSampleConfiguration->srcType) { case TEST_SOURCE: { - pipeline = - gst_parse_launch("videotestsrc is-live=TRUE ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE emit-signals=TRUE " - "name=appsink-video", - &error); + if (pSampleConfiguration->videoCodec == RTC_CODEC_H265) { + senderPipeline = gst_parse_launch("videotestsrc pattern=ball is-live=TRUE ! timeoverlay ! queue ! videoconvert ! " + "video/x-raw,width=1280,height=720,framerate=25/1 ! queue ! " + "x265enc speed-preset=veryfast bitrate=512 tune=zerolatency ! " + "video/x-h265,stream-format=byte-stream,alignment=au,profile=main ! appsink sync=TRUE " + "emit-signals=TRUE name=appsink-video", + &error); + } else { + senderPipeline = gst_parse_launch( + "videotestsrc pattern=ball is-live=TRUE ! " + "queue ! videoconvert ! videoscale ! video/x-raw,width=1280,height=720 ! " + "clockoverlay halignment=right valignment=top time-format=\"%Y-%m-%d %H:%M:%S\" ! " + "videorate ! video/x-raw,framerate=25/1 ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! " + "appsink sync=TRUE emit-signals=TRUE name=appsink-video", + &error); + } break; } case DEVICE_SOURCE: { - pipeline = gst_parse_launch("autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE " - "emit-signals=TRUE name=appsink-video", - &error); + senderPipeline = gst_parse_launch( + "autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! " + " appsink sync=TRUE " + "emit-signals=TRUE name=appsink-video", + &error); break; } case RTSP_SOURCE: { - UINT16 stringOutcome = snprintf(rtspPipeLineBuffer, RTSP_PIPELINE_MAX_CHAR_COUNT, - "uridecodebin uri=%s ! " - "videoconvert ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! queue ! " - "appsink sync=TRUE emit-signals=TRUE name=appsink-video ", - pSampleConfiguration->rtspUri); + UINT16 stringOutcome = + SNPRINTF(rtspPipeLineBuffer, RTSP_PIPELINE_MAX_CHAR_COUNT, + "uridecodebin uri=%s ! " + "videoconvert ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! queue ! " + "appsink sync=TRUE emit-signals=TRUE name=appsink-video ", + pSampleConfiguration->rtspUri); if (stringOutcome > RTSP_PIPELINE_MAX_CHAR_COUNT) { DLOGE("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT"); goto CleanUp; } - pipeline = gst_parse_launch(rtspPipeLineBuffer, &error); + senderPipeline = gst_parse_launch(rtspPipeLineBuffer, &error); break; } @@ -195,43 +241,60 @@ PVOID sendGstreamerAudioVideo(PVOID args) case SAMPLE_STREAMING_AUDIO_VIDEO: switch (pSampleConfiguration->srcType) { case TEST_SOURCE: { - pipeline = - gst_parse_launch("videotestsrc is-live=TRUE ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE " - "emit-signals=TRUE name=appsink-video audiotestsrc is-live=TRUE ! " - "queue leaky=2 max-size-buffers=400 ! audioconvert ! audioresample ! opusenc ! " - "audio/x-opus,rate=48000,channels=2 ! appsink sync=TRUE emit-signals=TRUE name=appsink-audio", - &error); + if (pSampleConfiguration->videoCodec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE && + pSampleConfiguration->audioCodec == RTC_CODEC_OPUS) { + senderPipeline = gst_parse_launch( + "videotestsrc pattern=ball is-live=TRUE ! " + "queue ! videorate ! videoscale ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " + "clockoverlay halignment=right valignment=top time-format=\"%Y-%m-%d %H:%M:%S\" ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! " + "appsink sync=TRUE emit-signals=TRUE name=appsink-video audiotestsrc wave=ticks is-live=TRUE ! " + "queue leaky=2 max-size-buffers=400 ! audioconvert ! audioresample ! opusenc name=sampleAudioEncoder ! " + "audio/x-opus,rate=48000,channels=2 ! appsink sync=TRUE emit-signals=TRUE name=appsink-audio", + &error); + } else if (pSampleConfiguration->videoCodec == RTC_CODEC_H265 && pSampleConfiguration->audioCodec == RTC_CODEC_OPUS) { + senderPipeline = + gst_parse_launch("videotestsrc pattern=ball is-live=TRUE ! timeoverlay ! queue ! videoconvert ! " + "video/x-raw,width=1280,height=720,framerate=25/1 ! queue ! " + "x265enc speed-preset=veryfast bitrate=512 tune=zerolatency ! " + "video/x-h265,stream-format=byte-stream,alignment=au,profile=main ! appsink sync=TRUE " + "emit-signals=TRUE name=appsink-video audiotestsrc is-live=TRUE ! " + "queue leaky=2 max-size-buffers=400 ! audioconvert ! audioresample ! opusenc ! " + "audio/x-opus,rate=48000,channels=2 ! appsink sync=TRUE emit-signals=TRUE name=appsink-audio", + &error); + } + // TODO: test and add more such combinations break; } case DEVICE_SOURCE: { - pipeline = - gst_parse_launch("autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE emit-signals=TRUE " - "name=appsink-video autoaudiosrc ! " - "queue leaky=2 max-size-buffers=400 ! audioconvert ! audioresample ! opusenc ! " - "audio/x-opus,rate=48000,channels=2 ! appsink sync=TRUE emit-signals=TRUE name=appsink-audio", - &error); + senderPipeline = gst_parse_launch( + "autovideosrc ! queue ! videoconvert ! video/x-raw,width=1280,height=720,framerate=25/1 ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! appsink sync=TRUE emit-signals=TRUE " + "name=appsink-video autoaudiosrc ! " + "queue leaky=2 max-size-buffers=400 ! audioconvert ! audioresample ! opusenc name=sampleAudioEncoder ! " + "audio/x-opus,rate=48000,channels=2 ! appsink sync=TRUE emit-signals=TRUE name=appsink-audio", + &error); break; } case RTSP_SOURCE: { - UINT16 stringOutcome = snprintf(rtspPipeLineBuffer, RTSP_PIPELINE_MAX_CHAR_COUNT, - "uridecodebin uri=%s name=src ! videoconvert ! " - "x264enc bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " - "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! queue ! " - "appsink sync=TRUE emit-signals=TRUE name=appsink-video " - "src. ! audioconvert ! " - "audioresample ! opusenc ! audio/x-opus,rate=48000,channels=2 ! queue ! " - "appsink sync=TRUE emit-signals=TRUE name=appsink-audio", - pSampleConfiguration->rtspUri); + UINT16 stringOutcome = + SNPRINTF(rtspPipeLineBuffer, RTSP_PIPELINE_MAX_CHAR_COUNT, + "uridecodebin uri=%s name=src ! videoconvert ! " + "x264enc name=sampleVideoEncoder bframes=0 speed-preset=veryfast bitrate=512 byte-stream=TRUE tune=zerolatency ! " + "video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! queue ! " + "appsink sync=TRUE emit-signals=TRUE name=appsink-video " + "src. ! audioconvert ! " + "audioresample ! opusenc name=sampleAudioEncoder ! audio/x-opus,rate=48000,channels=2 ! queue ! " + "appsink sync=TRUE emit-signals=TRUE name=appsink-audio", + pSampleConfiguration->rtspUri); if (stringOutcome > RTSP_PIPELINE_MAX_CHAR_COUNT) { DLOGE("[KVS GStreamer Master] ERROR: rtsp uri entered exceeds maximum allowed length set by RTSP_PIPELINE_MAX_CHAR_COUNT"); goto CleanUp; } - pipeline = gst_parse_launch(rtspPipeLineBuffer, &error); + senderPipeline = gst_parse_launch(rtspPipeLineBuffer, &error); break; } @@ -239,10 +302,10 @@ PVOID sendGstreamerAudioVideo(PVOID args) break; } - CHK_ERR(pipeline != NULL, STATUS_NULL_ARG, "[KVS Gstreamer Master] Pipeline is NULL"); + CHK_ERR(senderPipeline != NULL, STATUS_NULL_ARG, "[KVS Gstreamer Master] Pipeline is NULL"); - appsinkVideo = gst_bin_get_by_name(GST_BIN(pipeline), "appsink-video"); - appsinkAudio = gst_bin_get_by_name(GST_BIN(pipeline), "appsink-audio"); + appsinkVideo = gst_bin_get_by_name(GST_BIN(senderPipeline), "appsink-video"); + appsinkAudio = gst_bin_get_by_name(GST_BIN(senderPipeline), "appsink-audio"); if (!(appsinkVideo != NULL || appsinkAudio != NULL)) { DLOGE("[KVS GStreamer Master] sendGstreamerAudioVideo(): cant find appsink, operation returned status code: 0x%08x", STATUS_INTERNAL_ERROR); @@ -255,10 +318,10 @@ PVOID sendGstreamerAudioVideo(PVOID args) if (appsinkAudio != NULL) { g_signal_connect(appsinkAudio, "new-sample", G_CALLBACK(on_new_sample_audio), (gpointer) pSampleConfiguration); } - gst_element_set_state(pipeline, GST_STATE_PLAYING); + gst_element_set_state(senderPipeline, GST_STATE_PLAYING); /* block until error or EOS */ - bus = gst_element_get_bus(pipeline); + bus = gst_element_get_bus(senderPipeline); msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS); /* Free resources */ @@ -268,9 +331,9 @@ PVOID sendGstreamerAudioVideo(PVOID args) if (bus != NULL) { gst_object_unref(bus); } - gst_element_set_state(pipeline, GST_STATE_NULL); - if (pipeline != NULL) { - gst_object_unref(pipeline); + if (senderPipeline != NULL) { + gst_element_set_state(senderPipeline, GST_STATE_NULL); + gst_object_unref(senderPipeline); } if (appsinkAudio != NULL) { gst_object_unref(appsinkAudio); @@ -289,107 +352,13 @@ PVOID sendGstreamerAudioVideo(PVOID args) return (PVOID) (ULONG_PTR) retStatus; } -VOID onGstAudioFrameReady(UINT64 customData, PFrame pFrame) -{ - GstFlowReturn ret; - GstBuffer* buffer; - GstElement* appsrcAudio = (GstElement*) customData; - - /* Create a new empty buffer */ - buffer = gst_buffer_new_and_alloc(pFrame->size); - gst_buffer_fill(buffer, 0, pFrame->frameData, pFrame->size); - - /* Push the buffer into the appsrc */ - g_signal_emit_by_name(appsrcAudio, "push-buffer", buffer, &ret); - - /* Free the buffer now that we are done with it */ - gst_buffer_unref(buffer); -} - -VOID onSampleStreamingSessionShutdown(UINT64 customData, PSampleStreamingSession pSampleStreamingSession) -{ - (void) (pSampleStreamingSession); - GstElement* appsrc = (GstElement*) customData; - GstFlowReturn ret; - - g_signal_emit_by_name(appsrc, "end-of-stream", &ret); -} - -PVOID receiveGstreamerAudioVideo(PVOID args) -{ - STATUS retStatus = STATUS_SUCCESS; - GstElement *pipeline = NULL, *appsrcAudio = NULL; - GstBus* bus; - GstMessage* msg; - GError* error = NULL; - PSampleStreamingSession pSampleStreamingSession = (PSampleStreamingSession) args; - gchar *videoDescription = "", *audioDescription = "", *audioVideoDescription; - - CHK_ERR(pSampleStreamingSession != NULL, STATUS_NULL_ARG, "[KVS Gstreamer Master] Sample streaming session is NULL"); - - // TODO: For video - switch (pSampleStreamingSession->pAudioRtcRtpTransceiver->receiver.track.codec) { - case RTC_CODEC_OPUS: - audioDescription = "appsrc name=appsrc-audio ! opusparse ! decodebin ! autoaudiosink"; - break; - - case RTC_CODEC_MULAW: - case RTC_CODEC_ALAW: - audioDescription = "appsrc name=appsrc-audio ! rawaudioparse ! decodebin ! autoaudiosink"; - break; - default: - break; - } - - audioVideoDescription = g_strjoin(" ", audioDescription, videoDescription, NULL); - - pipeline = gst_parse_launch(audioVideoDescription, &error); - - appsrcAudio = gst_bin_get_by_name(GST_BIN(pipeline), "appsrc-audio"); - CHK_ERR(appsrcAudio != NULL, STATUS_INTERNAL_ERROR, "[KVS Gstreamer Master] Cannot find appsrc"); - - CHK_STATUS(transceiverOnFrame(pSampleStreamingSession->pAudioRtcRtpTransceiver, (UINT64) appsrcAudio, onGstAudioFrameReady)); - - CHK_STATUS(streamingSessionOnShutdown(pSampleStreamingSession, (UINT64) appsrcAudio, onSampleStreamingSessionShutdown)); - g_free(audioVideoDescription); - - CHK_ERR(pipeline != NULL, STATUS_INTERNAL_ERROR, "[KVS Gstreamer Master] Pipeline is NULL"); - - gst_element_set_state(pipeline, GST_STATE_PLAYING); - - /* block until error or EOS */ - bus = gst_element_get_bus(pipeline); - msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS); - - /* Free resources */ - if (msg != NULL) { - gst_message_unref(msg); - } - if (bus != NULL) { - gst_object_unref(bus); - } - if (pipeline != NULL) { - gst_element_set_state(pipeline, GST_STATE_NULL); - gst_object_unref(pipeline); - } - if (appsrcAudio != NULL) { - gst_object_unref(appsrcAudio); - } - -CleanUp: - if (error != NULL) { - DLOGE("[KVS GStreamer Master] %s", error->message); - g_clear_error(&error); - } - - return (PVOID) (ULONG_PTR) retStatus; -} - INT32 main(INT32 argc, CHAR* argv[]) { STATUS retStatus = STATUS_SUCCESS; PSampleConfiguration pSampleConfiguration = NULL; PCHAR pChannelName; + RTC_CODEC audioCodec = RTC_CODEC_OPUS; + RTC_CODEC videoCodec = RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE; SET_INSTRUMENTED_ALLOCATORS(); UINT32 logLevel = setLogLevel(); @@ -405,9 +374,24 @@ INT32 main(INT32 argc, CHAR* argv[]) CHK_STATUS(createSampleConfiguration(pChannelName, SIGNALING_CHANNEL_ROLE_TYPE_MASTER, TRUE, TRUE, logLevel, &pSampleConfiguration)); + if (argc > 3 && STRCMP(argv[3], "testsrc") == 0) { + if (argc > 4) { + if (!STRCMP(argv[4], AUDIO_CODEC_NAME_OPUS)) { + audioCodec = RTC_CODEC_OPUS; + } + } + + if (argc > 5) { + if (!STRCMP(argv[5], VIDEO_CODEC_NAME_H265)) { + videoCodec = RTC_CODEC_H265; + } + } + } + pSampleConfiguration->videoSource = sendGstreamerAudioVideo; pSampleConfiguration->mediaType = SAMPLE_STREAMING_VIDEO_ONLY; - pSampleConfiguration->receiveAudioVideoSource = receiveGstreamerAudioVideo; + pSampleConfiguration->audioCodec = audioCodec; + pSampleConfiguration->videoCodec = videoCodec; #ifdef ENABLE_DATA_CHANNEL pSampleConfiguration->onDataChannel = onDataChannel; diff --git a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h index 3fcadf5693..d7ae2ec97f 100644 --- a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h +++ b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h @@ -835,6 +835,10 @@ typedef enum { RTC_CODEC_MULAW = 4, //!< MULAW audio codec RTC_CODEC_ALAW = 5, //!< ALAW audio codec RTC_CODEC_UNKNOWN = 6, + RTC_CODEC_H265 = 7, //!< H265 video codec + + // RTC_CODEC_MAX **MUST** be the last enum in the list **ALWAYS** and not assigned a value + RTC_CODEC_MAX //!< Placeholder for max number of supported codecs } RTC_CODEC; /** diff --git a/src/source/Include_i.h b/src/source/Include_i.h index 84fec5a69a..b606165d8c 100644 --- a/src/source/Include_i.h +++ b/src/source/Include_i.h @@ -157,6 +157,7 @@ STATUS generateJSONSafeString(PCHAR, UINT32); #include "PeerConnection/DataChannel.h" #include "Rtp/Codecs/RtpVP8Payloader.h" #include "Rtp/Codecs/RtpH264Payloader.h" +#include "Rtp/Codecs/RtpH265Payloader.h" #include "Rtp/Codecs/RtpOpusPayloader.h" #include "Rtp/Codecs/RtpG711Payloader.h" #include "Metrics/Metrics.h" diff --git a/src/source/PeerConnection/JitterBuffer.h b/src/source/PeerConnection/JitterBuffer.h index 543b05c78c..e72fcb1576 100644 --- a/src/source/PeerConnection/JitterBuffer.h +++ b/src/source/PeerConnection/JitterBuffer.h @@ -12,7 +12,7 @@ extern "C" { typedef STATUS (*FrameReadyFunc)(UINT64, UINT16, UINT16, UINT32); typedef STATUS (*FrameDroppedFunc)(UINT64, UINT16, UINT16, UINT32); -#define UINT16_DEC(a) ((UINT16) ((a) -1)) +#define UINT16_DEC(a) ((UINT16) ((a) - 1)) #define JITTER_BUFFER_HASH_TABLE_BUCKET_COUNT 3000 #define JITTER_BUFFER_HASH_TABLE_BUCKET_LENGTH 2 diff --git a/src/source/PeerConnection/PeerConnection.c b/src/source/PeerConnection/PeerConnection.c index 5a3c7eef91..ccebf589ec 100644 --- a/src/source/PeerConnection/PeerConnection.c +++ b/src/source/PeerConnection/PeerConnection.c @@ -1511,6 +1511,10 @@ STATUS addTransceiver(PRtcPeerConnection pPeerConnection, PRtcMediaStreamTrack p depayFunc = depayVP8FromRtpPayload; clockRate = VIDEO_CLOCKRATE; break; + case RTC_CODEC_H265: + depayFunc = depayH265FromRtpPayload; + clockRate = VIDEO_CLOCKRATE; + break; default: CHK(FALSE, STATUS_NOT_IMPLEMENTED); @@ -1556,8 +1560,21 @@ STATUS addSupportedCodec(PRtcPeerConnection pPeerConnection, RTC_CODEC rtcCodec) CHK(pKvsPeerConnection != NULL, STATUS_NULL_ARG); - CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, 0)); - + if (rtcCodec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_H264)); + } else if (rtcCodec == RTC_CODEC_VP8) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_VP8)); + } else if (rtcCodec == RTC_CODEC_H265) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_H265)); + } else if (rtcCodec == RTC_CODEC_OPUS) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_OPUS)); + } else if (rtcCodec == RTC_CODEC_MULAW) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_MULAW)); + } else if (rtcCodec == RTC_CODEC_ALAW) { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, DEFAULT_PAYLOAD_ALAW)); + } else { + CHK_STATUS(hashTablePut(pKvsPeerConnection->pCodecTable, rtcCodec, 0)); + } CleanUp: LEAVES(); diff --git a/src/source/PeerConnection/PeerConnection.h b/src/source/PeerConnection/PeerConnection.h index 9fc3638bce..8db3674caa 100644 --- a/src/source/PeerConnection/PeerConnection.h +++ b/src/source/PeerConnection/PeerConnection.h @@ -43,6 +43,7 @@ extern "C" { typedef enum { RTC_RTX_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE = 1, RTC_RTX_CODEC_VP8 = 2, + RTC_RTX_CODEC_H265 = 3, } RTX_CODEC; typedef struct { diff --git a/src/source/PeerConnection/Rtp.c b/src/source/PeerConnection/Rtp.c index e4c35b67e6..434a5564bf 100644 --- a/src/source/PeerConnection/Rtp.c +++ b/src/source/PeerConnection/Rtp.c @@ -235,6 +235,11 @@ STATUS writeFrame(PRtcRtpTransceiver pRtcRtpTransceiver, PFrame pFrame) rtpTimestamp = CONVERT_TIMESTAMP_TO_RTP(VIDEO_CLOCKRATE, pFrame->presentationTs); break; + case RTC_CODEC_H265: + rtpPayloadFunc = createPayloadForH265; + rtpTimestamp = CONVERT_TIMESTAMP_TO_RTP(VIDEO_CLOCKRATE, pFrame->presentationTs); + break; + case RTC_CODEC_OPUS: rtpPayloadFunc = createPayloadForOpus; rtpTimestamp = CONVERT_TIMESTAMP_TO_RTP(OPUS_CLOCKRATE, pFrame->presentationTs); diff --git a/src/source/PeerConnection/SessionDescription.c b/src/source/PeerConnection/SessionDescription.c index 6781a6a902..9df02023f6 100644 --- a/src/source/PeerConnection/SessionDescription.c +++ b/src/source/PeerConnection/SessionDescription.c @@ -138,6 +138,7 @@ STATUS setPayloadTypesForOffer(PHashTable codecTable) CHK_STATUS(hashTableUpsert(codecTable, RTC_CODEC_VP8, DEFAULT_PAYLOAD_VP8)); CHK_STATUS(hashTableUpsert(codecTable, RTC_CODEC_OPUS, DEFAULT_PAYLOAD_OPUS)); CHK_STATUS(hashTableUpsert(codecTable, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE, DEFAULT_PAYLOAD_H264)); + CHK_STATUS(hashTableUpsert(codecTable, RTC_CODEC_H265, DEFAULT_PAYLOAD_H265)); CleanUp: return retStatus; @@ -187,7 +188,12 @@ STATUS setPayloadTypesFromOffer(PHashTable codecTable, PHashTable rtxTable, PSes for (currentAttribute = 0; currentAttribute < pMediaDescription->mediaAttributesCount; currentAttribute++) { attributeValue = pMediaDescription->sdpAttributes[currentAttribute].attributeValue; - + CHK_STATUS(hashTableContains(codecTable, RTC_CODEC_H265, &supportCodec)); + if (supportCodec && (end = STRSTR(attributeValue, H265_VALUE)) != NULL) { + CHK_STATUS(STRTOUI64(attributeValue, end - 1, 10, &parsedPayloadType)); + DLOGV("Found H265 payload type %" PRId64 ".", parsedPayloadType); + CHK_STATUS(hashTableUpsert(codecTable, RTC_CODEC_H265, parsedPayloadType)); + } CHK_STATUS(hashTableContains(codecTable, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE, &supportCodec)); if (supportCodec && (end = STRSTR(attributeValue, H264_VALUE)) != NULL) { CHK_STATUS(STRTOUI64(attributeValue, end - 1, 10, &parsedPayloadType)); @@ -241,6 +247,15 @@ STATUS setPayloadTypesFromOffer(PHashTable codecTable, PHashTable rtxTable, PSes fmtpVal = aptFmtVal >> 8u; aptVal = aptFmtVal & 0xFFu; + CHK_STATUS(hashTableContains(codecTable, RTC_CODEC_H265, &supportCodec)); + if (supportCodec) { + CHK_STATUS(hashTableGet(codecTable, RTC_CODEC_H265, &hashmapPayloadType)); + if (aptVal == hashmapPayloadType) { + CHK_STATUS(hashTableUpsert(rtxTable, RTC_RTX_CODEC_H265, fmtpVal)); + DLOGV("h265 found apt type %" PRId64 " for fmtp %" PRId64, aptVal, fmtpVal); + } + } + CHK_STATUS(hashTableContains(codecTable, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE, &supportCodec)); if (supportCodec) { CHK_STATUS(hashTableGet(codecTable, RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE, &hashmapPayloadType)); @@ -422,6 +437,9 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp &rtxPayloadType); } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_VP8) { retStatus = hashTableGet(pKvsPeerConnection->pRtxTable, RTC_RTX_CODEC_VP8, &rtxPayloadType); + } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_H265) { + retStatus = hashTableGet(pKvsPeerConnection->pRtxTable, RTC_RTX_CODEC_H265, &rtxPayloadType); + payloadType = DEFAULT_PAYLOAD_H265; } else { retStatus = STATUS_HASH_KEY_NOT_PRESENT; } @@ -735,6 +753,50 @@ STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtp SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " ALAW_VALUE, payloadType); CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full ALAW rtpmap could not be written"); attributeCount++; + } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_H265) { + if (pKvsPeerConnection->isOffer) { + currentFmtp = DEFAULT_H265_FMTP; + } + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " H265/90000", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 rtpmap could not be written"); + attributeCount++; + + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtcp-fb"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " nack", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 rtcp-fb nack value could not be written"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " nack pli", payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 rtcp-fb nack-pli value could not be written"); + attributeCount++; + + // TODO: If level asymmetry is allowed, consider sending back DEFAULT_H265_FMTP instead of the received fmtp value. + if (currentFmtp != NULL) { + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " %s", payloadType, currentFmtp); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 fmtp value could not be written"); + attributeCount++; + } + + if (containRtx) { + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); + amountWritten = + SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " " RTX_VALUE, rtxPayloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 rtpmap (with rtx) could not be written"); + attributeCount++; + + STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "fmtp"); + amountWritten = SNPRINTF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, + SIZEOF(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue), "%" PRId64 " apt=%" PRId64 "", + rtxPayloadType, payloadType); + CHK_ERR(amountWritten > 0, STATUS_INTERNAL_ERROR, "Full H265 fmtp apt value (with rtx) could not be written"); + attributeCount++; + } } else if (pRtcMediaStreamTrack->codec == RTC_CODEC_UNKNOWN) { CHK_STATUS(hashTableGet(pUnknownCodecRtpmapTable, unknownCodecHashTableKey, (PUINT64) &rtpMapValue)); STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "rtpmap"); @@ -1217,6 +1279,9 @@ STATUS findTransceiversByRemoteDescription(PKvsPeerConnection pKvsPeerConnection } else if (STRSTR(attributeValue, VP8_VALUE) != NULL) { supportCodec = TRUE; rtcCodec = RTC_CODEC_VP8; + } else if (STRSTR(attributeValue, H265_VALUE) != NULL) { + supportCodec = TRUE; + rtcCodec = RTC_CODEC_H265; } else { supportCodec = FALSE; } @@ -1349,7 +1414,8 @@ STATUS setReceiversSsrc(PSessionDescription pRemoteSessionDescription, PDoubleLi CHK_STATUS(doubleListGetNodeData(pCurNode, &data)); pKvsRtpTransceiver = (PKvsRtpTransceiver) data; codec = pKvsRtpTransceiver->sender.track.codec; - isVideoCodec = (codec == RTC_CODEC_VP8 || codec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE); + isVideoCodec = (codec == RTC_CODEC_VP8 || codec == RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE || + codec == RTC_CODEC_H265); isAudioCodec = (codec == RTC_CODEC_MULAW || codec == RTC_CODEC_ALAW || codec == RTC_CODEC_OPUS); if (pKvsRtpTransceiver->jitterBufferSsrc == 0 && diff --git a/src/source/PeerConnection/SessionDescription.h b/src/source/PeerConnection/SessionDescription.h index 15a6b45d11..ce9a81d5f9 100644 --- a/src/source/PeerConnection/SessionDescription.h +++ b/src/source/PeerConnection/SessionDescription.h @@ -30,6 +30,7 @@ extern "C" { #define MID_KEY "mid" #define H264_VALUE "H264/90000" +#define H265_VALUE "H265/90000" #define OPUS_VALUE "opus/48000" #define VP8_VALUE "VP8/90000" #define MULAW_VALUE "PCMU/8000" @@ -45,11 +46,15 @@ extern "C" { #define DEFAULT_PAYLOAD_OPUS (UINT64) 111 #define DEFAULT_PAYLOAD_VP8 (UINT64) 96 #define DEFAULT_PAYLOAD_H264 (UINT64) 125 +#define DEFAULT_PAYLOAD_H265 (UINT64) 127 #define DEFAULT_PAYLOAD_MULAW_STR (PCHAR) "0" #define DEFAULT_PAYLOAD_ALAW_STR (PCHAR) "8" -#define DEFAULT_H264_FMTP (PCHAR) "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f" +#define DEFAULT_H264_FMTP (PCHAR) "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f" +#define DEFAULT_H265_FMTP \ + (PCHAR) "profile-space=0;profile-id=0;tier-flag=0;level-id=0;interop-constraints=000000000000;sprop-vps=QAEMAf//" \ + "AIAAAAMAAAMAAAMAAAMAALUCQA==;sprop-sps=QgEBAIAAAAMAAAMAAAMAAAMAAKACgIAtH+W1kkbQzkkktySqSfKSyA==;sprop-pps=RAHBpVgeSA==" #define DEFAULT_OPUS_FMTP (PCHAR) "minptime=10;useinbandfec=1" #define H264_PROFILE_42E01F 0x42e01f // profile-level-id: diff --git a/src/source/Rtp/Codecs/RtpH264Payloader.c b/src/source/Rtp/Codecs/RtpH264Payloader.c index adc7ec3776..1b2ea942d2 100644 --- a/src/source/Rtp/Codecs/RtpH264Payloader.c +++ b/src/source/Rtp/Codecs/RtpH264Payloader.c @@ -78,15 +78,16 @@ STATUS getNextNaluLength(PBYTE nalus, UINT32 nalusLength, PUINT32 pStart, PUINT3 ENTERS(); STATUS retStatus = STATUS_SUCCESS; - UINT32 zeroCount = 0, offset; + UINT32 zeroCount = 0, offset = 0; BOOL naluFound = FALSE; PBYTE pCurrent = NULL; CHK(nalus != NULL && pStart != NULL && pNaluLength != NULL, STATUS_NULL_ARG); // Annex-B Nalu will have 0x000000001 or 0x000001 start code, at most 4 bytes - for (offset = 0; offset < 4 && offset < nalusLength && nalus[offset] == 0; offset++) - ; + while (offset < 4 && offset < nalusLength && nalus[offset] == 0) { + offset++; + } CHK(offset < nalusLength && offset < 4 && offset >= 2 && nalus[offset] == 1, STATUS_RTP_INVALID_NALU); *pStart = ++offset; @@ -146,7 +147,6 @@ STATUS createPayloadFromNalu(UINT32 mtu, PBYTE nalu, UINT32 naluLength, PPayload BOOL sizeCalculationOnly = (pPayloadArray == NULL); CHK(nalu != NULL && filledLength != NULL && filledSubLenSize != NULL, STATUS_NULL_ARG); - sizeCalculationOnly = (pPayloadArray == NULL); CHK(sizeCalculationOnly || (pPayloadArray->payloadSubLength != NULL && pPayloadArray->payloadBuffer != NULL), STATUS_NULL_ARG); CHK(mtu > FU_A_HEADER_SIZE, STATUS_RTP_INPUT_MTU_TOO_SMALL); diff --git a/src/source/Rtp/Codecs/RtpH265Payloader.c b/src/source/Rtp/Codecs/RtpH265Payloader.c new file mode 100644 index 0000000000..b6bb2a87f4 --- /dev/null +++ b/src/source/Rtp/Codecs/RtpH265Payloader.c @@ -0,0 +1,283 @@ +#define LOG_CLASS "RtpH265Payloader" + +#include "../../Include_i.h" + +STATUS createPayloadForH265(UINT32 mtu, PBYTE nalus, UINT32 nalusLength, PBYTE payloadBuffer, PUINT32 pPayloadLength, PUINT32 pPayloadSubLength, + PUINT32 pPayloadSubLenSize) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PBYTE curPtrInNalus = nalus; + UINT32 remainNalusLength = nalusLength; + UINT32 nextNaluLength = 0; + UINT32 startIndex = 0; + UINT32 singlePayloadLength = 0; + UINT32 singlePayloadSubLenSize = 0; + BOOL sizeCalculationOnly = (payloadBuffer == NULL); + PayloadArray payloadArray; + + CHK(nalus != NULL && pPayloadSubLenSize != NULL && pPayloadLength != NULL && (sizeCalculationOnly || pPayloadSubLength != NULL), STATUS_NULL_ARG); + CHK(mtu > H265_FU_HEADER_SIZE, STATUS_RTP_INPUT_MTU_TOO_SMALL); + + if (sizeCalculationOnly) { + payloadArray.payloadLength = 0; + payloadArray.payloadSubLenSize = 0; + payloadArray.maxPayloadLength = 0; + payloadArray.maxPayloadSubLenSize = 0; + } else { + payloadArray.payloadLength = *pPayloadLength; + payloadArray.payloadSubLenSize = *pPayloadSubLenSize; + payloadArray.maxPayloadLength = *pPayloadLength; + payloadArray.maxPayloadSubLenSize = *pPayloadSubLenSize; + } + payloadArray.payloadBuffer = payloadBuffer; + payloadArray.payloadSubLength = pPayloadSubLength; + + do { + CHK_STATUS(getNextNaluLengthH265(curPtrInNalus, remainNalusLength, &startIndex, &nextNaluLength)); + + curPtrInNalus += startIndex; + + remainNalusLength -= startIndex; + + CHK(remainNalusLength != 0, retStatus); + + if (sizeCalculationOnly) { + CHK_STATUS(createPayloadFromNaluH265(mtu, curPtrInNalus, nextNaluLength, NULL, &singlePayloadLength, &singlePayloadSubLenSize)); + payloadArray.payloadLength += singlePayloadLength; + payloadArray.payloadSubLenSize += singlePayloadSubLenSize; + } else { + CHK_STATUS(createPayloadFromNaluH265(mtu, curPtrInNalus, nextNaluLength, &payloadArray, &singlePayloadLength, &singlePayloadSubLenSize)); + payloadArray.payloadBuffer += singlePayloadLength; + payloadArray.payloadSubLength += singlePayloadSubLenSize; + payloadArray.maxPayloadLength -= singlePayloadLength; + payloadArray.maxPayloadSubLenSize -= singlePayloadSubLenSize; + } + + remainNalusLength -= nextNaluLength; + curPtrInNalus += nextNaluLength; + } while (remainNalusLength != 0); + +CleanUp: + if (STATUS_FAILED(retStatus) && sizeCalculationOnly) { + payloadArray.payloadLength = 0; + payloadArray.payloadSubLenSize = 0; + } + + if (pPayloadSubLenSize != NULL && pPayloadLength != NULL) { + *pPayloadLength = payloadArray.payloadLength; + *pPayloadSubLenSize = payloadArray.payloadSubLenSize; + } + + LEAVES(); + return retStatus; +} + +STATUS getNextNaluLengthH265(PBYTE nalus, UINT32 nalusLength, PUINT32 pStart, PUINT32 pNaluLength) +{ + ENTERS(); + + STATUS retStatus = STATUS_SUCCESS; + UINT32 zeroCount = 0, offset = 0; + BOOL naluFound = FALSE; + PBYTE pCurrent = NULL; + + CHK(nalus != NULL && pStart != NULL && pNaluLength != NULL, STATUS_NULL_ARG); + + // Annex-B Nalu will have 0x000000001 or 0x000001 start code, at most 4 bytes + while (offset < 4 && offset < nalusLength && nalus[offset] == 0) { + offset++; + } + + CHK(offset < nalusLength && offset < 4 && offset >= 2 && nalus[offset] == 1, STATUS_RTP_INVALID_NALU); + *pStart = ++offset; + pCurrent = nalus + offset; + + /* Not doing validation on number of consecutive zeros being less than 4 because some device can produce + * data with trailing zeros. */ + while (offset < nalusLength) { + if (*pCurrent == 0) { + /* Maybe next byte is 1 */ + offset++; + pCurrent++; + + } else if (*pCurrent == 1) { + if (*(pCurrent - 1) == 0 && *(pCurrent - 2) == 0) { + zeroCount = *(pCurrent - 3) == 0 ? 3 : 2; + naluFound = TRUE; + break; + } + + /* The jump is always 3 because of the 1 previously matched. + * All the 0's must be after this '1' matched at offset */ + offset += 3; + pCurrent += 3; + } else { + /* Can jump 3 bytes forward */ + offset += 3; + pCurrent += 3; + } + } + *pNaluLength = MIN(offset, nalusLength) - *pStart - (naluFound ? zeroCount : 0); + +CleanUp: + + // As we might hit error often in a "bad" frame scenario, we can't use CHK_LOG_ERR as it will be too frequent + if (STATUS_FAILED(retStatus)) { + DLOGD("Warning: Failed to get the next NALu in H265 payload with 0x%08x", retStatus); + } + + LEAVES(); + return retStatus; +} + +STATUS createPayloadFromNaluH265(UINT32 mtu, PBYTE nalu, UINT32 naluLength, PPayloadArray pPayloadArray, PUINT32 filledLength, + PUINT32 filledSubLenSize) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + PBYTE pPayload = NULL; + UINT8 naluType = 0; + UINT32 maxPayloadSize = 0; + UINT32 curPayloadSize = 0; + UINT32 remainingNaluLength = naluLength; + UINT32 payloadLength = 0; + UINT32 payloadSubLenSize = 0; + PBYTE pCurPtrInNalu = NULL; + BOOL sizeCalculationOnly = (pPayloadArray == NULL); + + CHK(nalu != NULL && filledLength != NULL && filledSubLenSize != NULL, STATUS_NULL_ARG); + CHK(sizeCalculationOnly || (pPayloadArray->payloadSubLength != NULL && pPayloadArray->payloadBuffer != NULL), STATUS_NULL_ARG); + CHK(mtu > H265_FU_HEADER_SIZE, STATUS_RTP_INPUT_MTU_TOO_SMALL); + + naluType = (nalu[0] & 0x7E) >> 1; // 6 bits after forbidden zero bit 0x7E(0111 1110) + + if (!sizeCalculationOnly) { + pPayload = pPayloadArray->payloadBuffer; + } + + if (naluLength <= mtu) { + // Single NALU https://www.rfc-editor.org/rfc/rfc7798.html#section-4.4.1 + payloadLength += naluLength; + payloadSubLenSize++; + + if (!sizeCalculationOnly) { + CHK(payloadSubLenSize <= pPayloadArray->maxPayloadSubLenSize && payloadLength <= pPayloadArray->maxPayloadLength, + STATUS_BUFFER_TOO_SMALL); + + MEMCPY(pPayload, nalu, naluLength); + pPayloadArray->payloadSubLength[payloadSubLenSize - 1] = naluLength; + pPayload += pPayloadArray->payloadSubLength[payloadSubLenSize - 1]; + } + } else { + // Fragmentation units: https://www.rfc-editor.org/rfc/rfc7798.html#section-4.4.3 + maxPayloadSize = mtu - H265_FU_HEADER_SIZE; + + // According to the RFC, the first octet is skipped due to redundant information + remainingNaluLength -= 2; + pCurPtrInNalu = nalu + 2; + + while (remainingNaluLength != 0) { + curPayloadSize = MIN(maxPayloadSize, remainingNaluLength); + payloadSubLenSize++; + payloadLength += H265_FU_HEADER_SIZE + curPayloadSize; + + if (!sizeCalculationOnly) { + CHK(payloadSubLenSize <= pPayloadArray->maxPayloadSubLenSize && payloadLength <= pPayloadArray->maxPayloadLength, + STATUS_BUFFER_TOO_SMALL); + + pPayload[0] = (H265_FU_TYPE_ID << 1) | (nalu[0] & 0x81) | (nalu[0] & 0x1); // H265_FU_TYPE_ID indicator is 49 + pPayload[1] = nalu[1] & 0xff; + pPayload[2] = naluType & 0x3f; + if (remainingNaluLength == naluLength - 2) { + pPayload[2] |= (1 << 7); // Set for starting bit + } else if (remainingNaluLength == curPayloadSize) { + pPayload[2] |= (1 << 6); // Set for ending bit + } + + MEMCPY(pPayload + H265_FU_HEADER_SIZE, pCurPtrInNalu, curPayloadSize); + + pPayloadArray->payloadSubLength[payloadSubLenSize - 1] = H265_FU_HEADER_SIZE + curPayloadSize; + pPayload += pPayloadArray->payloadSubLength[payloadSubLenSize - 1]; + } + + pCurPtrInNalu += curPayloadSize; + remainingNaluLength -= curPayloadSize; + } + } + +CleanUp: + if (STATUS_FAILED(retStatus) && sizeCalculationOnly) { + payloadLength = 0; + payloadSubLenSize = 0; + } + + if (filledLength != NULL && filledSubLenSize != NULL) { + *filledLength = payloadLength; + *filledSubLenSize = payloadSubLenSize; + } + + LEAVES(); + return retStatus; +} + +STATUS depayH265FromRtpPayload(PBYTE pRawPacket, UINT32 packetLength, PBYTE pNaluData, PUINT32 pNaluLength, PBOOL pIsStart) +{ + ENTERS(); + STATUS retStatus = STATUS_SUCCESS; + UINT32 naluLength = packetLength, headerSize = 0; + UINT8 payloadHeaderType; + BOOL sizeCalculationOnly = (pNaluData == NULL); + BOOL isStartingPacket = TRUE; + PBYTE pCurPtrInNalu = pNaluData; + static BYTE start4ByteCode[] = {0x00, 0x00, 0x00, 0x01}; + + CHK(pRawPacket != NULL && pNaluLength != NULL, STATUS_NULL_ARG); + CHK(packetLength > 0, retStatus); + + payloadHeaderType = (pRawPacket[0] >> 1) & 0x3F; + + if (payloadHeaderType == H265_FU_TYPE_ID) { + isStartingPacket = (pRawPacket[2] & 0x80) != 0; + headerSize = H265_FU_HEADER_SIZE; + naluLength -= headerSize; + + if (isStartingPacket) { + naluLength += 2; + } + } + + if (isStartingPacket) { + naluLength += SIZEOF(start4ByteCode); + } + + CHK(!sizeCalculationOnly, retStatus); + CHK(naluLength <= *pNaluLength, STATUS_BUFFER_TOO_SMALL); + + if (isStartingPacket) { + MEMCPY(pCurPtrInNalu, start4ByteCode, SIZEOF(start4ByteCode)); + if (payloadHeaderType == H265_FU_TYPE_ID) { + pCurPtrInNalu[4] = ((pRawPacket[2] & 0x3F) << 1) | (pRawPacket[0] & 0x81); + pCurPtrInNalu[5] = pRawPacket[1]; + pCurPtrInNalu += 2; + } + pCurPtrInNalu += SIZEOF(start4ByteCode); + } + MEMCPY(pCurPtrInNalu, pRawPacket + headerSize, packetLength - headerSize); + +CleanUp: + if (STATUS_FAILED(retStatus) && sizeCalculationOnly) { + naluLength = 0; + } + + if (pNaluLength != NULL) { + *pNaluLength = naluLength; + } + + if (pIsStart != NULL) { + *pIsStart = isStartingPacket; + } + + LEAVES(); + return retStatus; +} diff --git a/src/source/Rtp/Codecs/RtpH265Payloader.h b/src/source/Rtp/Codecs/RtpH265Payloader.h new file mode 100644 index 0000000000..cc17d634ad --- /dev/null +++ b/src/source/Rtp/Codecs/RtpH265Payloader.h @@ -0,0 +1,41 @@ +/******************************************* +H265 RTP Payloader include file +*******************************************/ +#ifndef __KINESIS_VIDEO_WEBRTC_CLIENT_RTPH265PAYLOADER_H +#define __KINESIS_VIDEO_WEBRTC_CLIENT_RTPH265PAYLOADER_H + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#define H265_FU_HEADER_SIZE 3 +#define H265_FU_TYPE_ID 49 + +// https://www.rfc-editor.org/rfc/rfc7798.html#section-4.4.3 + +/* + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | PayloadHdr (Type=49) | FU header | DONL (cond) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| + * | DONL (cond) | | + * |-+-+-+-+-+-+-+-+ | + * | FU payload | + * | | + * | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | :...OPTIONAL RTP padding | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + +STATUS createPayloadForH265(UINT32, PBYTE, UINT32, PBYTE, PUINT32, PUINT32, PUINT32); +STATUS getNextNaluLengthH265(PBYTE, UINT32, PUINT32, PUINT32); +STATUS createPayloadFromNaluH265(UINT32, PBYTE, UINT32, PPayloadArray, PUINT32, PUINT32); +STATUS depayH265FromRtpPayload(PBYTE, UINT32, PBYTE, PUINT32, PBOOL); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/tst/RtpFunctionalityTest.cpp b/tst/RtpFunctionalityTest.cpp index d86909d9d9..f9272c11c3 100644 --- a/tst/RtpFunctionalityTest.cpp +++ b/tst/RtpFunctionalityTest.cpp @@ -7,6 +7,7 @@ namespace video { namespace webrtcclient { #define NUMBER_OF_FRAME_FILES 403 +#define NUMBER_OF_H265_FRAME_FILES 1500 #define DEFAULT_FPS_VALUE 25 BYTE start4ByteCode[] = {0x00, 0x00, 0x00, 0x01}; @@ -108,7 +109,7 @@ TEST_F(RtpFunctionalityTest, marshallUnmarshallH264Data) } fileIndex = fileIndex % NUMBER_OF_FRAME_FILES + 1; - EXPECT_EQ(STATUS_SUCCESS, readFrameData((PBYTE) payload, (PUINT32) &payloadLen, fileIndex, (PCHAR) "../samples/h264SampleFrames")); + EXPECT_EQ(STATUS_SUCCESS, readFrameData((PBYTE) payload, (PUINT32) &payloadLen, fileIndex, (PCHAR) "../samples/h264SampleFrames", RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE)); // First call for payload size and sub payload length size EXPECT_EQ(STATUS_SUCCESS, @@ -187,7 +188,7 @@ TEST_F(RtpFunctionalityTest, packingUnpackingVerifySameH264Frame) payloadArray.payloadSubLength = NULL; for (fileIndex = 1; fileIndex <= NUMBER_OF_FRAME_FILES; fileIndex++) { - EXPECT_EQ(STATUS_SUCCESS, readFrameData((PBYTE) payload, (PUINT32) &payloadLen, fileIndex, (PCHAR) "../samples/h264SampleFrames")); + EXPECT_EQ(STATUS_SUCCESS, readFrameData((PBYTE) payload, (PUINT32) &payloadLen, fileIndex, (PCHAR) "../samples/h264SampleFrames", RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE)); // First call for payload size and sub payload length size EXPECT_EQ(STATUS_SUCCESS, @@ -261,6 +262,103 @@ TEST_F(RtpFunctionalityTest, packingUnpackingVerifySameH264Frame) MEMFREE(depayload); } +TEST_F(RtpFunctionalityTest, packingUnpackingVerifySameH265Frame) +{ + PBYTE payload = (PBYTE) MEMCALLOC(1, 200000); // Assuming this is enough + PBYTE depayload = (PBYTE) MEMCALLOC(1, 1500); // This is more than max mtu + UINT32 depayloadSize = 1500; + UINT32 payloadLen = 0; + UINT32 fileIndex = 0; + PayloadArray payloadArray; + UINT32 i = 0; + UINT32 offset = 0; + UINT32 newPayloadLen = 0, newPayloadSubLen = 0; + BOOL isStartPacket = FALSE; + PBYTE pCurPtrInPayload = NULL; + UINT32 remainPayloadLen = 0; + UINT32 startIndex = 0, naluLength = 0; + UINT32 startLen = 0; + + payloadArray.maxPayloadLength = 0; + payloadArray.maxPayloadSubLenSize = 0; + payloadArray.payloadBuffer = NULL; + payloadArray.payloadSubLength = NULL; + + for (fileIndex = 1; fileIndex <= NUMBER_OF_H265_FRAME_FILES; fileIndex++) { + EXPECT_EQ(STATUS_SUCCESS, readFrameData((PBYTE) payload, (PUINT32) &payloadLen, fileIndex, (PCHAR) "../samples/h265SampleFrames", RTC_CODEC_H265)); + + // First call for payload size and sub payload length size + EXPECT_EQ(STATUS_SUCCESS, + createPayloadForH265(DEFAULT_MTU_SIZE, (PBYTE) payload, payloadLen, NULL, &payloadArray.payloadLength, NULL, + &payloadArray.payloadSubLenSize)); + + if (payloadArray.payloadLength > payloadArray.maxPayloadLength) { + if (payloadArray.payloadBuffer != NULL) { + MEMFREE(payloadArray.payloadBuffer); + } + payloadArray.payloadBuffer = (PBYTE) MEMALLOC(payloadArray.payloadLength); + payloadArray.maxPayloadLength = payloadArray.payloadLength; + } + if (payloadArray.payloadSubLenSize > payloadArray.maxPayloadSubLenSize) { + if (payloadArray.payloadSubLength != NULL) { + MEMFREE(payloadArray.payloadSubLength); + } + payloadArray.payloadSubLength = (PUINT32) MEMALLOC(payloadArray.payloadSubLenSize * SIZEOF(UINT32)); + payloadArray.maxPayloadSubLenSize = payloadArray.payloadSubLenSize; + } + + // Second call with actual buffer to fill in data + EXPECT_EQ(STATUS_SUCCESS, + createPayloadForH265(DEFAULT_MTU_SIZE, (PBYTE) payload, payloadLen, payloadArray.payloadBuffer, &payloadArray.payloadLength, + payloadArray.payloadSubLength, &payloadArray.payloadSubLenSize)); + + EXPECT_LT(0, payloadArray.payloadSubLenSize); + + offset = 0; + + for (i = 0; i < payloadArray.payloadSubLenSize; i++) { + EXPECT_EQ(STATUS_SUCCESS, + depayH265FromRtpPayload(payloadArray.payloadBuffer + offset, payloadArray.payloadSubLength[i], NULL, &newPayloadSubLen, + &isStartPacket)); + newPayloadLen += newPayloadSubLen; + if (isStartPacket) { + newPayloadLen -= SIZEOF(start4ByteCode); + } + EXPECT_LT(0, newPayloadSubLen); + offset += payloadArray.payloadSubLength[i]; + } + EXPECT_LE(newPayloadLen, payloadLen); + + offset = 0; + newPayloadLen = 0; + isStartPacket = FALSE; + pCurPtrInPayload = payload; + remainPayloadLen = payloadLen; + for (i = 0; i < payloadArray.payloadSubLenSize; i++) { + newPayloadSubLen = depayloadSize; + EXPECT_EQ(STATUS_SUCCESS, + depayH265FromRtpPayload(payloadArray.payloadBuffer + offset, payloadArray.payloadSubLength[i], depayload, &newPayloadSubLen, + &isStartPacket)); + if (isStartPacket) { + EXPECT_EQ(STATUS_SUCCESS, getNextNaluLengthH265(pCurPtrInPayload, remainPayloadLen, &startIndex, &naluLength)); + pCurPtrInPayload += startIndex; + startLen = SIZEOF(start4ByteCode); + } else { + startLen = 0; + } + EXPECT_TRUE(MEMCMP(pCurPtrInPayload, depayload + startLen, newPayloadSubLen - startLen) == 0); + pCurPtrInPayload += newPayloadSubLen - startLen; + remainPayloadLen -= newPayloadSubLen; + offset += payloadArray.payloadSubLength[i]; + } + } + + MEMFREE(payloadArray.payloadBuffer); + MEMFREE(payloadArray.payloadSubLength); + MEMFREE(payload); + MEMFREE(depayload); +} + TEST_F(RtpFunctionalityTest, packingUnpackingVerifySameOpusFrame) { BYTE payload[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; @@ -452,15 +550,26 @@ TEST_F(RtpFunctionalityTest, invalidNaluParse) UINT32 startIndex = 0, naluLength = 0; EXPECT_EQ(STATUS_RTP_INVALID_NALU, getNextNaluLength(data, 3, &startIndex, &naluLength)); EXPECT_EQ(STATUS_RTP_INVALID_NALU, getNextNaluLength(data1, 7, &startIndex, &naluLength)); + + EXPECT_EQ(STATUS_RTP_INVALID_NALU, getNextNaluLengthH265(data, 3, &startIndex, &naluLength)); + EXPECT_EQ(STATUS_RTP_INVALID_NALU, getNextNaluLengthH265(data1, 7, &startIndex, &naluLength)); } TEST_F(RtpFunctionalityTest, validNaluParse) { BYTE data[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x02}; UINT32 startIndex = 0, naluLength = 0; + EXPECT_EQ(STATUS_SUCCESS, getNextNaluLength(data, 6, &startIndex, &naluLength)); EXPECT_EQ(4, startIndex); EXPECT_EQ(2, naluLength); + + startIndex = 0; + naluLength = 0; + + EXPECT_EQ(STATUS_SUCCESS, getNextNaluLengthH265(data, 6, &startIndex, &naluLength)); + EXPECT_EQ(4, startIndex); + EXPECT_EQ(2, naluLength); } TEST_F(RtpFunctionalityTest, validMultipleNaluParse) diff --git a/tst/SdpApiTest.cpp b/tst/SdpApiTest.cpp index 15046430d8..dbb5547629 100644 --- a/tst/SdpApiTest.cpp +++ b/tst/SdpApiTest.cpp @@ -296,6 +296,34 @@ TEST_F(SdpApiTest, setTransceiverPayloadTypes_HasRtxType) doubleListFree(pTransceivers); } +TEST_F(SdpApiTest, setTransceiverPayloadTypes_HasRtxType_H265) +{ + PHashTable pCodecTable; + PHashTable pRtxTable; + PDoubleList pTransceivers; + KvsRtpTransceiver transceiver; + transceiver.sender.track.codec = RTC_CODEC_H265; + transceiver.transceiver.direction = RTC_RTP_TRANSCEIVER_DIRECTION_SENDRECV; + transceiver.sender.packetBuffer = NULL; + transceiver.sender.retransmitter = NULL; + EXPECT_EQ(STATUS_SUCCESS, hashTableCreate(&pCodecTable)); + EXPECT_EQ(STATUS_SUCCESS, hashTablePut(pCodecTable, RTC_CODEC_H265, 1)); + EXPECT_EQ(STATUS_SUCCESS, hashTableCreate(&pRtxTable)); + EXPECT_EQ(STATUS_SUCCESS, hashTablePut(pRtxTable, RTC_CODEC_H265, 2)); + EXPECT_EQ(STATUS_SUCCESS, doubleListCreate(&pTransceivers)); + EXPECT_EQ(STATUS_SUCCESS, doubleListInsertItemHead(pTransceivers, (UINT64)(&transceiver))); + EXPECT_EQ(STATUS_SUCCESS, setTransceiverPayloadTypes(pCodecTable, pRtxTable, pTransceivers)); + EXPECT_EQ(1, transceiver.sender.payloadType); + EXPECT_EQ(2, transceiver.sender.rtxPayloadType); + EXPECT_NE((PRtpRollingBuffer) NULL, transceiver.sender.packetBuffer); + EXPECT_NE((PRetransmitter) NULL, transceiver.sender.retransmitter); + hashTableFree(pCodecTable); + hashTableFree(pRtxTable); + freeRtpRollingBuffer(&transceiver.sender.packetBuffer); + freeRetransmitter(&transceiver.sender.retransmitter); + doubleListFree(pTransceivers); +} + TEST_F(SdpApiTest, populateSingleMediaSection_TestTxSendRecv) { PRtcPeerConnection offerPc = NULL; @@ -397,6 +425,37 @@ TEST_F(SdpApiTest, populateSingleMediaSection_TestTxSendOnly) freePeerConnection(&offerPc); } +TEST_F(SdpApiTest, populateSingleMediaSection_TestTxSendOnly_H265) +{ + PRtcPeerConnection offerPc = NULL; + RtcConfiguration configuration; + RtcSessionDescriptionInit sessionDescriptionInit; + + MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); + + // Create peer connection + EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); + + RtcMediaStreamTrack track; + PRtcRtpTransceiver pTransceiver; + RtcRtpTransceiverInit rtcRtpTransceiverInit; + rtcRtpTransceiverInit.direction = RTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY; + + MEMSET(&track, 0x00, SIZEOF(RtcMediaStreamTrack)); + + track.kind = MEDIA_STREAM_TRACK_KIND_VIDEO; + track.codec = RTC_CODEC_H265; + STRCPY(track.streamId, "myKvsVideoStream"); + STRCPY(track.trackId, "myTrack"); + + EXPECT_EQ(STATUS_SUCCESS, addTransceiver(offerPc, &track, &rtcRtpTransceiverInit, &pTransceiver)); + EXPECT_EQ(STATUS_SUCCESS, createOffer(offerPc, &sessionDescriptionInit)); + EXPECT_PRED_FORMAT2(testing::IsSubstring, "sendonly", sessionDescriptionInit.sdp); + + closePeerConnection(offerPc); + freePeerConnection(&offerPc); +} + TEST_F(SdpApiTest, populateSingleMediaSection_TestTxRecvOnly) { PRtcPeerConnection offerPc = NULL; diff --git a/tst/WebRTCClientTestFixture.h b/tst/WebRTCClientTestFixture.h index 5e372b501a..4c9d7f7642 100644 --- a/tst/WebRTCClientTestFixture.h +++ b/tst/WebRTCClientTestFixture.h @@ -273,7 +273,7 @@ class WebRtcClientTestBase : public ::testing::Test { return getExponentialBackoffRetryStrategyWaitTime(pKvsRetryStrategy, retryWaitTime); } - STATUS readFrameData(PBYTE pFrame, PUINT32 pSize, UINT32 index, PCHAR frameFilePath) + STATUS readFrameData(PBYTE pFrame, PUINT32 pSize, UINT32 index, PCHAR frameFilePath, RTC_CODEC rtcCodec) { STATUS retStatus = STATUS_SUCCESS; CHAR filePath[MAX_PATH_LEN + 1]; @@ -281,7 +281,16 @@ class WebRtcClientTestBase : public ::testing::Test { CHK(pFrame != NULL && pSize != NULL, STATUS_NULL_ARG); - SNPRINTF(filePath, MAX_PATH_LEN, "%s/frame-%04d.h264", frameFilePath, index); + switch (rtcCodec) { + case RTC_CODEC_H264_PROFILE_42E01F_LEVEL_ASYMMETRY_ALLOWED_PACKETIZATION_MODE: + SNPRINTF(filePath, MAX_PATH_LEN, "%s/frame-%04d.h264", frameFilePath, index); + break; + case RTC_CODEC_H265: + SNPRINTF(filePath, MAX_PATH_LEN, "%s/frame-%04d.h265", frameFilePath, index); + break; + default: + break; + } // Get the size and read into frame CHK_STATUS(readFile(filePath, TRUE, NULL, &size)); From b54d1806f41bc22d1e8a845a74880734543971f9 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Mon, 24 Jun 2024 12:13:19 -0700 Subject: [PATCH 04/21] addIceServerConfig revert --- samples/Common.c | 111 +++------- samples/Samples.h | 9 - .../kinesis/video/webrtcclient/Include.h | 20 -- src/source/Ice/IceAgent.c | 89 +------- src/source/Ice/IceAgent.h | 2 - src/source/PeerConnection/PeerConnection.c | 29 --- src/source/Signaling/StateMachine.c | 7 +- tst/IceFunctionalityTest.cpp | 10 +- tst/PeerConnectionApiTest.cpp | 14 -- tst/PeerConnectionFunctionalityTest.cpp | 56 +---- tst/SignalingApiFunctionalityTest.cpp | 201 +++++++----------- tst/SignalingApiTest.cpp | 22 +- tst/WebRTCClientTestFixture.cpp | 151 +------------ tst/WebRTCClientTestFixture.h | 27 +-- 14 files changed, 136 insertions(+), 612 deletions(-) diff --git a/samples/Common.c b/samples/Common.c index 913093dcab..8de33f84f2 100644 --- a/samples/Common.c +++ b/samples/Common.c @@ -345,51 +345,13 @@ VOID onIceCandidateHandler(UINT64 customData, PCHAR candidateJson) CHK_LOG_ERR(retStatus); } -PVOID asyncGetIceConfigInfo(PVOID args) -{ - STATUS retStatus = STATUS_SUCCESS; - AsyncGetIceStruct* data = (AsyncGetIceStruct*) args; - PIceConfigInfo pIceConfigInfo = NULL; - UINT32 uriCount = 0; - UINT32 i = 0, maxTurnServer = 1; - - if (data != NULL) { - /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize - * candidate gathering latency. But user can also choose to use more than 1 turn server. */ - for (uriCount = 0, i = 0; i < maxTurnServer; i++) { - /* - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN - * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS - * - * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. - */ - CHK_STATUS(signalingClientGetIceConfigInfo(data->signalingClientHandle, i, &pIceConfigInfo)); - CHECK(uriCount < MAX_ICE_SERVERS_COUNT); - uriCount += pIceConfigInfo->uriCount; - CHK_STATUS(addConfigToServerList(&(data->pRtcPeerConnection), pIceConfigInfo)); - } - } - *(data->pUriCount) += uriCount; - -CleanUp: - SAFE_MEMFREE(data); - CHK_LOG_ERR(retStatus); - return NULL; -} - STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcPeerConnection* ppRtcPeerConnection) { ENTERS(); STATUS retStatus = STATUS_SUCCESS; RtcConfiguration configuration; -#ifndef ENABLE_KVS_THREADPOOL - UINT32 i, j, maxTurnServer = 1; + UINT32 i, j, iceConfigCount, uriCount = 0, maxTurnServer = 1; PIceConfigInfo pIceConfigInfo; - UINT32 uriCount = 0; -#endif UINT64 data; PRtcCertificate pRtcCertificate = NULL; @@ -400,10 +362,6 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP // Set this to custom callback to enable filtering of interfaces configuration.kvsRtcConfiguration.iceSetInterfaceFilterFunc = NULL; - // disable TWCC - configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation = !(pSampleConfiguration->enableTwcc); - DLOGI("TWCC is : %s", configuration.kvsRtcConfiguration.disableSenderSideBandwidthEstimation ? "Disabled" : "Enabled"); - // Set the ICE mode explicitly configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_ALL; @@ -416,6 +374,37 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, pSampleConfiguration->channelInfo.pRegion, pKinesisVideoStunUrlPostFix); + if (pSampleConfiguration->useTurn) { + // Set the URIs from the configuration + CHK_STATUS(signalingClientGetIceConfigInfoCount(pSampleConfiguration->signalingClientHandle, &iceConfigCount)); + + /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize + * candidate gathering latency. But user can also choose to use more than 1 turn server. */ + for (uriCount = 0, i = 0; i < maxTurnServer; i++) { + CHK_STATUS(signalingClientGetIceConfigInfo(pSampleConfiguration->signalingClientHandle, i, &pIceConfigInfo)); + for (j = 0; j < pIceConfigInfo->uriCount; j++) { + CHECK(uriCount < MAX_ICE_SERVERS_COUNT); + /* + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN + * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS + * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS + * + * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. + */ + + STRNCPY(configuration.iceServers[uriCount + 1].urls, pIceConfigInfo->uris[j], MAX_ICE_CONFIG_URI_LEN); + STRNCPY(configuration.iceServers[uriCount + 1].credential, pIceConfigInfo->password, MAX_ICE_CONFIG_CREDENTIAL_LEN); + STRNCPY(configuration.iceServers[uriCount + 1].username, pIceConfigInfo->userName, MAX_ICE_CONFIG_USER_NAME_LEN); + + uriCount++; + } + } + } + + pSampleConfiguration->iceUriCount = uriCount + 1; + // Check if we have any pregenerated certs and use them // NOTE: We are running under the config lock retStatus = stackQueueDequeue(pSampleConfiguration->pregeneratedCertificates, &data); @@ -430,41 +419,7 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP } CHK_STATUS(createPeerConnection(&configuration, ppRtcPeerConnection)); - - if (pSampleConfiguration->useTurn) { -#ifdef ENABLE_KVS_THREADPOOL - pSampleConfiguration->iceUriCount = 1; - AsyncGetIceStruct* pAsyncData = NULL; - - pAsyncData = (AsyncGetIceStruct*) MEMCALLOC(1, SIZEOF(AsyncGetIceStruct)); - pAsyncData->signalingClientHandle = pSampleConfiguration->signalingClientHandle; - pAsyncData->pRtcPeerConnection = *ppRtcPeerConnection; - pAsyncData->pUriCount = &(pSampleConfiguration->iceUriCount); - CHK_STATUS(peerConnectionAsync(asyncGetIceConfigInfo, (PVOID) pAsyncData)); -#else - - /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize - * candidate gathering latency. But user can also choose to use more than 1 turn server. */ - for (uriCount = 0, i = 0; i < maxTurnServer; i++) { - /* - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN - * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS - * - * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. - */ - CHK_STATUS(signalingClientGetIceConfigInfo(pSampleConfiguration->signalingClientHandle, i, &pIceConfigInfo)); - CHECK(uriCount < MAX_ICE_SERVERS_COUNT); - uriCount += pIceConfigInfo->uriCount; - CHK_STATUS(addConfigToServerList(ppRtcPeerConnection, pIceConfigInfo)); - } - pSampleConfiguration->iceUriCount = uriCount + 1; -#endif - } - -CleanUp: + CleanUp: CHK_LOG_ERR(retStatus); diff --git a/samples/Samples.h b/samples/Samples.h index 5b77ab9c1b..5998043e54 100644 --- a/samples/Samples.h +++ b/samples/Samples.h @@ -233,15 +233,6 @@ struct __SampleStreamingSession { CHAR pIceAgentMetricsMessage[MAX_ICE_AGENT_METRICS_MESSAGE_SIZE]; }; -// TODO this should all be in a higher webrtccontext layer above PeerConnection -// Placing it here now since this is where all the current webrtccontext functions are placed -typedef struct { - SIGNALING_CLIENT_HANDLE signalingClientHandle; - PRtcPeerConnection pRtcPeerConnection; - PUINT32 pUriCount; - -} AsyncGetIceStruct; - VOID sigintHandler(INT32); STATUS readFrameFromDisk(PBYTE, PUINT32, PCHAR); PVOID receiveGstreamerAudioVideo(PVOID); diff --git a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h index d7ae2ec97f..db7ec16d68 100644 --- a/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h +++ b/src/include/com/amazonaws/kinesis/video/webrtcclient/Include.h @@ -1623,16 +1623,6 @@ typedef struct { */ PUBLIC_API STATUS createPeerConnection(PRtcConfiguration, PRtcPeerConnection*); -/** - * @brief Give peer connection an ice config to add to its server list - * - * @param[in] PRtcPeerConnection* initialized RtcPeerConnection - * @param[in] PIceConfigInfo Ice config info to add to this peer connection - * - * @return STATUS code of the execution. STATUS_SUCCESS on success - */ -PUBLIC_API STATUS addConfigToServerList(PRtcPeerConnection*, PIceConfigInfo); - /** * @brief Free a RtcPeerConnection * @@ -1709,16 +1699,6 @@ PUBLIC_API STATUS peerConnectionGetLocalDescription(PRtcPeerConnection, PRtcSess */ PUBLIC_API STATUS peerConnectionGetCurrentLocalDescription(PRtcPeerConnection, PRtcSessionDescriptionInit); -/** - * Allows use of internal threadpool - * - * @param[in] startRoutine function pointer to execute in threadpool - * @param[in] PVOID void pointer to pass to function pointer - * - * @return STATUS code of the execution. STATUS_SUCCESS on success - */ -PUBLIC_API STATUS peerConnectionAsync(startRoutine fn, PVOID data); - /** * @brief Populate the provided answer that contains an RFC 3264 offer * with the supported configurations for the session. diff --git a/src/source/Ice/IceAgent.c b/src/source/Ice/IceAgent.c index 225957fb56..67fc631b52 100644 --- a/src/source/Ice/IceAgent.c +++ b/src/source/Ice/IceAgent.c @@ -264,82 +264,6 @@ STATUS freeIceAgent(PIceAgent* ppIceAgent) return retStatus; } -STATUS iceAgentAddConfig(PIceAgent pIceAgent, PIceConfigInfo pIceConfigInfo) -{ - STATUS retStatus = STATUS_SUCCESS; - UINT32 i = 0; - // used in PROFILE macro - UINT64 startTimeInMacro = 0; - BOOL locked = FALSE; - - CHK(pIceAgent != NULL && pIceConfigInfo != NULL, STATUS_NULL_ARG); - - for (i = 0; i < pIceConfigInfo->uriCount; i++) { - MUTEX_LOCK(pIceAgent->lock); - locked = TRUE; - PROFILE_CALL_WITH_T_OBJ(retStatus = parseIceServer(&pIceAgent->iceServers[pIceAgent->iceServersCount], (PCHAR) pIceConfigInfo->uris[i], - (PCHAR) pIceConfigInfo->userName, (PCHAR) pIceConfigInfo->password), - pIceAgent->iceAgentProfileDiagnostics.iceServerParsingTime[i], "ICE server parsing"); - MUTEX_UNLOCK(pIceAgent->lock); - locked = FALSE; - - if (STATUS_SUCCEEDED(retStatus)) { - MUTEX_LOCK(pIceAgent->lock); - locked = TRUE; - pIceAgent->rtcIceServerDiagnostics[i].port = (INT32) getInt16(pIceAgent->iceServers[i].ipAddress.port); - switch (pIceAgent->iceServers[pIceAgent->iceServersCount].transport) { - case KVS_SOCKET_PROTOCOL_UDP: - STRCPY(pIceAgent->rtcIceServerDiagnostics[i].protocol, ICE_TRANSPORT_TYPE_UDP); - break; - case KVS_SOCKET_PROTOCOL_TCP: - STRCPY(pIceAgent->rtcIceServerDiagnostics[i].protocol, ICE_TRANSPORT_TYPE_TCP); - break; - default: - MEMSET(pIceAgent->rtcIceServerDiagnostics[i].protocol, 0, SIZEOF(pIceAgent->rtcIceServerDiagnostics[i].protocol)); - } - STRCPY(pIceAgent->rtcIceServerDiagnostics[i].url, pIceConfigInfo->uris[i]); - - MUTEX_UNLOCK(pIceAgent->lock); - locked = FALSE; - - // important to unlock iceAgent lock before calling init relay candidate, since iceAgent APIs are thread safe - // if you don't unlock this can lead to a deadlock with the timerqueue. - // init candidate && pairs - if (pIceAgent->iceServers[pIceAgent->iceServersCount].isTurn) { - if (pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_UDP || - pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_NONE) { - CHK_STATUS(iceAgentInitRelayCandidate(pIceAgent, pIceAgent->iceServersCount, KVS_SOCKET_PROTOCOL_UDP)); - } - - if (pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_TCP || - pIceAgent->iceServers[pIceAgent->iceServersCount].transport == KVS_SOCKET_PROTOCOL_NONE) { - CHK_STATUS(iceAgentInitRelayCandidate(pIceAgent, pIceAgent->iceServersCount, KVS_SOCKET_PROTOCOL_TCP)); - } - } - - MUTEX_LOCK(pIceAgent->lock); - locked = TRUE; - - pIceAgent->iceServersCount++; - - MUTEX_UNLOCK(pIceAgent->lock); - locked = FALSE; - - } else { - DLOGE("Failed to parse ICE servers"); - } - } - ATOMIC_STORE_BOOL(&pIceAgent->addedRelayCandidate, TRUE); -CleanUp: - CHK_LOG_ERR(retStatus); - - if (locked) { - MUTEX_UNLOCK(pIceAgent->lock); - } - - return retStatus; -} - STATUS iceAgentValidateKvsRtcConfig(PKvsRtcConfiguration pKvsRtcConfiguration) { STATUS retStatus = STATUS_SUCCESS; @@ -387,6 +311,8 @@ STATUS iceAgentReportNewLocalCandidate(PIceAgent pIceAgent, PIceCandidate pIceCa iceAgentLogNewCandidate(pIceCandidate); CHK_WARN(pIceAgent->iceAgentCallbacks.newLocalCandidateFn != NULL, retStatus, "newLocalCandidateFn callback not implemented"); + CHK_WARN(!ATOMIC_LOAD_BOOL(&pIceAgent->candidateGatheringFinished), retStatus, + "Cannot report new ice candidate because candidate gathering is already finished"); CHK_STATUS(iceCandidateSerialize(pIceCandidate, serializedIceCandidateBuf, &serializedIceCandidateBufLen)); pIceAgent->iceAgentCallbacks.newLocalCandidateFn(pIceAgent->iceAgentCallbacks.customData, serializedIceCandidateBuf); @@ -688,6 +614,9 @@ STATUS iceAgentStartGathering(PIceAgent pIceAgent) "Srflx candidates setup time"); } + PROFILE_CALL_WITH_T_OBJ(CHK_STATUS(iceAgentInitRelayCandidates(pIceAgent)), pIceAgent->iceAgentProfileDiagnostics.relayCandidateSetUpTime, + "Relay candidates setup time"); + // start listening for incoming data CHK_STATUS(connectionListenerStart(pIceAgent->pConnectionListener)); @@ -1029,8 +958,6 @@ STATUS iceAgentRestart(PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIceP CHK_STATUS(setStateMachineCurrentState(pIceAgent->pStateMachine, ICE_AGENT_STATE_NEW)); ATOMIC_STORE_BOOL(&pIceAgent->processStun, TRUE); - // this API does not reset servers, so re-initialize relay candidates now. - CHK_STATUS(iceAgentInitRelayCandidates(pIceAgent)); CleanUp: @@ -1934,8 +1861,6 @@ STATUS iceAgentInitRelayCandidate(PIceAgent pIceAgent, UINT32 iceServerIndex, KV callback.relayAddressAvailableFn = NULL; callback.turnStateFailedFn = turnStateFailedFn; - MUTEX_LOCK(pIceAgent->lock); - locked = TRUE; CHK_STATUS(createTurnConnection(&pIceAgent->iceServers[iceServerIndex], pIceAgent->timerQueueHandle, TURN_CONNECTION_DATA_TRANSFER_MODE_SEND_INDIDATION, protocol, &callback, pNewCandidate->pSocketConnection, @@ -1943,8 +1868,10 @@ STATUS iceAgentInitRelayCandidate(PIceAgent pIceAgent, UINT32 iceServerIndex, KV pNewCandidate->pIceAgent = pIceAgent; pNewCandidate->pTurnConnection = pTurnConnection; + MUTEX_LOCK(pIceAgent->lock); + locked = TRUE; + CHK_STATUS(doubleListInsertItemHead(pIceAgent->localCandidates, (UINT64) pNewCandidate)); - CHK_STATUS(iceAgentReportNewLocalCandidate(pIceAgent, pNewCandidate)); pNewCandidate = NULL; /* add existing remote candidates to turn. Need to acquire lock because remoteCandidates can be mutated by diff --git a/src/source/Ice/IceAgent.h b/src/source/Ice/IceAgent.h index 53632aab88..a069ecb1aa 100644 --- a/src/source/Ice/IceAgent.h +++ b/src/source/Ice/IceAgent.h @@ -458,8 +458,6 @@ STATUS updateSelectedLocalRemoteCandidateStats(PIceAgent); STATUS getIceAgentStats(PIceAgent, PKvsIceAgentMetrics); -STATUS iceAgentAddConfig(PIceAgent, PIceConfigInfo); - #ifdef __cplusplus } #endif diff --git a/src/source/PeerConnection/PeerConnection.c b/src/source/PeerConnection/PeerConnection.c index ccebf589ec..08c06790c4 100644 --- a/src/source/PeerConnection/PeerConnection.c +++ b/src/source/PeerConnection/PeerConnection.c @@ -522,17 +522,6 @@ VOID onIceConnectionStateChange(UINT64 customData, UINT64 connectionState) CHK_LOG_ERR(retStatus); } -#ifdef ENABLE_KVS_THREADPOOL -STATUS peerConnectionAsync(startRoutine fn, PVOID data) -{ - STATUS retStatus = STATUS_SUCCESS; - CHK_STATUS(threadpoolContextPush(fn, data)); -CleanUp: - - return retStatus; -} -#endif - VOID onNewIceLocalCandidate(UINT64 customData, PCHAR candidateSdpStr) { STATUS retStatus = STATUS_SUCCESS; @@ -1103,24 +1092,6 @@ STATUS peerConnectionOnIceCandidate(PRtcPeerConnection pRtcPeerConnection, UINT6 return retStatus; } -STATUS addConfigToServerList(PRtcPeerConnection* ppPeerConnection, PIceConfigInfo pIceConfigInfo) -{ - STATUS retStatus = STATUS_SUCCESS; - PKvsPeerConnection pKvsPeerConnection = NULL; - - CHK(ppPeerConnection != NULL && pIceConfigInfo != NULL, STATUS_NULL_ARG); - - pKvsPeerConnection = (PKvsPeerConnection) *ppPeerConnection; - - CHK(pKvsPeerConnection != NULL, STATUS_NULL_ARG); - - CHK_STATUS(iceAgentAddConfig(pKvsPeerConnection->pIceAgent, pIceConfigInfo)); - -CleanUp: - - return retStatus; -} - STATUS peerConnectionOnDataChannel(PRtcPeerConnection pRtcPeerConnection, UINT64 customData, RtcOnDataChannel rtcOnDataChannel) { ENTERS(); diff --git a/src/source/Signaling/StateMachine.c b/src/source/Signaling/StateMachine.c index c865a626be..f1943ec337 100644 --- a/src/source/Signaling/StateMachine.c +++ b/src/source/Signaling/StateMachine.c @@ -38,9 +38,8 @@ StateMachineState SIGNALING_STATE_MACHINE_STATES[] = { SIGNALING_STATE_JOIN_SESSION_CONNECTED | SIGNALING_STATE_GET_ENDPOINT | SIGNALING_STATE_READY | SIGNALING_STATE_GET_ICE_CONFIG, fromGetIceConfigSignalingState, executeGetIceConfigSignalingState, defaultSignalingStateTransitionHook, SIGNALING_STATES_DEFAULT_RETRY_COUNT, STATUS_SIGNALING_GET_ICE_CONFIG_CALL_FAILED}, - {SIGNALING_STATE_READY, SIGNALING_STATE_GET_ENDPOINT | SIGNALING_STATE_GET_ICE_CONFIG | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_READY, - fromReadySignalingState, executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, - STATUS_SIGNALING_READY_CALLBACK_FAILED}, + {SIGNALING_STATE_READY, SIGNALING_STATE_GET_ICE_CONFIG | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_READY, fromReadySignalingState, + executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, STATUS_SIGNALING_READY_CALLBACK_FAILED}, {SIGNALING_STATE_CONNECT, SIGNALING_STATE_READY | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_CONNECTED | SIGNALING_STATE_JOIN_SESSION | SIGNALING_STATE_CONNECT, fromConnectSignalingState, executeConnectSignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, @@ -597,7 +596,7 @@ STATUS fromGetEndpointSignalingState(UINT64 customData, PUINT64 pState) result = ATOMIC_LOAD(&pSignalingClient->result); switch (result) { case SERVICE_CALL_RESULT_OK: - state = SIGNALING_STATE_READY; + state = SIGNALING_STATE_GET_ICE_CONFIG; break; case SERVICE_CALL_FORBIDDEN: diff --git a/tst/IceFunctionalityTest.cpp b/tst/IceFunctionalityTest.cpp index 8693f8711c..3a27b6324b 100644 --- a/tst/IceFunctionalityTest.cpp +++ b/tst/IceFunctionalityTest.cpp @@ -662,9 +662,7 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) MEMSET(&iceAgentCallbacks, 0x00, SIZEOF(IceAgentCallbacks)); initializeSignalingClient(); - - SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, - TEST_DEFAULT_STUN_URL_POSTFIX); + getIceServers(&configuration); auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { CandidateList* candidateList1 = (CandidateList*) customData; @@ -680,9 +678,6 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) iceAgentCallbacks.customData = (UINT64) &candidateList; iceAgentCallbacks.newLocalCandidateFn = onICECandidateHdlr; - // Set the STUN server - SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX); - EXPECT_EQ(STATUS_SUCCESS, generateJSONSafeString(localIceUfrag, LOCAL_ICE_UFRAG_LEN)); EXPECT_EQ(STATUS_SUCCESS, generateJSONSafeString(localIcePwd, LOCAL_ICE_PWD_LEN)); EXPECT_EQ(STATUS_SUCCESS, createConnectionListener(&pConnectionListener)); @@ -691,11 +686,12 @@ TEST_F(IceFunctionalityTest, IceAgentCandidateGatheringTest) createIceAgent(localIceUfrag, localIcePwd, &iceAgentCallbacks, &configuration, timerQueueHandle, pConnectionListener, &pIceAgent)); EXPECT_EQ(STATUS_SUCCESS, iceAgentStartGathering(pIceAgent)); - getIceServers(&configuration, pIceAgent); THREAD_SLEEP(KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT + 2 * HUNDREDS_OF_NANOS_IN_A_SECOND); + // newLocalCandidateFn should've returned null in its last invocation, which was converted to empty string candidateList.lock.lock(); + EXPECT_TRUE(candidateList.list[candidateList.list.size() - 1].empty()); for (std::vector::iterator it = candidateList.list.begin(); it != candidateList.list.end(); ++it) { std::string candidateStr = *it; diff --git a/tst/PeerConnectionApiTest.cpp b/tst/PeerConnectionApiTest.cpp index d2cd4be672..bb4ca59e9b 100644 --- a/tst/PeerConnectionApiTest.cpp +++ b/tst/PeerConnectionApiTest.cpp @@ -197,20 +197,6 @@ TEST_F(PeerConnectionApiTest, connectionState) freePeerConnection(&pc); } -TEST_F(PeerConnectionApiTest, addConfigToServerListUnitTest) -{ - PRtcPeerConnection pc = nullptr; - PIceConfigInfo pIceConfigInfo = nullptr; - RtcConfiguration config{}; - EXPECT_NE(STATUS_SUCCESS, addConfigToServerList(&pc, pIceConfigInfo)); - EXPECT_EQ(STATUS_SUCCESS, createPeerConnection(&config, &pc)); - - EXPECT_NE(STATUS_SUCCESS, addConfigToServerList(&pc, pIceConfigInfo)); - - closePeerConnection(pc); - freePeerConnection(&pc); -} - } // namespace webrtcclient } // namespace video } // namespace kinesis diff --git a/tst/PeerConnectionFunctionalityTest.cpp b/tst/PeerConnectionFunctionalityTest.cpp index bc3901d153..01f9d5a7c6 100644 --- a/tst/PeerConnectionFunctionalityTest.cpp +++ b/tst/PeerConnectionFunctionalityTest.cpp @@ -28,32 +28,6 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeers) freePeerConnection(&answerPc); } -TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithAsyncGetIceConfigForceTurn) -{ - RtcConfiguration configuration; - PRtcPeerConnection offerPc = NULL, answerPc = NULL; - - MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); - SNPRINTF(configuration.iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, - TEST_DEFAULT_STUN_URL_POSTFIX); - configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; - - initializeSignalingClient(); - - EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); - EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - - EXPECT_EQ(connectTwoPeersAsyncIce(offerPc, answerPc), TRUE); - - closePeerConnection(offerPc); - closePeerConnection(answerPc); - - freePeerConnection(&offerPc); - freePeerConnection(&answerPc); - - deinitializeSignalingClient(); -} - TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersWithDelay) { RtcConfiguration configuration; @@ -250,13 +224,11 @@ TEST_F(PeerConnectionFunctionalityTest, connectTwoPeersForcedTURN) configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(offerPc); @@ -346,11 +318,10 @@ TEST_F(PeerConnectionFunctionalityTest, sendDataWithClosedSocketConnectionWithFo configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); // addTrackToPeerConnection is necessary because we need to add a transceiver which will trigger the RTCP callback. The RTCP callback // will send application data. The expected behavior for the PeerConnection is to bail out when the socket connection that's being used @@ -409,13 +380,11 @@ TEST_F(PeerConnectionFunctionalityTest, shutdownTurnDueToP2PFoundBeforeTurnEstab MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); THREAD_SLEEP(5 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -473,13 +442,11 @@ TEST_F(PeerConnectionFunctionalityTest, shutdownTurnDueToP2PFoundAfterTurnEstabl MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { PSIZE_T pDoneGatherCandidate = (PSIZE_T) customData; if (candidateStr == NULL) { @@ -946,13 +913,11 @@ TEST_F(PeerConnectionFunctionalityTest, iceRestartTestForcedTurn) configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); EXPECT_EQ(restartIce(offerPc), STATUS_SUCCESS); @@ -981,13 +946,11 @@ TEST_F(PeerConnectionFunctionalityTest, peerConnectionOfferCloseConnection) MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); initializeSignalingClient(); + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(offerPc); @@ -1013,9 +976,6 @@ TEST_F(PeerConnectionFunctionalityTest, peerConnectionAnswerCloseConnection) EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - EXPECT_EQ(connectTwoPeers(offerPc, answerPc), TRUE); closePeerConnection(answerPc); @@ -1052,13 +1012,11 @@ TEST_F(PeerConnectionFunctionalityTest, DISABLED_exchangeMediaThroughTurnRandomS for (int i = 0; i < iteration; ++i) { MEMSET(&configuration, 0x00, SIZEOF(RtcConfiguration)); configuration.iceTransportPolicy = ICE_TRANSPORT_POLICY_RELAY; + getIceServers(&configuration); EXPECT_EQ(createPeerConnection(&configuration, &offerPc), STATUS_SUCCESS); EXPECT_EQ(createPeerConnection(&configuration, &answerPc), STATUS_SUCCESS); - getIceServers(&configuration, offerPc); - getIceServers(&configuration, answerPc); - addTrackToPeerConnection(offerPc, &offerVideoTrack, &offerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); addTrackToPeerConnection(offerPc, &offerAudioTrack, &offerAudioTransceiver, RTC_CODEC_OPUS, MEDIA_STREAM_TRACK_KIND_AUDIO); addTrackToPeerConnection(answerPc, &answerVideoTrack, &answerVideoTransceiver, RTC_CODEC_VP8, MEDIA_STREAM_TRACK_KIND_VIDEO); diff --git a/tst/SignalingApiFunctionalityTest.cpp b/tst/SignalingApiFunctionalityTest.cpp index f63162f697..a1d12b3242 100644 --- a/tst/SignalingApiFunctionalityTest.cpp +++ b/tst/SignalingApiFunctionalityTest.cpp @@ -969,14 +969,14 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // The ICE api shouldn't have been called - EXPECT_EQ(0, getIceConfigCount); + EXPECT_EQ(1, getIceConfigCount); // Ensure we can get the ICE configurations EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); @@ -993,8 +993,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1031,7 +1031,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1067,7 +1067,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1104,7 +1104,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1139,7 +1139,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1233,14 +1233,14 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // The ICE api shouldn't have been called - EXPECT_EQ(0, getIceConfigCount); + // The ICE api should have been called + EXPECT_EQ(1, getIceConfigCount); // Ensure we can get the ICE configurations EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); @@ -1258,10 +1258,10 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1296,9 +1296,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1332,9 +1332,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1369,9 +1369,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // @@ -1404,9 +1404,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(6, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(5, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // @@ -1484,30 +1484,12 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - //get config - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); - EXPECT_NE(0, iceCount); - EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo); - - // Check the states first - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // Make sure the credentials expire THREAD_SLEEP(7 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -1534,7 +1516,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1551,7 +1533,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1626,30 +1608,12 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - //get config before credentials expire - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); - EXPECT_NE(0, iceCount); - EXPECT_NE((UINT64) NULL, (UINT64) pIceConfigInfo); - - // Check the states first - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_NEW]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_CREDENTIALS]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - // Make sure the credentials expire THREAD_SLEEP(7 * HUNDREDS_OF_NANOS_IN_A_SECOND); @@ -1677,9 +1641,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // Attempt to retrieve the ice configuration should succeed @@ -1694,9 +1658,9 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // We should have already been connected. This should be a No-op @@ -1770,7 +1734,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1789,8 +1753,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1802,8 +1766,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1918,7 +1882,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1993,8 +1957,6 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_TRUE(IS_VALID_SIGNALING_CLIENT_HANDLE(signalingHandle)); EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); pActiveClient = pSignalingClient; // Check the states first @@ -2003,8 +1965,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2021,7 +1983,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2034,7 +1996,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2109,8 +2071,6 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); pActiveClient = pSignalingClient; - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); // Connect first EXPECT_EQ(STATUS_SUCCESS, signalingClientConnectSync(signalingHandle)); @@ -2121,8 +2081,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2139,7 +2099,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2152,7 +2112,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2219,9 +2179,6 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_TRUE(IS_VALID_SIGNALING_CLIENT_HANDLE(signalingHandle)); EXPECT_EQ(STATUS_SUCCESS,signalingClientFetchSync(signalingHandle)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); - pActiveClient = pSignalingClient; @@ -2231,8 +2188,8 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2257,7 +2214,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2275,7 +2232,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2354,7 +2311,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2379,7 +2336,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LT(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2398,7 +2355,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -2650,7 +2607,7 @@ TEST_F(SignalingApiFunctionalityTest, connectTimeoutEmulation) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2672,7 +2629,7 @@ TEST_F(SignalingApiFunctionalityTest, connectTimeoutEmulation) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2768,7 +2725,7 @@ TEST_F(SignalingApiFunctionalityTest, channelInfoArnSkipDescribe) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2821,7 +2778,7 @@ TEST_F(SignalingApiFunctionalityTest, channelInfoArnSkipDescribe) EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2900,7 +2857,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedWithArn) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2953,7 +2910,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedWithArn) EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3034,7 +2991,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3052,7 +3009,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3072,7 +3029,7 @@ TEST_F(SignalingApiFunctionalityTest, deleteChannelCreatedAuthExpiration) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3205,7 +3162,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) // Account for 1 time failure EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3227,7 +3184,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3249,7 +3206,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LE(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_LE(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3605,22 +3562,18 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); - EXPECT_NE(0, iceCount); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); // Ensure the ICE is not refreshed as we already have a current non-expired set EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); EXPECT_NE(0, iceCount); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); // Trigger the ICE refresh immediately on any of the ICE accessor calls pSignalingClient->iceConfigCount = 0; @@ -3799,16 +3752,12 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_SlowClockSkew) EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); - EXPECT_NE(0, iceCount); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); // Ensure the ICE is not refreshed as we already have a current non-expired set EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); @@ -3994,7 +3943,7 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_FastClockSkew) EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -4185,7 +4134,7 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer_FastClockSkew_Veri EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); diff --git a/tst/SignalingApiTest.cpp b/tst/SignalingApiTest.cpp index c0bbde5111..6f5a629e1d 100644 --- a/tst/SignalingApiTest.cpp +++ b/tst/SignalingApiTest.cpp @@ -465,22 +465,6 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) ASSERT_EQ(TRUE, mAccessKeyIdSet); initializeSignalingClient(); - // Valid call - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); - - EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesSent); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); - EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); - EXPECT_EQ(0, metrics.signalingClientStats.connectionDuration); - EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); - - // Connect and get metrics - EXPECT_EQ(STATUS_SUCCESS, signalingClientConnectSync(mSignalingClientHandle)); // Await for a little to ensure we get some metrics for the connection duration THREAD_SLEEP(200 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); @@ -491,7 +475,7 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); @@ -513,7 +497,7 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); @@ -532,7 +516,7 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); EXPECT_EQ(5, metrics.signalingClientStats.numberOfErrors); EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(0, metrics.signalingClientStats.iceRefreshCount); + EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); diff --git a/tst/WebRTCClientTestFixture.cpp b/tst/WebRTCClientTestFixture.cpp index 7cfdc91eca..b6319ba4a6 100644 --- a/tst/WebRTCClientTestFixture.cpp +++ b/tst/WebRTCClientTestFixture.cpp @@ -33,42 +33,6 @@ STATUS createRtpPacketWithSeqNum(UINT16 seqNum, PRtpPacket* ppRtpPacket) return retStatus; } -PVOID asyncGetIceConfigInfo(PVOID args) -{ - STATUS retStatus = STATUS_SUCCESS; - AsyncGetIceStruct* data = (AsyncGetIceStruct*) args; - PIceConfigInfo pIceConfigInfo = NULL; - UINT32 uriCount = 0; - UINT32 i = 0, maxTurnServer = 1; - - if (data != NULL) { - /* signalingClientGetIceConfigInfoCount can return more than one turn server. Use only one to optimize - * candidate gathering latency. But user can also choose to use more than 1 turn server. */ - for (uriCount = 0, i = 0; i < maxTurnServer; i++) { - /* - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=udp" then ICE will try TURN over UDP - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=udp", it's currently ignored because sdk dont do TURN - * over DTLS yet. if configuration.iceServers[uriCount + 1].urls is "turns:ip:port?transport=tcp" then ICE will try TURN over TCP/TLS - * if configuration.iceServers[uriCount + 1].urls is "turn:ip:port" then ICE will try both TURN over UDP and TCP/TLS - * - * It's recommended to not pass too many TURN iceServers to configuration because it will slow down ice gathering in non-trickle mode. - */ - CHK_STATUS(signalingClientGetIceConfigInfo(data->signalingClientHandle, i, &pIceConfigInfo)); - CHECK(uriCount < MAX_ICE_SERVERS_COUNT); - uriCount += pIceConfigInfo->uriCount; - CHK_STATUS(addConfigToServerList(&(data->pAnswer), pIceConfigInfo)); - CHK_STATUS(addConfigToServerList(&(data->pOffer), pIceConfigInfo)); - } - } - *(data->pUriCount) += uriCount; - -CleanUp: - SAFE_MEMFREE(data); - CHK_LOG_ERR(retStatus); - return NULL; -} - WebRtcClientTestBase::WebRtcClientTestBase() : mSignalingClientHandle(INVALID_SIGNALING_CLIENT_HANDLE_VALUE), mAccessKey(NULL), mSecretKey(NULL), mSessionToken(NULL), mRegion(NULL), mCaCertPath(NULL), mAccessKeyIdSet(FALSE) @@ -297,88 +261,6 @@ bool WebRtcClientTestBase::connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerC return ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) == 2; } -bool WebRtcClientTestBase::connectTwoPeersAsyncIce(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint, - PCHAR pAnswerCertFingerprint) -{ - RtcSessionDescriptionInit sdp; - PeerContainer offer; - PeerContainer answer; - this->noNewThreads = FALSE; - - auto onICECandidateHdlr = [](UINT64 customData, PCHAR candidateStr) -> void { - PPeerContainer container = (PPeerContainer)customData; - if (candidateStr != NULL) { - container->client->lock.lock(); - if(!container->client->noNewThreads) { - container->client->threads.push_back(std::thread( - [container](std::string candidate) { - RtcIceCandidateInit iceCandidate; - EXPECT_EQ(STATUS_SUCCESS, deserializeRtcIceCandidateInit((PCHAR) candidate.c_str(), STRLEN(candidate.c_str()), &iceCandidate)); - EXPECT_EQ(STATUS_SUCCESS, addIceCandidate((PRtcPeerConnection) container->pc, iceCandidate.candidate)); - }, - std::string(candidateStr))); - } - container->client->lock.unlock(); - } - }; - - auto onICECandidateHdlrDone = [](UINT64 customData, PCHAR candidateStr) -> void { - UNUSED_PARAM(customData); - UNUSED_PARAM(candidateStr); - }; - - offer.pc = offerPc; - offer.client = this; - answer.pc = answerPc; - answer.client = this; - - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) &answer, onICECandidateHdlr)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) &offer, onICECandidateHdlr)); - - auto onICEConnectionStateChangeHdlr = [](UINT64 customData, RTC_PEER_CONNECTION_STATE newState) -> void { - ATOMIC_INCREMENT((PSIZE_T) customData + newState); - }; - - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnConnectionStateChange(offerPc, (UINT64) this->stateChangeCount, onICEConnectionStateChangeHdlr)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnConnectionStateChange(answerPc, (UINT64) this->stateChangeCount, onICEConnectionStateChangeHdlr)); - - EXPECT_EQ(STATUS_SUCCESS, createOffer(offerPc, &sdp)); - EXPECT_EQ(STATUS_SUCCESS, setLocalDescription(offerPc, &sdp)); - EXPECT_EQ(STATUS_SUCCESS, setRemoteDescription(answerPc, &sdp)); - - // Validate the cert fingerprint if we are asked to do so - if (pOfferCertFingerprint != NULL) { - EXPECT_NE((PCHAR) NULL, STRSTR(sdp.sdp, pOfferCertFingerprint)); - } - - EXPECT_EQ(STATUS_SUCCESS, createAnswer(answerPc, &sdp)); - EXPECT_EQ(STATUS_SUCCESS, setLocalDescription(answerPc, &sdp)); - EXPECT_EQ(STATUS_SUCCESS, setRemoteDescription(offerPc, &sdp)); - - asyncGetIceConfig(offerPc, answerPc); - - if (pAnswerCertFingerprint != NULL) { - EXPECT_NE((PCHAR) NULL, STRSTR(sdp.sdp, pAnswerCertFingerprint)); - } - - for (auto i = 0; i <= 100 && ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) != 2; i++) { - THREAD_SLEEP(HUNDREDS_OF_NANOS_IN_A_SECOND); - } - - this->lock.lock(); - //join all threads before leaving - for (auto& th : this->threads) th.join(); - - this->threads.clear(); - this->noNewThreads = TRUE; - this->lock.unlock(); - - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(offerPc, (UINT64) 0, onICECandidateHdlrDone)); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionOnIceCandidate(answerPc, (UINT64) 0, onICECandidateHdlrDone)); - - return ATOMIC_LOAD(&this->stateChangeCount[RTC_PEER_CONNECTION_STATE_CONNECTED]) == 2; -} - // Create track and transceiver and adds to PeerConnection void WebRtcClientTestBase::addTrackToPeerConnection(PRtcPeerConnection pRtcPeerConnection, PRtcMediaStreamTrack track, PRtcRtpTransceiver* transceiver, RTC_CODEC codec, MEDIA_STREAM_TRACK_KIND kind) @@ -395,42 +277,16 @@ void WebRtcClientTestBase::addTrackToPeerConnection(PRtcPeerConnection pRtcPeerC EXPECT_EQ(STATUS_SUCCESS, addTransceiver(pRtcPeerConnection, track, NULL, transceiver)); } -void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration, PIceAgent pIceAgent) -{ - UINT32 i, j, iceConfigCount = 0, uriCount; - PIceConfigInfo pIceConfigInfo; - - // Assume signaling client is already created - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceConfigCount)); - - // Set the STUN server - SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, - TEST_DEFAULT_STUN_URL_POSTFIX); - - for (uriCount = 0, i = 0; i < iceConfigCount; i++) { - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo)); - for (j = 0; j < pIceConfigInfo->uriCount; j++) { - STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].urls, pIceConfigInfo->uris[j], MAX_ICE_CONFIG_URI_LEN); - STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].credential, pIceConfigInfo->password, MAX_ICE_CONFIG_CREDENTIAL_LEN); - STRNCPY(pRtcConfiguration->iceServers[uriCount + 1].username, pIceConfigInfo->userName, MAX_ICE_CONFIG_USER_NAME_LEN); - - uriCount++; - } - EXPECT_EQ(STATUS_SUCCESS, iceAgentAddConfig(pIceAgent, pIceConfigInfo)); - } -} - -void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration, PRtcPeerConnection pRtcPeerConnection) +void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration) { - UINT32 i, j, iceConfigCount = 0, uriCount; + UINT32 i, j, iceConfigCount, uriCount; PIceConfigInfo pIceConfigInfo; // Assume signaling client is already created EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceConfigCount)); // Set the STUN server - SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, - TEST_DEFAULT_STUN_URL_POSTFIX); + SNPRINTF(pRtcConfiguration->iceServers[0].urls, MAX_ICE_CONFIG_URI_LEN, KINESIS_VIDEO_STUN_URL, TEST_DEFAULT_REGION, TEST_DEFAULT_STUN_URL_POSTFIX); for (uriCount = 0, i = 0; i < iceConfigCount; i++) { EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(mSignalingClientHandle, i, &pIceConfigInfo)); @@ -441,7 +297,6 @@ void WebRtcClientTestBase::getIceServers(PRtcConfiguration pRtcConfiguration, PR uriCount++; } - EXPECT_EQ(STATUS_SUCCESS, addConfigToServerList(&pRtcPeerConnection, pIceConfigInfo)); } } diff --git a/tst/WebRTCClientTestFixture.h b/tst/WebRTCClientTestFixture.h index 4c9d7f7642..180b14488a 100644 --- a/tst/WebRTCClientTestFixture.h +++ b/tst/WebRTCClientTestFixture.h @@ -24,12 +24,6 @@ #define MAX_TEST_AWAIT_DURATION (2 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define TEST_CACHE_FILE_PATH (PCHAR) "./.TestSignalingCache_v0" -typedef struct { - SIGNALING_CLIENT_HANDLE signalingClientHandle; - PRtcPeerConnection pOffer; - PRtcPeerConnection pAnswer; - PUINT32 pUriCount; -} AsyncGetIceStruct; namespace com { namespace amazonaws { @@ -46,8 +40,6 @@ typedef struct { STATUS createRtpPacketWithSeqNum(UINT16 seqNum, PRtpPacket* ppRtpPacket); -PVOID asyncGetIceConfigInfo(PVOID args); - class WebRtcClientTestBase : public ::testing::Test { public: PUINT32 mExpectedFrameSizeArr; @@ -57,7 +49,6 @@ class WebRtcClientTestBase : public ::testing::Test { UINT32 mExpectedDroppedFrameCount; PRtpPacket* mPRtpPackets; UINT32 mRtpPacketCount; - UINT32 mUriCount = 0; SIGNALING_CLIENT_HANDLE mSignalingClientHandle; std::vector threads; std::mutex lock; @@ -163,18 +154,6 @@ class WebRtcClientTestBase : public ::testing::Test { return STATUS_SUCCESS; } - STATUS asyncGetIceConfig(PRtcPeerConnection pOffer, PRtcPeerConnection pAnswer) - { - AsyncGetIceStruct* pAsyncData = NULL; - pAsyncData = (AsyncGetIceStruct*) MEMCALLOC(1, SIZEOF(AsyncGetIceStruct)); - pAsyncData->signalingClientHandle = mSignalingClientHandle; - pAsyncData->pAnswer = pAnswer; - pAsyncData->pOffer = pOffer; - pAsyncData->pUriCount = &(this->mUriCount); - EXPECT_EQ(STATUS_SUCCESS, peerConnectionAsync(asyncGetIceConfigInfo, (PVOID) pAsyncData)); - return STATUS_SUCCESS; - } - static STATUS testFrameReadyFunc(UINT64 customData, UINT16 startIndex, UINT16 endIndex, UINT32 frameSize) { WebRtcClientTestBase* base = (WebRtcClientTestBase*) customData; @@ -305,13 +284,9 @@ class WebRtcClientTestBase : public ::testing::Test { bool connectTwoPeers(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint = NULL, PCHAR pAnswerCertFingerprint = NULL); - bool connectTwoPeersAsyncIce(PRtcPeerConnection offerPc, PRtcPeerConnection answerPc, PCHAR pOfferCertFingerprint = NULL, - PCHAR pAnswerCertFingerprint = NULL); void addTrackToPeerConnection(PRtcPeerConnection pRtcPeerConnection, PRtcMediaStreamTrack track, PRtcRtpTransceiver* transceiver, RTC_CODEC codec, MEDIA_STREAM_TRACK_KIND kind); - void getIceServers(PRtcConfiguration pRtcConfiguration, PRtcPeerConnection pRtcPeerConnection); - - void getIceServers(PRtcConfiguration pRtcConfiguration, PIceAgent pIceAgent); + void getIceServers(PRtcConfiguration pRtcConfiguration); protected: virtual void SetUp(); From c93c47c1e8e1781a384872c41a10b4577d66c8ca Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Mon, 24 Jun 2024 12:13:59 -0700 Subject: [PATCH 05/21] CI --- .github/workflows/ci.yml | 1 + .github/workflows/codecov.yml | 1 + .github/workflows/codeql-analysis.yml | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9ed0f4c01c..0b271eb0e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,7 @@ on: branches: - develop - master + - 1.10.3 pull_request: branches: - develop diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 767a567d67..43cf4e5d43 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -4,6 +4,7 @@ on: branches: - develop - master + - 1.10.3 pull_request: branches: - develop diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 23e91aaf11..220a3c0868 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,7 +2,8 @@ name: "CodeQL" on: push: - branches: [ develop, master ] + branches: [ develop, master, 1.10.3 ] + pull_request: # The branches below must be a subset of the branches above branches: [ develop, master ] From 323d91dac5f286a9849e2e57a92481daa8f60289 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Mon, 24 Jun 2024 14:18:01 -0700 Subject: [PATCH 06/21] UT fixes, unused var --- .github/workflows/ci.yml | 6 ++-- samples/Common.c | 2 +- src/source/Ice/IceAgent.c | 1 - src/source/PeerConnection/Rtcp.c | 9 +++++ src/source/Sctp/Sctp.c | 4 ++- src/source/Signaling/LwsApiCalls.c | 4 +++ src/source/Signaling/StateMachine.c | 2 +- src/source/Stun/Stun.c | 2 ++ tst/IngestionFunctionalityTests.cpp | 16 ++++----- tst/JitterBufferFunctionalityTest.cpp | 2 -- tst/SignalingApiFunctionalityTest.cpp | 50 +++++++++++++-------------- tst/SignalingApiTest.cpp | 38 ++++++++++---------- tst/WebRTCClientTestFixture.h | 1 - 13 files changed, 74 insertions(+), 63 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b271eb0e6..768a5c02ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: run: | bash scripts/check-clang.sh mac-os-build-clang: - runs-on: macos-11 + runs-on: macos-12 env: CC: /usr/bin/clang CXX: /usr/bin/clang++ @@ -50,7 +50,7 @@ jobs: cd build ./tst/webrtc_client_test mac-os-build-gcc: - runs-on: macos-11 + runs-on: macos-12 env: CC: gcc CXX: g++ @@ -105,7 +105,7 @@ jobs: cd build ./tst/webrtc_client_test static-build-mac: - runs-on: macos-11 + runs-on: macos-12 env: AWS_KVS_LOG_LEVEL: 2 permissions: diff --git a/samples/Common.c b/samples/Common.c index 8de33f84f2..35bc2c3b80 100644 --- a/samples/Common.c +++ b/samples/Common.c @@ -419,7 +419,7 @@ STATUS initializePeerConnection(PSampleConfiguration pSampleConfiguration, PRtcP } CHK_STATUS(createPeerConnection(&configuration, ppRtcPeerConnection)); - CleanUp: +CleanUp: CHK_LOG_ERR(retStatus); diff --git a/src/source/Ice/IceAgent.c b/src/source/Ice/IceAgent.c index 67fc631b52..f360c93685 100644 --- a/src/source/Ice/IceAgent.c +++ b/src/source/Ice/IceAgent.c @@ -1861,7 +1861,6 @@ STATUS iceAgentInitRelayCandidate(PIceAgent pIceAgent, UINT32 iceServerIndex, KV callback.relayAddressAvailableFn = NULL; callback.turnStateFailedFn = turnStateFailedFn; - CHK_STATUS(createTurnConnection(&pIceAgent->iceServers[iceServerIndex], pIceAgent->timerQueueHandle, TURN_CONNECTION_DATA_TRANSFER_MODE_SEND_INDIDATION, protocol, &callback, pNewCandidate->pSocketConnection, pIceAgent->pConnectionListener, &pTurnConnection)); diff --git a/src/source/PeerConnection/Rtcp.c b/src/source/PeerConnection/Rtcp.c index 00cb71263a..0279299467 100644 --- a/src/source/PeerConnection/Rtcp.c +++ b/src/source/PeerConnection/Rtcp.c @@ -87,6 +87,15 @@ static STATUS onRtcpReceiverReport(PRtcpPacket pRtcpPacket, PKvsPeerConnection p UINT32 rttPropDelayMsec = 0, rttPropDelay, delaySinceLastSR, lastSR, interarrivalJitter, extHiSeqNumReceived, cumulativeLost, senderSSRC, ssrc1; UINT64 currentTimeNTP = convertTimestampToNTP(GETTIME()); + UNUSED_PARAM(rttPropDelayMsec); + UNUSED_PARAM(rttPropDelay); + UNUSED_PARAM(delaySinceLastSR); + UNUSED_PARAM(lastSR); + UNUSED_PARAM(interarrivalJitter); + UNUSED_PARAM(extHiSeqNumReceived); + UNUSED_PARAM(cumulativeLost); + UNUSED_PARAM(senderSSRC); + CHK(pKvsPeerConnection != NULL && pRtcpPacket != NULL, STATUS_NULL_ARG); // https://tools.ietf.org/html/rfc3550#section-6.4.2 if (pRtcpPacket->payloadLength != RTCP_PACKET_RECEIVER_REPORT_MINLEN) { diff --git a/src/source/Sctp/Sctp.c b/src/source/Sctp/Sctp.c index 2af922e0cd..cd49fa6ab4 100644 --- a/src/source/Sctp/Sctp.c +++ b/src/source/Sctp/Sctp.c @@ -365,6 +365,8 @@ INT32 onSctpInboundPacket(struct socket* sock, union sctp_sockstore addr, PVOID if (data != NULL) { free(data); } - + if (STATUS_FAILED(retStatus)) { + return -1; + } return 1; } diff --git a/src/source/Signaling/LwsApiCalls.c b/src/source/Signaling/LwsApiCalls.c index b696157da7..ad6e069a6f 100644 --- a/src/source/Signaling/LwsApiCalls.c +++ b/src/source/Signaling/LwsApiCalls.c @@ -37,6 +37,7 @@ INT32 lwsHttpCallbackRoutine(struct lws* wsi, enum lws_callback_reasons reason, PStateMachineState pStateMachineState; BOOL skewMapContains = FALSE; + UNUSED_PARAM(logLevel); DLOGV("HTTPS callback with reason %d", reason); // Early check before accessing the custom data field to see if we are interested in processing the message @@ -1493,6 +1494,9 @@ STATUS joinStorageSessionLws(PSignalingClient pSignalingClient, UINT64 time) PCHAR pResponseStr; UINT32 resultLen; + UNUSED_PARAM(pResponseStr); + UNUSED_PARAM(pLwsCallInfo); + UNUSED_PARAM(resultLen); CHK(pSignalingClient != NULL, STATUS_NULL_ARG); CHK(pSignalingClient->channelEndpointWebrtc[0] != '\0', STATUS_INTERNAL_ERROR); diff --git a/src/source/Signaling/StateMachine.c b/src/source/Signaling/StateMachine.c index f1943ec337..435a25ac1d 100644 --- a/src/source/Signaling/StateMachine.c +++ b/src/source/Signaling/StateMachine.c @@ -39,7 +39,7 @@ StateMachineState SIGNALING_STATE_MACHINE_STATES[] = { fromGetIceConfigSignalingState, executeGetIceConfigSignalingState, defaultSignalingStateTransitionHook, SIGNALING_STATES_DEFAULT_RETRY_COUNT, STATUS_SIGNALING_GET_ICE_CONFIG_CALL_FAILED}, {SIGNALING_STATE_READY, SIGNALING_STATE_GET_ICE_CONFIG | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_READY, fromReadySignalingState, - executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, STATUS_SIGNALING_READY_CALLBACK_FAILED}, + executeReadySignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, STATUS_SIGNALING_READY_CALLBACK_FAILED}, {SIGNALING_STATE_CONNECT, SIGNALING_STATE_READY | SIGNALING_STATE_DISCONNECTED | SIGNALING_STATE_CONNECTED | SIGNALING_STATE_JOIN_SESSION | SIGNALING_STATE_CONNECT, fromConnectSignalingState, executeConnectSignalingState, defaultSignalingStateTransitionHook, INFINITE_RETRY_COUNT_SENTINEL, diff --git a/src/source/Stun/Stun.c b/src/source/Stun/Stun.c index a099e39a29..50001563cc 100644 --- a/src/source/Stun/Stun.c +++ b/src/source/Stun/Stun.c @@ -543,6 +543,8 @@ STATUS deserializeStunPacket(PBYTE pStunBuffer, UINT32 bufferSize, PBYTE passwor BOOL fingerprintFound = FALSE, messaageIntegrityFound = FALSE; PBYTE pData, pTransaction; + UNUSED_PARAM(pStunAttributeFingerprint); + CHK(pStunBuffer != NULL && ppStunPacket != NULL, STATUS_NULL_ARG); CHK(bufferSize >= STUN_HEADER_LEN, STATUS_INVALID_ARG); diff --git a/tst/IngestionFunctionalityTests.cpp b/tst/IngestionFunctionalityTests.cpp index 4216189fe8..dc91cb7ca3 100644 --- a/tst/IngestionFunctionalityTests.cpp +++ b/tst/IngestionFunctionalityTests.cpp @@ -383,7 +383,7 @@ TEST_F(IngestionFunctionalityTest, basicCreateConnectJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(0, getIceConfigCount); + EXPECT_EQ(1, getIceConfigCount); EXPECT_EQ(1, connectCount); @@ -466,7 +466,7 @@ TEST_F(IngestionFunctionalityTest, iceReconnectEmulationWithJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(0, getIceConfigCount); + EXPECT_EQ(1, getIceConfigCount); EXPECT_EQ(1, connectCount); // This channel has ENABLED status so we should be calling join session @@ -508,7 +508,7 @@ TEST_F(IngestionFunctionalityTest, iceReconnectEmulationWithJoinSession) EXPECT_EQ(1, describeCount); EXPECT_EQ(1, describeMediaCount); EXPECT_EQ(1, getEndpointCount); - EXPECT_EQ(1, getIceConfigCount); + EXPECT_EQ(2, getIceConfigCount); EXPECT_EQ(2, connectCount); // This channel has ENABLED status so we should be calling join session @@ -583,7 +583,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -612,7 +612,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -634,8 +634,8 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshNotConnectedJoinSession EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_LT(3, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_JOIN_SESSION]); @@ -726,7 +726,7 @@ TEST_F(IngestionFunctionalityTest, iceServerConfigRefreshConnectedJoinSessionWit // We should not be calling create because it's pre-created at the start of the test EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); diff --git a/tst/JitterBufferFunctionalityTest.cpp b/tst/JitterBufferFunctionalityTest.cpp index 8408629df5..e50877ff13 100644 --- a/tst/JitterBufferFunctionalityTest.cpp +++ b/tst/JitterBufferFunctionalityTest.cpp @@ -1137,11 +1137,9 @@ TEST_F(JitterBufferFunctionalityTest, timestampOverflowTest) UINT32 pktCount = 7; UINT32 startingSequenceNumber = 0; UINT32 missingSequenceNumber = 0; - UINT32 firstSequenceNumber = 0; initializeJitterBuffer(4, 0, pktCount); srand(time(0)); startingSequenceNumber = rand()%UINT16_MAX; - firstSequenceNumber = startingSequenceNumber - 1; // First frame "1" mPRtpPackets[0]->payloadLength = 1; diff --git a/tst/SignalingApiFunctionalityTest.cpp b/tst/SignalingApiFunctionalityTest.cpp index a1d12b3242..8fab9f668d 100644 --- a/tst/SignalingApiFunctionalityTest.cpp +++ b/tst/SignalingApiFunctionalityTest.cpp @@ -969,7 +969,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -993,7 +993,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1031,7 +1031,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedVariatio EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1233,7 +1233,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1258,7 +1258,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1296,7 +1296,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedVariations) EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1484,7 +1484,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1533,7 +1533,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedAuthExpi EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1608,7 +1608,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1658,7 +1658,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedAuthExpirat EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(4, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1734,7 +1734,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1754,7 +1754,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1767,7 +1767,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -1849,7 +1849,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1864,7 +1864,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -1882,10 +1882,10 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); // Check that we are connected and can send a message @@ -1965,7 +1965,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithFaul EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2081,7 +2081,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithFaultIn EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2188,7 +2188,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshNotConnectedWithBadA EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_DESCRIBE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -2355,7 +2355,7 @@ TEST_F(SignalingApiFunctionalityTest, iceServerConfigRefreshConnectedWithBadAuth EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_CREATE]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); EXPECT_LT(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); - EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); + EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_DISCONNECTED]); @@ -3162,7 +3162,7 @@ TEST_F(SignalingApiFunctionalityTest, cachingWithFaultInjection) // Account for 1 time failure EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ENDPOINT]); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_READY]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTING]); EXPECT_EQ(0, signalingStatesCounts[SIGNALING_CLIENT_STATE_CONNECTED]); @@ -3573,7 +3573,7 @@ TEST_F(SignalingApiFunctionalityTest, receivingIceConfigOffer) EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(signalingHandle, &iceCount)); EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfo(signalingHandle, 0, &pIceConfigInfo)); EXPECT_NE(0, iceCount); - EXPECT_EQ(2, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); + EXPECT_EQ(1, signalingStatesCounts[SIGNALING_CLIENT_STATE_GET_ICE_CONFIG]); // Trigger the ICE refresh immediately on any of the ICE accessor calls pSignalingClient->iceConfigCount = 0; diff --git a/tst/SignalingApiTest.cpp b/tst/SignalingApiTest.cpp index 6f5a629e1d..c6d687240f 100644 --- a/tst/SignalingApiTest.cpp +++ b/tst/SignalingApiTest.cpp @@ -465,6 +465,22 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) ASSERT_EQ(TRUE, mAccessKeyIdSet); initializeSignalingClient(); + // Valid call + EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); + + EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesSent); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfErrors); + EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); + EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); + EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); + EXPECT_EQ(0, metrics.signalingClientStats.connectionDuration); + EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); + EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); + + // Connect and get metrics + EXPECT_EQ(STATUS_SUCCESS, signalingClientConnectSync(mSignalingClientHandle)); // Await for a little to ensure we get some metrics for the connection duration THREAD_SLEEP(200 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); @@ -479,7 +495,7 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); + EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); // Send a message and get metrics signalingMessage.version = SIGNALING_MESSAGE_CURRENT_VERSION; @@ -501,7 +517,7 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); + EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); // Make a couple of bad API invocations EXPECT_NE(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, NULL)); @@ -510,22 +526,6 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, NULL)); EXPECT_NE(STATUS_SUCCESS, signalingClientSendMessageSync(mSignalingClientHandle, NULL)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); - EXPECT_EQ(1, metrics.signalingClientStats.numberOfMessagesSent); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfMessagesReceived); - EXPECT_EQ(5, metrics.signalingClientStats.numberOfErrors); - EXPECT_EQ(0, metrics.signalingClientStats.numberOfRuntimeErrors); - EXPECT_EQ(1, metrics.signalingClientStats.iceRefreshCount); - EXPECT_NE(0, metrics.signalingClientStats.signalingClientUptime); - EXPECT_NE(0, metrics.signalingClientStats.connectionDuration); - EXPECT_NE(0, metrics.signalingClientStats.cpApiCallLatency); - EXPECT_EQ(0, metrics.signalingClientStats.dpApiCallLatency); - - UINT32 iceCount = 0; - //Get ice config - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetIceConfigInfoCount(mSignalingClientHandle, &iceCount)); - EXPECT_EQ(STATUS_SUCCESS, signalingClientGetMetrics(mSignalingClientHandle, &metrics)); EXPECT_EQ(0, metrics.signalingClientStats.numberOfReconnects); EXPECT_EQ(1, metrics.signalingClientStats.numberOfMessagesSent); @@ -539,8 +539,6 @@ TEST_F(SignalingApiTest, signalingClientGetMetrics) EXPECT_NE(0, metrics.signalingClientStats.dpApiCallLatency); deinitializeSignalingClient(); - //wait for threads of threadpool to close - THREAD_SLEEP(100 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND); } TEST_F(SignalingApiTest, signalingClientCreateWithClientInfoVariations) diff --git a/tst/WebRTCClientTestFixture.h b/tst/WebRTCClientTestFixture.h index 180b14488a..6c3287e047 100644 --- a/tst/WebRTCClientTestFixture.h +++ b/tst/WebRTCClientTestFixture.h @@ -24,7 +24,6 @@ #define MAX_TEST_AWAIT_DURATION (2 * HUNDREDS_OF_NANOS_IN_A_SECOND) #define TEST_CACHE_FILE_PATH (PCHAR) "./.TestSignalingCache_v0" - namespace com { namespace amazonaws { namespace kinesis { From 936f5ec8da6fa81b4a5937bec38eec8c49ba6ad0 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Mon, 24 Jun 2024 14:36:56 -0700 Subject: [PATCH 07/21] one more unused --- src/source/Ice/TurnConnection.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/source/Ice/TurnConnection.c b/src/source/Ice/TurnConnection.c index 7761b757a9..602f52e8ec 100644 --- a/src/source/Ice/TurnConnection.c +++ b/src/source/Ice/TurnConnection.c @@ -1033,6 +1033,8 @@ STATUS checkTurnPeerConnections(PTurnConnection pTurnConnection) PStunAttributeChannelNumber pStunAttributeChannelNumber = NULL; UINT32 i = 0; + UNUSED_PARAM(sendStatus); + // turn mutex is assumed to be locked. CHK(pTurnConnection != NULL, STATUS_NULL_ARG); for (i = 0; i < pTurnConnection->turnPeerCount; ++i) { From b2162c6840916f265623b880400fee6f20a63c85 Mon Sep 17 00:00:00 2001 From: Divya Sampath Kumar Date: Tue, 25 Jun 2024 12:08:59 -0700 Subject: [PATCH 08/21] version update --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf6660454f..0f5d457792 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ include(CheckIncludeFiles) include(CheckFunctionExists) # The version MUST be updated before every release -project(KinesisVideoWebRTCClient VERSION 1.10.2 LANGUAGES C) +project(KinesisVideoWebRTCClient VERSION 1.10.3 LANGUAGES C) # User Flags option(ADD_MUCLIBC "Add -muclibc c flag" OFF) From 4cd8eed6fa388d6d1d6596e0bd396cd402f08ae0 Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Mon, 12 Aug 2024 17:55:34 -0400 Subject: [PATCH 09/21] port static build fix prodc --- CMake/Dependencies/libkvsCommonLws-CMakeLists.txt | 1 + CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt index c8cfa179a8..b0745d8f17 100644 --- a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt +++ b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt @@ -18,6 +18,7 @@ ExternalProject_Add(libkvsCommonLws-download -DUSE_OPENSSL=${USE_OPENSSL} -DUSE_MBEDTLS=${USE_MBEDTLS} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DBUILD_STATIC=${BUILD_STATIC} BUILD_ALWAYS TRUE TEST_COMMAND "" ) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f5d457792..f9e889c893 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,6 +232,7 @@ endif() # building kvsCommonLws also builds kvspic set(BUILD_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DBUILD_STATIC=${BUILD_STATIC_LIBS} -DUSE_OPENSSL=${USE_OPENSSL} -DUSE_MBEDTLS=${USE_MBEDTLS} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}) From 6bc0d2dc4fd4de585117e3c1c01dbb188f6fbe2e Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Tue, 27 Aug 2024 11:55:10 -0400 Subject: [PATCH 10/21] build fixes, remove call to timer queue kick --- CMake/Dependencies/libmbedtls-CMakeLists.txt | 2 +- CMakeLists.txt | 9 +++++++- src/source/Ice/IceAgent.c | 2 -- src/source/Ice/IceAgentStateMachine.c | 22 ------------------ src/source/Ice/IceAgentStateMachine.h | 1 - src/source/Ice/TurnConnection.c | 1 - src/source/Ice/TurnConnectionStateMachine.c | 24 -------------------- src/source/Ice/TurnConnectionStateMachine.h | 1 - 8 files changed, 9 insertions(+), 53 deletions(-) diff --git a/CMake/Dependencies/libmbedtls-CMakeLists.txt b/CMake/Dependencies/libmbedtls-CMakeLists.txt index 2aa6f7ba72..dc31237f92 100644 --- a/CMake/Dependencies/libmbedtls-CMakeLists.txt +++ b/CMake/Dependencies/libmbedtls-CMakeLists.txt @@ -21,7 +21,7 @@ message(STATUS "C flags here are ${CMAKE_C_FLAGS}") ExternalProject_Add( project_libmbedtls GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git - GIT_TAG v2.25.0 + GIT_TAG v2.28.5 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} diff --git a/CMakeLists.txt b/CMakeLists.txt index f9e889c893..5c2aca1981 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -380,7 +380,7 @@ endif() if(ENABLE_KVS_THREADPOOL) file(GLOB THREADPOOL_SOURCE_FILES "src/source/Threadpool/*.c") add_library(kvsWebRtcThreadpool ${LINKAGE} ${THREADPOOL_SOURCE_FILES}) - target_link_libraries(kvsWebRtcThreadpool PRIVATE kvspicUtils) + target_link_libraries(kvsWebRtcThreadpool PUBLIC kvspicUtils) set(EXTRA_DEPS ${EXTRA_DEPS} kvsWebRtcThreadpool) endif() @@ -428,6 +428,13 @@ if(COMPILER_WARNINGS) target_compile_options(kvsWebrtcSignalingClient PUBLIC -Wall -Werror -pedantic -Wextra -Wno-unknown-warning-option) endif() +if(ENABLE_KVS_THREADPOOL) + install(TARGETS kvsWebRtcThreadpool + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) +endif() + install(TARGETS kvsWebrtcClient kvsWebrtcSignalingClient LIBRARY DESTINATION lib ARCHIVE DESTINATION lib diff --git a/src/source/Ice/IceAgent.c b/src/source/Ice/IceAgent.c index f360c93685..0c86fb7d40 100644 --- a/src/source/Ice/IceAgent.c +++ b/src/source/Ice/IceAgent.c @@ -2122,7 +2122,6 @@ STATUS iceAgentNominatingStateSetup(PIceAgent pIceAgent) MUTEX_UNLOCK(pIceAgent->lock); locked = FALSE; - checkIceAgentStateMachine(pIceAgent); CleanUp: @@ -2383,7 +2382,6 @@ STATUS incomingDataHandler(UINT64 customData, PSocketConnection pSocketConnectio CHK_STATUS(handleStunPacket(pIceAgent, pBuffer, bufferLen, pSocketConnection, pSrc, pDest)); MUTEX_UNLOCK(pIceAgent->lock); locked = FALSE; - checkIceAgentStateMachine(pIceAgent); } } diff --git a/src/source/Ice/IceAgentStateMachine.c b/src/source/Ice/IceAgentStateMachine.c index 3204e46062..caf214af43 100644 --- a/src/source/Ice/IceAgentStateMachine.c +++ b/src/source/Ice/IceAgentStateMachine.c @@ -29,28 +29,6 @@ StateMachineState ICE_AGENT_STATE_MACHINE_STATES[] = { UINT32 ICE_AGENT_STATE_MACHINE_STATE_COUNT = ARRAY_SIZE(ICE_AGENT_STATE_MACHINE_STATES); -STATUS checkIceAgentStateMachine(PIceAgent pIceAgent) -{ - ENTERS(); - STATUS retStatus = STATUS_SUCCESS; - BOOL transitionReady = FALSE; - CHK(pIceAgent != NULL && pIceAgent->pStateMachine != NULL, STATUS_NULL_ARG); - - // if a state transition is ready, tell the timer to kick the timer - CHK_STATUS(checkForStateTransition(pIceAgent->pStateMachine, &transitionReady)); - if (transitionReady) { - // dangerous to have any mutexes locked by timerqueue when entering this function - CHK_STATUS(timerQueueKick(pIceAgent->timerQueueHandle, pIceAgent->iceAgentStateTimerTask)); - } - -CleanUp: - - CHK_LOG_ERR(retStatus); - - LEAVES(); - return retStatus; -} - STATUS stepIceAgentStateMachine(PIceAgent pIceAgent) { ENTERS(); diff --git a/src/source/Ice/IceAgentStateMachine.h b/src/source/Ice/IceAgentStateMachine.h index a37af2ddca..71f2f175c2 100644 --- a/src/source/Ice/IceAgentStateMachine.h +++ b/src/source/Ice/IceAgentStateMachine.h @@ -41,7 +41,6 @@ extern "C" { #define ICE_AGENT_STATE_FAILED_STR (PCHAR) "ICE_AGENT_STATE_FAILED" // Whether to step the state machine -STATUS checkIceAgentStateMachine(PIceAgent); STATUS stepIceAgentStateMachine(PIceAgent); STATUS acceptIceAgentMachineState(PIceAgent, UINT64); STATUS iceAgentStateMachineCheckDisconnection(PIceAgent, PUINT64); diff --git a/src/source/Ice/TurnConnection.c b/src/source/Ice/TurnConnection.c index 602f52e8ec..86dc365747 100644 --- a/src/source/Ice/TurnConnection.c +++ b/src/source/Ice/TurnConnection.c @@ -181,7 +181,6 @@ STATUS turnConnectionIncomingDataHandler(PTurnConnection pTurnConnection, PBYTE } else { CHK_STATUS(turnConnectionHandleStun(pTurnConnection, pCurrent, processedDataLen)); } - checkTurnConnectionStateMachine(pTurnConnection); } else { /* must be channel data if not stun */ CHK_STATUS(turnConnectionHandleChannelData(pTurnConnection, pCurrent, remainingDataSize, &channelDataList[totalChannelDataCount], diff --git a/src/source/Ice/TurnConnectionStateMachine.c b/src/source/Ice/TurnConnectionStateMachine.c index 42da265c85..6b7ba5775c 100644 --- a/src/source/Ice/TurnConnectionStateMachine.c +++ b/src/source/Ice/TurnConnectionStateMachine.c @@ -60,30 +60,6 @@ PCHAR turnConnectionGetStateStr(UINT64 state) return TURN_STATE_UNKNOWN_STR; } -STATUS checkTurnConnectionStateMachine(PTurnConnection pTurnConnection) -{ - ENTERS(); - STATUS retStatus = STATUS_SUCCESS; - BOOL transitionReady = FALSE; - - CHK(pTurnConnection != NULL && pTurnConnection->pStateMachine != NULL, STATUS_NULL_ARG); - - // if a state transition is ready, tell the timer to kick the timer - CHK_STATUS(checkForStateTransition(pTurnConnection->pStateMachine, &transitionReady)); - - if (transitionReady) { - // dangerous to have any mutexes locked by timerqueue when entering this function - CHK_STATUS(timerQueueKick(pTurnConnection->timerQueueHandle, pTurnConnection->timerCallbackId)); - } - -CleanUp: - - CHK_LOG_ERR(retStatus); - - LEAVES(); - return retStatus; -} - STATUS stepTurnConnectionStateMachine(PTurnConnection pTurnConnection) { ENTERS(); diff --git a/src/source/Ice/TurnConnectionStateMachine.h b/src/source/Ice/TurnConnectionStateMachine.h index 7ec545387a..ad00b994a5 100644 --- a/src/source/Ice/TurnConnectionStateMachine.h +++ b/src/source/Ice/TurnConnectionStateMachine.h @@ -51,7 +51,6 @@ extern "C" { // Whether to step the state machine STATUS stepTurnConnectionStateMachine(PTurnConnection); STATUS acceptTurnMachineState(PTurnConnection, UINT64); -STATUS checkTurnConnectionStateMachine(PTurnConnection); PCHAR turnStateGetStateStr(UINT64 state); /** From 4b5ed4749f4ccc6abdcf07f2c6e7e5808cecd8cd Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Wed, 28 Aug 2024 14:03:05 -0400 Subject: [PATCH 11/21] update mbedtls to latest LTS in 2.28 track --- CMake/Dependencies/libmbedtls-CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMake/Dependencies/libmbedtls-CMakeLists.txt b/CMake/Dependencies/libmbedtls-CMakeLists.txt index dc31237f92..5ee6149ab1 100644 --- a/CMake/Dependencies/libmbedtls-CMakeLists.txt +++ b/CMake/Dependencies/libmbedtls-CMakeLists.txt @@ -21,7 +21,7 @@ message(STATUS "C flags here are ${CMAKE_C_FLAGS}") ExternalProject_Add( project_libmbedtls GIT_REPOSITORY https://github.com/ARMmbed/mbedtls.git - GIT_TAG v2.28.5 + GIT_TAG v2.28.8 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} From e40fab5f8c38a34abade9ce6c2c161b60c030fa5 Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Thu, 29 Aug 2024 17:11:00 -0400 Subject: [PATCH 12/21] Update libwebsockets-CMakeLists.txt add flag needs for ingenic gcc 5.4 toolchain, ref: https://github.com/warmcat/libwebsockets/issues/3163 --- CMake/Dependencies/libwebsockets-CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMake/Dependencies/libwebsockets-CMakeLists.txt b/CMake/Dependencies/libwebsockets-CMakeLists.txt index 8e0f068ca1..41d01eb8d3 100644 --- a/CMake/Dependencies/libwebsockets-CMakeLists.txt +++ b/CMake/Dependencies/libwebsockets-CMakeLists.txt @@ -38,6 +38,7 @@ ExternalProject_Add(project_libwebsockets -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DDISABLE_WERROR=ON -DLWS_WITH_HTTP2=1 -DLWS_HAVE_HMAC_CTX_new=1 -DLWS_HAVE_SSL_EXTRA_CHAIN_CERTS=1 @@ -63,4 +64,4 @@ ExternalProject_Add(project_libwebsockets -DLWS_OPENSSL_LIBRARIES=${LWS_OPENSSL_LIBRARIES} BUILD_ALWAYS TRUE TEST_COMMAND "" -) \ No newline at end of file +) From ad2922a492b274845f14366c9af6f4d6db0378d6 Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Fri, 30 Aug 2024 10:37:39 -0400 Subject: [PATCH 13/21] fix mac build mbedtls, add option for ca cert --- .../libkvsCommonLws-CMakeLists.txt | 4 +++- .../Dependencies/libwebsockets-CMakeLists.txt | 2 ++ CMakeLists.txt | 19 ++++++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt index b0745d8f17..734da87ea3 100644 --- a/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt +++ b/CMake/Dependencies/libkvsCommonLws-CMakeLists.txt @@ -6,10 +6,12 @@ include(ExternalProject) ExternalProject_Add(libkvsCommonLws-download GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git - GIT_TAG v1.5.2 + GIT_TAG link-mbedtls-properly PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build + LIST_SEPARATOR | CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} + -DCMAKE_PREFIX_PATH=${OPEN_SRC_INSTALL_PREFIX} -DBUILD_COMMON_LWS=ON -DBUILD_COMMON_CURL=OFF -DBUILD_DEPENDENCIES=FALSE diff --git a/CMake/Dependencies/libwebsockets-CMakeLists.txt b/CMake/Dependencies/libwebsockets-CMakeLists.txt index 41d01eb8d3..ebb4b390b5 100644 --- a/CMake/Dependencies/libwebsockets-CMakeLists.txt +++ b/CMake/Dependencies/libwebsockets-CMakeLists.txt @@ -53,6 +53,8 @@ ExternalProject_Add(project_libwebsockets -DLWS_WITH_STATIC=1 -DLWS_WITH_SHARED=${LWS_WITH_SHARED} -DLWS_WITH_MBEDTLS=${LWS_WITH_MBEDTLS} + -DLWS_MBEDTLS_LIBRARIES=${LWS_MBEDTLS_LIBRARIES} + -DLWS_MBEDTLS_INCLUDE_DIRS=${LWS_MBEDTLS_INCLUDE_DIRS} -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_HAVE_PTHREAD_H=1 -DLWS_WITH_THREADPOOL=${LWS_WITH_THREADPOOL} diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c2aca1981..4296b62223 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,7 +102,11 @@ message(STATUS "Kinesis Video WebRTC Client path is ${KINESIS_VIDEO_WEBRTC_CLIEN message(STATUS "dependencies install path is ${OPEN_SRC_INSTALL_PREFIX}") # pass ca cert location to sdk -add_definitions(-DKVS_CA_CERT_PATH="${CMAKE_SOURCE_DIR}/certs/cert.pem") + +if(NOT DEFINED KVS_CA_CERT_PATH) + add_definitions(-DKVS_CA_CERT_PATH="${CMAKE_SOURCE_DIR}/certs/cert.pem") +endif() + add_definitions(-DCMAKE_DETECTED_CACERT_PATH) if (ENABLE_KVS_THREADPOOL) @@ -163,6 +167,17 @@ if(BUILD_DEPENDENCIES) build_dependency(mbedtls ${BUILD_ARGS}) endif() + # This step is necessary because the next set of dependencies have a dependency on + # mbedtls/openssl and the find_package command populates certain cmake variables which + # are needed to pass to the cmake commands for the next set of dependencies + if (USE_OPENSSL) + find_package(OpenSSL REQUIRED) + set(OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIR}) + else() + find_package(MbedTLS REQUIRED) + set(OPEN_SRC_INCLUDE_DIRS ${OPEN_SRC_INCLUDE_DIRS} ${MBEDTLS_INCLUDE_DIRS}) + string(REPLACE ";" "|" MBEDTLS_LIBRARIES_ALT_SEP "${MBEDTLS_LIBRARIES}") + endif() if(WIN32) set(OPENSSL_INCLUDE_DIRS "${OPEN_SRC_INSTALL_PREFIX}/include/") @@ -188,6 +203,8 @@ if(BUILD_DEPENDENCIES) -DLWS_OPENSSL_CRYPTO_LIBRARY=${OPENSSL_CRYPTO_LIBRARY} -DLWS_OPENSSL_SSL_LIBRARY=${OPENSSL_SSL_LIBRARY} -DLWS_OPENSSL_INCLUDE_DIRS=${OPENSSL_INCLUDE_DIR} + -DLWS_MBEDTLS_INCLUDE_DIRS=${MBEDTLS_INCLUDE_DIRS} + -DLWS_MBEDTLS_LIBRARIES=${MBEDTLS_LIBRARIES_ALT_SEP} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}) endif() build_dependency(websockets ${BUILD_ARGS}) From 38e942c835fba43993859dd857bcecbfa09f26ad Mon Sep 17 00:00:00 2001 From: Hassan Sahibzada Date: Fri, 30 Aug 2024 10:56:40 -0400 Subject: [PATCH 14/21] need to add definition so it can be used downstream even if it was specified on the command line --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4296b62223..bd274fc9f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,6 +105,8 @@ message(STATUS "dependencies install path is ${OPEN_SRC_INSTALL_PREFIX}") if(NOT DEFINED KVS_CA_CERT_PATH) add_definitions(-DKVS_CA_CERT_PATH="${CMAKE_SOURCE_DIR}/certs/cert.pem") +else() + add_definitions(-DKVS_CA_CERT_PATH="${KVS_CA_CERT_PATH}") endif() add_definitions(-DCMAKE_DETECTED_CACERT_PATH) From 3652e86d4b9ba5cd98dc0f82d80d15c34bf4b35a Mon Sep 17 00:00:00 2001 From: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:36:44 -0700 Subject: [PATCH 15/21] Default ENABLE_KVS_THREADPOOL to OFF --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd274fc9f2..63dc9af43c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ option(BUILD_LIBSRTP_HOST_PLATFORM "If buildng LibSRTP what is the current platf option(BUILD_LIBSRTP_DESTINATION_PLATFORM "If buildng LibSRTP what is the destination platform" OFF) option(BUILD_SAMPLE "Build available samples" ON) option(ENABLE_DATA_CHANNEL "Enable support for data channel" ON) -option(ENABLE_KVS_THREADPOOL "Enable support for KVS thread pool in signaling" ON) +option(ENABLE_KVS_THREADPOOL "Enable support for KVS thread pool in signaling" OFF) option(INSTRUMENTED_ALLOCATORS "Enable memory instrumentation" OFF) option(ENABLE_AWS_SDK_IN_TESTS "Enable support for compiling AWS SDKs for tests" ON) From df7f38b0442f13c07b925654363049248d932abb Mon Sep 17 00:00:00 2001 From: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:48:46 -0700 Subject: [PATCH 16/21] Update README.md to reflect threadpool changes --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0a71be39af..b23920fb2c 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ You can pass the following options to `cmake ..`. * `-DCMAKE_BUILD_TYPE` -- Build Release/Debug libraries. By default, the SDK generates Release build. The standard options are listed [here](https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#default-and-custom-configurations) * `-DLINK_PROFILER` -- Link with gperftools (available profiler options are listed [here](https://github.com/gperftools/gperftools)) * `-DPKG_CONFIG_EXECUTABLE` -- Set pkg config path. This might be required to find gstreamer's pkg config specifically on Windows. +* `DENABLE_KVS_THREADPOOL` -- Enable the KVS threadpool which is off by default. To clean up the `open-source` and `build` folders from previous build, use `cmake --build . --target clean` from the `build` folder @@ -503,14 +504,15 @@ When building on MacOS M1, if the build fails while trying to build OpenSSL or W To build on a 32-bit Raspbian GNU/Linux 11 on 64-bit hardware, the OpenSSL library must be manually configured. This is due to the OpenSSL autoconfiguration script detecting 64-bit hardware and emitting 64-bit ARM assembly instructions which are not allowed in 32-bit executables. A 32-bit ARM version of OpenSSL can be configured by setting 32-bit ARM platform: `cmake .. -DBUILD_OPENSSL_PLATFORM=linux-armv4` -### Threadpool for the SDK -The threadpool is enabled by default, and starts with 3 threads that it can increase up to 10 if all are actively in use. To change these values to better match the resources of your use case you can set the environment variables to do so: -1. `export AWS_KVS_WEBRTC_THREADPOOL_MIN_THREADS=` -2. `export AWS_KVS_WEBRTC_THREADPOOL_MAX_THREADS=` +### KVS Threadpool +Starting version 1.10.0, threadpool usage provides latency improvements in connection establishment. Note that increasing the number of minimum threads can increase stack memory usage. So, ensure to increase with caution. -To disable threadpool, run `cmake .. -DENABLE_KVS_THREADPOOL=OFF` +The threadpool is disabled by default. To enable it, set the following CMake argument when building the SDK: +`cmake .. -DENABLE_KVS_THREADPOOL=ON` -Starting version 1.10.0, threadpool usage provides latency improvements in connection establishment. Note, that increasing the number of minimum threads can increase stack memory usage. So, ensure to increase with caution. +By default, the threadpool starts with 3 threads that it will increase up to the maximum of 10 and decrease back down to the minimum of 3 as needed. To change these values to better match the resources of your use-case, you can set the following environment variables: +1. `export AWS_KVS_WEBRTC_THREADPOOL_MIN_THREADS=` +2. `export AWS_KVS_WEBRTC_THREADPOOL_MAX_THREADS=` ### Set up TWCC TWCC is a mechanism in WebRTC designed to enhance the performance and reliability of real-time communication over the Internet. TWCC addresses the challenges of network congestion by providing detailed feedback on the transport of packets across the network, enabling adaptive bitrate control and optimization of From 096cafe8f4266289fafb5aa35622e5bd516f1a16 Mon Sep 17 00:00:00 2001 From: sirknightj Date: Wed, 18 Sep 2024 13:43:39 -0700 Subject: [PATCH 17/21] Add cmake flag for iot creds (#2056) * Add cmake flag for iot creds * Remove the manual uncomment required line --- samples/CMakeLists.txt | 7 ++++++- samples/Samples.h | 5 ++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index c37f243d0a..b1e97f55d3 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -6,6 +6,11 @@ project(KinesisVideoWebRTCClientSamples LANGUAGES C) message("OPEN_SRC_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}") +if(IOT_CORE_ENABLE_CREDENTIALS) + add_definitions(-DIOT_CORE_ENABLE_CREDENTIALS) + message("Use IoT credentials in the samples") +endif() + if (WIN32) if(NOT DEFINED PKG_CONFIG_EXECUTABLE) if(EXISTS "C:\\gstreamer\\1.0\\x86_64\\bin\\pkg-config.exe") @@ -17,7 +22,7 @@ if (WIN32) message(FATAL_ERROR "Gstreamer not found in default path. Set the appropriate path with -DPKG_CONFIG_EXECUTABLE=") endif() endif() - + find_package(PkgConfig REQUIRED) pkg_check_modules(GST gstreamer-1.0) diff --git a/samples/Samples.h b/samples/Samples.h index 5998043e54..f99de6224d 100644 --- a/samples/Samples.h +++ b/samples/Samples.h @@ -57,6 +57,8 @@ extern "C" { #define RTSP_PIPELINE_MAX_CHAR_COUNT 1000 +/* To enable IoT credentials checks in the provided samples, specify + this through the CMake flag: cmake .. -DIOT_CORE_ENABLE_CREDENTIALS=ON */ #define IOT_CORE_CREDENTIAL_ENDPOINT ((PCHAR) "AWS_IOT_CORE_CREDENTIAL_ENDPOINT") #define IOT_CORE_CERT ((PCHAR) "AWS_IOT_CORE_CERT") #define IOT_CORE_PRIVATE_KEY ((PCHAR) "AWS_IOT_CORE_PRIVATE_KEY") @@ -64,9 +66,6 @@ extern "C" { #define IOT_CORE_THING_NAME ((PCHAR) "AWS_IOT_CORE_THING_NAME") #define IOT_CORE_CERTIFICATE_ID ((PCHAR) "AWS_IOT_CORE_CERTIFICATE_ID") -/* Uncomment the following line in order to enable IoT credentials checks in the provided samples */ -// #define IOT_CORE_ENABLE_CREDENTIALS 1 - #define MASTER_DATA_CHANNEL_MESSAGE "This message is from the KVS Master" #define VIEWER_DATA_CHANNEL_MESSAGE "This message is from the KVS Viewer" From e22e08b6c480c9cc46135ebcfc8a8fa0153e8fee Mon Sep 17 00:00:00 2001 From: Stefan Kieszkowski <85728496+stefankiesz@users.noreply.github.com> Date: Thu, 26 Sep 2024 13:58:11 -0700 Subject: [PATCH 18/21] Prepare for 1.11.0 release. --- .github/workflows/ci.yml | 1 - .github/workflows/codecov.yml | 1 - .github/workflows/codeql-analysis.yml | 2 +- CMakeLists.txt | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 768a5c02ca..9f39330203 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,6 @@ on: branches: - develop - master - - 1.10.3 pull_request: branches: - develop diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 43cf4e5d43..767a567d67 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -4,7 +4,6 @@ on: branches: - develop - master - - 1.10.3 pull_request: branches: - develop diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 220a3c0868..8ba190d53b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,7 +2,7 @@ name: "CodeQL" on: push: - branches: [ develop, master, 1.10.3 ] + branches: [ develop, master ] pull_request: # The branches below must be a subset of the branches above diff --git a/CMakeLists.txt b/CMakeLists.txt index 63dc9af43c..38b7e2ac16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ include(CheckIncludeFiles) include(CheckFunctionExists) # The version MUST be updated before every release -project(KinesisVideoWebRTCClient VERSION 1.10.3 LANGUAGES C) +project(KinesisVideoWebRTCClient VERSION 1.11.0 LANGUAGES C) # User Flags option(ADD_MUCLIBC "Add -muclibc c flag" OFF) From d9ab52d0a207abfdc9d9c7febe4b798eab4f54e6 Mon Sep 17 00:00:00 2001 From: sirknightj Date: Wed, 2 Oct 2024 00:05:00 -0700 Subject: [PATCH 19/21] Add instructions for using IoT credentials in the samples and document additional cmake options (#2058) * Add instructions for using IoT credentials in the samples and documentat additional cmake options * Address comments in the readme --- README.md | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b23920fb2c..996cbfbfcb 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,9 @@ If `-DBUILD_STATIC_LIBS=TRUE` then all dependencies and KVS WebRTC libraries wil #### CMake Arguments You can pass the following options to `cmake ..`. -* `-DBUILD_STATIC_LIBS` -- Build all KVS WebRTC and third-party libraries as static libraries. +* `-DBUILD_SAMPLE` -- Build the sample executables. ON by default. +* `-DIOT_CORE_ENABLE_CREDENTIALS` -- Build the sample applications using IoT credentials. OFF by default. +* `-DBUILD_STATIC_LIBS` -- Build all KVS WebRTC and third-party libraries as static libraries. Default: OFF (shared build). * `-DADD_MUCLIBC` -- Add -muclibc c flag * `-DBUILD_DEPENDENCIES` -- Whether or not to build depending libraries from source * `-DBUILD_OPENSSL_PLATFORM` -- If building OpenSSL what is the target platform @@ -152,7 +154,7 @@ You can pass the following options to `cmake ..`. * `-DCMAKE_BUILD_TYPE` -- Build Release/Debug libraries. By default, the SDK generates Release build. The standard options are listed [here](https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#default-and-custom-configurations) * `-DLINK_PROFILER` -- Link with gperftools (available profiler options are listed [here](https://github.com/gperftools/gperftools)) * `-DPKG_CONFIG_EXECUTABLE` -- Set pkg config path. This might be required to find gstreamer's pkg config specifically on Windows. -* `DENABLE_KVS_THREADPOOL` -- Enable the KVS threadpool which is off by default. +* `-DENABLE_KVS_THREADPOOL` -- Enable the KVS threadpool which is off by default. To clean up the `open-source` and `build` folders from previous build, use `cmake --build . --target clean` from the `build` folder @@ -261,7 +263,13 @@ If you have a custom CA certificate path to set, you can set it using: export AWS_KVS_CACERT_PATH=../certs/cert.pem ``` -By defaut, the SSL CA certificate is set to `../certs/cert.pem` which points to the file in this repository: +Or, you can pass it in through the CMake flag: + +```shell +cmake .. -DKVS_CA_CERT_PATH=/path/to/cert.pem +``` + +By default, the SSL CA certificate is set to [`../certs/cert.pem`](./certs/cert.pem) which points to the file in this repository. ### Running the Samples After executing `make` you will have sample applications in your `build/samples` directory. From the `build/` directory, run any of the sample applications by passing to it the name of your signaling channel. If a signaling channel does not exist with the name you provide, the application creates one. @@ -402,6 +410,27 @@ createLwsIotCredentialProvider( freeIotCredentialProvider(&pSampleConfiguration->pCredentialProvider); ``` +### Running samples with IoT Core credentials + +Build the samples using IoT Core credentials mode: + +```shell +cmake .. -DIOT_CORE_ENABLE_CREDENTIALS=ON +make +``` + +Set the environment variables for IoT Core credentials: + +```shell +export AWS_IOT_CORE_CREDENTIAL_ENDPOINT=xxxxx.credentials.iot.xxxxx.amazonaws.com +export AWS_IOT_CORE_PRIVATE_KEY=xxxxxxxx-private.pem.key +export AWS_IOT_CORE_ROLE_ALIAS=xxxxxx +export AWS_IOT_CORE_THING_NAME=xxxxxx +export AWS_IOT_CORE_CERT=xxxxx-certificate.pem.crt +``` + +AWS access keys are ignored from environment variables if the sample was built in IoT Core credentials mode. + ## TWCC support Transport Wide Congestion Control (TWCC) is a mechanism in WebRTC designed to enhance the performance and reliability of real-time communication over the internet. TWCC addresses the challenges of network congestion by providing detailed feedback on the transport of packets across the network, enabling adaptive bitrate control and optimization of media streams in real-time. This feedback mechanism is crucial for maintaining high-quality audio and video communication, as it allows senders to adjust their transmission strategies based on comprehensive information about packet losses, delays, and jitter experienced across the entire transport path. From d5d09c85f82c2c9112b07bb9f63ea02cebdeaf4c Mon Sep 17 00:00:00 2001 From: sirknightj Date: Wed, 2 Oct 2024 17:32:59 -0700 Subject: [PATCH 20/21] Change branch target from master to main (#2059) * Change branch target from master to main * Remove instances of master in the readme and within the ci jobs * Change references from master to main * Adjust print statements to reference main instead of master --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/codecov.yml | 6 +++--- .github/workflows/codeql-analysis.yml | 4 ++-- .github/workflows/doxygen-gh-pages.yml | 7 +++---- .github/workflows/pr-desc-lint.yml | 2 +- .github/workflows/version-check.yml | 18 +++++++++--------- CONTRIBUTING.md | 4 ++-- README.md | 10 +++++----- 8 files changed, 29 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f39330203..4061ca5e73 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,11 +4,11 @@ on: push: branches: - develop - - master + - main pull_request: branches: - develop - - master + - main jobs: clang-format-check: runs-on: macos-12 @@ -385,7 +385,7 @@ jobs: run: | cd build timeout --signal=SIGABRT 60m ./tst/webrtc_client_test - + mbedtls-ubuntu-gcc-4_4-build: runs-on: ubuntu-20.04 env: @@ -417,7 +417,7 @@ jobs: mkdir build && cd build cmake .. -DUSE_OPENSSL=OFF -DUSE_MBEDTLS=ON make - + mbedtls-ubuntu-clang: runs-on: ubuntu-20.04 env: diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 767a567d67..9394ea3d31 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -3,11 +3,11 @@ on: push: branches: - develop - - master + - main pull_request: branches: - develop - - master + - main jobs: linux-gcc-codecov: runs-on: ubuntu-20.04 @@ -43,4 +43,4 @@ jobs: - name: Code coverage run: | for test_file in $(find CMakeFiles/kvsWebrtcClient.dir CMakeFiles/kvsWebrtcSignalingClient.dir -name '*.gcno'); do gcov $test_file; done - bash <(curl -s https://codecov.io/bash) \ No newline at end of file + bash <(curl -s https://codecov.io/bash) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8ba190d53b..47692d4219 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,11 +2,11 @@ name: "CodeQL" on: push: - branches: [ develop, master ] + branches: [ develop, main ] pull_request: # The branches below must be a subset of the branches above - branches: [ develop, master ] + branches: [ develop, main ] jobs: analyze: diff --git a/.github/workflows/doxygen-gh-pages.yml b/.github/workflows/doxygen-gh-pages.yml index d8a2393618..0b948c2066 100644 --- a/.github/workflows/doxygen-gh-pages.yml +++ b/.github/workflows/doxygen-gh-pages.yml @@ -3,7 +3,7 @@ name: Doxygen GitHub Pages Deploy Action WebRTC C SDK on: push: branches: - - master + - main - develop jobs: @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 - + - name: Install requirements run: sudo apt-get install doxygen graphviz -y shell: bash @@ -20,10 +20,9 @@ jobs: - name: Generate Doxygen Documentation run: doxygen Doxyfile shell: bash - + - name: Deploy uses: JamesIves/github-pages-deploy-action@v4.2.5 with: folder: doc/html branch: gh-pages - \ No newline at end of file diff --git a/.github/workflows/pr-desc-lint.yml b/.github/workflows/pr-desc-lint.yml index 0fe1117916..73c32d71c3 100644 --- a/.github/workflows/pr-desc-lint.yml +++ b/.github/workflows/pr-desc-lint.yml @@ -4,7 +4,7 @@ on: pull_request: branches: - develop - - master + - main types: - opened - synchronize diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml index cb08eefe65..eb556595f2 100644 --- a/.github/workflows/version-check.yml +++ b/.github/workflows/version-check.yml @@ -1,9 +1,9 @@ -name: Check Version Mismatch between PR branch and master. +name: Check Version Mismatch between PR branch and main. on: pull_request: branches: - - master + - main jobs: check-version: @@ -19,24 +19,24 @@ jobs: echo "PR_VERSION=$PR_VERSION" >> "$GITHUB_ENV" echo "PR Version: $PR_VERSION" - - name: Checkout master branch + - name: Checkout main branch uses: actions/checkout@v4 with: - ref: master + ref: main - - name: Get version from master + - name: Get version from main id: master_version run: | MASTER_VERSION=$(grep -Po 'KinesisVideoWebRTCClient VERSION \K[0-9]+\.[0-9]+\.[0-9]+' CMakeLists.txt) echo "MASTER_VERSION=$MASTER_VERSION" >> "$GITHUB_ENV" - echo "Master version: $MASTER_VERSION" + echo "Main version: $MASTER_VERSION" - name: Compare versions run: | - echo "Comparing PR Version: $PR_VERSION with Master Version: $MASTER_VERSION" + echo "Comparing PR Version: $PR_VERSION with Main Version: $MASTER_VERSION" if [ "$MASTER_VERSION" == "$PR_VERSION" ]; then - echo "Please update the version in CMakeLists.txt file (project(KinesisVideoWebRTCClient VERSION LANGUAGES C). Any PR getting merged to master requires a version update" + echo "Please update the version in CMakeLists.txt file (project(KinesisVideoWebRTCClient VERSION LANGUAGES C). Any PR getting merged to main requires a version update" exit 1 else echo "Version update detected." - fi \ No newline at end of file + fi diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 254a1a8cef..4d66a03b67 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ reported the issue. Please try to include as much information as you can. Detail ## Contributing via Pull Requests Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: -1. You are working against the latest source on the *master* branch. +1. You are working against the latest source on the *main* branch. 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. @@ -56,6 +56,6 @@ If you discover a potential security issue in this project we ask that you notif ## Licensing -See the [LICENSE](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. +See the [LICENSE](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk/blob/main/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. diff --git a/README.md b/README.md index 996cbfbfcb..48b59971db 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@

abNyy3J;!goIi6h2R10w78__( zxs(#jBazK^tmWey>WabI_AAPBB||8G>_L++;L$dRG!Q9stNCx8W&zaAg-V2Cj9Hk; z%~@3(kwffHeT&II9;Fzvb7(vtCcZx?DR3f-?CF8tnBd+EyyL+m*oy5qlRYhG^!J`B zjYxfqYx0N~e!n@T)8~R%674lTliqBuo5>CnE`s-7ve6L)UbFH!)RTA9r^CwDAw3(A6S3AbwEcz^T z%bvru%b;D%c)lKvmU&eGkka3ol*5SJ;=D%*p$_V+^BEw7w7N}sdcK)591w5u zn}DnVgrtk~)X9xRO?aYksBgWw^7aO)WETS;ti18WOz-A_4TK%AunAWhGIkL!`^JXr zj{gkXWg{1Kla#Qbh`I^;Uo!sYam}l?u-MU;txyk(huYv+2Uu8R-SNs{$%d-K)eC-z z^T71_Esc%0WT|Uiz?JUhR+PA`pASF|61yyN7@d8Yr%d!HmJ&h~xMERy$Z4phN=W|# z^Gx!;X^#+pwf(8`zLww?EyPPpIiLO0$S-v_)nxi}8B2Ia zr3$RHsXj{^W)g}Nj>HQ>I!jWMR3SkHltbE|?Vqu8kn<<&A<`d3^zr%!F0jH=;;nia zd5PMeZXJ{uq4I;s;9vV6()&H9&FDeyagwiB+nd+QpZt9w^%MjB`x+XzD~8+km_OAe z-V3+Gl~ePkC6JYn%jXpcWkj-W5bYMY`XkPMN5s21gXN~^Imksp!Q39QfroRk57WJ} z3ELZVR+t*gJX|+RmM4-1>_D{JzyP0}6+qwsF`2%A86)rk0r$WiA20}9B0wI8kRb4s$k5w@!y4t?2GBxq-*2a8f z8`iA#+-6%n!~eZdSXwcvhKyua>AG5OpYa19KqmNZ7pARIGn0fAS=MnIfRw`WwD@26 z+rGwSZpU269=v7slBfknS2eQp`u8jdA1DCd-=HP%&Wat_d|&>!NuvXT zjdJUrObn{PR^Z3@XdAi9nQ-fxSR9xlQ9S<8@u~4@%Vc11`){RP5o0N<|qI-XYx$gt9OrR?-w(x#e)~xGayPdn|I=$O|Ha_ zV*jdLKZw5h1&gsG9uXp$tA7#nTLE)?t=a}WVsX&53~$n+gG|mDqf|AsQw(LGCD(xA zA!Hrkcpeiv4PqN1Qsz_cG?%2g=1k&c^DEX(>081;asMeZ5H(JwkN@OZ@ScDy1cB%L OGGBluU<=W}0AaxI$hv|6 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1285.h265 b/samples/h265SampleFrames/frame-1285.h265 new file mode 100644 index 0000000000000000000000000000000000000000..8b0b56dc7bb4e1ef0df075b134b7bc8dd9dbd322 GIT binary patch literal 1925 zcmV;02YUDb000330nj1;)I$OS@WEQ5o&x~jFbo2nO&ACQKtYQy0t;P>F<_R1xxQ73 z{nXR-h|;E;6T>R8l*I&DE}Fr^nC!+EeIsnC29$y$94FuMk>2{nPtO>^Uoy0H{+}0;rO2a3<8${i>c&`&sR^OVvkTl3PUqK-ngg#G3rPtY|0DX^|1s` zz8swlJ~__PY7bIBf3?sm4UfXmW<;b;%K>-)ff-9xL{3Z=vn7k$Q-KWI3_k)vNzGqX z$3vVlO+8rW6`26R8)UAr{xGG;k(XBj3fP68F?_!4OZYyhg3UQ8(}@=cHLmrM)Bpd> zJW6>?g3JKK`StY6y;p0mkba@z6pxiEmZI8g;t5;)L0O2a-u%#hyk^ zB2pTm^2XfJc{YZz*wNy;L1M}K3-}U#KSDWM@<*(~`Oh5`O^i>TL1GRpNXY9Hs6j#` zh9IJ<#DM!R0&=8RX_b#Nj!DHkkk1X0EJUf}x?kAr^@+-yr$x-q;OBoshHTl>@Vsjw zeot>%EzggyH#;^W%q)CCZGVNz8V&5bs$8_jG7#d3xT5iL#_%tH>8{Jjsa)zPuRE|O zrkPrS+E|YT@oo903{O?|lo#qU*s3j5!s?`c%Kfp!a^84I*_-C>T+ktOAKuQr-VNK} z21=_=V+%7>{E2Yk<*F*LE-u2TU|FF;y~&|^^4;~We!ok0Qh&=mFzQ|1zXkBxSooly z-xA&?ARX^*1z(~yDP$32K6-4*{dtEk#-VUv7;k4KJKb}tx}T+I*32<*0l9}hT{8C1YffV@1&Ky=D33YuK+(@< zVV&QG$N7bcBFPg^uhBKqmqo}YU203bOwghJZ~fQ)!Ilf%9!rP{eMxr$SV2q8`LB3& zrv$?wcUZoHT+evh^Dm#qJGj<;uE4FCUxMQk&`~ge%xK-ej=M43+DK0&R7^*?{b&2s7l7KsG(*XtIjvHd*??s~`pXeLF0mQ$+H_YROUXp%6T z00095`s@$p#rj7h@hvFP;D7u7{w9l<$odU#5kCFh!4EVxXFx;dQ{m;Fae_dtP%DJv z=I-!EJQa?IG%I4}kU+^?M1s@sCe#Rgv^j#|tv93yPao(I-b8#}c_>!aNraEkX+Rg) zc!Dw0DKMXb}c-Nj<7VK9d;W zw4O&wK^o1}s5E=WdkDhYXOomG{G-eqL-jzkW?(?H+rR*yofSaf05O@qfEgq30Ri{G z9Um|VTp~aohmau$Ya``g%@8`B2acTK8BpYXhxM-yol`69;!D#Zm9ep~$ZY6~UyukE zWNcsJ&w4aLYdbbU)a~}Z;(i9V7w61ya@=EO_|E`WFCT?K=#K!(K0H10l=TC(h^?#; zWjl{?skB1|=KSeAQ9m^tB=Pc!5|fgeq!`mo6*q$Aq?;;{a!i(knX~&wtJm^nVbOBF zaI~T^zl;|WlL#fH(F_pR!mS!?S;kH5>lMe3eYv9 z)STK(#-o$_51`|h9V_4{=pYoiV7zGY!lpErETnE1<9WD~pJ7n`p %^bl)*9FbE& z!u25&Nx*j8%K4+eipFYAO`uzlAVY=poEmusIGAWmTN^S^@_URHmPd!Z`_xP?S$)u$ zAh1tm{gg+Mp*DRMa8%KoeQiJmz8a0Y(`}A*jT-fM#mMz9QyApZ_TSRmI%^YT?=#Gh z&+dHyL=C-6IpI^YHMy1lQWG1_A98h_*`>l)$E`EA=uR=uM0rY|_JX z0siKW5JxW9djXNWi%L3uC`SN!LhmKL|NVy2U0NMV<#W8yG;`M~w!Rg>EChk){4!sF LCSVKEzyM*ue%!tK literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1286.h265 b/samples/h265SampleFrames/frame-1286.h265 new file mode 100644 index 0000000000000000000000000000000000000000..79746a89a2328c84d0e41d2004d610eb450053b6 GIT binary patch literal 2883 zcmV-J3%v9I000330njP`)I$OS_`!HdJOE%00e~n1J*~Q*v?1D4MYK?zbz@$WGby@%h0fx^+_vv zG&dyxx{)nfQAf1H+45~)N&B-sp66qyce87?pBu^VL#nQA+y+qRT`78%Eatmds-{1L zA{k5N)O?=WmG_f5i23m%1Y%&SVTC%FmQ0GOus$9~>Kp8Jv1Dfj@KCESrS>P0;q)B> z4a(h1$0*{QQ(DVt1$hXO1kIObL8tEtcif&AgWAVa37r@52Ep_hgiJOt?CWAx90%Oh z=iUSJzkas<4;h7)%kxx068&cY1UUljsbe0bOJEya5XAE^GyEEx(?mg1#5%2o5L

>Pd!zeCllTeGMlq%kUj$ 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1042.h265 b/samples/h265SampleFrames/frame-1042.h265 new file mode 100644 index 0000000000000000000000000000000000000000..232d39b82ecd59489c3fe024e8fd0565da4ff8c0 GIT binary patch literal 1724 zcmV;t21EG(000330nmy6)I$OS_`z0sWCH-8C<+1qpgc+-KtYQy0t;P=V)z9I_~5VI z);UUa!(P-Sm$XN-ff;%i_MLu2OaPgfIyW=^jsO4um{ab+e5ACW0hq1_8*lY^K7Jn$ zG|aA9EJMgRXoq`Wo*x=YL&gEk3IF~M&|n5ndF#`2iT~9(W59j`_@V#&x2Q5^mo(zo z0@@U};w@#;<6Luu4p_*BgiGm*%VYyFMMK8F%R^`jy#gJPtA!g&>+{)P(iMBh6=pEj z-8FVDn;tpr_&io1nsT?JHtNg z7{Hm-o$L3>WF!xk4+}wSQdNV1xuJ4&)UKWga;?fJoNtF2!ni~@;#@x#Mqx4m3^gR= zDyM;FbmRiz*wey{MM}oWSXlmH*SGCx%zO~ ze1WMWpfFy~OTrR$R8;r%^DL|(Qaou}+|ZSqw#7W@ni_)K)(eu9FPh|0gWblPbmCa2 z>5w1Kk02yS;ScJfPd+dF2&S#Ng}XT!_HM%=0&-(6O0JBVR-)@s*K|mK<^7=mfA3%?h}&;4@cZU4J?^KcZ4t$x^%xkc4=|gn3^#NURFRzDuj|Ba|D`>A&PP$L1_TZu&JU|X_jSVzooDgz9CIn`9iNI#ZdW-VD> zdpuOB7EHsX3Gm%#)7>*x38!qZv0;jbvmF!ch3iw;!p!-wvp;3#1@87Uq*Gv&@CCK| zee>y7wi1PD7|Fru09q_36YcAC=Y&!oQ;f!Mu91xvLb$NFfq8@SgMMsh7YcR%?L3^L zjY#SPA|cc5ef&Htl;fR_*Etyupb4~#unsV)s-IV?y!c>R2>@+j&GB7oT?9L`q@e6K zo1Eh`$HFWB|Ljq({l?}#C}u{i!Z-~$K(yPy06icTK;Qr$kQpQJ05sqoA20y!fF6gC z0sDYUSR{7>`w*tr64xzV%d8*wVJ1iZu9Wq^L zsG|a%k78~?-tO)S#nf`h|LmGUke!m&HOSP{{7#wONSE3 z2iHUr7_fc1fagC`N5r=TwWfXxiCRIssfbV!_qhK;$kPVdV zx=k;pDPT-*o`7Sfz0@!N!bDQiP0ex1-qAU=LI}A4yQ+_a_#ennWy3Q|eX%N0(|Ib3 S6%J`JIPsDT(ZB?3w00uAwO--? literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1043.h265 b/samples/h265SampleFrames/frame-1043.h265 new file mode 100644 index 0000000000000000000000000000000000000000..782388e8c7f8e05dec3fe128a23ee68cd58923e4 GIT binary patch literal 1969 zcmV;i2Tu3^000330nm~E)I$OS_`zK3I0FEnC<+1qpgbxDz(I>I0t;PdFvX6qgvpjJa0>7^XdAiTZtfvC*fKEdpV#Kn0{NiRm`Y8wwtdTPwWubVJ=C zxA)zd@tnOWr`?bGG0eYSCTEr0rlWy*ppa74LuH9aCNbh_X0@=?sxZp}goF-w+nu9^ zbO##IjFk$wI{l<#0OQA%(|w-|sDJ+;6-KsDzn5|9#5dOT=EfSmohcO_o!yX%ZsX4_ zL2}=7CC3JQfk(`l;l{wu-*cit(-en{l`rFr-&1<&_Ci}LR?v6dlB;%bxvJp&d#TvW zJM~21+rW%>lB}-~h~EF*Ce$(9&Me!aXkKDJ!}?XF>6j@`+5syd{wMs|Va@7P{4n80 z;tIqO%U4t&V1=2RWMsx+Q1^Po-B%2d?jM#@iFwJTr2%7*33?{90~UDz08q+7=JTju z5YQ4Cm4^f&zjEG+d=P0sj_jm45-PYGhkHeELf%%1il%J6c%d29H|!CyPf{;cCeN+Z zCz+i$Sh;By#DfvybTF2a^3eWN6xkRh{*+IxCQ3tvqd~${wFFU2!Z@W4LfTG|R-#pV zsO@f`@qy({s=-n|K>~%M@IWss7cm!?<=r^3s34^B+dAmJ`(QWt#B&61TlJNEu#40i zyRwrf6;^K4(YyOQ58&^1XY)*@-o7NoXYodMOC-5-;-8qe2QV}417H9yP`%MG)bO@^l8$?37*ZBXZl(|G)EpNAUapz`noBeyj4{r`ddm_@nu)W2YKhKGV7b zJ)EW3H?O~UePl})Nvqr^aItq&YNVk@LZz$AGA_RJZlv1E{tf7Lw^l*-uAxf>RiG{3 zJpUs2<3YyB6eBY@uRt@X`cTQ>YgKEWSUudcL1!=V>9*ZG?*|KKQij?7bZ1Bj&wdcEC=E?=WO&3Dt|6NTW6Nu#t6V1WuG#jkk`N2ZgGub)1X zi~~$So0>oC#1beyE=WuO@li41m$1M903o0c=EeF)wpt=3Jpk*f`UD1ZhLct?5&%M zO|L)=-qCVxX1`t1d11)^vx}YF=&TKIv`BM{wPJj&YfFmW`a4SClYjtVGM2uX|6z_7 z$VPQWpXU7s4Bg9QMGlmE;}A={KJG0Y67U3dF4bE$YQ&Z$$Kj5K9O_X-4e{$&M@rjs zeo2vV4q+SbN!SC*&5bd{Ty%-_Tjxcw#EDgc1Sg2N6)}JVBaZ%#YmXN&j1T;V)hJvh z+f;&{-bS{2<+~xV8a59$A!BzZQLG!3TNCk&Fb@NcpcvM{_zEg#+O%&FW3=KqFRbDY zWJ3Tvwjsq{19YH2I%U2_Dy-r%#h4m!K(yPy06icTK;Qr$kQpQJ05sqoA20y!fF6gC z0slQf{L^>pjNz3LY>zFE=gJ|E{myI;+z3Ao&F1HS_hYj9=WqO z&dtNlT~Uc#`-gAAYZ_>7pWKj6mJ=_U{BxPr*yP#01BAnG{lXRZd=l0Hji@xmj#l!; z-Al&wb#x#kIl2bA#n}y(*GdJ-+iF2;S;?&WgACz*k);}m%Mbpbe*^1Clze705PvXS zgh`P4Rrh}AcrD-GR8$J+1`hzA0-)(J1eDdFI+ct}W0214n~fbYlgXixPwK5NEELFA zs9P3vFR^?G+d7?lE6Xa#Ba^}WlC}J~y?Z@iinWDr(4Yah`z7KyL?(B5`&lO=qHx7i zHJ`pSdwTO}xvJaENV{u6&>ovI^jC6RhD%m4GJ~io%07V+^uCrBhdv2+xfSHQeAop9 zwfM!p+<^`%oj=;;6)>b8LWOdc${;I{#?Y_xVF D1sTk0 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1044.h265 b/samples/h265SampleFrames/frame-1044.h265 new file mode 100644 index 0000000000000000000000000000000000000000..581a8405031f6e0ae0c754627e240d94488d6227 GIT binary patch literal 2559 zcmV|v0000330nnNM)I$OS@WFER1b|=)0YE4O0H7Uf0LVd$F9Hi)sw3n*8hii9 z%O~csP-Np=`t+5Yf4A_yFOAbKpF@Mc!{i#^#w&Zqh`*_tkmJ+HgV=K945Fc)J!T$~ zq_+iQ4lW8^DcaJPJt|Ri%pb6RZ|!KdpZ}NE6UKKNe5ONRg?5}hz*LCeg1*YcW!4s^ zc(KJD^n|6V&PH!~)v=1MyOjnyBxVSdD)e`O)b<*l9`S^?HY)&!Hb0 z*$)rIxjt_jiSbq{2Cgm00SJ6n_h@P{(=%}@sUIBb|C6aZ>a)(h5&_Hn2~5#lbN>bp z3}Si<5J=d6ufq|<1GuBGSV16B<>`P4{h1NXBXKx_>{DK-WQ9k>_>jA^BkL*LVtWs^ z>6r3-46KOoGoqK#jfDT4QrrRUyOBjxo%^h7ayyWS0u($Bi%JS{jy(6Leqg3V#eDwK z7#8ZFtbhkq8dPM>zvRiLZKIZn4B)y~=@N%7gs{Sj#69s3ZaN92CY(cx=_8S1ZYMAq za2$%5yYdl;BYd@LE5oD=I5TqsZ)qUS*D!&Qel%;N0SL=)BFXjB(LGNx{#gP&hbMU> z^61bJ7#X_0@kQ^oUjF(D&5@)AhNVK`U3Z>=t?ZPSr4!}zDpjt5KIi()q~2nG))iUF z!u%BJJjSl7L>s9*%WUi?xB-hpP|lQ5HdtJsEEp`T38oQZo|;lAVcY7NnP7iI-YS|V zYCb9lo~oD!IQL%Fb6tBq&9o(MEkEVb75V@QeRFceuLH3PgIU(bI-go_Ec50ceE=$Z z$b|G3DTPa1tJbx5psI5M?WAPzyqe)b&R3XJAz%lQz2E(<3Ft-km{{aHN#t{rO?p%G zF)*y0N2Z)q)}~1e)Suz`7t`=9#%&S3GbkO4Ai3YA!Bz8D*?k2|4+-+*UvfZ{m4uSsGio?P6pT`JE!ilJV$m)Y zWT-O1+vwiEDN0WJR4uf=MoEKEmwD~sd=0wnmxK=sl5nQVGUH|K-Y{&ui3W2vg2cL@ z007CE!OdjRaL3JqBij9Iz*Z@KoXF3))1+V@HN`v}YjDPjcQq*d>TRJ$HMAIui>P|C zy+!B2t*>~)8^O*lG?}m%67KZh#|u0tZ9CWQ+Jh-OpyJ@r5iQa%s%+GgK@MkVD@3ou z4b4ZQz75d$B#U;(m@J$8RA#SE;8x;yrq(cfzVD+KdYY`#bnym(sNjpa*730>7cWA% zlDr!{w{DKdLoIX97DplaYVTYRV|Riq)_03W2<5MfEIR7>`Zu11$$dzcFr3e(vt;H? zZv|9*0hK_s+rR)lAQeF103VPUBk%w;;2j?@0PcVuhmZmSBjttX)r>1%=3lX$=71~& zsL6vH$7q39>|THfk$)QheX`o%bm) z<3=a~kH@B?-vk+pZ`CUgB`Fc<&+a8R8|!|w7P5x6Fze?uD2hGn{arbc)M;?WoobJ@ zo{|3o9H|;LZt_n#k01i0xt5Ad&TEL=J5i5mW8pcD62A|P=5QLm5xU$Yo8C;#(hqoR zi-r}N@R;rqfL`ykQYYO}#O%Zba1;wxa4B-)@kt;RtK(9cf={@gEnF*#Nx>vXI^Md` zp_q31PT=4FfBOv9X}4mh`Zueh5JLakSO7GFZ78uOClvuvtR`HWAJFXxtmR=ihygAo zx0xdvO{ubP(!rP9xxk{gBwS7B5rYGqiLL3ztCUR4NE;q;U=e3@Mt2Bu_a34IIE$%U8 z-QC{6YAT)_kcgSdEKFAbN8v4I^9*uaN)d;t|JSm^EF2Y z+u*~w1wm*Sb!9~M{z3lodeg{TQjhp8I<#}cvAWlIkA({;?(NHnyE%hbWQ}?3<_-IB z_1zdP)0$f-p023tuGcq1BLt1A+Nw^YpnQGRduyCWhoL9`|Nr+m;!XdZvb%qyLNZ^F V4V3JF?)c6xxQl+ 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 UQ9E)$F%(+ofDE192^m;0$nK-I9smFU literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1047.h265 b/samples/h265SampleFrames/frame-1047.h265 new file mode 100644 index 0000000000000000000000000000000000000000..cd0a624a83f5c01362927d6c6a52b5bdf44ba1ec GIT binary patch literal 1928 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1050.h265 b/samples/h265SampleFrames/frame-1050.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9ff7928ddc5c28e815b4034b9679f751e2cca882 GIT binary patch literal 1794 zcmV+d2mSZ}000330no|+)I$OTSixF~o&*5kKn?>Atau6nz;Q+7_YK>trDqv=8D;&{ z%k-E_c_OKVO}NJ@RssyO5Hk&O7-04)q6{gBR1H&MPGpNuZK-T7B`hV6%fNDa9v0Q6 zz1SBvbv`-TvPxjTb!j{mMIgp*Z^##>gzxW(d=|Ofmw7C?b|Up5VNga^6*@1(c=OmdhRAk^AYi4rv7f?U*|?tmJ&R zQ^{RlDob@VV^@s8664_Us4;uT83Gn1^cuDL66}`4?2JY!6;jD76rMvpjV$e2qRlVY zBC{^t0|jBM=d0;fBglJEA6Lhb&n|c*GPm);1nzH9r&N7F(NIpy~|J?vn z2GjAV!K{`2LO>Rlq($sUe3hHr+$0#)H~YiKj{qzF(DVrT2tquu+WLS_=a8C7Cg}0_ zT8(A61qj?jPpR!g15u{y(l}8?2-?C>xoJ;8 z`;TP*zFbrsSa`tLEnwxXpy`;QKw94O_^WvFPhvSHL#(kkj$MLa*$b>$;xl$LL2CJb z)QD61=7LUw@-c84oBVASD2#v+!F9kWY#bk#*kAX*X45K7Sa`b1$%=*r@}quk&6P^D z5)z9UY}eWwD0DAOoEe87vLV8LlkHbx`yuOySCOOzQ) z1zTy5v7bKZdUn!%TfIJ@SGtg~$5QAKb)J4>dt9{q7={y2RZ>PEplNmb@BQ7~@oyKK zv;c#Ff)HLGvn6M*tNO8*t3TJ*m9`x7#U?FCHfYzda>7@nncCh|=Hp33AXn_-!^)uL z$xAo>Ghh1zr&Q*t0+VLc2X}eE2y@ctzjjddakKRl0umaDv2q(b%purF>IIAbjhPMO zVf#3Ru`^lqh1-lMj35vm@Q+vd#g8&#^#t7~g8AWVJ!~)F6NoAyBtuqq1QGD$Z9xvQ zul+N$&30(Ujtn!{`MoxGde?7~{c!TgnzVf}8wV$k>%U(|M2{&uPuWRo`OQV8N^Nd~ z=@zRp?_xslOyeWzcma@6I2j-hOso=m3wLHKNe5p*Q@P~MW(e#;8qsI%EA_9j7f}cR z00u-@A9e{;5!(RaQor~A{8?9YHdF_M^n=3E-K+n}{Q!r|zYje0j1mKS0j}AtkU!94 z4a$JVNM$vYB}*uzdc|m>$^~F!18h0+e^tY(u?2sT06D$aJ~LMGrRpzdo`o{2$G-7S z#7MvaKk&mS5p3Vb=BErx&aHC4}Yf_~fQJIP|-E>ad_AWe6Hej0pKMl93xX8I3uOsnRamiAU6( zX16@np>&;)55XV{8B-DmZ~Z?s{F8j`Y2Ke)d=zv5H2SbDwn4}eH{lD&oF)^AmIv4m zT3F*i5UoKHp3YmZ0Wt8-f?wO8sDhg4=@(0*QBfOolU!7DD>M8fG1E8s-=|58a9U3z zrC@rd>Qov%fdt^H0V_4CUm&4vIk)~P-AwXdb^l1$nZN<#&F;gcKV>5RTp^!{j*QkRjh zZXAGxk80=>-E+TXE>PDS62j#wK?}P<`vOK;{OA_+IsgPAh?s2qF1!Oqc@zyv#d_i4 zQxle<;B?el^H$S+TDkfXHNW^~{GdS`N9tvu<8U>*<5YCWKvSR%_N$wNjD|4zfIc_0 zh!LO8Ed^jEJX4AKI26IP>YH`v#_>~_{AP8n5C=)u>uUK^cb=pj9qs$sxfrL9=R=$& z@`4u4fvK3bpv>Q6d212+7~Sqc^Gz(H4izdIy$9W&fGs~>!f9tnEN)@Rt1Z&Bv;VFG4)pk kyf7e_q#rej4ccyrEl(Ysm;eguAg!nXAYcM1m}~$pAer%EaR2}S literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1051.h265 b/samples/h265SampleFrames/frame-1051.h265 new file mode 100644 index 0000000000000000000000000000000000000000..5dedebaa9769c183d072136dc224cf2f1b8e0ef2 GIT binary patch literal 4130 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1052.h265 b/samples/h265SampleFrames/frame-1052.h265 new file mode 100644 index 0000000000000000000000000000000000000000..01ddf87ea58e04d162e6e7e8be4406bcba1c7d50 GIT binary patch literal 1700 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 DXT}`l literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1054.h265 b/samples/h265SampleFrames/frame-1054.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e556a3953da5d657e99232f46c25796cca62a664 GIT binary patch literal 2526 zcmV<42_g0X000330nq9H)I$OTSixWQd<1~tKn?>}pfCyoz;Q+7{VPHGR94z||J+!W zj@az@9f%4Aj5t=E_*3#nv3Uu+d_EBUKmvvuEhXa-Lx1;<3IoDHQJGAYH#ET5%2?mf zEOV}yAdSolc#pDXKU9P z0b7%5e#ZBf6Dc__9dn()?(l^=Uh-;!j}(JP7mx~n$#R%{dRO;r#dZxHSqd1aR*}Io z4?9ig)WrRq6BT=< z)!k`!zLWpm(}1^bdfT@$@*ON0v*1O0#|3)dzPD=}qm_hzU3nxz>mx_+kCP0nbXp-t^1&UJUD!oV9Ss zD-dxe?#^`*E$MH<<+RzfE7KG~Q8aCeQR^H%Krv>J_s2e*%DfTz4sNtQ!!nW`e?WP% zx}ChoSF$R!S@2uwTTk&Z*x5-wdll0Fi52)5?-C4!Q`%(3xuKQP$!bbZKTk}r$u<1i z0E0PtHeHlF4y(6hF|S1AknNOg_z$J0vDQ;Li&zI#T+G41nM4{f_NT&d&fg0v^{M*# z)ligAQAMQ{4bi{QL! zdZ_D29=j+cT$a@<@tg2|&nR#lqO$e% zJ)(76Xs|zh`iMJny0$A`^Zn;s)#n;^>2u_M5?*PSKnt~Y5M!-Lw-guR2h6(*#>0w6E@Be|;f?n0N-n-?N|~*_Jzr zZ-z*}F7f;X7FCS3KnZ#D001LkSRNjCUUKk~oTLy=03!{INB`gd{V)|2tFU^I4jIoG zT-+P~m~knMOY!$#TK#%EVi&*jynhSxpO^p{ipM&sB-?2w_AbwSK%WT8F@oR*-afFRhR3n&O>e`TESY zp@Ha@;fWWczS_25{(FS;P%T3USXxRW>Kddvr*zjr;JTS`F;PbJvp{ar!h_TtLceN` zER4WXf?*Hg^&tqS0W5B5LNdUhIxn~fHFhETxx>rVWW9jq2@2Cc^&_NrS@qUYxM%RdNOvT%y1^y|1uZ@%p;JVf2OU?& z?TpfK2>=rl;l|GNlp$UJ?m_hL7UA-QlO31%06WWCLFO)L$Uo_ki{1lF;~f;qcUcB- zbX@3RmthuF&hdCs{-~#!CnFk*pZMgCFjh=56r*nekwAG8ElGd`qPkiM>N!Genf?(Y z5*!?UoS*CJ-|l7PdP{5CzEpg`NIMydzFy=`h4E57_UuKjS+|y|4O~J{0hH@UlQ3K1 zKZ~U;2qisml7Z!Z@#@8k?)4C#e4qpU*(cvpjP|B$2zN~jC>9b=o zlFpx9?`8#Qx7tcdoNn2YI+QBkMQ<}-HqxpgDZ;gL=1HQH1lLJ!?*IS;00cx>uH!xc z00RIMuqDxnrT_p1+$t-M00093+JG@neE1%F0`UZ5u`i|>qg3wbHfe0m1ArSYZQX74S&kIoBJB3h_6kkGnXW2_G!B71o#f4tXg%|x8u2+Xev~?OLt5tH24W=ep z#SbC+6h_Kv*3`(K!&w(A5B8&*6)&6wHSymGf5;W_%WtBRgwtHA8nyV`B4PFrRpD^y zuO)SG#1nHb62nm`@O=mnvpcq2-edOQJM$4=yo@_C!AdsAA>TBzn8VapoZN6;M~g^0#w zPR9wxwu7Vhl^|ZAD6#p3&Fxda#R{4wRUm}WN*br?Y1~m;r#oxZgFEVRFreoC#Qj(+chmSmv@S=eWq|LMYs_PN=B| o*XGrp;!d}nyG5y(5dx>7{GF6UKWce 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1058.h265 b/samples/h265SampleFrames/frame-1058.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1ddf0a5edaae9e83d539be15c98d7b5b8f21c2a4 GIT binary patch literal 2088 zcmV+@2-o)j000330nrKn)I$OTP{ChAJ_G>ZKo1@O;4lgTz;Q*}`k5S*+i{-5fB*Ee zvS>v9P^~+wB_2%RUnm;Aqd4o0NR=KdZ`*k*EDmDs`LRSmj8R3 zg`N;>f!okNQ1_9!&l+o;(K_5z&(C zx2*EUou-%iXpuIG{@GXVK%D$QJ^{b1rtiQ1?6!y|oXsPb<&ewpo{iCWb03IHJE`wu z0rnwy?beV%Tyf}|Lma8O)a+v66D-wfTj#Y8i7NM8Ig+LQf^WX&z24gwuq>zr-R_*F z!}-%@fvRnsY&_P(*+9=>^32Z>1j^F3vJ zO7b}df=Zt*IYrarpg=G);`ObDP+T`*sx2fB|unR5av^Cdw-xDH~%+ibD$G`v=jnGRNttt?^9n z@w$5q=X5I(C%hKRmc_6=#ES7qvZNwBY324CADK4YJqs0XNN!l1pHVZ zb_YLXp$d9`{r~^k&+MgyKOc_$&%Qsh{O9kyaVc1r{C}^1i0TiY;cknD3cdfD_>coF zuKgNft_=q=h;hiki*^+Rp3UTM^{{za9ji*!4oA%Uz|{G2^gc~+xO=KPF-MvaS~qe& zcS6!c66>n5;K-%dkAVM3}CKTFwaG*714Qp;Rk4Dag`r^27P39U;I0saeO|r!sDGZ&7O7#Hqys z9^v9cT)oc^+OysJ#}g)J!pk=bB{7YDa+)1(@g^j1qp-t?0H_hp(X9-b_EiJ~0AbdQ z>C$8W3R13ArplJFAc9`bF;CU6G02Naw#sD!mr)kVd7wm#KKS>}EFK{VOD^LuHG~Y{ zZ#pER*Z=@nSllRRp{rVJld~oNHV{jE({(rZXf!S*hnKK=l)iF~VKj5rfIh7{pGZoR zMAi#R2o%j`|5FWj;OD%vD1a`rJmuK&z6h=#7_&PS^F50)YMrRBeQL%tFaQ7p0Z~}3 z$QD2V06)Mb(TS!200rDCD~Vv-Ft&aWlOT_FZB^B@V+4X`^H_`K^sJ6%_BcQ(^mFRAjw&%_p5orItF!?4~-229b7r zQ-#&Zl-5kead;n2D~7!=u#VzT!@`8R8m}f8*Diw=?EBy0 zQe)E;Lxi1sVYTH2$kmYai&_-cF=Cb98-HPgqN#R6#|E#wRvl}O`&;@3mY%=iwXQ3% zuhl+RK2cj^r1ep-0+RXwXg02iG*(3YM0b9H)D&UUU<0g!4En1(zQP4{zFlUd(c8SN<@h#Ar`%!uAX4@?#%PKUgoyKY(P`TirvJhV`Uwebumk zJrYA*I++*325w)bA0a?^8uC03mpb^k38AkkTz5OSZWXgI008TsfEM&R00Osw9h{f| S2lybZr~n{f0x6hm04^ZgX##uz literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1059.h265 b/samples/h265SampleFrames/frame-1059.h265 new file mode 100644 index 0000000000000000000000000000000000000000..94ec1e8a65a52dd3ef259ad3b0fc2d23a8e577e0 GIT binary patch literal 3023 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1061.h265 b/samples/h265SampleFrames/frame-1061.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b8c3a9ee7a72c496c6955b8ce5483e52c4ee9813 GIT binary patch literal 3014 zcmV;%3pw-v000330ns7<)I$OTSiyP`J%Er70uKO*0KgOifLL)w)p2~*lSLE%_ZR=H zWhzV_z4j&8ZaBw|oK=&1k4z?0eF^GSI${;Eog)RFMIJ!FC(URKI%Q-L4C)ev!m4C) zX0TmRIT~bN^eLfYuVcR*E2lBqcZ!I{nJH&n-%X-$FV%3emS6(12HaC+F9cAAK0}rf zTUNWi5V!F`n6^Z%eA~BG)8t6eur3BVB1i>g1z%z0yv`}P^xI3I zdVSR%522AAS;RuGq#m`0w`Ps?L8;Qd2SnDE6eUl3%KRtOMb2`je=vKs3})J~_8&P> z>CF{uK)D8Y^muS-l@kqj2;mQ};{p-F%k`_TV-Vjpu;oC#TQdV9a6^1Qaf@vXx_dYsZ*ItMnT3kZ~~1>K3_0yHAJX^JqnANdIk2}se=)M zOE9{1&b~j!a^utttuc-fGJm1eG(v84NUUxSw!;NNzt}|u&|;pnGr!g|b&gUg2=fXV z$&kf+K>=vGh1e`Uodx|Scx#}7*es~;f&~!yQdxS&V<G$;*F8yPs z9hakUr+2QYPVOW%}l4+HkSyG%<_k?dyD3h{k z2Hmid2T^+>I@hRQ^6MA)J3F$=RN9F;MgZgyVTIrbIVWa-Ro72;6PZhQyeA4h@52D`-Qv4W7D&Mz?IcU}v-libd~#_gi8*WFa)Zsb z99W7KSrz-Ksm`jt)>x{0yvWkEr%}f(wNEEC-~F=(#wiR`j3MUufs-3W1^theKkmS= z#<}*+6Hx$+Da(*^-eW@0N5eoLcT*ovBYuP|R`;Px>t*Vf>xq5aAf~f41E_8K^f{x@ z!ci=0<;weV=iP113X{GWom3peLqZkjK=iD25l}42P@HesilD`YFXq zi8`Ea>GnHv<#lCof{%TRu9(Twd~?_zU(4=haas?6JuqQZvBiWzW*Uo zF@G&ePr0Ts9?453nofG1~QAnmBMS);H#TFJnOFQmpfHO{L=;h@oLaM zuFy%S1LMI7m>Nfc8>ro@cMLd`Z_hancDC!n;}Vy`vt_RmZ;%uV}lO-YN1USe&N zc-E`9s9~W-Cm2C!BVzvnyUvCpy;)j=y3oZxwdXjzqJ%7A1wVc7Rlft=hRK5G=wzU} z*OH!gu_dJ|+Zk5?FSBf8a)&bj1ew`sQT9LpONTVCd=kf|vr-@?s!R*Hh;UcS@Cfio zYRf_ys$=3Lwx!A`h1 zu5I4?q~dsh6#o2!uGJSiEkHcZ$D8IXSn}u@G`Qw^m)dH$!-MX5{Ek}N1B~M5Ir$`39Z~yK3^Wbr9IkA~R9C`6ak=7$OhQeD3(Q>h=ghJ;Eu3G~4qwiSp za0UICWm$5(_|spXh)m>Lw)Xu%Xm6x(>o&ZiSmSGJ|MqzEQxP&Cm0xa;ob)zMugNNO z6$KG0XR$ey1RLl;2jQ=bM_(Gb^iyL4Z0#idtif6Uis+-uqXCl^|UxBN7Sbr6{Sq!yV=+KP7e+=P~h*15RvqBj{ed zii|HzvYR3vr%#yTz_{rhSs2ma?~Jmwsb(jr-4e*2)TG_H67A6l1+RLXo=0#~4W%0Z zWClO>C5SAAxd4l`?7S{7Z}ov(zM3Qy_-e3!cB3jjpi#&qiUEwuI3tk`bW+l2N{Ico^jH^op)D{C%2bK9X*e;YNav zl#OfMaUacjSSG9x5ML$@hybO<{~T$uFcq^f00CV<7W6s*0q-50m;eX(Ag!nXAYcM1 Im}~$pAVYS-s{jB1 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1062.h265 b/samples/h265SampleFrames/frame-1062.h265 new file mode 100644 index 0000000000000000000000000000000000000000..26f2178be8967d9504fe3b9f4057b178322a8e9e GIT binary patch literal 1725 zcmV;u215A&000330nsV{)I$OTP{CI!QUn0tM3@7Bz$gj=z;Q*}`o$DH#|G zIWX^GzyJ84Cq3b9f`Pi^eK$p!0eEM-KY~(Xko@_bj9(Lnp9{9(d`tcL>@(}AMmz7T z$BUR6>_bedn5?h^F!W)U*R1~SMs4p zgy_hq@L&B~POD7ajT`nb&VVYi#<)Ebb;-hN>XQT2S^t{ zJ7B}>_VJe;ZW?+$Enfy_N01?D2fs=^k7ArsY5Q0`<_4dN1Nq~cZ<0@nsu}!A9v!8V z8ATLO%V;8TKBp;-EGa=KPd%6k%{e~ciC+BFG)OeY#M!A7@INAhZ>8`QWx=ZLk+ka$ znsSF3SSo2Cs!0+VkJmm+Ap+*}!hG<54_+}3y&+2`UoY!UAiy=&Obcr{^UB7LRi**M z6Wd^3EW&@PP1kNjcwPI^t~o}a!+|#R=7jx>M8S-F-|*i~P*)qGY<*o!n{^A3X%abRa;sPX=^dP~i120$UvxE&dntLId1b;kF{ zu#%|uAXX2^(>TEgTb9zYs%o}K`wF<^y2fct8m@4^PKNj#fr-Ar4qzq$;LG|w3T_xK zm!J}So%Jn>Q%@!((#ssCg`v4&y*aTntFMB}zu&(vtx^;ulC^@Q?d7pfu-P8~03sk* zA9e^H2*I*)Iz{xOEPIm^_AqniXZ|}j+x|={{g_j0)?U|2$c-hYQTs-43C2k@-K$tl z*m?aYlZC%WRktazlAAM41S(XV;=1THLX{=+Rx|(n>Od18>}L8pN%ZR?La`{nSM>hw z{l=6lzbAH+{0pT3F8Gz+*M{r6j!S%P{_k(Dq71vg1Zb8+I#iGcDDva6@%MTALL_)3 z1!zJo*Yza`Sd8*~mK;5CD)W@QUB}n5y1G{N5i2KUhwS(YxB@>6n<7iEcfnSqZGlKj zttwCT>mHFVg>=vX)0h^wRbe7w^rmY%#h;>k@qsMc+qbx30Qv2o(=mtvUs$ck7C-<1Kfoo?iKYMm z1>7ntjsO4y0NQ{tPkjIY77z~c;P*ypZqNU}`e(HLg|}t1jiCiXie7ETw2&!=xi&)9 z`23%Yg|NI~9seebZ-~T3$Ms{7o}kkcbYc5C7_9V;Z+N+~UHu;mrytbF>2bznhCVS^ zwkhG;g0k>_Cy&AV?D7ggk^rS^p|yOi&<@=I!Hl!Jo7)W)g-LsMq`@rRYi@V`@BYYtzjR)AQJ(%V-~4k632oD?J#GkV;(IYSS5$7?ZIEL5 zj6TM*h7^0(+leU+I?MN`PsdqNX6DY2K@oeJ0{W>yxeS1&FO1xl%}e@{=z|4TTfX?C z!KDeYPXBO!$u|F-xbX;b)LwiMjXV(C08yR}jK9%v{wXdGeUBZmXfrSiGfhP{3ul4wx6~hK%CbB@tDQSTD>)BBxafF>qu`&ewm_}T}O@gr{(Xca9~Qu0H$nEjQ;*Mf|PL(d$NvA`){)BQq%YZrc@;eIj& z8?=e-{9aANlGU~1vqTQ_cSYjU|J90f9QR!_ixY)=eE+eM-;D7`d3uM`v)8=h6ny=f zYI+M=8}h$EdLjP8W;{veZ4@9#x6-`IliTb|;eEbQG^6UWZ2gnj7%7J^;dr(lHZ$IO zs{JyF*e5kIYziyeHbFJ~{BT;GmkxW_v|3UF*t6M|wt z*4q_2J7?RYC2Dg?YIv{b&W{B2fy7vyK1r287C!O-0A<#I6|*n^0Plbn^f~|m?;V_& T00;OWt*8JXU;-(aYyd7GgBn}{ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1063.h265 b/samples/h265SampleFrames/frame-1063.h265 new file mode 100644 index 0000000000000000000000000000000000000000..fb136977894fb3b2659b319e21ed76d0ac1d88a4 GIT binary patch literal 1993 zcmV;)2R8Ts000330nsu4)I$OTP{ChAG6VqNL(BsJz$gj=z;Q*}+5wTtO}82U_y7HH zy#;IOQKbwOiG@_8+OFt_0Oy@2HIp}L`BZ{dNQ41WVeQ&+)zP|{ID?KEz2Be-I$Qnj zZWee!vIlQLV+sh;cYlZuimw}_G`gC&q*`0~~u^lWS5!p5Uz?=~Di}ci(ef?`=ER?obW#R3${y%Cj@v zWqi*?T#K%(6FGI)=AWi$?s1sv+&Qp}pP8!gr9jMZL7wmwl->HCs@e?7 zmzKyCE>9r?_m=P13opxf^?;-K3Vc8@_bxffMris@9YY!92jdgBVCQLJvW^sa{pY&2 zgNl&h0{>x!$lQ!>S11oup-#4e-DSmk`MfQqfw+{U9JgXGLvJjN=b01ip8Yk}cjQMS zhdjJR$k!H`Og&@t9eQ1aK(rI(-{Ej?p4&feRxy~Elrn@IA!Ok zVwAa*JnwJN9KMK29&+w`>qJh&hH6Y+GqfQv(@-_g|E-X^KXcx) zK(YKNh`B-5kJ5&PS!~MAty=0lg_0z>wdb72(TV9{{9&pbIHC9wUm*6Z*OGwbi@am(x~4z{>J zCEHce5Bd{9cKJXleqHb^k6lDwY5a4i|j~iGtWf))$Ks z?hE0bd!0;PRnX0&i}bxp!~HmY3d1|*zvH2S3=y`?3rzhHZ7ugj8tLmKNQPG(xNGW3 zv^v44I39?rOMF~58=d#3V4^AtHki$7dt=0+y_ZQZZbE^G5V@;ZEa<~p$H)KxV8B=( zb_io+p$d9`{r?lB1;-mU%V*IN5~ha(XE(r7yQzP-(tGFG^Ww`Ma-9{3PBo`5JC z@6o0z;Lvj@jWn1zw~R(ONXK{_6q~9`bb=S7a0fxz5+bP+jdjPyoE?;RPU$>!6 z(nJ+9wO!5(jIiWCPyrVMAX}W|?u3(Fj1lkuCq4~Fq>r8FwpSPlpe=fSSQKV}#z0c; zmM4nkrSU=)&0P?+p`sSBs`Lm#s8(=UA*My>P#?}ZLqY+-$KmX+(pkehulA(KL(sn) z4jTZrzKj(?ZrIgTuxJjHi4{nJUxd`JBs$&VOn7R@Ri_v6P$QkASPPA9zybUK`p@R$ zuqv9-90|AHZ@S*bmIs}Xe%vGCo0?1md{3?6j}oF$0Hu9*0h&Pw`ah(-BZjOsr<1;q zGyo)CG9*1D(kCgVJXVE{w0U)ttYPviD`ayriq6!eSz?Z=2SS)8a&bvYfJ&e_Py}pTdt;e3T$~5mK7~P6C1P5g%&X z7RtbJq9OjCW-RpLB&nGhqV?rdu8=FQjG-_S$2RfgY9eojDF=aI;55DhNl#)qr7**S zvpA3wyS>v-gn+;O?a|G!--vI{QgOoSA*>&;{DC#PI}_#bFdIBg%z$>$2x`R8HETwC zELOc-dSX{(nBPad#YCI8Te-U<3Ka@>w&ih;av23V7gx2!+dz7y7IwC4+jdXEp zVOcBg#-v=I>82D-jG(GzG=Vf<_lM3ZPu7WUT|$~LG9T};WQBOn6C!p3i#zDqQ0Ig2 zf>(F|3SE}soGKPz>tazg4D{)bcOOApxlL07FMOv>5$Z}h;xZ-wDPOF#H z0>MevOBmu*L+Ov6@j|j@k2w+@Iy^MZ^8e<47~ebGVNg46mg6;)YWig&p9}xtYPl4# z#v)1MuWreRANa3VXg2oDpo&07KdPZh1))(m?!=z$r-a8ey1h%6hhP%~K$1i@zI_&4 zQYbfM?0BXf#LWtcxw2!2=lCN)jk?df)kIr9)lA`yz<3k%z!pC8003ni6|*n^0Plbn b^f~|m?;V_&00;OWt*8JXU;-(aYyd7GUX;@L literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1064.h265 b/samples/h265SampleFrames/frame-1064.h265 new file mode 100644 index 0000000000000000000000000000000000000000..e986ef84ed379bc3257d9119aa1b0cdb80b71378 GIT binary patch literal 2997 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1065.h265 b/samples/h265SampleFrames/frame-1065.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6edb84f1cd0cb408bbccaddfdd2abf811e05eebe GIT binary patch literal 1760 zcmV<61|RtV000330ntJK)I$OTP{CUQumk|=0UQGWz$gj=z;Q*~4Rnr5K%tBGQ!mnC zE#!)(5jNu-saOay%s|XF$YF!ns)#VAAy73zLOCm0yqDZwPdDTX(??JD#KPlT?n}IuT)Pp2S@i2t&Gm^^hTbCc{D51S z)ffNHrIO!=qR8eB=uDglwVvR-m~!4e1_g+eBef76-;w)WdQNErl>#0i>w{m|9ZyES-@J&)6j5>ILZi5Qa9#m*gbEN8FHHxni2t-Df?Qw8+1ww(1< zwx1H53utlwG6ILt4Q%s)qiImOYTg-tOfqIZ>^aXOuMgA_I~iNTG>2&w`rP#%R(LSZ z)7}wgXtDDCkF-pkEog6aW=CSUKd*fj3C%D!=Mo2L^lR5~-B(PZ?89~^1IU(dX(~4A zQJpW}c|y~CGVt=b-&KUVM!%15p0U@s4=VQ}QWaBwjim7`kT(+RduhK!1BLYx1X?Ah z+dSJCkBIEdpk7BBE~>YtLqPLf|Cb4@9>Dqj2H z$_U0(FAy;QrZi2nr9j0bGyBo-zQBYRbqyNOTzxKY~ z{$HBa`-ih1=pWh*==%@Xte5jT5UpsKj1a(X_`89Cn3UVbYINw5M(oaA`WXTvr2Zd> z7jccD(GVcw*d=#GE@EE${u}u_LxPrSt}@T!S3Nt>#9?hj0$*C%NI7^p&2Cyp0EYcN zwZKHnF27dw5WC!emc^;Vfu~-YSTUyTW&?OF@GAwNwAAhW&hQBo;)$z$J@RdUXJv0B z2xcuxf3+prwX1RP<+TOE%D`FF;BAbfK4F1FfC8Q>gXuj0tl?$Kj~Bwt+g5`vi51k( z`#jMlm80oXdQ<})pr=%%A#;;Op_nJ*(`@OZmHnADmgVlR@U`}9JxJ-US3*DrP!1Ha zk~kx}^L1)O`36l(000932Rv9FID~Rgd=!_BAism~w<+KM|Ns38#+Ufvd5zRi=$p(a zvefW7nC`jP1{}8PoG-ORiz>Q8NgJD{8wJrUa1&0g1Jdl+HC>+=Y)Qdr_~eCnDeeYL zdv`w#H|@Fj_9Ny?SrDn^?%l3V5n9ndmTgco0!kpIHJ?4a(8R!NvR}VrgEV{y~=zzEw z@ss{aHcIsgIh9h{f|2lybZr~n{f0x6hm04^Z@ C!ej9O literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1066.h265 b/samples/h265SampleFrames/frame-1066.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1a3cfe97bcdee103bf35899d2fd258159214e245 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1067.h265 b/samples/h265SampleFrames/frame-1067.h265 new file mode 100644 index 0000000000000000000000000000000000000000..98c7889a25ae6bc70c81c796c1184e94ffb4e084 GIT binary patch literal 1825 zcmV++2j2Jq000330nt(a)I$OTP{CMoY6JlD@C*Y0z$gj=z;Q*~4UI()8yQ~%*#TS_ zwg|9y#-cL6GY{Jvh)mKe2_)CXm2)P#^}NDDiWpa!%Bb&u-~aw_@xkK2F>;%$knYs{ z>|p!$Uu<^?mRPx6`z|dSkBTc_!^-!@wI2+mwq%5y&^6p(hJS`M3vdd_2mAr!tkw2E zMSuS;w$lODE9J($xhD81;a5XF0($YW-QyjtvAC>B(E&FQz{h|hL^J-Ue9Y#~=Re)B zRA`q|FDpBEbs}wX#aacoLROX_1>nxtlY*rA|IJM0psf-BF!0%ydZR` z_HGdTgrZEQUu$1H$*B_naCIN~3Q5gHa~$Cu50E0*mseF9FM{_R@c3NFrsyCIiU2J^ z##%SPqr@-q>;9i&`u%Ec4dgH!;c=d!>LQL9s>;e;@;K6n%jS9OK@8tm57l4a1PV?k z&xWj{3w8u9y7V+%1rc-7tLW9ABNXFObyIebVI7*KWf`fN;&aqO^B#xjT zgpbT^3$Aju)wM0T(n6ENRuC|#@Sh+OxP8=_(O}LbsE2AAss`HaClYY*D3n$XBypv# zh#QWfNPCp(W;YFG|2^+X_dz!G(8(I1Ds)AlTO6zXA{{EbA(VQ56oyf9IDE~B=3e;# zZIH4vT zZ%T+QCA9HN1TG+6s1x_)@aHJsCCMDbBDN@c&j6zo2hAtw5kCZhb&dXVd>nv2%B$tc zqqBO~aU)VlwK_5~3=5!v(yrOeD+JzOaIrFJz)iFodP2}(0013OSRZx?Q^4t9BbhkV z3;xj~fQWzN%*$8ZhNId&bJCtsX14yoq_U6NIub;N^T1Y=6P&>+(_* znE_lJ_#dk50Zu*u@n&ll=U7I_5RjJe8&CLdc7uh*bJ6iwLzkHcf?tFFDF_oTo4d(2hWTr{Si%reP$ z%7^Zk=z;3S0}L3{SXs+nqOYxLSNUfa3W2~QjyXTr0ao>K2^+LT`hVKKNy^K-fHtjm z_^!1p5kc9~P(H2A#ztw30*dB;{8%Ud{@OMzaL~4NyJ}znr+`?k$QD2V06)Mb(TS!2 z00rDCD~ai=rc z{~Ukfb7tA8ib*~~z5+*na5&RiApx+-?Ms&Np%o@Blw3(!`aRCOZhER^(MbBo#0SU#CCQ;hOgQ?=++exx0V zOsZA1+Mq0B^S^J>^E9N4`dcZ$-go|S8$}?spO_BdH#BN8DcqLy=6xIr z&7CwXlzfMQWqi9Zm<%P7T2ju@dwfF@#Zm(#n%$Bjjx{C!&@o@lq$xX3#c2AL7mtHo zxjYRwi$(cLQi^vq)PD@}ZHg752U^{q3% zivgezAKep<;}FZH+BXrcM)U%FynTJ7Vatts7^oS0w*!ILU#5a>539@LR!PWqrur#j zC&Zx}14dV0j8!n0GP^W=zL|ML`2{+nB+JiZ$?j9daAEpaW$+^~c5-4rl!^}ZQ>9y z&&bqhj+I9{I*#piajXHUCm}UxoK6DSqWcv39y8YUXI2hlimR4t!Yry<%0Yn9Eu! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1068.h265 b/samples/h265SampleFrames/frame-1068.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f4ec7923584b08a5f8d666ce05293c5fe7c669b3 GIT binary patch literal 2353 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1071.h265 b/samples/h265SampleFrames/frame-1071.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a89a0cc0e99efa9ee97aff7f85307d157b34515e GIT binary patch literal 3460 zcmV-~4SVtc000330nu^))I$OTP{DtdgMgH30l+v00KgOifLL)w)p2PdFk;2SXa4$+ z=4gc5N|SLc_x~-YfrsL>HIp!CrDhE2^HC?evu9dBCZa&sNOAYUQQ5(yX&|W0@{eI( z+#-EZ)fFsOC$iVE$hV8<)IF?D8e|PvpZ|+~=l}z~A0`GJc;O9nKmTH5-gq4V^WflD z^;^Gq?MX@<6pMxjcSNyRIoz^V$Bzz_*7u-UWlId%hKbN}hZ_)1k~vA_tZ%1c7BRKK<-`$3@p0tiw1qeAG2}M_lbDj}^%38q6rgj> zdd2JtZ=*)a*pkbmrA=sr=s!ZZd(a?WQcOzdc+`_Trw^X{q+thoXwp{CU03zh*>*I$)HLL`#8h!^11Y0{#IZG&ZN{W$U(fmky4-6)X+ zcb%C`A`+;2nO*J(nVEQ|bPzypIGgY{BTzWe#k;S~?~yuFd~$Un&S91sjc`)uy|j@+ zYQ0Sgl~~Rblt9-*vIwtSTeBzy|5Yu71EB7+n88+lDuN_<_ zec5%+AF*La^cRL1)poR4UZXDjnngF}QvJoBc;!KJvl@&PU<$Aa-xlVQ-TZ4_2$h?{ z$lQWeUwQMTU^!dOPH~?3;&-q^du;YKxt-UvKC=5y)jl_@@{XpF&P+d6KX9RoS1vHaJ|uvyKgubw#Vp*hwlK-E zE8b~JeL@O_G7d ze+m{cR@-KQJU+-(hN0%WG>Z1$EoO?4pTdZki z=r7bD|LejN2ATidmt%uF*wKXiDe3>%->tT=%Q|`qlltz%y<{wjo z7%3Bm{{1E2k^g7ofbY#%F{tsqEdeL6ta{WZWFDv3gb`Io%4F=JNUFGF+=;_GU+-#j zD=cGwkjXzum22|)%qRy%INawAg{~eYtIetbqDKM#3*)Knx=NSDu#nUpDtZr}Ngt|| z4p&1;mvH9%B?nU!fvA~)-)r!q^YsXVpdMjW84>kQAS0lQ2$dkDC(=F_b5h9P`3?;P z*ug(``hV?&%{b1|6^$P!zz3h5)*hK2zAmlPamM5-jpdq?9>t7H=i$rW^#{g~tLBUa zI|7^OR3~7V73vE6`GbEm?OXx)lMf;k2L>Xw;k7atL26_Uo@C<_&xpfgv#R$F{l5ML z!(!Q&%ZFgLfGz$y*m!5)G$aB+5|!->Ci{%V?%15UpL27xWeu{{5XG1>nz-kHFF1ZG0OfCx+dn|kabXoswfYE4Wsf}kL zHN89BB5L#E?1kh-kFl!hO2xSP8Y`^Rrp;x2m8$m+^mpIM6eUWgky14xxDV<%9-8(GnN3UzNcmO6o(UGwXBmLV}{o!4}Wj@4;6~nT&}q$ zeB!ZNIvzYcw`y_}F!%W^|NH;nT%g6Fxqpk(Ax4>Dmi(2()`|H0$1}hfz)+mQzlvZ` z+*apv$R>^*DVizxV#`_3o$ZB(z0zZNd=omU2a_fqy%#1hULHuD^d3xKq56*M2X#cK zk(t!xaE{gI2w#3QGo%gwzG7JcyN7C^kaMJo+yT^E09XxiU?5Dv9O zs{%7W;%klqpo!O4{0Qd}$J?Q=L-pFXHVoG}*^g}e1<=|osL;5`k`066%uCNh*Xr6z z(8R=CeVR!+mf_*&g|5(PnQp8MABRJdlv)%9kP60lhZ}rU$L8^|GtpCoBVKwRosSr^ zm(zt_1eci2XmgmQ!J&M@{~DsGs4x)atVWkfnTHoZ7`@lz3?R$WovRakXEMwwarw#s zNuvLN-1;wX&V*BMCHIXqFH`?|tpET600+l3X6U`t5sO6Z?XqZDE@3T+!Jjxnr?oap zw{2E%XS1YCmvQwq0TcU4c((gzqT$B=d=s=U5Qe9+g+LLdUbm5xJZnhYni)$`0R?lT z50l`(w;wk@Bd+`sB?q&IRpqqjT)#%wY!cbC6OvNp`-aaAyG?~QB*LCJELxapb=jvV zJxoGc>v~=|tS=Z?;>L3$e{jrtM&V6-1QZ!j^>d(CS0{tWE+~2_35%j;Br+`7@4WKI z3q=dM>2y~|KgS|V)s@{b{eTNH=+X4*@Qyt1{z^|#LJmm`uF;DegHHwBwRu>&iKJZX z86e&BFaQnLvgbztjY*&Z;7K9rns#uE6hH(FSgzwf000936R;)GiKYMmeR|(Btt;RT zYoFJDf+_&1DuU&~EY~~QLvz>Fv-(08|NXky!Ir?&jUq8u z`#^4?dBxGFVS?Wq*Kp#xKI%1)OQ3_EQ^KaV;^>K)YD11o z8h@YuAg&&7Yth1T{VrV(2~J3cPqV(3w1K0=Mo5&kTp@a+ z-m1UmOu*wL<*0)YHV`}x>c8cUS>X|4>0OdX-MA_CEk~V0Q%PAeA3LonvP1FWjdcYS zme8(qZQad4_HI%Sw|)Qu72tgMO@)RHIl|cK|Y>-%hBvL(MgQ{g|9thEl)o<)`(4)X2|wGaKbAU zQRvO(i@2G;@!dtXT;!>;qo6&L!(S_X?J}xMS#~Ej+H+3?HcIsgIh9h{f|2lybZr~n{f0x6hm04^X4iIzD4 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1072.h265 b/samples/h265SampleFrames/frame-1072.h265 new file mode 100644 index 0000000000000000000000000000000000000000..11c3744ad5539a29b33606faeb0173b4580eb7f3 GIT binary patch literal 1943 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1074.h265 b/samples/h265SampleFrames/frame-1074.h265 new file mode 100644 index 0000000000000000000000000000000000000000..06d0038cc8fc76f257b2a919a5d807c125b51953 GIT binary patch literal 2942 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1076.h265 b/samples/h265SampleFrames/frame-1076.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d3b281a2eb69e894539fd4836f2fe9344bfa457b GIT binary patch literal 4396 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1077.h265 b/samples/h265SampleFrames/frame-1077.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4dd4de73eb428a5a890c9855b57d422031b8d5f9 GIT binary patch literal 1614 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 VoR|Oy_#myQ03cujDVS^kE+Fz(ZKMDI literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1080.h265 b/samples/h265SampleFrames/frame-1080.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b441ef505ba2152a916ec9e324ffd0e413f25cd1 GIT binary patch literal 1973 zcmV;m2TJ$=000330nxet)I$OTSixHEvQGfuKn?={z$gj=z;Q*}`xN}VE8?OcOUKFh z9|(x2EXr!n7yWsg_PI_ejg#N>sxiuyfP*Z^wo&rQCVzj>LS#dv(^5@@RLR!-)k{|q zDL0}U+QXA7@QYbNt6N9`wYpZ0nX8RRi7f5Bm)u?}_r@!SeCeP&sZQE2rnLGijzx3_94*kMFqN?a(6i$%IE0qLFe{v2TsgWcoG;SK)BoP0 z=9r#>bshOeMxTDkmUt1rxHufZ>+r7rIaSXk_p^j}>XC3M?gY)t`3EMfx!mh7Fbmxm zq+$HTIguuQ=%~q32aDJ6V`GV-SEDB22+lp&xAq)0jy}PenYG`YZc}s7om)^54<}_ui4tH4_sN^dQ^4| z2_r@tBZtRp690>9No+ruVlf?+pT&gjSjknEzq=*4Jw+v6G(}FVzLVrOM2x;Qb-jS44g4AalE7bi?q?S7SUxG zw-1Z7l7Vo9C}M4Jx1Krbsz40SkhE#Gl$N2-+!gI|eDr+_+~4qI7so^#o6&n<4WF48FD4%m(mXBAZ~kUsblwMo-yNQM+b@L-hAk40s00O!0%e zBICX#!p_G6B+tNM#1-nI?QE;yskcEwpvs4LGrm<{&0t*&sg6xY<|wTMnc)_)f?Fqn!&*64-f5f^q(lHBSTu%>C#$)m+rivJ)iRta$ybHz;FVN ztAuJ4D;8WN-#V8Vuc9cE%`n~H*Rk(8J5bI~E$xF*2x!u2(Js+V&W86`S@wgE!~TTo zZ`T~)3p9K#W^H`ULR=s%as$riA=#w|_FXx21Xi2*MV6tMDChub^T<7=$y4&0bbd^4a?1x57T8zT}Az*+r5SSsj zu(E&Y!7*)`fcC0hO40H%f#N1k8)Ma#!K3Au#JGpcew?<=o3#-1M2;53jv{!3U*-L= zGT=^ZkGqVM!p{0Yt(y=;gCq%UFEDXrlvyAf(HUVCb4#Vie$o77ZbHyIwQg-I`$$4J zc2p$f8VVel5yFaQMQ3N~f$8Z`aAX_wh(nH~B`g~qWlS9+;>1dat$Bx_<`}EABS!lU zxxhFI(e|9s(`D0~k`3Uf3=-B#(DNN4sr*55O4n%s_*|1+k0Vt~%M+B?cc!k2gJUhi zpCx<}H#nbf)eHOsV~~m%dO2|uL8lgC0Le#0B3%3=G{XWbJXrnVX*XkFoTufMk99Y; zZdECyHapZLkTk3G#kL)9!p^=ZEO^nH`uFGwV#3MAdq36uek}XLG3sIOf*n*@=?ejj zp9yAWEf_UQ(lL8#LmF+|@$3h|_^Bse9^`r!QY=I@15hHq7 zO-xLlds*wS8#qK#8lx*o5!DDK21xawJ=ZrMmwt3Ulvxu6W7oK;fLN`_7C-Q!*jW%4gi~D=*u1nm)NX4n-zd}Bb`14bPp+@j&YZ7+b z95wFZZF?*52mT(-OW;;*3}N)GR$I6}1}e6YIwR^kaL4z#Gynht0$f0YCDDnd00OCj zDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(a HYyd7GMqAf! literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1081.h265 b/samples/h265SampleFrames/frame-1081.h265 new file mode 100644 index 0000000000000000000000000000000000000000..463f3c996f26d49051c1a0efda29cfe6a8e59095 GIT binary patch literal 3045 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1082.h265 b/samples/h265SampleFrames/frame-1082.h265 new file mode 100644 index 0000000000000000000000000000000000000000..37a59bf68b40098a7c797cf7065f8ee126a985f8 GIT binary patch literal 1806 zcmV+p2l4m-000330ny3-)I$OTSix9NI0OLTKn?={z$gj=z;Q+8#9as)#g=kR;V3tC zl~=tfyG_K^MewDG%Rh*h$>wsZ55NEa{}cqK~s^m)@R7SMxCnV#scr)qdYRnkzci!yOy@z*_He%hQfsQpWxh(mD6#&bt;JjU4N# zHp&Ztg1$e$=qwD>_-#|~aPPOM(c2?7V`8jMX3NQ0{sUj(0G1sdfw-?9aOjQ=b+$zU zRd~Z(kIno`#^pCotL|8hX)mMmHyI!VkG83nVmttUUI)US|Jz( zgYI*_+%@0Hm-ELm*CU%1R5SRJJUa>|GI{8shLA+uq@?>y8syI1LXB%F)Xxt6T&Fz5 z0>Pm$`vPX9Q^5R+4ZfGaQI`hS3BKxFjz1!>DFHF?GMRJfb{;=!hxc!3FpdyjABbiS z41pG%rv6Gjh8}-=9)_)H`VB89^e?>nZKetmI1%?r5}a;BIxyz-AvlM-_W`+A6g?8( zR5w1I=8ZQZG@4nI;PTluoj!6FbS%H_b}J^EZ+--BFltO zH%M1#yL-h3v%WbcAvwe%&5=@Mo}vjv?0`#WB%DcM{F+=gZ;0yG8+uDImLMdkh`svO z6OI|c80CXi%Jjyw`iRd2xUc2>la)36&P&MHTyuN=`>!&4;G&B^t8OjwO;mtyW*A8~_F!SKlPI zDEMMyp{Y1g<*fjab`$+6V7GP zXz&M$>9iq*rq~}p{{PSf#|$~XkIH?Lh>)y6!x5{=YkE?pN0R*J$Ovwpza=3_kR3w5 zf%>f2l;hwJ7G|>v=?-P1R$a;IWIO_$EhBVY+jCsn!Ny}EZ=3$7R}9JqI2yhtUSm^0 zt~J8K?OGxx{+;Jzt38B6iZcK#8{k7*pQIQ_)8drVT@%$8n5(Y1X-z+vWs>ie58W@f z!~es3d=f(y()6eK{YzSv{#nI>pl}G|j!*UgRlQt7M(q(kpZ2eka3tXM2OnsZeG`yd-9JCP}ax`{yP>7nX>`Ck|P z;iV$gf>QH~KQ+(xhIVp<)|e`8Ur|LR!&;zKiaV8$#qfpDJpO8hZ?*RH;bsC|B1an> zQ~wtKrYuABr>iW`%L1Jjjs=P@udv4$m>djUJVrU_qG9wsSJyH>xqBe8lPHSq_|*`h zTMPthfxCKU+(g(BdaZujh2>;5O7a8ln0-&_Ja_+N&^|8N12Qkj%Dd?W})ZERjJK7sX zHhx8lJ8ev%RX773iAPUQ@!9Vd4Wc%*GiShz$S?{8Sd=EC3ca5k-UY>KgUZ{^92wr1 z17M7E;Uok|jUehJ9g9Q-^00M{kWCBZnq%VxqU7A#Q7yex_ba6|C16Q$o*i%xE7iD; z@iC`l$fGqT75l5X38=N6y4g>xcmfYQb%N)nTIEMLrx6u2Q2vf1HHAcjhfDOxhw z)QdOfKkT<|U#qjJwpMuA#u~K!?!qJ93X+bFAUbpwZamsmB094O6uSNra=DAr&HHgJ z6Rp@MK~fa;+7Nf~QhET=CD@*`1w|+gKvK4lwgQi&Ah5X=X6R7d(R;RA6UiC!^(Uys z9(iVGcv=CbXlneHNauD6ww)^?OSgptwKmZ|IuqDxnrT_p1+$t-M00093+JG@n weE1Slm`P}`eufii=Nnb%0!=Oc z_cseXAlU=Apx~g5S9d^VKo#$h-F7Xq$r50&^2buj?|n)A>d^3NizqyqAlk|;-obVY zg=;oQ(ovr{2}ikk#-f7^jovYfL*)i>>i2+C#}TnrGBeCe#Td)^LFm zfp$LEcq-3WhH@kn@)tIACDrJ7fkp+cg0Z0JQor_M97m_Qtu;92yEa#42OpLvW2zYC z3*e>FR&#hb1D_&YheE;XJFP3S^fWndP|%O2HiTfiChrAW`kC3A zJGT^)-q%Xr8uBiwom0#<8RvtuB14bQT{HxuALbjuID4aN|4BL-i*bwWCj@XcmdWD_ zKR4ED^DFICuOeLoepZh{<@Wr{6IGWEjP)^jc#N5MDZcYt`q>MvJQ#?{MKIr>Sar8> z*9+f2B09k-PO-G?d8%{HSLq(^4$g(7qwM|Bt)}e-{4X&BPl~2*J_=WgP35aul!x>m z9$?mTH^0`gJ}OK`v~0f|1IgL|PkqMx#~KbFOCdj8fPtQSoQ(J?Yb(xpZn9*|O|~;G zVCh%KSN!Mvd-(6s`hJhe{O9C9P4rTIczs-<$PerOAUufZy3Ek=MB0y#n6I6R$e}k#d(tIlG**=ZtxbNBBw;WA-JGWz`yuV1y1Ns zG@%TYg1)ARG^)wRjRTbx)sox;x>AUuDS;4I6S+)-H!#LOvrxEusyZ=8 zsah9zaz1xJI-`)5;BF9PQtR05{~g}$7td9us-@<&{q^tv9eTNFj^V?sbjjp0c$w?E zDE=6>0P1nmg23RHU6NwCP*6v$EzfRnot3kT%U)6eyV!#IT;gIOu`7uWypoaL>d)wq zqiuuFZe%5UZdx{tT`c*oPRh)5Vm9|*Z@h{maKtD5QK$L8LB+Rn*%3pf9{Cg#DCj0Y z2d_dVjQ97gVl8q$Fhtb+KVml{O`_K)A_?+5Tj;nBVD#uSum_cz*>Oi|^|Mt(ZzYaA zVWDto>>F!<0dl7PaLz-?7YpjjHmRX#!);OucLWiyuLoW20QD(+r6;o<9ZZmmnzmwNx;I!iUk~ML>tF4IskQ{z*n@-9ujQD}0 zqvG3^r@fRW2T3U*IxEBVvUV#31rom{hNwP4AI)OB{^MOkMcLxI*ZD3gS;96qo9xY_ z`=bI*lNEb14Tjy>%WszvLp=mz$(~&f{^v(3VQ8yQ^ex|i{MtSOSZ>IH1`k8?W;Quvv=Pn1pxxL14qJS zU|3ur+Pz)hVa&kB9$sa>ci@#CWQID4N?yh0irrj_ zJSR2+C#4oYRGUpt8Do$#h3!0t3qgIQMpz8`$+wH$EikpOff`$9)A`ueXmz_yaumu~ zt;iNY0FXWSCDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m X?;V_&00;OWt*8JXU;-(aYyd7Gi5mbA literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1084.h265 b/samples/h265SampleFrames/frame-1084.h265 new file mode 100644 index 0000000000000000000000000000000000000000..d1b3e46a471141bdde473158b379a92e66dc7619 GIT binary patch literal 2979 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 Z00HkEoR|Oy_#myQ03cujDVS^kE+8r{$4LMH literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1085.h265 b/samples/h265SampleFrames/frame-1085.h265 new file mode 100644 index 0000000000000000000000000000000000000000..4ac19d386f35d4897a3b0ce67c63ec453a49a1fc GIT binary patch literal 1768 zcmV;d90suG$0KgOifLL)w+zpKoUU8R^mS5dW zze$9*k}8-)+l+FhU?9se12ESih7V$@Ai|i1K-D%BD*&JKRV`dZq&SFgYYt4ng3)CL zt!*F%)`G@502(zSB&}xhc(HWg4HJyl3xiPG2xxR=d~HXMA6p*6?%R~@;-m>lv}a1y zYZdc%Bn_6%PR6M}|DFZ1(QX6^Lw>*z>I?e~!Fe#{ysJzLDNC^}mOH;A_tR(`(g(>V zVKXQoaq`_yC3mium(z@)YKQcR)m88@*2NPPeD44 z{Bt8uzhuii2;bZs4q$coSAQI;=aT!`!aQ|IxD@vSX65{c^s5LQ-yzs`l`}=)9mQ+{ z7{g?haNsAuq1q;BA`?Nl!0@2U;nhc~^o07IM0vQO7mW0^N=3X~$QKjnJOz3>RReTo zqF4S=P?mH9#*8+&6rZLsXHbnvm6$aeZoMOg5ipLb|BE6*r=b9Y57#oAtwQW!D7uRO z%VV-&cfY+K@P{-RU+*xhsF+lCU2Y%2$JMkeUd z4ldT>{-LU1NzDe8OWuJKmY99j0^A;3pmm zWhqw?0s$kM%E?Oc44V8R{_8DPw_4vzFXSiH=K2H(W(G)s0x1drl1HGc*gL1s{SvJI z*g{I^`O0=QLCd_}0YMa0bR!|U6zinJTPg%d#UOT>WZF9v?aH8V5)o{RHGkVI@o}9A z8`W5F-??l$rH?2RH9*i>e(a$N*Or@3g`{Y;w%Z-nWJzy|oJbx+!B=z>BYA)72}T{s zE|3aU@4w-{le9P}W~$>Q9v)<#+|RDwV}PR(WoZA(LXH2GTYw_^of0ANFzJg%F0W8n zo9YOkM>a#{{R0VUyBUDq3w#Q}bT4U5Fvoywq|X>TvMxK~S&6Vv zB24@S96?{QFwj6hK*1LEUQB|QQfa3Up}5s2eu<($=V}z|2s&mT=DTrXZ!p7b@2w?x z#AZ~Y6ZqO3;?X@;#dKwXBEZwk&doc*uZ0@}J#Dwddkq?7sj&dIXGFhRBRdEX2lD9B(B3c0NakMCs)7i3bH9$^ z^D{JUP%#2Ld=BQ5k=Em+**&C>Ld=h)1!~^C6Rw_$RzjiOO)n_uHU}(S{o_J8$lYr* zS-34$?z@5{d>5&I*0Rr&n}Yy?Rjx@^^@tf6A9ucC zr6O>LGab_6d54at>EJBJ(pFV;god6C7(CskGJ(VI_Uo$K!GbmPM@tGagB+p z>~dTY8?S}It~^S8Q9s7>?f}rH9)z>Hti(vTf2Pcy2yB-gMq*3A`=`RFJQ#`(eEZ^)kRJI0A8P0Sdw))$ip!R)2g{#1dhPdxUd@waw-R+{B? zu&uMJFU8R0RJH?zRp6d7F4t~YUs_6l8@knVBq5~vbXu9KonK}iiOD0j`SJh=p?dzR z5B{B$S7j)?ia}BCQE8gdU2}?$?6hdV(85gkoaQvy0WyJau+#!Klf}u08npVzf(TBv z@P6$&3Qtu^#!Ndq71S-f2_6SJL`g)j#vKQpn}5SLb%AEHrfzerK*QyhLy(rq-yehb?1WhD6Y^L>;HcIsgIh9h{f|2lybZr~n{f K0x6hm04^Yl?@>Mg literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1086.h265 b/samples/h265SampleFrames/frame-1086.h265 new file mode 100644 index 0000000000000000000000000000000000000000..93dd32bef80ecbcd8ccd1e36fefeac0e9ea5af7b GIT binary patch literal 3071 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 N03cujDVS^kE+F2U`cwb_ literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1087.h265 b/samples/h265SampleFrames/frame-1087.h265 new file mode 100644 index 0000000000000000000000000000000000000000..69df15fd4569cf4221f7296300142b987e487cfd GIT binary patch literal 1887 zcmV-l2cY->000330nzdQ)I$OTSiy6t1%QAK0suG$0KgOifLL)w+xp5lJmi_eP;aaN z^Ep-A_x=C>#Q`?!3v3h(*CXSwq`(W@KFjTn%O@#(5;yPpg3bu28vY(vzBZ|NB_)$2 zC|U7gfv&;y%BhOWQ)c@BCYYM#zxh@F_v7K!KHDyp~ zN43lh{5K2%9AW?Rzu4pX_}cf(dug}VY5U3wZWf{3~4RrG5Qk%$@femX*Lm9t*B z)6d@{$pJR~z{Lh_mg>g?xH%|@KeNFedH{_WDG8h({$pxp5qB7aBkxwP=ZZ&- zYw;p*b`(rx^U*^MB9XyZR4YD4tzX?ja}_l?)n(?XD{HSVN14&+>B7DFy5JR?GP1u7 zE~x2oww+=8PokdwFNqL%T2=(Tr8|e$V3;O{#cV|1Mgwy}VZ$5d3_f=n0^%)>4Ldv^ zIw#Mk&3nh2|C&qN^E^-p`(y$jDvU!em-!+hP*WK#E1>B^B=iuU@ zR(p3{ff%LWchJfJXM@4%agK^kKl!#W_K_WtGD4Uv=@pS?`N}Dj^tEf`7 zY~X{zzH80zXPQXi*F;4Q4OtL=v%o=3Zqs5xWB|}9H{RQGGiuBHuQzwn7lMJXkECNR zSgItZ$oM9Fz3?V9dYxD5{Yp{*{nr}J;e8|#t9cnX5zt#k48Q2W)hDRUVg+BUSvHuN zydj*OH^_2W8&nvVe8*leO@Z00f2ib*I+dS1k3DZvjM;(bJb*ih3-)J}N<%`v39v!N zoN7(FwdiV3l)dJvwE4_4(MR>fow){hu_pBeN6#_8!z)`MdL21bd68S~08@|70p~?F zaCXX%zB7In12pocT0JI|hE`E2q^~z7j+8~hE|w;tXD3S$yNve6<#Pt0S7mXxS4(osu%jdqxX01 zJfdCsJG7tRT_^!|M6UMyH&xtnTjOu{dwp<{pXejyqdWW%>Tj>$xrSgK4TXJ<`IPDW zX6|c$sVG9kXXi{@m!w;_)YOE)Efu28Yjb+_@T|+k3zsC|2rCwmHsq|FGijT=;n-U- zdq`-t5a_VDm%2ArgMP(l84_W!Ub%hB43AF!0KtORrGJ)jV5l4dIOCK3z!h&-5Rtn? zPpAE>a?lyZ3A`(D!+tM;}#IVy`yi&L^Jlv>W zn9AdH(0}t&_HqeQOfz}#gep`r&1IOvBTF64LUW>OlPzazb}$t8q7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R Z00HkEoR|Oy_#myQ03cujDVS^kE+B`&r-J|h literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1088.h265 b/samples/h265SampleFrames/frame-1088.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c5ea3c88227f2014c48d24a2dd7acc3a26f0d0a4 GIT binary patch literal 2134 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 VoR|Oy_#myQ03cujDVS^kE+El@t%v{s literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1090.h265 b/samples/h265SampleFrames/frame-1090.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b4e5f7e62d28bc1cdcaaa1edcd8772bd780849ae GIT binary patch literal 1882 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 LU;-(aYyd7GhMX|- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1092.h265 b/samples/h265SampleFrames/frame-1092.h265 new file mode 100644 index 0000000000000000000000000000000000000000..646f6b8b9aa346e4bd98df9938eb9aa31b799165 GIT binary patch literal 1683 zcmV;E25k8N000330n!=&)I$OTSiy7DngDDcF?~O!der6Z=ljjwq&3-5FlWm3Oax#A7|Ns2qFDAwM*m59*b(sDt|NdQVrUR^3 z%Z+<-P4H2|u7-LBe$1LjcXbAh^rF#FV%5WsQUH%Y@A=8`JBzyTI(1bx&j~Roc*C{L z+Djx5^$*Xd%kNJktNECPF=RJQ>c4NEO%;>@JAe!OwvF#{%hQfsQpWxgXSr|Uviku$ z0jRI5?b4X84M4<^bUb7&WEQ?fWDUf?T0?|@DuQ_VYOnHqujPVMxCidh>yn}7z3ox> z^i}!&Xs+y8;(o zdKxZ*h`H%i#`z`_~!50*VsbNwsrVFfWxZzsUpMS+bCI3L0FeQ!%(} zFZu6!Pr3=Wu7*g}2~(mi0@&qW=@D0TC`TpqFz9|Qrgi1gcI*Np<0Hl-?Qs|UaRpuW zsQh<;3Vv$oFeQvdN(Lhr-ykqw*^fr$4xVrRdJk{R@jv2;j`}?+Fv&|l=$5cvR}?{A zZ?AZjBYvMK2-`C~*y(=Ql2ubMo#Gs=WA7BYgD&~d9O=a<7!1YkGPrsTc{CGnK3zi8 z9(0$gFA$iifr7#@5L8|P?&>U$3D}|z&MOWrRQKQD0ai9>O(9I**%1X7gnI`QXW3_2o{k`cOXKKAMN$0 zuBg%?<5_kZ{%jZl-NL$zLR$vD36L|_^U)0O+#x<})?pA4s~Z0IH!M* zM%9w$Qe+uI zV{9YeO3svRHcQmKI#BOMnyyFGfRJ%Ne(`A*O??au=|?_|uL|2?+y6(ENU+gwdTqdE zw>V>x2XcJa7AA$z$uO5mU!;nx(No>pe!!`jJP(F>vC8SAqZahFC)HNWfZ_Mx4Q_Y7 zElnj3yvCK5!sZ5?lyr7`nq|V7%8SSZT6snQTQFc>kTnzuP!muXP?G=v`u?JF#2XX# z5Hd^AAVh=iSRZx?LJ9=2EG(RA1^;M~z(has=4Gqy!%^)Xx#>?Rvs-^)Qdvjs9SI^_ z5=|^`tI(C^{*%Pua)n`k#&KpydlSxO(P;1ois`f=g{IgaKmPyF1jqXszK)W8l8BJ3 zK*JHM;s|C;OaVDYSC9BRvzh}sQy@Bnp9A!1u_?#E9xU=@F7Lq_C6LaQBmt>hxa@p= z-gcO1J%xc(#5Y_0POcf02+UrbOuWXXfm~~WZ1yHv*g35oIQifE3nPL6Xclk>KPPhe zr4`-Fj*4H6wPSk6q)VY)Gyrtw1+CRs#Jqerx4|nxT`x;vpVGAzPse7ntjsO4y0NQ{tPkjIY0|WdPKJownA|MsBFaQAW dfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+EurAz1(b literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1093.h265 b/samples/h265SampleFrames/frame-1093.h265 new file mode 100644 index 0000000000000000000000000000000000000000..a459826cbb0b9cc4d5e3fe597f334097c09c3e45 GIT binary patch literal 2145 zcmV-n2%h%<000330n#D=)I$OTP{DaD)&PJG0suG$0KgOifLL)w+u8w<$xXKz|M&m> zaJ>a<=~1N&F0BT5+ih2LLx6M6lbXq!wS1~UDTa>$Fz^tt?zw7ZBd*Z>3C?rEs znqh$q%*U9?dNGo&i2u+>C-U_l&g}rdmUdy%O2|*QE|F0!qnwfp4+j93{GE7F|Muy| z&7ltOY4CWjj2+;SOd6%&Thk7@>IN{57}vHoc>FBbsS3nVAqrf?PvQDp5~KMg$X*v} z%}26Szp$P6+}FF?PWAI7Y|u4Lxm$BTo52U9S~J&ZH`d*gJ`LIoLq^pG z=pIkN+zib~MnM0xwY-$vm-xe@kpZ{w6UiWh2UbKr-T7koOH8*Cf;vcN!>R>QE&5gGyB_RR8v2^;EREfW_ z(~yYVdw<$BTlaBFR zR3?X*j1mfw)}O8HZ0K6Jv$oQVN57IUrCYXpuuXJsC|Of;m9Nyk1-c89p;HHw-rMI| zH97tLw*W%iq7?&g%lb;N@`HkOq9lBK$Xim*0Dub>bpieIJcHiJ7Rotk#`1ITTQUpb z99CDY}ru7 zZ3IOx0p_N~@kOb!@&^pO^K?>|GKZb*`U98I2_wz}T&-W=QJb1Rc%_gF3*)nZYJ$)B&e))txvhg z&w`ZVyytZq1lYveV>0Frm3?)8&VR?hj{O&>=zO2fenIr#M<>_^)HrWKGk{fF3xZCD zALLGZ@+}V-F7oAJW>cB|+$g^`cjGKVvdgxwM)Aal?st(GgK1-QFHg8#R@S_+} zGM%Qui~y-8S&)%x+_2%w{`~_PFvU@(&E&P5zSAq?+?4RqO_%=U=vIV;onnjQLM>UWGE?>y?iy!s^Cc*Aw-?#L z<8rhr0-WP#Agj5(r)V6;Q;EysI}rS@_9}>EU&@2q&+{5G@(N;oX__^%vA7YHA6^N@ zbzb+^m@-gTbR}xprneB;Zz;j`=O9#r%?gWW6p?ADeeieyAx<7>Lff`RwR zEzGBmH4pCuW^@Xf1`*Bgh{T>0R=VZSQ12K%H!ynu9Otn;%7Ub z%{+X@G#z7xl)SdQL_MURX>fv*j90@-ocy{S7omsJ#HA0SE88J&%j5;YfPer0Zyf7J zcA@FIHq>7BsL1CL7@U}PuqqC!f7r8H4=BoX$w;-pr|g7h0E#RUL&nY*sxHsrdgl-S z|FqL#r^oJh4Fhde9k)Sni>m82E@cwR_sCVl=D{g?z{M>hE#E;XyQ|}qA=EmCf3?7c zs0HK%1}Ogw#>U$o9m8)f^l-?$<1cs<<@fQ|C?6=o-O+3LgSuEBb_r9!w0}apliQIn5%<9%%U{X zFTq|h7~vxw;BZoIs9DjTUX8#V2V_W!q)s}`L89-MM>H2wv@Y)CeC~jCM>kLa z*Rk9D@|(C{Jyx4UCz{vy*T4F-YiHy;c^)%vo;)qfp1Y!t;fr7nrz6xB2L!t8iKWVd zf<0+Ddvj`Rs!NJm??4US#24*m@>-haC2=A5l2P9sS^W|g6_xqz%!IFiQqjEf>4@BJ zGT!5&|E~Hj-vQ~>M4^egqfhgGgNAP9vLymaDe@>LQQTI}0A`Ayo7VkZtsQ#@XBgOb z-_WWgFDMdG?3jC~Hl)Be#d_WtaUvxM3Rl-q(qIChdNjZi#8-m@m11eSfB~pV{~UQH z!?$+i_IpWVpI3m?&HMGITG;l~c{8;s7FeUHi*GMc*y8p5^I{z7;n7QcT`41fsfMI5 z(%xB=3xszD$JnF7Q^vu(ET4N^LJWhoYsPE)zf_e!|K!Xc|NjlG2m%APGLmPluu?!+ zt;iNY002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g)001H&6|*n^0Plbn^f~|m X?;V_&00;OWt*8JXU;-(aYyd7GV{#@F literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1094.h265 b/samples/h265SampleFrames/frame-1094.h265 new file mode 100644 index 0000000000000000000000000000000000000000..24710dc3337b7febe0c89591729f85065fa29255 GIT binary patch literal 2598 zcmV+>3fc7l000330n#b|)I$OTP{Dr91OSi@0suG$0KgOifLL)w)p2H4yx@2L%GeEr zSklCf0lM^*oPW3QzAuf_E}uh#zr*Agpd=F7a1rZC`f>Qh$O7&TzDRZyy(HEFPK~fR z3jW)i*%eBmngk^W?TMx?5n&2R~C5P+#oVX|tZCYtnr zfAifkP-i+S$iE1KzOHG(=DcAS8__zIuJYo42OV7N9dP;aWk)-SrB$W*#aC=UZc5lj zEwNEWzKOwGJzJt%0$Y;+0y%kv5J8xojOIL`d)*7oPqn@)3UfF)g9D6*7d*>vV}Ova zFWur+JTRskc4EvuD=*C+d=T=0*UGBt^2!O%+gPzz0^Xrqr~b}i!lp5&AEL>mo<5bP zv?#n9tDzcF+cJ~bJU+HDttFk#-z*$-_dt)6Ssz;0F6lvFoV>>+&gpwZgll>hBKcsp z^*lD6?bxb5mp+;^A;A=UA?%%c+u3?O8sJ|XbQ)%v`E)e{h^8rsr(4A4NDqK5bXZ^j-k!i3x{3^L@CYK)h=W4b?o+ zXH&CnqRckDZYo_XhHA!O6CEH&)EwVyG!Rz?VeF1WI%+!mGy!5k`jSv(C40XRHfX)`-_&4sCvby&<7_23*i zu{s3>Sc%_zC{2l=S7Lnid4QNdC%dO;GBoA&VQH`Dzns|=v$yA5(TqBC9<%0@ZE#bS z#bO}Q`dm25(6F^?=DEs7t_X!P!6@)OyB%=y?q+4*CZ#8 z-*=Oes#P2S0haJA{&la8%ADI?x&R}`At+;)wOtSAr42+v{atoZ^o;R=XM0pE1N~`W zJi#Cjy%`03Sn(ZX7VRd&1{iFL?2n%1Fq_z@!}^PLwg36e)Z9i?+%G2SsX0l&Qm*g~*h8>W@Xm(Tkj97$e6e6Om7ZiQkye5yk#s8Q6Yk47z6 zbESHQsVgI7@f{_sGRzP@l!u5o=P(5^?E#248RiBEQqz1LX`xmQ;up^TvndezqdM@( zCHp*g3&K!wy4F8ab7R5XT=;Im>@1-qe_9nybL>>G6XU@SrPO+!j9EMtr+#$e;B)km zlTK;y9{qvvg=BQmS)1b8nG%|5691o@WmzE0PHS`~i{*_pdzkl@d{4lPE1#u>+6;q8 zus*~Gzk_gx<(lgc_FK#;>Sw^0u=+mj^r^}};u^xIg6k%!D2ck{DzF?Pe_zVsiKDFBiOdbBXCo=!_l?JGr3Vos!x!}Tdjm!aCPq?~AiXu- zHOkWl|7XEP2VRE%Z1fA{T}sBZ12v+6+P@VgN%qZ@$Vc{n-vZ*ODQ7s)9@TY`SAhba79EzrP1 zZ2j!JSE9X^9~-jlZL?l+jpxkLKI|-igm?QL&0x&0&qiWX|sgwgK|>GwoKez#KX%tW@hJiz=*&Qio1}GnOQEW;MM+B-;aQC~4A+j^e5zXLlbhHozC7RZa#+;?o%0Gx=;WQ*YQmBdq zTPS!sE7mq1=z^ND7Lr->HJzX$v%mliZsQ#F03R)YH=tM_I)fY}ry)RjaI^?eYyMyV z>bV#n^R)29^kGDUekg&O#^V4rW$wT{fBD(*pOdgFh+q-XL1tWBL5IBoO}Rw7mcQ&w zyz3{Z1$Z9rE%cAih!;*>DW!U@K`t ze6iHRm**5z99R3W1o)Hqr7`-Bv3==`+^lLWt&HPi)nS2+;SRrZ+AXu!0rLgM%_zRi zHc2xeLt4DRa6t<2$`iF#7}k(bE?=HDL$xqja0l@00JT5>6#}=z&3AZ5;6a+C1p7fs z2jcInM-l&9_+KWDrQ|!!W=OP{zIy)w8Uh|w<@bQiic*{PMgr9CRUh{1j1yE1`JFEasn-}%MQq%EF+0+s^x1z@%H0~8Y zU5iKB*B6m`cZ$>&Istbz0uiW1TP=r&pC1h^t!Lw2V-#%PHa;r`eZ{_LEdgEkh&y(R z`@BwB3Dm;y{xYI8Gay(vNn);a;dDbIn_ip~DWskGw>r%JVXy!Vo=iN_NFUE1RN>Pd z7$<)5wB^_VVD{Va0r?8rm5Z^6Lp92?+TZW-Dp4b2S0}03Rto8M!f=a%I+Iua*6wrZ z&+4#_6QYDNhGwH0^HzljP*@77U5CkMxuH!xc00RIMuqDxnrT_p1 z+$t-M00093+JG@neE^-Nxcx>I((T|g`&z0 zTG~Jjtgiz;lUF5R?wj%O#>DHyND-xpZyhZ2v z0Jkx!FaMoOCBDoxbXYf&zHlPedxG*|%XwCq7E+gDTP$~eNAIT4IiwGglLBT?haZ8d z4odUEK+CD48oXuzmmdoKL5tp0ND#3vq(#e6%JjA$WKjfy|MD8YOiw{Nj{I{YPrqc# zJP6<191dW0_*a0us^^mX*}^<^NVpXD0%qm>h96uYpyZBvF=frz2ll{4yeo3bsYV{U zcVon$a*Q!ZHF{hD8N^E&^8ss3tM?Ql@t&5cNVki&%c2RS6x%B&&3P~KYtXZ0-j6s*Q;rO z3Id`;T@4L8SDfi~!jJjPyvOe=Q6(#!5rl^Y*QJJUe9JF+Fel|8Y_2wZX?tk5mg=b* z;9g8HdoBf}s`g6PHKC(&fB^Qw$2Vou?oVX2YXKWoHujf}+$PxWzSAxcg$zvV+3l}A zPcX!p@)nIaSd!G6dGg$~RyV5(d*~waSX)l=@~0<>mDI(69%lHFZ7y%S|Ci!7#*4yg zG2o)-3;lujazt0f#jm62-7*DQ8BtMve~tft{~G-7(|CD(Kg-qlN8mr3{!j0D-+eSc zhkX2BEH6?^aa zPvq+k3R$YC%SVVgYw@XwX@b9iE@806xTvbO!R9OA1sIV((yme2Ul^3!V))uU8LIk*YEE24Wm_V>^V+Z#sL zeb^_7gf#(h}xk zT7WYyk-*n`&1hFm8QK>cu=luIWRD^|({3QCFWJ}Nhi2}5#H04M(>`g46t#s7V&G-k-RXdnH{)>!nw#d+E|oxEcp@X0t>Zvhi@Ec^cP9@EGb z)#QWTE}`(5>uT^6#q*=ooft{=1-vVGIgZBrNb$1-%;Q0T$^cZrSRZtoOZVQ`2MU${ zzyIROyP>k6JSlA67MAT_{!i!xJ(uCjHJJOf2deXmd)YyRntd^hRp*80u3@|6Z3XBg|7{D-_ZO$`{C(K zXYa=(LCN34kLTyYelSZC0vF*euXTl>f(}0J`VyhPT!a8ECkNQ8-_%+rGoT+*lhk9* zhrO!5W7Q)^auUu#G2#0cpeJmmT=dscXK&zfSK-$fAuwXa!)N~b zkLGBE+e(vhEcgE{r-6s!v^A43Xr*Qh>GM%1yR&CnKqjI<*GO^q!BN@4q-h|i&GL_7 zU)&;nQPmYJRwuI8vBzMHl-Bp4S!GKM*@lVGa)%obPLerZv-Sf%5~rAv zdIdY6r8g$wY~gYedoU&PQMD;QTdH*l69QKm{y=T$%M{8kr#t8h-&kXZR^dsvF1gpH z;r8|R2fs$t_%NCg5Kv{`b;EJ=Il}GY%quR!8z%hAcRdND+2j~&eVi_@Z}QXhE@*UP zF{cNon`paiv#i;6(dZc|zfp-D=3l%?8;yGrUp`?>@YYNv5}MIY+}!E~u&QtJY)=n~QbMU|ya5UTIAY`IvnyQc19@vHS(aQSjgDCa8bpOCQ2O1*&v zEggTQ+}TCw^BW)zLS<*w@LvcwpZiV&wUk8Q;$N*Y$hMXi9Gcucq7nbUQ$d-=y=qVJf{z=ENojsEhy)gRqymm-1e^I zKYuq#iQCkBpSE1Sl4EVpQ5%zq6TfCeg*srAkVH#?Z^OeY!~*^SAv89p>1FG-c9#y0y%j7C`hu&U z(s!MiOd=AfdYN7B2$`99rgRWMZaACpHzQCu(Z##3&F_&qQ+#rDBF+& z!pPi$RbP4YrC>Q*%}#Ni`Qmr5LwjulA^mLP%YMg|qi)k{^}SRsKOXyE)=IblfH!uu zEaf7bB6)3ZKueO-s$7;tVO0FxfQ$^?R^Tgwzl07uE#a4HVD zvMb(cN_|2Kf0XHPJ*!FF-G;H+asm8(E)!8pRBMAveJYqbCKC;B3@-Z!m}qY?T0mMj7yu+l_%jf)@Qe#QYY2I@p8hFh#@ zW#})|Aph&a69$?8+?Qj6JJ`{L{3+@G*x#+i9$lKKCzGd{A82jKQUcf>p@)Ktzqja7 z`oCC7L3nx+=37tH!3QlYuaRNPD}>wq0O8kwQ6*?o=$z3l_q|IK} zdssI%5E1>7KPNQ|v8i%hV6^g3Tnw!q;JgNl^HaY~3o#W@kiuELhfA6nsVFy_S~Gf@ z{HnqKiCqs|S4hIrTZKXWRl=!ta!wf){IlAfyzujSE#bQDLj7csAj`{xk`3`m>`S*(K>cTip#apbgPw@&r7yb1=tIf`pQNV~>g`23r2WN)Hc)AUxHAc5P`&X&FfOlgAo!$GFQU8EKypRRJ$q3E!{# z_!CDjmb!}{CXi^}qcLNUktxa=p{~!~Jbs%b`|1lnoQ#hfR>Jgd%u~&bOBo!6Xj|u? zQx5BOu`a_@;f6L)*K)k>Tg?G&BMlQc&Bn8_rfNQ&>#*Oijy|`g?FfFEtmA4eO*evD z@Rltdz1btU73A1z53n7>*9SJj2{FqL6(rH4jR=!l}8`aR?Z9{$t?s}Si#PK zrkI$@2MX+1Ck*Qxd>1q>luI;3d_ERdjuW_(?}P)Alb08A_8BQW!m#_@@8Ly&^}(`Z zS;%=QwizwD*qOS2E?NkvR|m_L=IuA8WVcb}Qh!m)dIYi*m8U@ed7)cM;%*e_4lM|Q z0=@V79LVdBMwOizxwML_)Dm0{Vp1SXG|G)>pFovk-_l?bGv_IN@N)OBo_HlS?S*QPy;M#)@M`v;y1abaoVc>eT@w=P~R4 z^uHZwq&wB5wU<&f-@$gtyZ|kWX+gLh*BMT(S^v?3lr@z$P}omZu#kw@k5ngZ2JFn;S`x%Wh?@Iju<5=)u;XjN5qDq)Kg8H96 zvoCtOu>PrWg^~7hV+0#EXY94-HoCmI^gadBVOt+P5E}bEk9HGp(oN5gcVp1E8Md2c zycCsHcyP5=__5dL{&fN>@-MzyxrFSV0Js`fXQudB+~kRzGkWwj6x%VAh3DOMm%+Os zL*pu}LCuzFeG;rxm(NDt`TF!*;Y%D$QlN-a}nbk- z&ZjGccCR=>`|+nCR7cz7xu7cSr+$T1iR)=`KzRy}uD{w<$d;L45HvV3VPm(t6U3U# zmK%G+Ft=X{jQjR%0w1V*`%@=nap{zvi?-3@vluGP7)X1UJHduQM-hS6n4g~mjXY#$b4UV0wCR?=36 zCL-hP(n-{}4-Y&oc7sgIbzorpIvkXu(4aJcRx`vn+v27_H;sv&iku-D^U(b4c*UH) zoGS1nyvA!ooW(8;3+5O2)fGiSfQKz&G`dX8IJyAE?!O>m240lySexTHmSIbe&QJnP z7yJh2(R+S$BAa8iP=I7*f--1M;1XtR;?)vNlaMvsOc81L@b|!5_{b5XTveiRFeQ;E{gQLcc6!I?U zg|MNNM}2>hE$G3?ydQIu>nQUkE?s*@G*s7ntjsO4y z0NQ{tPkjIY0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+ADr Bz)XnPw?-j_KER#N^?|y9Zyq?0GCy658WT&N&LuqeLno*UNuhqA1y`jE$Y(U(^fw^ zzyB^i9tFb%WRS$&NIQahC$cvLgmA*2)%>51A>&jSyYr(300aKqXX1!Dm)(c&R=rSH z6KgzSQFrhZPP-68)IUC-F5N?iujXP*#gd&gE8W5QH`J{Gh4??qfkNZNez|olC}&o_ zNU}Q+c-k1OyROLh?uPvbYiN^O2Ickl_wc6lR8j;;>&vn;XFfCx_UyeHr|`7)5D8>V z(8$>VW!;D&5OOjo^Q%Mz#j@K`DL1vhE!pQDEPcJv>30xM0J0H5!vt3Bl^+z&ImoM}+?rA(*jOI8tFkpZeqLpT>3;rOIDEw%lU5I`cd z#?|NxYI)~Yylz7CmqSoGJVWw-&*zS5zDYhPpl9(Ucy<&_WfW0EEuxXW2XWPFM(Pvn zsj0TIJ6chGY=;cc-d|k|k*X4>L|O&0%D>Vgsc0kmm6o5UMIR`SnAH4fBfU3v^wo({ z9ujanzc&}#QYxjl$=X?2#U5Qb><4v9V(wS^}uVGc6Eu zO2uX(ste-pze<_whdyFzxV?weA!^RIRVi% zYKcHqCPoGNNbssdr}ne0;zw2_gAJ9B#(wHn`G!w&EyRDKt2|8y7@U=85!Pj)_ng|l z-A2aJ-$pWp&Tui?@%XM9p{}_q|Aq)Q@=d}=Y(MlR&sqj=-hD<_=VgMwkm-eThjC~S ziO!i1amPcLsem^#;&){edNOSq==H4SCnFUX{YB{7f3^#3_J+!CtPSLW-TOMjusCdk zH|hu(6Fxk_-95~a@rY4%__s@&-PpW?z`nwLF)xe|S~#n|_CeRCf^-e72teTQnx<=Tg=P5$30&Dq8`e~at0Mxue(#s9$C*4}!Y6pXS-}eTJ|42sGvmMj! zuO)g*{j+wNO(d==Esg~G8yp2V&~P~-{n~}DkT#UoCH^Z$EkGbVQQ;?!IR5$}8j!;S z5!psHP^(w+U;U|)H_d~rvH7=*W6hjiX@XMP>rJu}j-6+^>fOFPm|NpJqnYs!6ue%D zEyWbgdYS>yZrBB8ui=7`vJKS;S z_1!g`Q)JTlIM8VvE`0l|SMV}G#1$CE-`YM|N3_z?V?jM+!CGN0GO^9kvW-7s;qs`W}WUUZ)E`Ng))^=w*N3Cod^K5U7&nU zYoStpe>H7w={vkgYWvhEhXG)f3NKgNVkz5mQ6q@;^IefE-qcZ3JZoH!C+=XTL*?KX zi?|X~|HmZI#5#2P;X6i;xkV}}-|)_(Cly81_Z1PViw2rJ9WT$@dMV&OJH7_7la@%A z%Ez<}p+xiBM#O|YwO^hm|IY(12FBUGs&cI!1S)2e4a+xd=@M*{>nV*{21F5HQ7I^> z>xF0UMhlnBQxgUCfTzRyxav;L4F2^?nRcYb{QgPQYWoQ^JR`}~zz%p=A9esAgb|=4nK;x7{?Q|V zh=1eE%U9ioquM=l(w?itC!EWo z(clji(`Z8rR9#q^|M&iYCNx1!e>E=7Jz;AQGzRwROKJh&HSKSa@(JzhL|mjPG6Urt z_Asi>^tK-P2d$KbqvuKI?co8`u14{Vd&-;-NH_zN>i4VU$-UzR57Swf(P` zk6gUQG|4%gzi^Y&;O@!ZyiKVk^kOzn`x)#Hf&BUQls{fWtlmYD*u9O}; zl3I5cXr&$cC~$GEyVo7ntjsO4y0NQ{tPkjIY t0|WdPKJownA|MsBFaQAWfEM&R00HkEoR|Oy_#myQ03cujDVS^kE+BxFtZM)O literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1098.h265 b/samples/h265SampleFrames/frame-1098.h265 new file mode 100644 index 0000000000000000000000000000000000000000..c50596f196eae78c392d71379484dc4297632139 GIT binary patch literal 2170 zcmV-=2!;0m000330n$nT)I$OTP{Dc7&H#W80suG$0KgOifLL)w+u8w<$xXKz|M&m> zaJ>baw6CaPbxe;W!c})fI0roGIjotxSIVRkvP2<_`V;M@`mx;EzqC!9%5Ri(L*j;V zOIdzz3Ig)k=C6UT{+jD*t802;*Ihuy5yKkx#?K#xn-w8gkXT53Sjxaf|7Al4h$GLc-Pb0Qak9@to81z!4AQaDz)cOYRc+NVe8dTC%mogd>P>bpEGY zsmnS5vP5CjY7R6Es){r{1dDg>HmcafCYP&qeV4jsX26P{W{FdJ81-tDWkqoS$JN_& zvv z!JPNOsDMDrYyYQX;kgww8*u2+5Qak~N`yl=3i6u7$EiTr+3YcTH?1>ETXR78^Yk5y zHt%_nEpBs&;|=^UZH^i9FuwOBdDwqEykyTO9i#l05U4*{{b=G*#j#eH?n<3J|1jPO zx!oIA`bp5tTZ~^|>ZkhW-~iv?aDF0apS|O;n{Fek7GmVCtGp}vpu5OAScfG1xZ^;v zLTzZr`q>MvJQ#?{MJ}1>RyTiox84ym!7s+?!#ADPL)}yjcCtO(9i0nFN_G3AMs3;) z_+DZLpA}5wv=d5&ZS&=*Bd2s)F7ZdMj$If|{qi}P|GGVCiXyK3}r97ulSO%aGTmGpx2`-RnQ zYtJm`**!JQNO(q}PIg9}`MrUSA9|w7x*k70S!b#+$P=_jcZh1^vx@(JzQ^^(Z9Ok| zvFN@BpU_Lan7sG_YWE~EdUaV{U3BKUbU9SPE10<|l`M}>j*^kx6DQkb!8W3?f*|bi z$L=|(NU6~;2yQ48FmJw)cxPA8ZcN%xk$Ik=RGuf-?&HMHp^yU+dvBp=T2MluMlxJc zcY2zx=D^j#G-q=`;Z zsEK*m%^;PUaA`;<%HGryU&(YH9pE&$Y|Hf_u+ zqyZfr<|i#bSxda1Oe{zehnu%{IoxlY-@;00MbLIn?)Q*75g=MQEvu(O%x)R> zaDyKLEi-X2v5K#q6_`hAdA-xml#$k263&XkD5-=olRm#nzFNhDOd#Ew;@b>LYLCBQ zzJxD9rd<@y_3X9q6jqhg{P8zkhe_PxfC?B`A9e{DxDOi{Mf3JUt>KC8kZHtBqz5ki`fCDYA{Tf`B4F@ua)>VUxb`=Dk&E#)M zrMX!ht4h@lN1^cmDDJZKK22~`yJt1Wy3d6QY#Y$2QbZLpwO-1~7C$;!7G~g$iIfH7 zL0RSnJ$3)~Ry>2!zp!wa?%kkoYYl?8I2Zk6qC7kDY9T1SOF9N!97;|r{QpOnJc=#xhzUh7Z~z_1*O_$BbP+Cv$w;cT{#bB44go72 zaDpF&z(;J1u?>(Gw2%!u(t)|O3Fd8tUof`CPq7pXZVI&f zNM_FhTG+Wen?w*8&pV;OT^%yb8bl0WM>O37Z~6MtoOjM-64jDr+{?wm;;bg>LHz5t zn!563ZU9$m%0n=nGTxO^w9&?avsiFL-SI^-y;`lQ8ljO8H@I60dX>|vpDEc{laru8 z`F}?R483Yt2jG9{VM(EGZ8KgKcUeICI)oXRFjKBRBUb{6$Ik#_#ean?2pT%Q2yDT% zfm-(=?5V12k=4hQHCV2>K_H&qeT@$LxNnJG*Rox(%tpIxHWzqPHD0HmY-Rjh&m&jn zhvIy%cnQ9ckZ7IbgUPQ)nSvFCOKQ=CEmE!%C&9`>yG!R{jdO63F6k52aEnercZ=pCYDd!e&J=^=Y*yoDM8OJls{ zD$%Uf6W%Jxp;mr}LFho&`>f_J*XrO}2CG>VC?kHRN62<8XzA-IW}4(YZ!#w5SdPhb9$BTFPw z_LpdHAyRPZUmlhX_Q#3S`)TgIdK(p*A)0HV1VGI^;&Q&T(h5PI*-KDH4{cPM2uIYe zU`0HK`zk)+wqhDR3BI|H_zaI6%*ZCttwopM!P0C+b|$o-%kkVj%p{-+g?L()bG!oT ze3{6#F1#G+Wx98n>@!{+A5_`TM^0`$(6N;VmfUyQ$mU8g=B5M-mI`pJ99q*w))_va zN6({@UBSusH1@ey)2`Ie8ooP#m;OB56ETD+)0sCm9l+}=zGd32*$l(lEiS4k7zU0Pf7eKd)!UN*`D)$l7MV!>LSAhpD{ zJ~lz7+~$~9%{iXP5jLn0{n(2HnM=Sg+%&WR_63HjZO|G*y=w`EHT}H5(a55PxFaYW zJK0UrFr8{%TvdbJ^43y>uxHPn78E`M9a%mNASS}1O~p~`!2x?lHrr++|KXQ?K?~cy zZja&PF8@qQB`sQqMo7aaT<#?%#ss>!i58zQlvx95=&fp>xiRD8sxC~fqOa_Nd0uCq z&GPcvqmu;L_Qs7$s{ij}?g5sr)ZO?7$oc6NRc(abibx*@!PFPTh{p1yUF4hYl(fDKvarDc_HoKfNvibh7X2n!iwa+7l~$-wG)VxGU?~- zx!5YOZ)@7dqA)$`TQNMJLkX#~ISj4#gecHr10{U0RixNr(iB~EhN^5FAgLWayz|rj zxc8_e2V_KNL3r;GaPsFy+X~m0SXgvlq`lci`4{fGNy;fUpBD6qnx3M@YnHk0tc(0C zAm@_I)nwFeonFhJ|Kj9HMw*z4aAz2iQn7<`j-`MMB}?*Ot*QjK%q*m)P1Y(`XY4g2 zc%n~F8s9@pu7W(CNgnsOhN z!JkCy!+^D_VI55ZXEmwrCAb4PDyXa---fI4y*d)$Gi2vM&*Q&G|PR7(jp+|W@(_y?$WJ(==YscL}1Z^_zPxrTtF_?z>Vem*# z*%!#Ou%D}je7U!1n9sN33aK1}a9Nz6n%W!lQR-Va$wG9a38(27Qkw`lTezYH2i{-x zcHO+L%4@7=dk5}U1#~DUyCD=R7$K>IBPwVE-YdR0ZODAy5E6EzT+iLO&BjLiG_j_X z!QCj+V0t!DV^I}%^{~B8*+#{TVvi~kM(=1|_hK$@s@lDMSnjSmF*gJ0T^*V?EYwr- zRk?xsAfKR)6CSYC0IJ-OSz|#6 zvF2kP)Xf^lEy&sBGQG ztYL3Jw}^#X(c-fZ!?uu@jl*7GrDgqB{9X8<*fD1Is^1A37=pfD&uDF&&qMKWE|(2N zCJ6WTU$U7*Orz~eaimPU*)bh}5UujYc1IFacjf?2<=EW@uKod|{A3B2^B&Q)jcqXiwFbL}3 z|NoL=l~^+YA!+kwiqiPJz+9#4@w{JWMT1Zr=x((ukCtO7Oo*XjUkQcjc<8; zRs1W@otRjGS!@B|;elQR%ztVZD|WhzBHdI zF8?Qf(DcdkWBLqE;xcn$k@=VNK&fK{QG+MSB^xij2@-8$)sSF~)~YjuI&fF!P)?;s z*s=vY0XAvT#B9wUUY{mW$(|Ru|Lovh<=)`pucl7~rO7(i0*y2@cI1$_r+)GmW`{d- z%(HNTKA3xDX-KhkxrJmW7TEWf&$ zev=7rBvmkpw;1J0z(JN`24Sv43?9W)L4`32fvRjMRslces#^<+mAw$&FdRl#g`&z0 zTG~JjtUF5Qq*o+#_r&Wf)tV*B@xQn~8 z0d8YdU;jFmOMRGX=&)}meBec__XXs`mh!DIETt~Qwpi}`kKaw8b4VX0CIrl(4nG4@ z9F^ySftOQ8HF(ScE>j`WRxA`~+cyu8eFiFt?_F}|8 zm8l9Pua~0JYB;jlSv|7u03t02{d$)=Yqv{Czyr;Hxl5CwC)JzN$B|wa{TnhH#>4h= z(XiV-u)A@EOdLQU5<|jb|1R^+%~Ai~0eDhLN0&@@(uoC?mEyp{Wp#}BbGm}zWnnu5 zB(JGr$-NcfXuAKh76*ua_0r7NQx|{wl*12$aajjHY#$zqQ$Oz++m_;U?H358n2DxQ zBfip`*$VsM^ARM=dKoAwCKl=vszZ{3c(KoUz!Z+jQ;DDHabLPd7S2D8Y@zBk9j7Eb zsoqPYg|Ph{`(4!eCsU}S)vcaQspuD?Y%bl&bD**P>Mgv{olCYM$T+*{} zwrh8e?2ZeI%?xehBDeq_7VlM9Hy}Ju(+uH!NwtIihd@~D+rN~!|AM6ZzwxpKWl6u( zFab2&IUi)wC3*^$yMZCZ-UEQonyH=vxdZd~Q-b$|Ob$F^YF+Y#Q<$CyCBH~%rdcnb z63xG?Lcv|(;LQVMpgy8>xAX|?uz4&QDm`UrrF+&pD@l-&epp5=2Z1kyBv-{Z(SL%*8#XJ7(ely9|*A zb()Aaa)Md_T08s~F5e*&8D0T%sej$uH*|*%)ThlsIa8jPUX4zl^Bm#Jl~Ovf_m_y+ z1%~p=i1owD9K~}bnM)Jr(_44T6GR8fF_CvQ z8Ix!}1UVLvhL_M9LXuQr;jYImpW9%I8Gj>!z(kq@KnIjqA9e{;5!(RaQor~A{8?9Y zHd{xGG=sysqpSbP{Q!r}d}p4Kf<&)SHQP0^3v!k)+^JL4hErKWRI-XktYJzlpjHMl z=EI*UQIGe#J!SWHSNzJ=_M-*LEbX}YEyoT45MLYr{k|CHLl>*oQL6(o>fB*PN_v## zMyC)s!9G9KE4<5Q5c$gKqr^jIfj#2Mix=#AE`bs;my-&oSGqkepZ4SV z`S72N62yRo_(}3*B_ad3%xTGWPLX!hNqh`!GE>|Dn;ykcmZJ0~$Lm@RW>Ro+ z%>va#z){cu)9S#nezG4+nzcI;(1-vVLTgPMxmrMOcD00VHlcb{?j3}pdIs1qiTQ7} z;u1qt6MJvQ$~}clk78;(#?N^;U{VpM!p#siO7vVTEc5U7WrC}JEwhJA@y@7Vr)`wL z4#-%o$QD2V06)Mb(TS!200rDCD~Hc aIsgIh9h{f|2lybZr~n{f0x6hm04^XD8k#)- literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1101.h265 b/samples/h265SampleFrames/frame-1101.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1ccb708f1f5d259d5a78e53d0cfe3730e307b4af GIT binary patch literal 4118 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1103.h265 b/samples/h265SampleFrames/frame-1103.h265 new file mode 100644 index 0000000000000000000000000000000000000000..9ffb05f514cb570362c535fde3ef0b74f82428b4 GIT binary patch literal 2161 zcmV-%2#)sv000330n%~*)I$OTSiyO$&H#W80suG$0KgOifLL)w<@Wu;0!pDxw;Aj= z|Nl!nCV$T7?L~)IQI4m8UeOK#&pJ+PPF<|EQVCfi5R6nX4XK|;s*$8!b4NJZuRs!M zZ}+*lS>XoA9lZwyQf4A(fpOx5Kai$x@e)2`g53qyt7*h=I1Ef9%rp70#3zSIhgMtH$-X~32|qnbOc2y z*q(;!TlXPL62)->K=x6K`D^vOc&`v6bx|@zpU3(&69gpx)!bQh)MHlgBl8eWSf(j8 zZVs;kITy)v&eUY=T8LxSsy~$#y8|C^%3=gtUP?Nxn_H!np@{^_E|ogJW{ibn#4vnf zi8LyXh$bDv;@&2hR$xc3scTaN0(vr=bq)B>>gK)8jt(w;~6ZT$$?l7B@o~4kNLvg2p%bT{GnHAw`wTqY-YP z7VnhvEA3RTB3%Q1R*ypE^Kr~B3|~v)sT8N#IthOs1UyJ|c0OGFokX@aPii$)co%|L zBq7?M*2vgBKQTXA1!lvh*&gl=&V{6-?ETTLrtJm%FEIm8il%Qq3Rj9o94lFve#|p7 zS$a7S z|6mta{OA08`0vsBevirg=j1<4^iq9zeOzAhU zOlva)=)7Q4Oi(o`KS6V>wa#ilPqyX{^|oX|O*UUSYwLH47(?-AAOQD615i!a0tW#% zA=NxdkD;j*JYAXaLu&Tmlg|0G_N)Hs#Vnytunj`VbK!>sY2$`g%ncL&ivx+shOf|z4RCk|)S7!0gUMKQti}(4mcG>1tvO`^`W5!=(aHgH()=T|-K>qj|gk+9qG^<*renD7zf>VSdLIjW zz}x({BQ8tA61}i}lA=IsN?221NLRityr00U#VSyS@cbsl(P`a?w^y~J+#L4b=94i{ z%H;)y`vnR?Dyj9~b)uR+HsP;-bz4Xl)Hn)3eC*}O2hA6H$KvDz>VE6w+5l>n6@Yl| zk@d0uJIPUC)jLqeF#Z-l1JTM^DTY_H@`l9Ao$^TY5R5wY*6Z-ea^E$>*D>YqAV()? zZn89&ftjq#hkFw7#t84=2J~1Tb_r9!+YS3W(f{}SPLLNIY}+lLL`X`S91Wb`0ZQ(r z{@+ROrRUF!ED_3dS2{bF>w0}apliQIn5%<9%%U{XFTq|h7~vxw;BZoIs9DjTUX8#V z2V_W!q)s}`LgDVH=*1qTXkFdN`P~5OjzU|3xIvLiuVc6Q?)OQ)aP2mY8?!&~?mzpR zY9#%9!~(muf-#@OlbHrE&Ci>l8!bLG3gLwY_z@kU+@|Hm($la00pzUgmOEBb4%~JG$(rqfnfY$wH|_AZ2R+0m5aYpwuZNN_4(9og>PC`yM){pIt*h$J-UI zLF!WZ$~lK((?LL5B+5O$h+N9g;~L+17m6_`w}NSSxVed~b=fk4Bc4WWCAHk+2G(KG zlNq-|v2FNsg@kya01tRrt;iNY002M0CDDnd000HtDl3iv00RKpfH6;f00096{1!g) n001H&6|*n^0Plbn^f~|m?;V_&00;OWt*8JXU;-(aYyd7G@318W literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1104.h265 b/samples/h265SampleFrames/frame-1104.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2afc01736733d636563e16ebce43b985e6901997 GIT binary patch literal 2362 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1107.h265 b/samples/h265SampleFrames/frame-1107.h265 new file mode 100644 index 0000000000000000000000000000000000000000..ec8190a1d602a2ddf1a30ff04ffac85874726517 GIT binary patch literal 1772 zcmV{eXZD0suG$0KgOifLL)wkDiY4c7CcvL?U_#FDIy?+sF26Pqi{M8#%??`!yZUij9d;gpul zkfCSAh6cM3(<-JbElr#30D8as)c^bO@bE4eDq-Z9$S8;Zo8 z5EF3>40r-h1OMfJ!2S>FXJ68MrImb*d3w5kDheAAL)1S$pD(>Uj<4oo6vdF;H>&-< zc{El~1nyjK@44LgLd&Te8*jIyw+MbhQ6^I_wXdFJ)QNy@I*t~3?J$)y%e!g5EhJJyap$dFsbUntP;HEg)W zYMfAP^}fcF=PSw^_}X&v&39lo!&Xs+x|0`OdKxf3h`H%i>kD_}WJ?DSX_Yo6xj~>8 z4t@WYUNcQUS}0wx^+MkSIYgy=&DYJterba|{N5u#Vt-yaksEGXxHpyj@y$2MC&d&k zek4vG0*Q>CdMII}QaGesbMi{qjnpSGa+jTqsVI0`U3sE#%AZG02j82n0a>#p`<>F? zp&!q*>ks8#gF7lq9(GXJE>evB0iKzkTOBciYEEq-63wj8&VTo8fv!_VO~+D)<+`}H z8>k+SeDyDBhm7MAuf9uyuhRLek@DN^kd{6vTu()3_AgdDA14+JT%{7bo#p#6cjCSp ztlnigZf_ZiNFa4P9@shci+^w)!A4;hbFY2u$Qz}T8l5GFREwzs#D6yq3i6_0Za%x z)f@0(EjL&*o#6bB|9f@7TtcKDYZyfCbrT&wm9?jwM@^Mz1yPwTR_LPkGP!=Hxno}& z@i$ldHm}}&Mpx%$g1?aIg>r{+XcjMS#bK7Gm@lN5xC{QMJHYC8z$E2VoEf~lr;&n7WW+fuP$2`aunVa8$I=((A{O`^TL3WoRX%ghDM!g28u$#EDz z%Lm;z8}K(rTBJ&w2&0Zcb6;M;c_US4trmuV5y0pu;{1TUw()&f{AdMLg|0?>$NsRq z+K`C!d^@ANG0t|{7)ffCowJC&)uYoRbZS}O<}^UKypEM-!lysdpY~ek<^qlg&uO3l zuz*+}b_g%P-$)~wIMfUN(IbF}f8)%{SKWrA+C6j9o>6AD{=lTNkJ>sCM7SiHSl?Hn zE6x2UiNNPz!vBoo%#ijcoXeuo;13nkXhRE4us(nN|DXwtn9ccJx9pTeg<=L6jb9L3 z(qrliR3>a^=G~j}QWTj1Tpaixs_ThPJ@N5oYcQUWOY}hVzkH}jc-;PG2j}ZcT9y7;#e$%42;+`V_5fAATtY_e z5k8;xuaa`I?;s7UUA`-=O2klhbd(RPb8(THWJAZad7QyIJEhDLJ3-Ln=9UjB3y0f0 z>u~J>XGR~la7oF;oe8viPrK&8w%#dt%>8V>ouF`-YS)$kGXY|@RmW@Z{P9!wH=0mc zQq)fFOv`4D^L|J|z&!asbVWis!0!ol3h)UE%QNoPS7RLWdAYH9?G2RM&7E>*$X9{v zW#9I50BR_VDPgw2w{{dDI#7eD@YR9NffDG%(t7QKleWEt!zAQ^#LRIy)XbP^CeLa%6M3<$QV7q01X%= z(TS!200rDCD~HcIsgIh9h{f|2lybZ Or~n{f0x6hm04^ZM%3qKG literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1108.h265 b/samples/h265SampleFrames/frame-1108.h265 new file mode 100644 index 0000000000000000000000000000000000000000..6d8aad939e2a75117ec0458385ce213acaae000f GIT binary patch literal 2096 zcmV-02+#Kb000330n(ZO)I$OTSiyAxLjZsd0suG$0KgOifLL)w+zm{QN^Q8$VZZU6gI&L<0OgvDC7=-%@{iw)GmK$`2+;Xx(bd6BYgX zHXy3I=EB5dB~+cSN)JfuyS-)%qe(36`pRzm|NhHpf@#dsIeu9TzX|Bw7k4rDnKYgd z%XBUlf2yzyPQovt@aZ6>6j#r{tkCLFkNuDCk!um5>X?Az=xqJU6^r z&?d#jSWWE1Gvi_p8s~hoig}XY4Z3QqgXl0W8B^bm}o=YF*Yk?b-EOEG?hW%nJCknP_ z$zOG1zmGx~BRz*`cV<6Uv@^J}cV^J5^^Thxy209WtaGgeJJ4KJtZ_)zcn#G5@vrb3 zyP;x1a!?VJms7vux;GQ`skzG6>R$rg;mE>s2b130R@-WO_WjIqA#P00Nw?*xHP@C6 zx&VHKg{MP-qzu4!Q>mSVa3sMmK0IzWDuhgs+uC&aLhM|v1WqU2#OKl5Z@tdb84CYg z-3FK#&IF|?s}LIu_(FY)N|&_>VCVfRd=x#f0s6c-SRs4hzY;gPVc9c{)C zd3okn+NoYdx(58M9)-)N95K2fONT~!n7q73OuLldd71reh1VVoL}a3vZ_q3Df4Tdf z^^ygT;Y3Bs4zzxhG%CwRR&{FEQRFO-H|{8Z(Y#a5~Qnfy-vyx5U~)!*s39(agf98hK)aZ zqSWI3s;bkkPI{}JyT`*#t~D7Hzlv_$cA#R-Xv6ml1}rDkMQzL!Py)~cOZSTyqq5V} z2I}%DWJ)I^oJoNaI%P?#!soEo*OV4git(CvmR(!l6aGc-f%mx&d3! zhuc_hEV;Sel3xTU4LpSeO)l;oFX7lGn1V+ZbNW^;(d5M{C>QeK55o>k16c_ydmJu8 zT@mkAmSe7nkIFS*loroXtQ`B?es_Krb%YR@$G3qH!FJ|%S=K#~OeOsqpbM{htZigf z0NweeMrQTu{;fIo)MnBXwqkQTGu<{2y6LQyO10Uwd#m(oK|b`9t@b~Ejeaec)fp9c z#{ma{p)#qNqP(A7c$~-QLkcMcRe(~7W8w0$xN_$f@hn)%MNr(o+SfcY)Rd*-s~>S* z()~RWZ3qe6yKHODl?ijuTj}Vd$1I75y!W~(95PPzQ%p(To61AkE!uFj*x?^$P|@l} zCNUYM+~CfJ`iVOX79E_}WPD9}4&gg6aE#9JndSPL2Hm z^g$;e*4Wf%qzpzk<^vN=EPe)RgC7ZrxR$Si9YD+(gwL2*c!@j7cKV0|P3D?3XGQV* z?`JM0<~3odt<`<)G51fbr0TJver&AJSv8fI00ewkA9e^Zv)c{(JJJ95|Nm=0vX&71 zemnO*`2NfDpT6A!R2Ijtt(VHA2aU*Q{~Ih`8C4f?x^GD9lsLqb;IDrJ<>!Iw?47p$l1ZexB2BY z0KR&y4~;K1s~}jv`u$y*Qs}0iPk{FIIE|dI3XO?9y+Pi!xlfE6)FWys(Ski`IeT+z zY^qC&TJn$$-qBam=(`aOj7Uc-IQyE9P9DwbEn9ej7`TXUAMHRp@zt64qzTX2@~BYb zS1`{@o{qsMr^G(B*0XYgUn|j#KZb$|F0u1H$Yg*DcS0;2_n92^%dgt|fTHOst&BTS1sScR+K)#8jwE#R77E-qq6 z5y^dL600H^9p$kL^6(p_0r}G@f-(OA{|l&Rrf~T9>{aFe_eZ%!c#GC#Qtwo~XpvJ| z@}s7EB&-N{@Z2ah@Eh1y#3u zs0Uvcr3<3y-B3uNQPce%zHmlS%CGCR0hh&J54wB8A25FeeRO@CpB4Uw&45cSKls?r zj?K3A_gE%AWHIr}q5z0c&w_Fu+gSL$uk%d>#dQVl-WI9J)b%p}*0hLmvwXyh$=&Ye zUEKNn+0 z4`^7e$QV7q01X%=(TS!200rDCD~Hc aIsgIh9h{f|2lybZr~n{f0x6hm04^W|!3b^u literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1109.h265 b/samples/h265SampleFrames/frame-1109.h265 new file mode 100644 index 0000000000000000000000000000000000000000..da55e2fc5de2f4773a835ecff9abf910840069ee GIT binary patch literal 2904 zcmV-e3#aq|000330n(xW)I$OTP{Dgz3;=)*0suG$0KgOifLL)w)p2KAhDD$MfAr3` zcd*`E>%01D#oZASd3OIIYUv`-_pC7;#xRNa=U`y%u#oD)4pK-<+)N&@SN&q=rTY8wpY~l8yEGdj>wr2ZPM%cNvL;&=O7%pX2Lv)#^S;SW zOM1*D4Hqw~eVVNaJ&XdL{;_DO`*Nl7?fHr6e4V0?{5M$Bqeh#O+645nDHte98lb95 z18pW8n!ME${t;X;mqFwO>4DD=je8bH6%SK2-HXnN8_6B?1_-?@^VgIr{MNOr#E!O3 zR@*GHf&-;vifmNgs|gIuq@t7Y zA3ZIt8f&eb{7@zF$prXVtx`i;tq|!G@*Ln8z&%hTjTwmYMV_r&4_Jd51G{9@NFM|> zL$x#eVdR`_5~=_F(^*=KN+Lvoo@wx?S}-`h(}V>z2UkT0PC%s5j+W5z%BQuu74*C5 zyqbE6IyQIglpM(YRm+(VTVg%9A=E}GCF(`HRc<%bTj(U=$Cw4@idQdOqp%`wgdoGf^$W<+*}ix*Shem zzcdE_{Y%2W04f8};+JG+akzggyM#Fd0>(7Bx0x!AYGb3SG#sm1HnJ;Qbau`={W*p$ zqrB}wyOM?7E8y9*vnujpKK$gj{^*1>^ReQkh0`w!6sr+L)LW|{II-EUUUp8-fkbW) zN-$!qRf{=vCFm4<_~c9I2bMFp z=J&1ToYd01?=l%siG7=*s)QAACA^)bKY!NjOrcw!9+IMkmTUmaO&EyCi>wEeV5(Op zGNYE^guQo?`&&(few}|Wpx(&pcMtKfYtDZShyS&&4}vk!Tdn3W$I9|Zv+k2eRQ`^1 zag2+Pr}&iN5BNXynoeP&V%UIx2rha&Vh6%}2)~|h3&QvG>y|rJg51mW|7j&4)0@Gg zwnPNuhOYkw@JMy1`#AZJH+)U7UaVyu(a;Na?ecat+8hAg2nYHjxmOR&h#11z5M-EZ zQ#$vtJ(h0N;_-50i1W(LcM;38i^|}bZ8SoAIITdJQmkj?_B&rvIRSl|sbX_V#FP#9 z-#9kIA+LJ!d0X z07uS~q+eh%BLJqiJ?!TUEP~ih6C8VEk_n{m^ifwQR}QmqfcRvDKde-R{!JbaRjYs3 zigT6zLV6C=9Gb51@n4HN^VgP!oh9^j5{y;N`&b5@$z6qaO@;y~)_q64wPYHB+Zp?(z2k;EO=JLKB zOqaD7$YfcgT=uJwT)z!Yu~U+sZWz=dV&G=yPvvEdse2-!w&uJ1ve9><8G)&%W_5(B zm1Nr;NF?OJu{lqwhld&OqFuYz}E3Nq-g%h&73%^Qq>^($(png$t%Cx`}YaqJbRD3JR1R{U7IR<%rOlt$gya zeBu_XtAk%zvEK_MD6PO7;|mMINS1MyAP&_Yqlk_xmbP1Hd)&E8ct@oQthA{F}n)-aR#h}cgi$&;9oRGu``AP}P^{!QI4>P0Fj0s#bj@ zi-%;soYBGh>T_2`QcWd!Fa<_WRWig+ndg8|Cu&k zLC z7A06VA_BD_Aj8>`C;$K9QC$I#jr9Kh*1K;iKI*(R|IMTQH+gqmbQ0l)qCD6FYuj*q zc4|FlyySj*#w+@Y+Ro6lkGU1A*~R3SNTTKuqGz+q)8+I}AH%`3w#J(dW9iks6YucV z-|n6t@t)WsQtu`MUqttcI|YF$&a}NUPD;MRN46k1!~*N_9$`>p(v#gUZmAaMQds+Q z(L74U-EhLjDcvW^CwFmS%WZoM4`i@n_1DPBLq5B^)%SRS!@N(F;kt^bp4i#_3S0l( zR$FwuVMjIfEDeit;3HWdW#PEtqg)UIfa3uo?}I+G3d2n6U?We*KKN?A-6NaJ7Oy=k zDOU^~F~B`(4J%!F0b;ZVAV6WN2uW*zP=#cG=YUwQ<3Ah#010>{(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^Y@ CwWl`# literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1110.h265 b/samples/h265SampleFrames/frame-1110.h265 new file mode 100644 index 0000000000000000000000000000000000000000..f61b4823d077f6e59917085266eb1a975feacc15 GIT binary patch literal 1844 zcmV-42g~>X000330n(}e)I$OTSixW2pacNmKn?={z$gj=z;Q*}`xQex<1ZsDzq*-z zlL>DmRWOOS80AX9L6%|$VXi|A9>r8ag)s_&s%$CDk!kIblewK3Uio0B<#4*1Bo}9AbmiH|FGPcF(;hQKtS? zm=V^$L~UP!@IvnOq-qg{bSAB6yTA) zRfi4xgfmI(u!dbXl^Lp;mrXTyUM~eyBF{hk^3z(G$`3rd+))k(60+1U>WqM-6oV(& z(ENaXn6TzA?#~H;#p_VokOwpC#V7z4Hs5iNuNf?AS5>eAcAH6Kz4AQ@<6_oAZgKuw z7N-sdoqPQZZJ$_OxWc9mAQ2F%-hRgayj-s$WGUpFJ~cH&&=OAmN$}nnzvu`j7a{IG z9JZjiSy&4@2=TMOs6xfinZA&J>!Xi++wdc(hOn~{wPu^Dl9rl?8RJDDlZE6o2}P_* zJl(BT8RIyn3;~95IC0ws7XZ_N9lh3S!YWbfEwQA%eNb^?~n2Kf$133dM{v z|7PF+qQu{`!`oS_JH6r)sgyR+jgV2laYoSy8x3M4@mgtdHHVMF`3&!W*k-qSdN&8J1zrtw|;gl zMVUxyoGnsbec*CR88n&~MGrX~3Bv@f{!$y3g1@9dK+ls;{uJM~IOY{50*P^IITW+T zVV!KcTU8X>53CXo0}22O$XFkAn?(B)y?a0R|NL23bT&-H)6x$MXO6G`D1rhXHI6gS zNWmaCpc=E3ZxnmUv;^~KXwu0g2~x@_9{Ridylfwmm^N{oNK+3PR6vcKk5ueBJ~ zdKKGo@^#J|`XPHbd^d>QUjvw=gRWyv93N?ZOkLk3X7ff@1by-SLc+|pVGpXSHatqr z0(cB4;l?EE-_R`)xNKS-PKSowJ)wr20oZZvun)^bgeWJ6IaGBj^UKx4-nK3mzBu+D z4U|OO080mVVC-2Q=!0wsn8c6g47o7G?uOG_D)RLG)DfCUairDW)D01FAB?QGbxB1e zLE?i!x)Ye1GYe#67FeYqOK11J_;gWP4n^Y7_*)cLre|n-^fk&_vX9TKSW>39K)^4; zyg1){V}}=Hb3~+(LLnYT5r@*Uel+%O2Qz*WEIJp>UYA{Lt+9HSPkc1(u!kXEA$ihB z)6+luPu70mTso>#ceY7egBI0@V#~)&I}(WS=mhJoBtWA@JA$u^@L1`w%;`T4N|Nxg zqq@)KQlgD6&^H#yRvvSWi~q@XO1YUptO(MpVC;~>!$Hq)P`dXGN%yi5ly}$7Bum3L zJb4uRVOj0TLMX;WxyP(Zf1<5&uMVIKnN?(1anwHaew&asLuLv8!A zvLkBA8dke8z?4`-g_40zf5qBdJe#L$=|xr`q!FNNktX&DD}FiruFtb~26BlX)IML$!m`ZjpQWJNOI(mE%i$gr%@O9&yZUe}Pa@N3sh* z7(+t~Fc>jA+^iLS0!>WTf`&#Gf)TYw$6EZWN7g^hm5Vd8gW%>mk#rHb|5t~PCeOMW z?NC+W*V~i;1Y}sP$QT#^02**5(TS!200rDCD~HcIsgIh9h{f|2lybZr~n{f0x6hm04^X-8hxSw literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1111.h265 b/samples/h265SampleFrames/frame-1111.h265 new file mode 100644 index 0000000000000000000000000000000000000000..b962aa6d9cf73fa796ab0334ae4421e6d9860ae8 GIT binary patch literal 3070 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 aIsgIh9h{f|2lybZr~n{f0x6hm04^Z6!Z$tu literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1114.h265 b/samples/h265SampleFrames/frame-1114.h265 new file mode 100644 index 0000000000000000000000000000000000000000..0c5ac3913d23ed5b600117fd93cbd0305a2e2e5c GIT binary patch literal 2840 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1115.h265 b/samples/h265SampleFrames/frame-1115.h265 new file mode 100644 index 0000000000000000000000000000000000000000..2561a7dedf66e0ab14d6c76052a53f6cb5c0dc0d GIT binary patch literal 2007 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 VoR|Oy_#myQ03cujDVS^kE+E`-=?VY< literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1119.h265 b/samples/h265SampleFrames/frame-1119.h265 new file mode 100644 index 0000000000000000000000000000000000000000..10471ef8a8314b8cb8b79dcbec255a92d8ec0f14 GIT binary patch literal 2581 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 literal 0 HcmV?d00001 diff --git a/samples/h265SampleFrames/frame-1121.h265 b/samples/h265SampleFrames/frame-1121.h265 new file mode 100644 index 0000000000000000000000000000000000000000..1a3dada873960ac78e37d4273dbda1821f38ac0a GIT binary patch literal 3307 zcmV