Lines Matching defs:hAss

141 UINT transportEnc_LatmCountFixBitDemandHeader ( HANDLE_LATM_STREAM hAss )
147 if (hAss->subFrameCnt==0)
151 if (hAss->tt == TT_MP4_LOAS) {
159 if (hAss->muxConfigPeriod > 0) {
160 insertSetupData = (hAss->latmFrameCounter == 0);
165 if (hAss->tt != TT_MP4_LATM_MCP0) {
170 bitDemand += hAss->streamMuxConfigBits;
175 bitDemand += 8*hAss->otherDataLenBytes;
179 hAss->fillBits = 8 - (bitDemand % 8);
180 bitDemand += hAss->fillBits ;
182 hAss->fillBits = 0;
190 UINT transportEnc_LatmCountVarBitDemandHeader ( HANDLE_LATM_STREAM hAss , unsigned int streamDataLength )
196 if( hAss->allStreamsSameTimeFraming ) {
197 for( prog=0; prog<hAss->noProgram; prog++ ) {
199 LATM_LAYER_INFO *p_linfo = &(hAss->m_linfo[prog][layer]);
228 switch( hAss->varMode ) {
231 //int streamCntPosition = transportEnc_SetWritePointer( hAss->hAssemble, 0 );
232 //int streamCntPosition = FDKgetValidBits( hAss->hAssemble );
235 hAss->varStreamCnt = 0;
236 for( prog=0; prog<hAss->noProgram; prog++ ) {
238 LATM_LAYER_INFO *p_linfo = &(hAss->m_linfo[prog][layer]);
265 hAss->varStreamCnt++;
270 //transportEnc_UpdateBitstreamField( hAss->hAssemble, streamCntPosition, hAss->varStreamCnt-1, 4 );
271 //UINT pos = streamCntPosition-FDKgetValidBits(hAss->hAssemble);
272 //FDKpushBack( hAss->hAssemble, pos);
273 //FDKwriteBits( hAss->hAssemble, hAss->varStreamCnt-1, 4);
274 //FDKpushFor( hAss->hAssemble, pos-4);
288 HANDLE_LATM_STREAM hAss,
299 hAss->audioMuxVersionA = 0; /* for future extensions */
300 hAss->streamMuxConfigBits = 0;
302 FDKwriteBits( hBs, hAss->audioMuxVersion, 1 ); /* audioMuxVersion */
303 hAss->streamMuxConfigBits += 1;
305 if ( hAss->audioMuxVersion == 1 ) {
306 FDKwriteBits( hBs, hAss->audioMuxVersionA, 1 ); /* audioMuxVersionA */
307 hAss->streamMuxConfigBits+=1;
310 if ( hAss->audioMuxVersionA == 0 )
312 if ( hAss->audioMuxVersion == 1 ) {
313 hAss->streamMuxConfigBits+= transportEnc_LatmWriteValue( hBs, hAss->taraBufferFullness );/* taraBufferFullness */
315 FDKwriteBits( hBs, hAss->allStreamsSameTimeFraming ? 1:0, 1 ); /* allStreamsSameTimeFraming */
316 FDKwriteBits( hBs, hAss->noSubframes-1, 6 ); /* Number of Subframes */
317 FDKwriteBits( hBs, hAss->noProgram-1, 4 ); /* Number of Programs */
319 hAss->streamMuxConfigBits+=11;
322 for( prog=0; prog<hAss->noProgram; prog++ ) {
325 FDKwriteBits( hBs, hAss->noLayer[prog]-1, 3 );
326 hAss->streamMuxConfigBits+=3;
329 LATM_LAYER_INFO *p_linfo = &(hAss->m_linfo[prog][layer]);
330 CODER_CONFIG *p_lci = hAss->config[prog][layer];
334 if( hAss->config[prog][layer] != NULL ) {
339 hAss->streamMuxConfigBits+=1;
344 if ( hAss->audioMuxVersion == 1 ) {
352 hAss->config[prog][layer],
358 if ( hAss->audioMuxVersion == 1 ) {
360 hAss->streamMuxConfigBits += transportEnc_LatmWriteValue( hBs, bits );
363 hAss->config[prog][layer],
368 hAss->streamMuxConfigBits += bits; /* add asc length to smc summary */
372 if( !hAss->allStreamsSameTimeFraming ) {
392 hAss->streamMuxConfigBits+=11;
394 if ( !hAss->allStreamsSameTimeFraming ) {
395 CODER_CONFIG *p_lci_prev = hAss->config[prog][layer-1];
399 hAss->streamMuxConfigBits+=6;
412 hAss->streamMuxConfigBits+=12;
420 hAss->streamMuxConfigBits+=3;
432 hAss->streamMuxConfigBits+=6;
440 hAss->streamMuxConfigBits+=3;
452 hAss->streamMuxConfigBits+=1;
465 FDKwriteBits( hBs, (hAss->otherDataLenBytes>0) ? 1:0, 1 ); /* otherDataPresent */
466 hAss->streamMuxConfigBits+=1;
468 if( hAss->otherDataLenBytes > 0 ) {
470 INT otherDataLenTmp = hAss->otherDataLenBytes;
480 otherDataLenTmp = (hAss->otherDataLenBytes>>(escCnt*8)) & 0xFF;
486 hAss->streamMuxConfigBits+=9;
495 hAss->streamMuxConfigBits+=1;
498 hAss->streamMuxConfigBits+=8;
532 TRANSPORTENC_ERROR transportEnc_LatmSetNrOfSubframes( HANDLE_LATM_STREAM hAss,
540 hAss->noSubframes_next = noSubframes_next;
543 if ( (hAss->subFrameCnt == 0) && (hAss->latmFrameCounter == 0) ) {
544 hAss->noSubframes = noSubframes_next;
551 int allStreamsSameTimeFraming( HANDLE_LATM_STREAM hAss, UCHAR noProgram, UCHAR noLayer[] /* return */ )
566 if( hAss->config[prog][layer] != NULL )
573 highestSamplingRate = hAss->config[prog][layer]->samplingRate;
575 hsfSamplesFrame = hAss->config[prog][layer]->samplesPerFrame * highestSamplingRate / hAss->config[prog][layer]->samplingRate;
598 TRANSPORTENC_ERROR transportEnc_InitLatmStream( HANDLE_LATM_STREAM hAss,
607 if (hAss == NULL)
610 hAss->tt = tt;
612 hAss->noProgram = 1;
614 hAss->audioMuxVersion = audioMuxVersion;
616 /* Fill noLayer array using hAss->config */
617 hAss->allStreamsSameTimeFraming = allStreamsSameTimeFraming( hAss, hAss->noProgram, hAss->noLayer );
619 FDK_ASSERT(hAss->allStreamsSameTimeFraming);
621 hAss->fractDelayPresent = fractDelayPresent;
622 hAss->otherDataLenBytes = 0;
624 hAss->varMode = LATMVAR_SIMPLE_SEQUENCE;
627 hAss->subFrameCnt = 0;
628 hAss->noSubframes = DEFAULT_LATM_NR_OF_SUBFRAMES;
629 hAss->noSubframes_next = DEFAULT_LATM_NR_OF_SUBFRAMES;
632 hAss->audioMuxLengthBytes = 0;
634 hAss->latmFrameCounter = 0;
635 hAss->muxConfigPeriod = muxConfigPeriod;
644 UINT transportEnc_LatmCountTotalBitDemandHeader ( HANDLE_LATM_STREAM hAss , unsigned int streamDataLength )
648 switch (hAss->tt) {
652 if (hAss->subFrameCnt == 0) {
653 bitDemand = transportEnc_LatmCountFixBitDemandHeader ( hAss );
655 bitDemand += transportEnc_LatmCountVarBitDemandHeader ( hAss , streamDataLength /*- bitDemand*/);
666 HANDLE_LATM_STREAM hAss,
677 if (hAss->subFrameCnt == 0)
679 if (hAss->muxConfigPeriod > 0) {
680 insertMuxSetup = (hAss->latmFrameCounter == 0);
685 if (hAss->tt != TT_MP4_LATM_MCP0) {
688 CreateStreamMuxConfig(hAss, hBs, bufferFullness, cb);
701 for (prog = 0; prog < hAss->noProgram; prog++) {
702 for (layer = 0; layer < hAss->noLayer[prog]; layer++) {
716 HANDLE_LATM_STREAM hAss,
725 if (hAss->subFrameCnt == 0) {
730 hAss->latmSubframeStart = FDKgetValidBits(hBs);
736 if( hAss->tt == TT_MP4_LOAS && hAss->subFrameCnt == 0)
740 hAss->audioMuxLengthBytes = 0;
741 hAss->audioMuxLengthBytesPos = FDKgetValidBits( hBs ); /* store read pointer position */
742 FDKwriteBits( hBs, hAss->audioMuxLengthBytes, 13 );
746 hAss,
759 void transportEnc_LatmAdjustSubframeBits(HANDLE_LATM_STREAM hAss,
763 *bits -= hAss->latmSubframeStart;
765 if (hAss->subFrameCnt == 0)
766 *bits += hAss->fillBits;
770 void transportEnc_LatmGetFrame(HANDLE_LATM_STREAM hAss,
775 hAss->subFrameCnt++;
776 if (hAss->subFrameCnt >= hAss->noSubframes)
780 if (hAss->tt == TT_MP4_LOAS)
787 hAss->audioMuxLengthBytes = latmBytes - 3; /* 3=Syncword + length */
792 FDKpushFor( &tmpBuf, hAss->audioMuxLengthBytesPos );
793 FDKwriteBits( &tmpBuf, hAss->audioMuxLengthBytes, 13 );
799 FDKwriteBits(hBs, 0, hAss->fillBits);
803 hAss->subFrameCnt = 0;
809 if (hAss->muxConfigPeriod > 0)
811 hAss->latmFrameCounter++;
813 if (hAss->latmFrameCounter >= hAss->muxConfigPeriod) {
814 hAss->latmFrameCounter = 0;
815 hAss->noSubframes = hAss->noSubframes_next;
828 HANDLE_LATM_STREAM hAss,
846 hAss->config[prog][layer] = NULL;
847 hAss->m_linfo[prog][layer].streamID = -1;
851 hAss->config[0][0] = layerConfig;
852 hAss->m_linfo[0][0].streamID = 0;
854 ErrorStatus = transportEnc_InitLatmStream( hAss,
864 hAss,
871 AdvanceAudioMuxElement(hAss, hBs, 0, 0, cb);
872 //CreateStreamMuxConfig(hAss, hBs, 0);