Added H264 analyser (most code by Erik Zandvliet)
This commit is contained in:
		
							parent
							
								
									bf1949f5ab
								
							
						
					
					
						commit
						faa696c6d1
					
				
					 6 changed files with 1297 additions and 62 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
#include<string>
 | 
			
		||||
#include "defines.h"
 | 
			
		||||
 | 
			
		||||
namespace Utils {
 | 
			
		||||
  class bitstream {
 | 
			
		||||
| 
						 | 
				
			
			@ -26,6 +27,17 @@ namespace Utils {
 | 
			
		|||
      long long unsigned int getUExpGolomb();
 | 
			
		||||
      long long int peekExpGolomb();
 | 
			
		||||
      long long unsigned int peekUExpGolomb();
 | 
			
		||||
 | 
			
		||||
      static size_t bitSizeUExpGolomb(size_t value){
 | 
			
		||||
        size_t i = 1;
 | 
			
		||||
        size_t power = 2;
 | 
			
		||||
        while (power - 2 < value){
 | 
			
		||||
          i+= 2;
 | 
			
		||||
          power *= 2;
 | 
			
		||||
        }
 | 
			
		||||
        return i;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
      bool checkBufferSize(unsigned int size);
 | 
			
		||||
      long long unsigned int golombGetter();
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +48,27 @@ namespace Utils {
 | 
			
		|||
      size_t bufferSize;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  class bitWriter {
 | 
			
		||||
    public:
 | 
			
		||||
      bitWriter();
 | 
			
		||||
      ~bitWriter();
 | 
			
		||||
      size_t size();
 | 
			
		||||
      void append(uint64_t value, size_t bitLength);
 | 
			
		||||
      void appendExpGolomb(uint64_t value);
 | 
			
		||||
      void appendUExpGolomb(uint64_t value);
 | 
			
		||||
      static size_t UExpGolombEncodedSize(uint64_t value);
 | 
			
		||||
      std::string str() { return std::string(dataBuffer, (dataSize / 8) + (dataSize % 8 ? 1 : 0)); }
 | 
			
		||||
    protected:
 | 
			
		||||
      void reallocate(size_t newSize);
 | 
			
		||||
      void appendData(uint8_t data, size_t len);
 | 
			
		||||
 | 
			
		||||
      char * dataBuffer;
 | 
			
		||||
      //NOTE: ALL SIZES IN BITS!
 | 
			
		||||
      size_t bufferSize;
 | 
			
		||||
 | 
			
		||||
      size_t dataSize;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  class bitstreamLSBF {
 | 
			
		||||
    public:
 | 
			
		||||
      bitstreamLSBF();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue