diff options
author | Aleksoid <aleksoid@users.sourceforge.net> | 2012-02-01 15:08:46 +0400 |
---|---|---|
committer | Aleksoid <aleksoid@users.sourceforge.net> | 2012-02-01 15:08:46 +0400 |
commit | 3495a9a7e44de17ecfc476c954bc79edcf5ff639 (patch) | |
tree | 36e01be2fce1df8ac2a95f60115b36775c2b4a95 /src/filters/parser/MP4Splitter/MP4Splitter.cpp | |
parent | 56a7c8b5bfd2cef010fa3f46c24db4e600531f97 (diff) |
Add : MP4/MOV Splitter - add support JPEG codec(TypeId = 6C);
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@4027 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/parser/MP4Splitter/MP4Splitter.cpp')
-rw-r--r-- | src/filters/parser/MP4Splitter/MP4Splitter.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/filters/parser/MP4Splitter/MP4Splitter.cpp b/src/filters/parser/MP4Splitter/MP4Splitter.cpp index 763a362b9..f88de531b 100644 --- a/src/filters/parser/MP4Splitter/MP4Splitter.cpp +++ b/src/filters/parser/MP4Splitter/MP4Splitter.cpp @@ -302,6 +302,26 @@ HRESULT CMP4SplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader) b_HasVideo = true;
}
break;
+ case AP4_JPEG_OTI:
+ mt.subtype = FOURCCMap('gepj');
+ mt.formattype = FORMAT_MPEG2Video;
+ {
+ MPEG2VIDEOINFO* vih = (MPEG2VIDEOINFO*)mt.AllocFormatBuffer(FIELD_OFFSET(MPEG2VIDEOINFO, dwSequenceHeader) + di->GetDataSize());
+ memset(vih, 0, mt.FormatLength());
+ vih->hdr.bmiHeader.biSize = sizeof(vih->hdr.bmiHeader);
+ vih->hdr.bmiHeader.biWidth = biWidth;
+ vih->hdr.bmiHeader.biHeight = biHeight;
+ vih->hdr.bmiHeader.biCompression = 'gepj';
+ vih->hdr.bmiHeader.biPlanes = 1;
+ vih->hdr.bmiHeader.biBitCount = 24;
+ vih->hdr.dwPictAspectRatioX = vih->hdr.bmiHeader.biWidth;
+ vih->hdr.dwPictAspectRatioY = vih->hdr.bmiHeader.biHeight;
+ vih->cbSequenceHeader = di->GetDataSize();
+ memcpy(vih->dwSequenceHeader, di->GetData(), di->GetDataSize());
+ mts.Add(mt);
+ b_HasVideo = true;
+ }
+ break;
case AP4_MPEG2_VISUAL_SIMPLE_OTI:
case AP4_MPEG2_VISUAL_MAIN_OTI:
case AP4_MPEG2_VISUAL_SNR_OTI:
|