On 2012-01-09 09:37:04 +0100, Luca Barbato wrote:
> Let pass the codec name to -pixel_format and introduce -input_format.
> ---
>  libavdevice/v4l2.c |   11 ++++++++---
>  1 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 71e5b11..e52731d 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -708,11 +708,15 @@ static int v4l2_read_header(AVFormatContext *s1, 
> AVFormatParameters *ap)
>      }
>  
>      if (s->pixel_format) {
> +        AVCodec *codec = avcodec_find_decoder_by_name(s->pixel_format);
> +
> +        if (codec)
> +            s1->video_codec_id = codec->id;
>  
>          pix_fmt = av_get_pix_fmt(s->pixel_format);
>  
> -        if (pix_fmt == PIX_FMT_NONE) {
> -            av_log(s1, AV_LOG_ERROR, "No such pixel format: %s.\n",
> +        if (pix_fmt == PIX_FMT_NONE && !codec) {
> +            av_log(s1, AV_LOG_ERROR, "No such input format: %s.\n",
>                     s->pixel_format);
>  
>              res = AVERROR(EINVAL);
> @@ -818,7 +822,8 @@ static const AVOption options[] = {
>      { "standard",     "TV standard, used only by analog frame grabber",      
>       OFFSET(standard),     AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0,       
> DEC },
>      { "channel",      "TV channel, used only by frame grabber",              
>       OFFSET(channel),      AV_OPT_TYPE_INT,    {.dbl = 0 },    0, INT_MAX, 
> DEC },
>      { "video_size",   "A string describing frame size, such as 640x480 or 
> hd720.", OFFSET(video_size),   AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,      
>  DEC },
> -    { "pixel_format", "",                                                    
>       OFFSET(pixel_format), AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       
> DEC },
> +    { "pixel_format", "Preferred pixel format",                              
>       OFFSET(pixel_format), AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       
> DEC },
> +    { "input_format", "Preferred pixel format (for raw video) or  codec 
> name",     OFFSET(pixel_format), AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,    
>    DEC },

double space in help string, please fix before pushing

>      { "framerate",    "",                                                    
>       OFFSET(framerate),    AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       
> DEC },
>      { "list_formats", "List available formats and exit",                     
>       OFFSET(list_format),  AV_OPT_TYPE_INT,    {.dbl = 0 },  0, INT_MAX, 
> DEC, "list_formats" },
>      { "all",          "Show all available formats",                          
>       OFFSET(list_format),  AV_OPT_TYPE_CONST,  {.dbl = V4L_ALLFORMATS  },    
> 0, INT_MAX, DEC, "list_formats" },

otherwise ok

Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to