Added thumbnailer since it also needs to rotate the still image that it gets from the hardware video decoder using GStreamer. Basically it needs to look for the "image-orientation" tag in the GstTagList that gets broadcasted by the Gst pipeline. Then look for values of "rotate-0", "rotate-90", "rotate-180", "rotate-270" for the queue in what to do. This info comes from the MPEG4 container file itself, parsed by qtdemux and added to a GstTagList. Take a look at qtvideo-node shadervideomaterial.cpp file for how to do the matrix operations manually. Or you might take a look at using the "videoflip" plugin from GStreamer to do this as it listens for the exact same GstTagList values that I mentioned above.
Added thumbnailer since it also needs to rotate the still image that it gets from the hardware video decoder using GStreamer. Basically it needs to look for the "image-orientation" tag in the GstTagList that gets broadcasted by the Gst pipeline. Then look for values of "rotate-0", "rotate-90", "rotate-180", "rotate-270" for the queue in what to do. This info comes from the MPEG4 container file itself, parsed by qtdemux and added to a GstTagList. Take a look at qtvideo-node shadervideomate rial.cpp file for how to do the matrix operations manually. Or you might take a look at using the "videoflip" plugin from GStreamer to do this as it listens for the exact same GstTagList values that I mentioned above.