libeplayer3: change extradata handling

This commit is contained in:
martii
2014-04-05 11:05:37 +02:00
parent 5e2d44cc5d
commit 85bcfb4a17
13 changed files with 50 additions and 279 deletions

View File

@@ -152,8 +152,8 @@ static int writeData(WriterAVCallData_t *call)
iov[ic++].iov_len = FakeHeaderLength;
if (initialHeader) {
iov[ic].iov_base = call->private_data;
iov[ic++].iov_len = call->private_size;
iov[ic].iov_base = call->stream->codec->extradata;
iov[ic++].iov_len = call->stream->codec->extradata_size;
initialHeader = 0;
}

View File

@@ -153,9 +153,9 @@ static int writeData(WriterAVCallData_t *call)
iov[ic++].iov_base = PesHeader;
if (initialHeader) {
initialHeader = 0;
iov[ic].iov_base = call->private_data;
iov[ic++].iov_len = call->private_size;
PacketLength += call->private_size;
iov[ic].iov_base = call->stream->codec->extradata;
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;
@@ -173,7 +173,7 @@ static int writeData(WriterAVCallData_t *call)
}
if (initialHeader) {
avcC_t *avcCHeader = (avcC_t *) call->private_data;
avcC_t *avcCHeader = (avcC_t *) call->stream->codec->extradata;
unsigned int i;
unsigned int ParamSets;
unsigned int ParamOffset;

View File

@@ -46,7 +46,6 @@
#include "misc.h"
#include "pes.h"
#include "writer.h"
#include "pcm.h"
/* ***************************** */
/* Makros/Constants */
@@ -207,15 +206,12 @@ static int writeData(WriterAVCallData_t *call)
return 0;
}
pcmPrivateData_t *pcmPrivateData =
(pcmPrivateData_t *) call->private_data;
if (initialHeader) {
initialHeader = 0;
prepareClipPlay(pcmPrivateData->uNoOfChannels,
pcmPrivateData->uSampleRate,
pcmPrivateData->uBitsPerSample,
pcmPrivateData->bLittleEndian);
prepareClipPlay(call->uNoOfChannels,
call->uSampleRate,
call->uBitsPerSample,
call->bLittleEndian);
}
unsigned char *buffer = call->data;
@@ -254,7 +250,7 @@ static int writeData(WriterAVCallData_t *call)
iov[2].iov_len = SubFrameLen;
//write the PCM data
if (pcmPrivateData->uBitsPerSample == 16) {
if (call->uBitsPerSample == 16) {
for (n = 0; n < SubFrameLen; n += 2) {
unsigned char tmp;
tmp = injectBuffer[n];

View File

@@ -144,7 +144,7 @@ static int writeData(WriterAVCallData_t *call)
vc1_printf(10, "VideoPts %lld\n", call->Pts);
vc1_printf(10, "Got Private Size %d\n", call->private_size);
vc1_printf(10, "Got Private Size %d\n", call->stream->codec->extradata_size);
if (initialHeader) {
@@ -202,8 +202,8 @@ static int writeData(WriterAVCallData_t *call)
/* For VC1 the codec private data is a standard vc1 sequence header so we just copy it to the output */
iov[0].iov_base = PesHeader;
iov[1].iov_base = call->private_data;
iov[1].iov_len = call->private_size;
iov[1].iov_base = call->stream->codec->extradata;
iov[1].iov_len = call->stream->codec->extradata_size;
iov[0].iov_len =
InsertPesHeader(PesHeader, iov[1].iov_len,
VC1_VIDEO_PES_START_CODE, INVALID_PTS_VALUE,

View File

@@ -141,12 +141,9 @@ static int writeData(WriterAVCallData_t *call)
}
wmv_printf(10, "VideoPts %lld\n", call->Pts);
wmv_printf(10, "Got Private Size %d\n", call->private_size);
wmv_printf(10, "Got Private Size %d\n", call->stream->codec->extradata_size);
memcpy(private_data.privateData, call->private_data,
call->private_size >
WMV3_PRIVATE_DATA_LENGTH ? WMV3_PRIVATE_DATA_LENGTH : call->
private_size);
memcpy(private_data.privateData, call->stream->codec->extradata, call->stream->codec->extradata_size > WMV3_PRIVATE_DATA_LENGTH ? WMV3_PRIVATE_DATA_LENGTH : call->stream->codec->extradata_size);
private_data.width = call->Width;
private_data.height = call->Height;

View File

@@ -65,9 +65,9 @@ static Writer_t *AvailableWriter[] = {
&WriterAudioMPEGL3,
&WriterAudioAC3,
&WriterAudioEAC3,
&WriterAudioAAC,
// &WriterAudioAAC,
&WriterAudioDTS,
&WriterAudioWMA,
// &WriterAudioWMA,
&WriterAudioFLAC,
&WriterAudioVORBIS,