Home | History | Annotate | Download | only in src

Lines Matching refs:videoTrackPtr

567     mMp4FileDataPtr->videoTrackPtr = M4OSA_NULL;
882 if (mMp4FileDataPtr->videoTrackPtr == M4OSA_NULL)
884 mMp4FileDataPtr->videoTrackPtr = (M4MP4W_VideoTrackData
887 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr != M4OSA_NULL,
892 mMp4FileDataPtr->videoTrackPtr->Chunk = M4OSA_NULL;
893 mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable = M4OSA_NULL;
894 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable = M4OSA_NULL;
895 mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable = M4OSA_NULL;
896 mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable = M4OSA_NULL;
897 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS = M4OSA_NULL;
898 mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ = M4OSA_NULL;
899 mMp4FileDataPtr->videoTrackPtr->TABLE_STSS = M4OSA_NULL;
900 mMp4FileDataPtr->videoTrackPtr->DSI = M4OSA_NULL;
906 mMp4FileDataPtr->videoTrackPtr->Chunk =
909 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->Chunk");
910 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->Chunk != M4OSA_NULL,
916 mMp4FileDataPtr->videoTrackPtr->Chunk =
918 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->Chunk");
919 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->Chunk != M4OSA_NULL,
921 mMp4FileDataPtr->videoTrackPtr->Chunk[0] = M4OSA_NULL;
923 mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable =
926 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->chunkOffsetTable");
927 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable
932 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->Chunk != M4OSA_NULL,
934 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable =
937 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->chunkSizeTable");
938 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkSizeTable
940 mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable =
943 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->chunkSampleNbTable");
944 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable
946 mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable =
949 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->chunkTimeMsTable");
950 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable
953 mMp4FileDataPtr->videoTrackPtr->LastAllocatedChunk = 0;
955 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS =
957 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->TABLE_STTS");
958 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STTS
960 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedSttsBlocks = 1;
963 mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ =
965 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->TABLE_STSZ");
969 mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ =
971 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->TABLE_STSZ");
975 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ
977 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStszBlocks = 1;
978 mMp4FileDataPtr->videoTrackPtr->TABLE_STSS =
980 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->TABLE_STSS");
981 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STSS
983 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStssBlocks = 1;
987 mMp4FileDataPtr->videoTrackPtr->width = M4MP4W_DefaultWidth;
988 mMp4FileDataPtr->videoTrackPtr->height = M4MP4W_DefaultHeight;
989 mMp4FileDataPtr->videoTrackPtr->MaxAUSize =
991 mMp4FileDataPtr->videoTrackPtr->CommonData.trackType =
993 mMp4FileDataPtr->videoTrackPtr->MaxChunkSize =
997 mMp4FileDataPtr->videoTrackPtr->MaxAUperChunk =
1003 mMp4FileDataPtr->videoTrackPtr->CommonData.timescale = 1000;
1004 mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS = 0;
1005 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb = 0;
1006 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleSize = 0;
1007 mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb = 1;
1008 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[0] = 0; /*init*/
1009 mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable[0] = 0; /*init*/
1010 mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable[0] = 0; /*init*/
1011 mMp4FileDataPtr->videoTrackPtr->currentChunk =
1013 mMp4FileDataPtr->videoTrackPtr->currentPos = 0;
1016 mMp4FileDataPtr->videoTrackPtr->currentStsc = 0;
1020 mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb = 0;
1021 mMp4FileDataPtr->videoTrackPtr->microState = M4MP4W_ready;
1030 mMp4FileDataPtr->videoTrackPtr->avgBitrate = -1;
1031 mMp4FileDataPtr->videoTrackPtr->maxBitrate = -1;
1037 mMp4FileDataPtr->videoTrackPtr->avgBitrate =
1039 mMp4FileDataPtr->videoTrackPtr->maxBitrate =
1049 mMp4FileDataPtr->videoTrackPtr->dsiSize =
1051 mMp4FileDataPtr->videoTrackPtr->DSI =
1054 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
1055 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI != M4OSA_NULL,
1058 (void *)mMp4FileDataPtr->videoTrackPtr->DSI,
1065 mMp4FileDataPtr->videoTrackPtr->DSI = M4OSA_NULL;
1066 mMp4FileDataPtr->videoTrackPtr->dsiSize = 0;
1078 mMp4FileDataPtr->videoTrackPtr->DSI = M4OSA_NULL;
1079 mMp4FileDataPtr->videoTrackPtr->dsiSize = 0;
1089 mMp4FileDataPtr->videoTrackPtr->dsiSize =
1091 mMp4FileDataPtr->videoTrackPtr->DSI =
1094 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
1095 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI != M4OSA_NULL,
1098 (void *)mMp4FileDataPtr->videoTrackPtr->DSI,
1106 mMp4FileDataPtr->videoTrackPtr->avgBitrate =
1108 mMp4FileDataPtr->videoTrackPtr->maxBitrate =
1115 mMp4FileDataPtr->videoTrackPtr->avgBitrate =
1117 mMp4FileDataPtr->videoTrackPtr->maxBitrate =
1129 mMp4FileDataPtr->videoTrackPtr->dsiSize =
1134 mMp4FileDataPtr->videoTrackPtr->DSI =
1137 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
1138 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI
1146 (void *)mMp4FileDataPtr->videoTrackPtr->DSI,
1150 (void *)((mMp4FileDataPtr->videoTrackPtr->
1155 (void *)((mMp4FileDataPtr->videoTrackPtr->
1160 (void *)((mMp4FileDataPtr->videoTrackPtr->
1170 mMp4FileDataPtr->videoTrackPtr->dsiSize =
1174 mMp4FileDataPtr->videoTrackPtr->DSI =
1177 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
1178 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI
1181 (void *)mMp4FileDataPtr->videoTrackPtr->DSI,
1190 mMp4FileDataPtr->videoTrackPtr->DSI = M4OSA_NULL;
1191 mMp4FileDataPtr->videoTrackPtr->dsiSize = 0;
1233 /* if (mMp4FileDataPtr->videoTrackPtr != M4OSA_NULL)*/
1236 ERR_CHECK((mMp4FileDataPtr->videoTrackPtr->microState == M4MP4W_ready),
1238 mMp4FileDataPtr->videoTrackPtr->microState = M4MP4W_writing;
1241 mMp4FileDataPtr->videoTrackPtr->Chunk[0] = (M4OSA_UChar
1242 *)M4OSA_32bitAlignedMalloc(mMp4FileDataPtr->videoTrackPtr->MaxChunkSize,
1243 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->Chunk[0]");
1244 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->Chunk[0] != M4OSA_NULL,
1355 safetyFileSize += mMp4FileDataPtr->videoTrackPtr->MaxChunkSize;
1654 if (mMp4FileDataPtr->videoTrackPtr == M4OSA_NULL)
1659 mMp4FileDataPtr->videoTrackPtr->currentChunk,
1662 scale_video = 1000.0 / mMp4FileDataPtr->videoTrackPtr->CommonData.timescale;
1671 err = M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->Chunk[0],
1672 mMp4FileDataPtr->videoTrackPtr->currentPos,
1710 mMp4FileDataPtr->videoTrackPtr->
1711 chunkOffsetTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
1716 mMp4FileDataPtr->videoTrackPtr->currentPos;
1722 mMp4FileDataPtr->videoTrackPtr->
1723 chunkSizeTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
1724 mMp4FileDataPtr->videoTrackPtr->currentPos;
1725 mMp4FileDataPtr->videoTrackPtr->
1726 chunkTimeMsTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
1727 (M4OSA_UInt32)(mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS
1730 mMp4FileDataPtr->videoTrackPtr->currentChunk += 1;
1735 if (mMp4FileDataPtr->videoTrackPtr->currentChunk
1736 > mMp4FileDataPtr->videoTrackPtr->LastAllocatedChunk)
1739 mMp4FileDataPtr->videoTrackPtr->LastAllocatedChunk += 1;
1744 if ( mMp4FileDataPtr->videoTrackPtr->LastAllocatedChunk
1753 videoTrackPtr->LastAllocatedChunk)
1756 reallocNb = mMp4FileDataPtr->videoTrackPtr->LastAllocatedChunk
1761 mMp4FileDataPtr->videoTrackPtr->Chunk =
1763 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->Chunk,
1767 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->Chunk != M4OSA_NULL,
1772 mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable =
1774 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
1778 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable
1783 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable =
1785 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
1789 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkSizeTable
1792 mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable =
1794 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
1798 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable
1801 mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable =
1803 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
1807 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable
1814 mMp4FileDataPtr->videoTrackPtr->
1815 Chunk[mMp4FileDataPtr->videoTrackPtr->currentChunk] = (M4OSA_UChar
1816 *)M4OSA_32bitAlignedMalloc(mMp4FileDataPtr->videoTrackPtr->MaxChunkSize,
1817 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->MaxChunkSize");
1818 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->
1819 Chunk[mMp4FileDataPtr->videoTrackPtr->currentChunk]
1827 *leftSpaceInChunk = mMp4FileDataPtr->videoTrackPtr->MaxChunkSize;
1828 mMp4FileDataPtr->videoTrackPtr->currentPos = 0;
1833 if (mMp4FileDataPtr->videoTrackPtr->currentStsc > 0)
1835 if ((mMp4FileDataPtr->videoTrackPtr->
1836 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->
1837 currentStsc] & 0xFFF) != (mMp4FileDataPtr->videoTrackPtr->
1838 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->currentStsc
1840 mMp4FileDataPtr->videoTrackPtr->currentStsc += 1;
1843 mMp4FileDataPtr->videoTrackPtr->currentStsc += 1;
1846 if (mMp4FileDataPtr->videoTrackPtr->currentStsc
1854 mMp4FileDataPtr->videoTrackPtr->
1855 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->currentStsc] =
1856 0 + (mMp4FileDataPtr->videoTrackPtr->currentChunk << 12);
1861 mMp4FileDataPtr->videoTrackPtr->
1862 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] = 0;
1869 mMp4FileDataPtr->videoTrackPtr->
1870 chunkTimeMsTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
1871 (M4OSA_UInt32)(mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS
1931 if ((mMp4FileDataPtr->videoTrackPtr != M4OSA_NULL)
1932 && (mMp4FileDataPtr->videoTrackPtr->currentPos > 0))
1972 1000.0 / mMp4FileDataPtr->videoTrackPtr->CommonData.timescale;
1975 ERR_CHECK((mMp4FileDataPtr->videoTrackPtr->microState
1977 mMp4FileDataPtr->videoTrackPtr->microState = M4MP4W_writing_startAU;
1979 leftSpaceInChunk = mMp4FileDataPtr->videoTrackPtr->MaxChunkSize
1980 - mMp4FileDataPtr->videoTrackPtr->currentPos;
1983 (M4OSA_UInt32)(( mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS
1984 * scale_video) - mMp4FileDataPtr->videoTrackPtr->
1985 chunkTimeMsTable[mMp4FileDataPtr->videoTrackPtr->
1990 leftSpaceInChunk = mMp4FileDataPtr->videoTrackPtr->MaxChunkSize;
1995 mMp4FileDataPtr->videoTrackPtr->currentPos, leftSpaceInChunk);
1997 if (( leftSpaceInChunk < mMp4FileDataPtr->videoTrackPtr->MaxAUSize)
2002 || (( mMp4FileDataPtr->videoTrackPtr->MaxAUperChunk != 0)
2003 && (( mMp4FileDataPtr->videoTrackPtr->
2004 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->
2006 == mMp4FileDataPtr->videoTrackPtr->MaxAUperChunk))
2020 mMp4FileDataPtr->videoTrackPtr->currentPos,
2021 mMp4FileDataPtr->videoTrackPtr->currentChunk);
2034 if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
2037 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->
2038 Chunk[mMp4FileDataPtr->videoTrackPtr->currentChunk]
2039 + mMp4FileDataPtr->videoTrackPtr->currentPos + 4);
2042 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->
2043 Chunk[mMp4FileDataPtr->videoTrackPtr->currentChunk]
2044 + mMp4FileDataPtr->videoTrackPtr->currentPos);
2049 if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
2052 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->Chunk[0] + 4);
2055 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->Chunk[0]);
2059 if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
2062 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->Chunk[0]
2063 + mMp4FileDataPtr->videoTrackPtr->currentPos
2067 (M4OSA_MemAddr32)(mMp4FileDataPtr->videoTrackPtr->Chunk[0]
2068 + mMp4FileDataPtr->videoTrackPtr->currentPos);
2113 1000.0 / mMp4FileDataPtr->videoTrackPtr->CommonData.timescale;
2135 + mMp4FileDataPtr->videoTrackPtr->currentPos
2136 > mMp4FileDataPtr->videoTrackPtr->MaxChunkSize,
2140 > mMp4FileDataPtr->videoTrackPtr->MaxAUSize,
2158 && (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
2422 if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
2440 ERR_CHECK((mMp4FileDataPtr->videoTrackPtr->microState
2442 mMp4FileDataPtr->videoTrackPtr->microState = M4MP4W_writing;
2454 + mMp4FileDataPtr->videoTrackPtr->currentPos;
2465 of the chunk,therefore we need to add videoTrackPtr->currentPos to know where we
2474 + mMp4FileDataPtr->videoTrackPtr->currentPos, err, temp);
2489 mMp4FileDataPtr->videoTrackPtr->currentPos += auPtr->size;
2493 - mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS;
2500 if (2 *(mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb + 3)
2501 >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStszBlocks
2508 mMp4FileDataPtr->videoTrackPtr->
2509 TABLE_STSZ[mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb] =
2515 if (4 *mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb
2516 >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStszBlocks
2519 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStszBlocks += 1;
2521 mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ =
2523 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ,
2524 ( mMp4FileDataPtr->videoTrackPtr->
2527 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStszBlocks
2530 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ != M4OSA_NULL,
2534 mMp4FileDataPtr->videoTrackPtr->
2535 TABLE_STSZ[mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb] =
2541 if (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb
2546 M4MP4W_put32_Lo(&mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[0], 1);
2547 M4MP4W_put32_Hi(&mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[0], 0);
2551 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[0] = 1;
2552 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[1] = 0;
2556 mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb = 1;
2559 else if (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb
2564 M4MP4W_put32_Hi(&mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[0],
2569 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[1] = delta;
2579 lastSampleDur = M4MP4W_get32_Hi(&mMp4FileDataPtr->videoTrackPtr->
2580 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
2583 if (4 *(mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb
2584 + 3) >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedSttsBlocks
2593 lastSampleDur = mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2
2594 videoTrackPtr->
2597 if (8 *mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb
2598 >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedSttsBlocks
2601 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedSttsBlocks += 1;
2602 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS =
2604 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
2605 TABLE_STTS, ( mMp4FileDataPtr->videoTrackPtr->
2608 mMp4FileDataPtr->videoTrackPtr->
2611 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STTS
2621 M4MP4W_put32_Lo(&mMp4FileDataPtr->videoTrackPtr->
2622 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
2624 M4MP4W_put32_Hi(&mMp4FileDataPtr->videoTrackPtr->
2625 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
2630 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2 *(
2631 mMp4FileDataPtr->videoTrackPtr->
2633 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2
2634 *(mMp4FileDataPtr->videoTrackPtr->
2639 mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb +=
2648 mMp4FileDataPtr->videoTrackPtr->
2649 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
2654 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2 *(
2655 mMp4FileDataPtr->videoTrackPtr->
2663 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb += 1;
2666 mMp4FileDataPtr->videoTrackPtr->
2667 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->currentStsc] +=
2672 mMp4FileDataPtr->videoTrackPtr->
2673 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] +=
2682 if (4 *(mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb + 3)
2683 >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStssBlocks
2692 if (4 *mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb
2693 >= mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStssBlocks
2696 mMp4FileDataPtr->videoTrackPtr->nbOfAllocatedStssBlocks += 1;
2697 mMp4FileDataPtr->videoTrackPtr->TABLE_STSS =
2699 (M4OSA_MemAddr32)mMp4FileDataPtr->videoTrackPtr->
2700 TABLE_STSS, ( mMp4FileDataPtr->videoTrackPtr->
2703 mMp4FileDataPtr->videoTrackPtr->
2706 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->TABLE_STSS
2712 mMp4FileDataPtr->videoTrackPtr->
2713 TABLE_STSS[mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb] =
2714 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb;
2715 mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb += 1;
2720 mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS =
2752 (M4OSA_UInt32)(( mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS
2791 && (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb
2792 != 0)); /*((mMp4FileDataPtr->videoTrackPtr != M4OSA_NULL) &&
2793 (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb != 0));*/
2922 if ((M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable)
2923 || (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->chunkSizeTable)
2925 == mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable)
2927 == mMp4FileDataPtr->videoTrackPtr->chunkTimeMsTable)
2928 || (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ)
2929 || (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->TABLE_STTS)
2930 || (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->TABLE_STSS))
2939 mMp4FileDataPtr->videoTrackPtr->microState = M4MP4W_closed;
2942 for ( i = 0; i < mMp4FileDataPtr->videoTrackPtr->currentChunk; i++ )
2944 v_dataSize += mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[i];
2951 if (mMp4FileDataPtr->videoTrackPtr->currentPos > 0)
2953 err = M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->Chunk[0],
2954 mMp4FileDataPtr->videoTrackPtr->currentPos,
2966 mMp4FileDataPtr->videoTrackPtr->currentChunk,
2968 mMp4FileDataPtr->videoTrackPtr->currentPos);
2971 mMp4FileDataPtr->videoTrackPtr->
2972 chunkOffsetTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
2977 mMp4FileDataPtr->videoTrackPtr->currentPos;
2982 mMp4FileDataPtr->videoTrackPtr->
2983 chunkSizeTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
2984 mMp4FileDataPtr->videoTrackPtr->currentPos;
2986 mMp4FileDataPtr->videoTrackPtr->currentPos; /*add last chunk size*/
2988 v_trakDuration = mMp4FileDataPtr->videoTrackPtr->
2992 if ((mMp4FileDataPtr->videoTrackPtr->currentChunk != 0)
2993 && (mMp4FileDataPtr->videoTrackPtr->currentPos == 0))
2995 mMp4FileDataPtr->videoTrackPtr->currentChunk--;
2999 if ((mMp4FileDataPtr->videoTrackPtr->
3000 chunkSampleNbTable[mMp4FileDataPtr->videoTrackPtr->
3003 mMp4FileDataPtr->videoTrackPtr->currentStsc--;
3015 - mMp4FileDataPtr->videoTrackPtr->CommonData.lastCTS;
3018 if (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb > 1)
3021 mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb++;
3026 M4MP4W_put32_Lo(&mMp4FileDataPtr->videoTrackPtr->
3027 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
3029 M4MP4W_put32_Hi(&mMp4FileDataPtr->videoTrackPtr->
3030 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
3035 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2
3036 *(mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb
3038 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2
3039 *(mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb
3048 if (mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb > 1)
3054 M4MP4W_get32_Hi(&mMp4FileDataPtr->videoTrackPtr->
3055 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
3057 mMp4FileDataPtr->videoTrackPtr->
3058 TABLE_STTS[mMp4FileDataPtr->videoTrackPtr->
3063 v_trakDuration += mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2
3064 * (mMp4FileDataPtr->videoTrackPtr->
3066 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[2 *(
3067 mMp4FileDataPtr->videoTrackPtr->
3075 M4OSA_TRACE1_0("M4MP4W_closeWrite : ! videoTrackPtr,\
3083 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[1] =
3089 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[1];
3096 mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[1] = 66;
3103 A = v_sttsSize = 16 + 8 * mMp4FileDataPtr->videoTrackPtr->
3105 B = v_stszSize = 20 + 4 * mMp4FileDataPtr->videoTrackPtr->
3107 N = mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb;
3111 1000.0 / mMp4FileDataPtr->videoTrackPtr->CommonData.timescale;
3117 M4MP4W_table32ToBE(mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ,
3118 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb);
3119 M4MP4W_table32ToBE(mMp4FileDataPtr->videoTrackPtr->TABLE_STTS,
3120 2 * (mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb));
3124 M4MP4W_table32ToBE(mMp4FileDataPtr->videoTrackPtr->TABLE_STSS,
3125 mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb);
3127 if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
3140 if (((M4OSA_Int32)mMp4FileDataPtr->videoTrackPtr->avgBitrate) != -1)
3152 else if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
3158 if (0 == mMp4FileDataPtr->videoTrackPtr->dsiSize
3159 || M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->DSI)
3172 mMp4FileDataPtr->videoTrackPtr->dsiSize;
3184 else if (mMp4FileDataPtr->videoTrackPtr->CommonData.trackType
3190 if (0 == mMp4FileDataPtr->videoTrackPtr->dsiSize
3191 || M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->DSI)
3200 dsi = mMp4FileDataPtr->videoTrackPtr->dsiSize;
3223 v_stscSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3224 v_stblSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3225 v_minfSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3226 v_mdiaSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3227 v_trakSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3228 moovSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentStsc;
3231 v_stcoSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3232 v_stblSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3233 v_minfSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3234 v_mdiaSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3235 v_trakSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3236 moovSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3241 v_stscSize += 12 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3242 v_stcoSize += 4 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3243 v_stblSize += 16 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3244 v_minfSize += 16 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3245 v_mdiaSize += 16 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3246 v_trakSize += 16 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3247 moovSize += 16 * mMp4FileDataPtr->videoTrackPtr->currentChunk;
3253 mMp4FileDataPtr->videoTrackPtr->
3254 chunkTimeMsTable[mMp4FileDataPtr->videoTrackPtr->currentChunk] =
3954 && (mMp4FileDataPtr->videoTrackPtr->currentChunk >= i))
3957 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[i];
3999 CLEANUPonERR(M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->width << 16,
4001 CLEANUPonERR(M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->height
4014 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->CommonData.timescale,
4035 mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb,
4040 i < mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb;
4044 &mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[i]),
4048 &mMp4FileDataPtr->videoTrackPtr->TABLE_STTS[i]),
4056 *)mMp4FileDataPtr->videoTrackPtr->TABLE_STTS,
4057 ( mMp4FileDataPtr->videoTrackPtr->CommonData.sttsTableEntryNb) * 8,
4099 CLEANUPonERR(M4MP4W_putBE16(mMp4FileDataPtr->videoTrackPtr->width,
4101 CLEANUPonERR(M4MP4W_putBE16(mMp4FileDataPtr->videoTrackPtr->height,
4115 if (((M4OSA_Int32)mMp4FileDataPtr->videoTrackPtr->avgBitrate) != -1)
4122 if (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->DSI)
4131 M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->DSI,
4132 mMp4FileDataPtr->videoTrackPtr->dsiSize,
4143 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->avgBitrate,
4147 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->maxBitrate,
4157 if (M4OSA_NULL == mMp4FileDataPtr->videoTrackPtr->DSI)
4166 M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->DSI,
4167 mMp4FileDataPtr->videoTrackPtr->dsiSize,
4176 M4OSA_UInt32 bufferSizeDB = 5 * mMp4FileDataPtr->videoTrackPtr->
4201 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->maxBitrate,
4205 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->avgBitrate,
4211 CLEANUPonERR(M4MP4W_putByte(mMp4FileDataPtr->videoTrackPtr->dsiSize,
4214 CLEANUPonERR(M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->DSI,
4215 mMp4FileDataPtr->videoTrackPtr->dsiSize,
4227 M4OSA_UChar *tmpDSI = mMp4FileDataPtr->videoTrackPtr->DSI; /* DSI */
4242 if ((0x01 != mMp4FileDataPtr->videoTrackPtr->DSI[0]) ||
4243 (0x42 != mMp4FileDataPtr->videoTrackPtr->DSI[1]))
4246 mMp4FileDataPtr->videoTrackPtr->DSI[0],
4247 mMp4FileDataPtr->videoTrackPtr->DSI[1]);
4251 CLEANUPonERR( M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->DSI,
4252 mMp4FileDataPtr->videoTrackPtr->dsiSize,
4264 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleSize,
4267 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb,
4271 for ( i = 0; i < mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb;
4275 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ[i],
4283 *)mMp4FileDataPtr->videoTrackPtr->TABLE_STSZ,
4284 mMp4FileDataPtr->videoTrackPtr->CommonData.sampleNb * 4,
4296 CLEANUPonERR(M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->currentStsc
4299 for ( i = 0; i <= mMp4FileDataPtr->videoTrackPtr->currentStsc; i++ )
4302 ( mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable[i]
4305 CLEANUPonERR(M4MP4W_putBE32((mMp4FileDataPtr->videoTrackPtr->
4314 CLEANUPonERR(M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->currentChunk
4317 for (i = 0; i <= mMp4FileDataPtr->videoTrackPtr->currentChunk; i++)
4322 mMp4FileDataPtr->videoTrackPtr->chunkSampleNbTable[i],
4335 CLEANUPonERR(M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->currentChunk
4340 for (i = 0; i <= mMp4FileDataPtr->videoTrackPtr->currentChunk; i++)
4350 v_trakOffset += mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[i];
4355 for ( i = 0; i <= mMp4FileDataPtr->videoTrackPtr->currentChunk; i++ )
4358 mMp4FileDataPtr->videoTrackPtr->chunkOffsetTable[i],
4370 M4MP4W_putBE32(mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb,
4374 *)mMp4FileDataPtr->videoTrackPtr->TABLE_STSS,
4375 mMp4FileDataPtr->videoTrackPtr->stssTableEntryNb * 4,
4406 for ( i = 0; i <= mMp4FileDataPtr->videoTrackPtr->currentChunk;
4410 M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->Chunk[i],
4411 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[i],
4420 mMp4FileDataPtr->videoTrackPtr->currentChunk); i++ )
4431 if (i <= mMp4FileDataPtr->videoTrackPtr->currentChunk)
4434 M4MP4W_putBlock(mMp4FileDataPtr->videoTrackPtr->Chunk[i],
4435 mMp4FileDataPtr->videoTrackPtr->chunkSizeTable[i],
4660 mMp4FileDataPtr->videoTrackPtr->MaxChunkSize;
4771 mMp4FileDataPtr->videoTrackPtr->MaxAUSize;
4795 streamIDsizePtr->width = mMp4FileDataPtr->videoTrackPtr->width;
4796 streamIDsizePtr->height = mMp4FileDataPtr->videoTrackPtr->height;
4886 mMp4FileDataPtr->videoTrackPtr->MaxChunkSize =
4905 mMp4FileDataPtr->videoTrackPtr->MaxChunkSize =
5032 /*if (mMp4FileDataPtr->videoTrackPtr == M4OSA_NULL)*/
5036 mMp4FileDataPtr->videoTrackPtr->MaxAUSize =
5049 mMp4FileDataPtr->videoTrackPtr->MaxAUSize =
5077 mMp4FileDataPtr->videoTrackPtr->width = streamIDsizePtr->width;
5078 mMp4FileDataPtr->videoTrackPtr->height =
5144 switch( mMp4FileDataPtr->videoTrackPtr->
5148 if ((0 != mMp4FileDataPtr->videoTrackPtr->dsiSize)
5150 != mMp4FileDataPtr->videoTrackPtr->DSI))
5169 mMp4FileDataPtr->videoTrackPtr->dsiSize =
5171 mMp4FileDataPtr->videoTrackPtr->DSI = (M4OSA_UChar
5173 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
5174 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI
5177 (void *)mMp4FileDataPtr->videoTrackPtr->
5185 if ((0 != mMp4FileDataPtr->videoTrackPtr->dsiSize)
5187 != mMp4FileDataPtr->videoTrackPtr->DSI))
5205 mMp4FileDataPtr->videoTrackPtr->dsiSize =
5207 mMp4FileDataPtr->videoTrackPtr->DSI = (M4OSA_UChar
5209 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
5210 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI
5213 (void *)mMp4FileDataPtr->videoTrackPtr->
5223 if ((0 != mMp4FileDataPtr->videoTrackPtr->dsiSize)
5225 != mMp4FileDataPtr->videoTrackPtr->DSI))
5230 free(mMp4FileDataPtr->videoTrackPtr->DSI);
5234 mMp4FileDataPtr->videoTrackPtr->dsiSize =
5237 ,mMp4FileDataPtr->videoTrackPtr->dsiSize);
5239 mMp4FileDataPtr->videoTrackPtr->DSI =
5242 (M4OSA_Char *)"videoTrackPtr->DSI");
5243 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI !=
5246 (void *)mMp4FileDataPtr->videoTrackPtr->DSI,
5270 mMp4FileDataPtr->videoTrackPtr->dsiSize =
5274 mMp4FileDataPtr->videoTrackPtr->DSI = (M4OSA_UChar
5276 M4MP4_WRITER, (M4OSA_Char *)"videoTrackPtr->DSI");
5277 ERR_CHECK(mMp4FileDataPtr->videoTrackPtr->DSI
5280 (void *)mMp4FileDataPtr->videoTrackPtr->
5339 *state = mMp4FileDataPtr->videoTrackPtr->microState;