mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-28 16:01:22 +02:00
libeplayer3: change extradata handling
This commit is contained in:
@@ -914,8 +914,8 @@ static int Write(Context_t *context, AudioVideoOut_t *out)
|
||||
audio = !strcmp("audio", out->type);
|
||||
|
||||
linuxdvb_printf(20,
|
||||
"DataLength=%u PrivateLength=%u Pts=%llu FrameRate=%f\n",
|
||||
out->len, out->extralen, out->pts, out->frameRate);
|
||||
"DataLength=%u Pts=%llu FrameRate=%f\n",
|
||||
out->len, out->pts, out->frameRate);
|
||||
linuxdvb_printf(20, "v%d a%d\n", video, audio);
|
||||
|
||||
if (video) {
|
||||
@@ -942,8 +942,6 @@ static int Write(Context_t *context, AudioVideoOut_t *out)
|
||||
call.data = out->data;
|
||||
call.len = out->len;
|
||||
call.Pts = out->pts;
|
||||
call.private_data = out->extradata;
|
||||
call.private_size = out->extralen;
|
||||
call.FrameRate = out->frameRate;
|
||||
call.FrameScale = out->timeScale;
|
||||
call.Width = out->width;
|
||||
@@ -986,12 +984,16 @@ static int Write(Context_t *context, AudioVideoOut_t *out)
|
||||
call.data = out->data;
|
||||
call.len = out->len;
|
||||
call.Pts = out->pts;
|
||||
call.private_data = out->extradata;
|
||||
call.private_size = out->extralen;
|
||||
call.FrameRate = out->frameRate;
|
||||
call.FrameScale = out->timeScale;
|
||||
call.Version = 0; /* -1; unsigned char cannot be negative */
|
||||
|
||||
call.uNoOfChannels = out->uNoOfChannels;
|
||||
call.uSampleRate = out->uSampleRate;
|
||||
call.uBitsPerSample = out->uBitsPerSample;
|
||||
call.bLittleEndian = out->bLittleEndian;
|
||||
|
||||
|
||||
if (writer->writeData)
|
||||
res = writer->writeData(&call);
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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];
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -65,9 +65,9 @@ static Writer_t *AvailableWriter[] = {
|
||||
&WriterAudioMPEGL3,
|
||||
&WriterAudioAC3,
|
||||
&WriterAudioEAC3,
|
||||
&WriterAudioAAC,
|
||||
// &WriterAudioAAC,
|
||||
&WriterAudioDTS,
|
||||
&WriterAudioWMA,
|
||||
// &WriterAudioWMA,
|
||||
&WriterAudioFLAC,
|
||||
&WriterAudioVORBIS,
|
||||
|
||||
|
Reference in New Issue
Block a user