libeplayer3/writer: unsigned char => uint8_t

This commit is contained in:
martii
2014-04-10 20:45:57 +02:00
parent b2368cc64f
commit 36869c9088
14 changed files with 56 additions and 55 deletions

View File

@@ -3,11 +3,13 @@
/* some useful things needed by many files ... */ /* some useful things needed by many files ... */
#include <stdint.h>
#define INVALID_PTS_VALUE 0x200000000ll #define INVALID_PTS_VALUE 0x200000000ll
struct BitPacker_t struct BitPacker_t
{ {
unsigned char *Ptr; /* write pointer */ uint8_t *Ptr; /* write pointer */
unsigned int BitBuffer; /* bitreader shifter */ unsigned int BitBuffer; /* bitreader shifter */
int Remaining; /* number of remaining in the shifter */ int Remaining; /* number of remaining in the shifter */
}; };

View File

@@ -28,7 +28,7 @@
#define VC1_VIDEO_PES_START_CODE 0xfd #define VC1_VIDEO_PES_START_CODE 0xfd
#define AAC_AUDIO_PES_START_CODE 0xcf #define AAC_AUDIO_PES_START_CODE 0xcf
int InsertPesHeader(uint8_t *data, int size, unsigned char stream_id, int64_t pts, int pic_start_code); int InsertPesHeader(uint8_t *data, int size, uint8_t stream_id, int64_t pts, int pic_start_code);
int InsertVideoPrivateDataHeader(uint8_t *data, int payload_size); int InsertVideoPrivateDataHeader(uint8_t *data, int payload_size);
#endif #endif

View File

@@ -42,7 +42,7 @@ bool WriterAC3::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
struct iovec iov[2]; struct iovec iov[2];
iov[0].iov_base = PesHeader; iov[0].iov_base = PesHeader;

View File

@@ -53,10 +53,10 @@ bool WriterDIVX::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, A
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
unsigned char FakeHeaders[64]; // 64bytes should be enough to make the fake headers uint8_t FakeHeaders[64]; // 64bytes should be enough to make the fake headers
unsigned int FakeHeaderLength; unsigned int FakeHeaderLength;
unsigned char Version = 5; uint8_t Version = 5;
unsigned int FakeStartCode = (Version << 8) | PES_VERSION_FAKE_START_CODE; unsigned int FakeStartCode = (Version << 8) | PES_VERSION_FAKE_START_CODE;
unsigned int usecPerFrame = 41708; /* Hellmaster1024: default value */ unsigned int usecPerFrame = 41708; /* Hellmaster1024: default value */
BitPacker_t ld = { FakeHeaders, 0, 32 }; BitPacker_t ld = { FakeHeaders, 0, 32 };

View File

@@ -45,16 +45,16 @@ bool WriterDTS::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_AUDIO_HEADER_SIZE]; uint8_t PesHeader[PES_AUDIO_HEADER_SIZE];
// #define DO_BYTESWAP // #define DO_BYTESWAP
#ifdef DO_BYTESWAP #ifdef DO_BYTESWAP
unsigned char Data[packet->size]; uint8_t Data[packet->size];
memcpy(Data, packet->data, packet->size); memcpy(Data, packet->data, packet->size);
/* 16-bit byte swap all data before injecting it */ /* 16-bit byte swap all data before injecting it */
for (i = 0; i < packet->size; i += 2) { for (i = 0; i < packet->size; i += 2) {
unsigned char Tmp = Data[i]; uint8_t Tmp = Data[i];
Data[i] = Data[i + 1]; Data[i] = Data[i + 1];
Data[i + 1] = Tmp; Data[i + 1] = Tmp;
} }

View File

