[Ffmpeg-devel] modify the data of an rvb picture/frame

Rémy Bertot remy
Tue May 9 16:19:31 CEST 2006

I'm currently trying to modify ffmpeg.c in order to create a version 
that could generate a movie with a special kind of subtitle: text (and 
pictures) that goes from right to left, used by the actors when doing a 
foreign version of an original soundtrack of a movie (this is usually 
handrawn in oldschool studios).

So, at the moment I'm trying to modify the frames by adding an option in 
do_video_out (after where the crop & padding is done), that convert the 
frame in RVB24 and do the modifications. I encounter some problems when 
accessing the frame data. Basicly this should draw a line from 
height-90px to the bottom (y=height), but it doesn't: something like 1/4 
or 1/3 of the line is missing at the bottom. Of course I get a segfault 
when I try to go any further in the array.

I'm I doing something wrong with the height or when accessing the data ? 
Or is it more likely coming from something else like the picture 
convertion? I must say that I'm pretty confused...

/*** there we go - (only convert if it's not already RGB, ie most of the 
time) */
img_convert((AVPicture *)&picture_mrt, PIX_FMT_RGB24, 
  target_pixfmt, enc->height, enc->width);

for(y=enc->height-90; y<enc->height; y++) {
  for(x=70;x<73;x++) {
    picture_mrt.data[0][y * picture_mrt.linesize[0] + x] = 5000;

img_convert((AVPicture *)final_picture, enc->pix_fmt, 
  PIX_FMT_RGB24, enc->height, enc->width);
/**** that's it */

Well, and I've another question that may be linked: is an integer 
representing the RVB color (like in Html but 10based), or do you have to 
catch each 3 bytes to get the color? I will save me some time if you 
could give me some advice.

Thanks a lot for your help, and for ffmepg...

More information about the ffmpeg-devel mailing list