Quantcast
Channel: Adobe Community : Popular Discussions - Premiere Pro SDK
Viewing all articles
Browse latest Browse all 53010

Exporter plugin: PrPixelFormat PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_*

$
0
0

I've been struggling to get my Exporter plugin to work with any of the new planar PrPixelFormats (adobe Premiere Pro 6.0.3):

    PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709

    PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601

    PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709_FullRange

    PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_601_FullRange

    ...

 

My plugin uses an input format not natively supported by the SDK:  "NV12"

NV12 contains the same pixel/chroma information as YV12;  the difference is in the chroma-plane packing.  In YV12, each of the Cb and Cr planes is stored as a solo plane (at half-height x half-width).  In NV12, each Cb+Cr sample is grouped into a 16-bit value, then packed into a single plane.  The same information is there, the only difference is that YV12 has 2 chroma-planes (each with total bytesize '1/4 Y'), and NV12 has 1 chroma-plane (with total bytesize '1/2 Y'.)

 

Anyway,

so far I've only been successful using a 4:4:4 YUV PrPixelFormat, then having my user-plugin manually convert the 4:4:4 into a NV12 format.

(PrPixelFormat_VUYX_4444_8u).  When I try any of the sequenceRenderSuite->RenderVideoFrame(...), I get garbled pixeldata.

The Y (luma) plane is correct, but the Chroma-data appears to be missing.

 

For example, I expect PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709 to store the Cb/Cr plane immediately after the Y plane.  However, it looks like renderVideoFrame( PrPixelFormat_YUV_420_MPEG4_FRAME_PICTURE_PLANAR_8u_709 ) simply returns the 'Y' plane repeated 3 times.

 

The SDK documentation doesn't go into detail about the new planar pixel formats?  Is there an online reference or other doc?


Viewing all articles
Browse latest Browse all 53010

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>