Re: [FFmpeg-devel] [PATCH 1/4] ffmpeg: re-copy codec contexts after encoding

2016-09-28 Thread Jon Toohill
This was sent in error, please disregard.


Jon Toohill |  Google Play Music |  jtooh...@google.com |  (650) 215-0770

On Wed, Sep 28, 2016 at 11:28 AM, Jon Toohill  wrote:

> This preserves changes to fields of AVCodecContext that get
> updated during encoding, such as trailing_padding (which
> may not be known until encoding is complete).
> ---
>  ffmpeg.c | 15 +++
>  1 file changed, 15 insertions(+)
>
> diff --git a/ffmpeg.c b/ffmpeg.c
> index df55a49..1e973f5 100644
> --- a/ffmpeg.c
> +++ b/ffmpeg.c
> @@ -4243,6 +4243,21 @@ static int transcode(void)
>
>  term_exit();
>
> +/* update output codec contexts after encoding */
> +for (i = 0; i < nb_output_streams; i++) {
> +ost = output_streams[i];
> +if (ost->encoding_needed) {
> +ret = avcodec_copy_context(
> +output_files[ost->file_index]->ctx->streams[ost->index]->
> codec,
> +ost->enc_ctx);
> +if (ret < 0) {
> +av_log(ost, AV_LOG_ERROR, "Error copying final codec
> context: %s\n", av_err2str(ret));
> +if (exit_on_error)
> +exit_program(1);
> +}
> +}
> +}
> +
>  /* write the trailer if needed and close file */
>  for (i = 0; i < nb_output_files; i++) {
>  os = output_files[i]->ctx;
> --
> 2.8.0.rc3.226.g39d4020
>
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/4] ffmpeg: re-copy codec contexts after encoding

2016-09-28 Thread Jon Toohill
This preserves changes to fields of AVCodecContext that get
updated during encoding, such as trailing_padding (which
may not be known until encoding is complete).
---
 ffmpeg.c | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/ffmpeg.c b/ffmpeg.c
index df55a49..1e973f5 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -4243,6 +4243,21 @@ static int transcode(void)
 
 term_exit();
 
+/* update output codec contexts after encoding */
+for (i = 0; i < nb_output_streams; i++) {
+ost = output_streams[i];
+if (ost->encoding_needed) {
+ret = avcodec_copy_context(
+output_files[ost->file_index]->ctx->streams[ost->index]->codec,
+ost->enc_ctx);
+if (ret < 0) {
+av_log(ost, AV_LOG_ERROR, "Error copying final codec context: 
%s\n", av_err2str(ret));
+if (exit_on_error)
+exit_program(1);
+}
+}
+}
+
 /* write the trailer if needed and close file */
 for (i = 0; i < nb_output_files; i++) {
 os = output_files[i]->ctx;
-- 
2.8.0.rc3.226.g39d4020

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/4] ffmpeg: re-copy codec contexts after encoding

2016-09-26 Thread James Almer
On 9/26/2016 2:13 PM, Jon Toohill wrote:
> This preserves changes to fields of AVCodecContext that get
> updated during encoding, such as trailing_padding (which
> may not be known until encoding is complete).
> ---
>  ffmpeg.c | 15 +++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/ffmpeg.c b/ffmpeg.c
> index df55a49..1e973f5 100644
> --- a/ffmpeg.c
> +++ b/ffmpeg.c
> @@ -4243,6 +4243,21 @@ static int transcode(void)
>  
>  term_exit();
>  
> +/* update output codec contexts after encoding */
> +for (i = 0; i < nb_output_streams; i++) {
> +ost = output_streams[i];
> +if (ost->encoding_needed) {
> +ret = avcodec_copy_context(
> +
> output_files[ost->file_index]->ctx->streams[ost->index]->codec,
> +ost->enc_ctx);

We ported ffmpeg to codecpar, so AVStream.codec shouldn't be used anymore.

While i can't say if adding this chunk here is a good idea or even correct
to begin with, you should in any case use avcodec_parameters_from_context()
to copy parameters to the output stream's codecpar context.

> +if (ret < 0) {
> +av_log(ost, AV_LOG_ERROR, "Error copying final codec 
> context: %s\n", av_err2str(ret));
> +if (exit_on_error)
> +exit_program(1);
> +}
> +}
> +}
> +
>  /* write the trailer if needed and close file */
>  for (i = 0; i < nb_output_files; i++) {
>  os = output_files[i]->ctx;
> 

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/4] ffmpeg: re-copy codec contexts after encoding

2016-09-26 Thread Jon Toohill
This preserves changes to fields of AVCodecContext that get
updated during encoding, such as trailing_padding (which
may not be known until encoding is complete).
---
 ffmpeg.c | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/ffmpeg.c b/ffmpeg.c
index df55a49..1e973f5 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -4243,6 +4243,21 @@ static int transcode(void)
 
 term_exit();
 
+/* update output codec contexts after encoding */
+for (i = 0; i < nb_output_streams; i++) {
+ost = output_streams[i];
+if (ost->encoding_needed) {
+ret = avcodec_copy_context(
+output_files[ost->file_index]->ctx->streams[ost->index]->codec,
+ost->enc_ctx);
+if (ret < 0) {
+av_log(ost, AV_LOG_ERROR, "Error copying final codec context: 
%s\n", av_err2str(ret));
+if (exit_on_error)
+exit_program(1);
+}
+}
+}
+
 /* write the trailer if needed and close file */
 for (i = 0; i < nb_output_files; i++) {
 os = output_files[i]->ctx;
-- 
2.8.0.rc3.226.g39d4020

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel