libeplayer3: let writers use AVPacket

Origin commit data
------------------
Branch: master
Commit: 1c380d1167
Author: martii <m4rtii@gmx.de>
Date: 2014-04-05 (Sat, 05 Apr 2014)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
martii
2014-04-05 16:17:57 +02:00
parent ccd2c57a83
commit aa19fb8024
15 changed files with 77 additions and 110 deletions

View File

@@ -132,7 +132,7 @@ static int writeData(WriterAVCallData_t *call)
h264_printf(10, "VideoPts %lld - %d %d\n", call->Pts, TimeDelta,
TimeScale);
if ((call->data == NULL) || (call->len <= 0)) {
if ((call->packet->data == NULL) || (call->packet->size <= 0)) {
h264_err("NULL Data. ignoring...\n");
return 0;
}
@@ -142,12 +142,12 @@ static int writeData(WriterAVCallData_t *call)
return 0;
}
if ((call->len > 3)
if ((call->packet->size > 3)
&&
((call->data[0] == 0x00 && call->data[1] == 0x00
&& call->data[2] == 0x00 && call->data[3] == 0x01)
|| (call->data[0] == 0xff && call->data[1] == 0xff
&& call->data[2] == 0xff && call->data[3] == 0xff))) {
((call->packet->data[0] == 0x00 && call->packet->data[1] == 0x00
&& call->packet->data[2] == 0x00 && call->packet->data[3] == 0x01)
|| (call->packet->data[0] == 0xff && call->packet->data[1] == 0xff
&& call->packet->data[2] == 0xff && call->packet->data[3] == 0xff))) {
unsigned int PacketLength = 0;
unsigned int FakeStartCode = /* (call->Version << 8) | */ PES_VERSION_FAKE_START_CODE;
iov[ic++].iov_base = PesHeader;
@@ -157,9 +157,9 @@ static int writeData(WriterAVCallData_t *call)
iov[ic++].iov_len = call->stream->codec->extradata_size;
PacketLength += call->stream->codec->extradata_size;
}
iov[ic].iov_base = call->data;
iov[ic++].iov_len = call->len;
PacketLength += call->len;
iov[ic].iov_base = call->packet->data;
iov[ic++].iov_len = call->packet->size;
PacketLength += call->packet->size;
/*Hellmaster1024: some packets will only be accepted by the player if we send one byte more than
data is available. The content of this byte does not matter. It will be ignored
by the player */
@@ -305,7 +305,7 @@ static int writeData(WriterAVCallData_t *call)
initialHeader = 0;
}
unsigned int SampleSize = call->len;
unsigned int SampleSize = call->packet->size;
unsigned int NalStart = 0;
unsigned int VideoPosition = 0;
@@ -314,7 +314,7 @@ static int writeData(WriterAVCallData_t *call)
unsigned char NalData[4];
int NalPresent = 1;
memcpy(NalData, call->data + VideoPosition, NalLengthBytes);
memcpy(NalData, call->packet->data + VideoPosition, NalLengthBytes);
VideoPosition += NalLengthBytes;
NalStart += NalLengthBytes;
switch (NalLengthBytes) {
@@ -356,7 +356,7 @@ static int writeData(WriterAVCallData_t *call)
iov[ic++].iov_len = sizeof(Head);
}
iov[ic].iov_base = call->data + VideoPosition;
iov[ic].iov_base = call->packet->data + VideoPosition;
iov[ic++].iov_len = NalLength;
VideoPosition += NalLength;
@@ -394,7 +394,7 @@ static int writeReverseData(WriterAVCallData_t *call)
h264_printf(10, "VideoPts %lld\n", call->Pts);
if ((call->data == NULL) || (call->len <= 0)) {
if ((call->packet->data == NULL) || (call->packet->size <= 0)) {
h264_err("NULL Data. ignoring...\n");
return 0;
}