bizarro city i changed get input & output format to enforce B_RGB32 like this void VideoMixerNode::GetInputFormat(media_format *outFormat) { fprintf(stderr,"VideoMixerNode::GetInputFormat\n"); if (outFormat != NULL) { outFormat->type = B_MEDIA_RAW_VIDEO; outFormat->require_flags = B_MEDIA_MAUI_UNDEFINED_FLAGS; outFormat->deny_flags = B_MEDIA_MAUI_UNDEFINED_FLAGS; outFormat->u.raw_video = media_raw_video_format::wildcard; outFormat->u.raw_video.display.format = B_RGB32; // = media_raw_video_format::wildcard; //outFormat->u.raw_video = media_raw_video_format::wildcard; } } but still mediaplayer seems to think preferred color space is B_RGB32_BIG the debug output is quite confusing, what is really going on in there? Why does it not grok the colorspace im trying to enforce? on cortex, the video stream (when you open a video file with mediaplayer) shows as raw B_RGB32. apparently video_mixer returns a wildcard as the preferred colorspace and mediaplayer does some weirdness to resolve that wildcard is B_RGB32_big. ?? cheers, sami MediaTrackVideoSupplier::_SwitchFormat() - preferred color space: B_RGB24_BIG CPU is capable of running MMX SSE1 SSE2 SSE3 SSSE3 resolve_colorspace: gfx_conv_yuv420p_rgba32_sse2 MediaTrackVideoSupplier::_SwitchFormat() - codec changed colorspace of decoded format (B_RGB24_BIG -> B_RGB32)! AudioProducer::_FillNextBuffer() - supplier error -> silence BMediaRoster::ReleaseNode, trying to release reference counting disabled timesource, node 2, port 348294, team 726 BMediaEventLooper: SchedulingLatency is 750 BMediaEventLooper: SchedulingLatency is 3000 VideoProducer::SetRunMode(3) VideoConsumer::CreateBuffers -using hardware overlay VideoConsumer::CreateBuffers ERROR creating bitmap 0 VideoConsumer::CreateBuffers -using hardware overlay VideoConsumer::CreateBuffers ERROR creating bitmap 1 VideoConsumer::CreateBuffers -using hardware overlay VideoConsumer::CreateBuffers ERROR creating bitmap 2 VideoConsumer::CreateBuffers -using hardware overlay VideoConsumer::CreateBuffers ERROR creating bitmap 3 VideoConsumer::CreateBuffers ERROR IN GET BUFFER LIST VideoConsumer::Connected - COULDN'T CREATE BUFFERS On 6/26/10, David McPaul <dlmcpaul@xxxxxxxxx> wrote: > On 26 June 2010 13:40, sami vuokila <varjosanomat@xxxxxxxxx> wrote: >> I've played around with video_mixer.. a few questions >> >> when I connect the mixer to mediaplayer output, the debug shows that it >> triggers MediaTrackVideoSupplier:: _SwitchFormat() making codec change >> colorspace (wreaking all kinds of havoc and stopping playback). > > Negotiation on colourspace is supposed to occur. > >> do you think is it feasible to make video_mixer to accept whatever color >> space it is offered off the bat so I wouldnt need to worry about the codec >> thats pushing out the frames? > > That is the intention. The mixer is supposed to do colour space > conversion on th input nodes to suit the output node. > Then mix all inputs to a single output. > > Obviously the color conversion is not there yet. > >> maybe the preferred way would be to modify the codec to push out B_RGB32 >> (internal format of the video_mixer) to avoid multiple colorspace >> conversions. but for testing i wouldnt mind doing it on the video_mixer >> side I guess. > > If you modify the Video Consumer node to only accept B_RGB32 then that > should force the codec to fall back to B_RGB32. > >> another question, yep there's more, how can i get debug output from >> video_mixer.media_addon? cant start it from the terminal. > > Run Cortex from the terminal, the addon is loaded into it's process > space and outputs to it's stdout. > > -- > Cheers > David > >