@@ -40,9 +40,9 @@ class WriterFLAC : public Writer
bool WriterFLAC::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts) bool WriterFLAC::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream */, AVPacket *packet, int64_t pts)
{ {
if (fd < 0 || !packet) if (fd < 0 || !packet)
return -1; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
struct iovec iov[2]; struct iovec iov[2];
iov[0].iov_base = PesHeader; iov[0].iov_base = PesHeader;

View File

@@ -40,7 +40,7 @@ bool WriterH263::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* strea
{ {
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
int HeaderLength = InsertPesHeader(PesHeader, packet->size, H263_VIDEO_PES_START_CODE, pts, 0); int HeaderLength = InsertPesHeader(PesHeader, packet->size, H263_VIDEO_PES_START_CODE, pts, 0);

View File

@@ -37,16 +37,16 @@
#define CONTAINER_PARAMETERS_VERSION 0x00 #define CONTAINER_PARAMETERS_VERSION 0x00
typedef struct avcC_s { typedef struct avcC_s {
unsigned char Version; // configurationVersion uint8_t Version; // configurationVersion
unsigned char Profile; // AVCProfileIndication uint8_t Profile; // AVCProfileIndication
unsigned char Compatibility; // profile_compatibility uint8_t Compatibility; // profile_compatibility
unsigned char Level; // AVCLevelIndication uint8_t Level; // AVCLevelIndication
unsigned char NalLengthMinusOne; // held in bottom two bits uint8_t NalLengthMinusOne; // held in bottom two bits
unsigned char NumParamSets; // held in bottom 5 bits uint8_t NumParamSets; // held in bottom 5 bits
unsigned char Params[1]; // {length,params}{length,params}...sequence then picture uint8_t Params[1]; // {length,params}{length,params}...sequence then picture
} avcC_t; } avcC_t;
const unsigned char Head[] = { 0, 0, 0, 1 }; const uint8_t Head[] = { 0, 0, 0, 1 };
class WriterH264 : public Writer class WriterH264 : public Writer
{ {
@@ -70,7 +70,7 @@ bool WriterH264::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, A
{ {
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
unsigned int TimeDelta; unsigned int TimeDelta;
unsigned int TimeScale; unsigned int TimeScale;
int len = 0; int len = 0;
@@ -122,7 +122,7 @@ bool WriterH264::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, A
ParametersLength = 0; ParametersLength = 0;
unsigned char HeaderData[19]; uint8_t HeaderData[19];
HeaderData[ParametersLength++] = 0x00; // Start code HeaderData[ParametersLength++] = 0x00; // Start code
HeaderData[ParametersLength++] = 0x00; HeaderData[ParametersLength++] = 0x00;
HeaderData[ParametersLength++] = 0x01; HeaderData[ParametersLength++] = 0x01;
@@ -212,7 +212,7 @@ bool WriterH264::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, A
do { do {
unsigned int NalLength; unsigned int NalLength;
unsigned char NalData[4]; uint8_t NalData[4];
int NalPresent = 1; int NalPresent = 1;
memcpy(NalData, packet->data + VideoPosition, NalLengthBytes); memcpy(NalData, packet->data + VideoPosition, NalLengthBytes);

View File

@@ -42,7 +42,7 @@ bool WriterMP3::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stream
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
struct iovec iov[2]; struct iovec iov[2];
iov[0].iov_base = PesHeader; iov[0].iov_base = PesHeader;

View File

@@ -44,7 +44,7 @@ bool WriterMPEG2::Write(int fd, AVFormatContext * /* avfc */, AVStream * /* stre
if (fd < 0 || !packet) if (fd < 0 || !packet)
return false; return false;
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
for (int Position = 0; Position < packet->size; ) { for (int Position = 0; Position < packet->size; ) {
int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE); int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE);

View File

@@ -40,7 +40,7 @@ extern "C" {
} }
// reference: search for TypeLpcmDVDAudio in player/frame_parser/frame_parser_audio_lpcm.cpp // reference: search for TypeLpcmDVDAudio in player/frame_parser/frame_parser_audio_lpcm.cpp
static const unsigned char clpcm_prv[14] = { static const uint8_t clpcm_prv[14] = {
0xA0, //sub_stream_id 0xA0, //sub_stream_id
0, 0, //resvd and UPC_EAN_ISRC stuff, unused 0, 0, //resvd and UPC_EAN_ISRC stuff, unused
0x0A, //private header length 0x0A, //private header length
@@ -59,8 +59,8 @@ class WriterPCM : public Writer
private: private:
unsigned int SubFrameLen; unsigned int SubFrameLen;
unsigned int SubFramesPerPES; unsigned int SubFramesPerPES;
unsigned char lpcm_prv[14]; uint8_t lpcm_prv[14];
unsigned char breakBuffer[8192]; uint8_t breakBuffer[8192];
unsigned int breakBufferFillSize; unsigned int breakBufferFillSize;
int uNoOfChannels; int uNoOfChannels;
int uSampleRate; int uSampleRate;
@@ -137,7 +137,7 @@ bool WriterPCM::prepareClipPlay()
break; break;
default: default:
printf("inappropriate bits per sample (%d) - must be 16 or 24\n", uBitsPerSample); printf("inappropriate bits per sample (%d) - must be 16 or 24\n", uBitsPerSample);
return false; return false;
} }
return true; return true;
@@ -145,7 +145,7 @@ bool WriterPCM::prepareClipPlay()
int WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size) int WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size)
{ {
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
if (initialHeader) { if (initialHeader) {
initialHeader = false; initialHeader = false;
@@ -153,25 +153,25 @@ int WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size)
} }
unsigned int n; unsigned int n;
unsigned char *injectBuffer = (unsigned char *) malloc(SubFrameLen); uint8_t *injectBuffer = (uint8_t *) malloc(SubFrameLen);
unsigned int pos; unsigned int pos;
for (pos = 0; pos < size;) { for (pos = 0; pos < size;) {
//printf("PCM %s - Position=%d\n", __FUNCTION__, pos); //printf("PCM %s - Position=%d\n", __FUNCTION__, pos);
if ((size - pos) < SubFrameLen) { if ((size - pos) < SubFrameLen) {
breakBufferFillSize = size - pos; breakBufferFillSize = size - pos;
memcpy(breakBuffer, &data[pos], sizeof(unsigned char) * breakBufferFillSize); memcpy(breakBuffer, &data[pos], sizeof(uint8_t) * breakBufferFillSize);
//printf("PCM %s - Unplayed=%d\n", __FUNCTION__, breakBufferFillSize); //printf("PCM %s - Unplayed=%d\n", __FUNCTION__, breakBufferFillSize);
break; break;
} }
//get first PES's worth //get first PES's worth
if (breakBufferFillSize > 0) { if (breakBufferFillSize > 0) {
memcpy(injectBuffer, breakBuffer, sizeof(unsigned char) * breakBufferFillSize); memcpy(injectBuffer, breakBuffer, sizeof(uint8_t) * breakBufferFillSize);
memcpy(&injectBuffer[breakBufferFillSize], &data[pos], sizeof(unsigned char) * (SubFrameLen - breakBufferFillSize)); memcpy(&injectBuffer[breakBufferFillSize], &data[pos], sizeof(uint8_t) * (SubFrameLen - breakBufferFillSize));
pos += (SubFrameLen - breakBufferFillSize); pos += (SubFrameLen - breakBufferFillSize);
breakBufferFillSize = 0; breakBufferFillSize = 0;
} else { } else {
memcpy(injectBuffer, &data[pos], sizeof(unsigned char) * SubFrameLen); memcpy(injectBuffer, &data[pos], sizeof(uint8_t) * SubFrameLen);
pos += SubFrameLen; pos += SubFrameLen;
} }
@@ -186,8 +186,7 @@ int WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size)
//write the PCM data //write the PCM data
if (uBitsPerSample == 16) { if (uBitsPerSample == 16) {
for (n = 0; n < SubFrameLen; n += 2) { for (n = 0; n < SubFrameLen; n += 2) {
unsigned char tmp; uint8_t tmp = injectBuffer[n];
tmp = injectBuffer[n];
injectBuffer[n] = injectBuffer[n + 1]; injectBuffer[n] = injectBuffer[n + 1];
injectBuffer[n + 1] = tmp; injectBuffer[n + 1] = tmp;
} }
@@ -196,7 +195,7 @@ int WriterPCM::writePCM(int fd, int64_t Pts, uint8_t *data, unsigned int size)
// A1c A1b A1a-B1c B1b B1a-A2c A2b A2a-B2c B2b B2a // A1c A1b A1a-B1c B1b B1a-A2c A2b A2a-B2c B2b B2a
// to A1a A1b B1a B1b.A2a A2b B2a B2b-A1c B1c A2c B2c // to A1a A1b B1a B1b.A2a A2b B2a B2b-A1c B1c A2c B2c
for (n = 0; n < SubFrameLen; n += 12) { for (n = 0; n < SubFrameLen; n += 12) {
unsigned char t, *p = &injectBuffer[n]; uint8_t t, *p = &injectBuffer[n];
t = p[0]; t = p[0];
p[0] = p[2]; p[0] = p[2];
p[2] = p[5]; p[2] = p[5];

View File

@@ -30,7 +30,7 @@
#include "misc.h" #include "misc.h"
#include "pes.h" #include "pes.h"
int InsertVideoPrivateDataHeader(unsigned char *data, int payload_size) int InsertVideoPrivateDataHeader(uint8_t *data, int payload_size)
{ {
BitPacker_t ld2 = { data, 0, 32 }; BitPacker_t ld2 = { data, 0, 32 };
int i; int i;
@@ -49,7 +49,7 @@ int InsertVideoPrivateDataHeader(unsigned char *data, int payload_size)
} }
int InsertPesHeader(uint8_t *data, int size, unsigned char stream_id, int64_t pts, int pic_start_code) int InsertPesHeader(uint8_t *data, int size, uint8_t stream_id, int64_t pts, int pic_start_code)
{ {
BitPacker_t ld2 = { data, 0, 32 }; BitPacker_t ld2 = { data, 0, 32 };

View File

@@ -49,7 +49,7 @@ class WriterVC1 : public Writer
{ {
private: private:
bool initialHeader; bool initialHeader;
unsigned char FrameHeaderSeen; uint8_t FrameHeaderSeen;
double frameRate; double frameRate;
public: public:
bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts); bool Write(int fd, AVFormatContext *avfc, AVStream *stream, AVPacket *packet, int64_t pts);
@@ -71,11 +71,11 @@ bool WriterVC1::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
initialHeader = false; initialHeader = false;
FrameHeaderSeen = false; FrameHeaderSeen = false;
const unsigned char SequenceLayerStartCode[] = const uint8_t SequenceLayerStartCode[] =
{ 0x00, 0x00, 0x01, VC1_SEQUENCE_LAYER_METADATA_START_CODE }; { 0x00, 0x00, 0x01, VC1_SEQUENCE_LAYER_METADATA_START_CODE };
const unsigned char Metadata[] = { const uint8_t Metadata[] = {
0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc5,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0xc0, 0x00, 0x00, 0x00, /* Struct C set for for advanced profile */ 0xc0, 0x00, 0x00, 0x00, /* Struct C set for for advanced profile */
@@ -87,9 +87,9 @@ bool WriterVC1::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00
}; };
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
unsigned char PesPayload[128]; uint8_t PesPayload[128];
unsigned char *PesPtr; uint8_t *PesPtr;
unsigned int usecPerFrame = ((10000000.0 / av_q2d(stream->r_frame_rate))); unsigned int usecPerFrame = ((10000000.0 / av_q2d(stream->r_frame_rate)));
struct iovec iov[2]; struct iovec iov[2];
@@ -142,15 +142,15 @@ bool WriterVC1::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
if (packet->size > 0) { if (packet->size > 0) {
int Position = 0; int Position = 0;
unsigned char insertSampleHeader = 1; bool insertSampleHeader = true;
while (Position < packet->size) { while (Position < packet->size) {
int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE); int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE);
unsigned char PesHeader[PES_MAX_HEADER_SIZE]; uint8_t PesHeader[PES_MAX_HEADER_SIZE];
int HeaderLength = InsertPesHeader(PesHeader, PacketLength, VC1_VIDEO_PES_START_CODE, pts, 0); int HeaderLength = InsertPesHeader(PesHeader, PacketLength, VC1_VIDEO_PES_START_CODE, pts, 0);
if (insertSampleHeader) { if (insertSampleHeader) {
const unsigned char Vc1FrameStartCode[] = { 0, 0, 1, VC1_FRAME_START_CODE }; const uint8_t Vc1FrameStartCode[] = { 0, 0, 1, VC1_FRAME_START_CODE };
if (!FrameHeaderSeen && (packet->size > 3) && (memcmp(packet->data, Vc1FrameStartCode, 4) == 0)) if (!FrameHeaderSeen && (packet->size > 3) && (memcmp(packet->data, Vc1FrameStartCode, 4) == 0))
FrameHeaderSeen = true; FrameHeaderSeen = true;
@@ -158,7 +158,7 @@ bool WriterVC1::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
memcpy(&PesHeader[HeaderLength], Vc1FrameStartCode, sizeof(Vc1FrameStartCode)); memcpy(&PesHeader[HeaderLength], Vc1FrameStartCode, sizeof(Vc1FrameStartCode));
HeaderLength += sizeof(Vc1FrameStartCode); HeaderLength += sizeof(Vc1FrameStartCode);
} }
insertSampleHeader = 0; insertSampleHeader = false;
} }
struct iovec iov[2]; struct iovec iov[2];

View File

@@ -37,7 +37,7 @@
#define WMV3_PRIVATE_DATA_LENGTH 4 #define WMV3_PRIVATE_DATA_LENGTH 4
static const unsigned char Metadata[] = { static const uint8_t Metadata[] = {
0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc5,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
#define METADATA_STRUCT_C_START 8 #define METADATA_STRUCT_C_START 8
@@ -75,8 +75,8 @@ bool WriterWMV::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
if (initialHeader) { if (initialHeader) {
#define PES_MIN_HEADER_SIZE 9 #define PES_MIN_HEADER_SIZE 9
unsigned char PesPacket[PES_MIN_HEADER_SIZE + 128]; uint8_t PesPacket[PES_MIN_HEADER_SIZE + 128];
unsigned char *PesPtr; uint8_t *PesPtr;
unsigned int MetadataLength; unsigned int MetadataLength;
unsigned int usecPerFrame = ((10000000.0 / av_q2d(stream->r_frame_rate))); unsigned int usecPerFrame = ((10000000.0 / av_q2d(stream->r_frame_rate)));
@@ -85,7 +85,7 @@ bool WriterWMV::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
memcpy(PesPtr, Metadata, sizeof(Metadata)); memcpy(PesPtr, Metadata, sizeof(Metadata));
PesPtr += METADATA_STRUCT_C_START; PesPtr += METADATA_STRUCT_C_START;
unsigned char privateData[WMV3_PRIVATE_DATA_LENGTH] = { 0 }; uint8_t privateData[WMV3_PRIVATE_DATA_LENGTH] = { 0 };
memcpy(privateData, stream->codec->extradata, stream->codec->extradata_size > WMV3_PRIVATE_DATA_LENGTH ? WMV3_PRIVATE_DATA_LENGTH : stream->codec->extradata_size); memcpy(privateData, stream->codec->extradata, stream->codec->extradata_size > WMV3_PRIVATE_DATA_LENGTH ? WMV3_PRIVATE_DATA_LENGTH : stream->codec->extradata_size);
memcpy(PesPtr, privateData, WMV3_PRIVATE_DATA_LENGTH); memcpy(PesPtr, privateData, WMV3_PRIVATE_DATA_LENGTH);
@@ -126,7 +126,7 @@ bool WriterWMV::Write(int fd, AVFormatContext * /* avfc */, AVStream *stream, AV
int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE); int PacketLength = std::min(packet->size - Position, MAX_PES_PACKET_SIZE);
unsigned char PesHeader[PES_MAX_HEADER_SIZE] = { 0 }; uint8_t PesHeader[PES_MAX_HEADER_SIZE] = { 0 };
int HeaderLength = InsertPesHeader(PesHeader, PacketLength, VC1_VIDEO_PES_START_CODE, pts, 0); int HeaderLength = InsertPesHeader(PesHeader, PacketLength, VC1_VIDEO_PES_START_CODE, pts, 0);
if (insertSampleHeader) { if (insertSampleHeader) {